Function at 0x40810f
Capabilities:
Encrypt data using speck

Disassembly:
xor ebx, dword [ebp - 0x28]
call fcn.0040e953
mov byte [ebp - 0x84], 0xe7
lea edi, [eax + 0x8ea]
test dword [ebp - 0x48], 0
je 0x404657
jne 0x404636
push dword [esi + 0xbc]
mov eax, dword [ebp - 0x80]
or dword [ebp - 0x80], eax
je 0x404684
or eax, dword [ebp - 0x28]
sub esi, dword [ebp - 0x4c]
or ecx, dword [ebp - 0x60]
mov edx, dword [ebp - 0x44]
cmp word [edx + 0x4a8], 0
jne 0x404700
and dword [ebp - 0x68], 0xffffffab
add eax, dword [ebp - 0x54]
push 0x1a
mov byte [ebp - 0x84], 0x2a
cmp dword [ebp - 0x38], 0x4a
jne 0x4046a7
je 0x4046c6
cmp ebx, 0x10
jae 0x40462e
lea eax, [ebp - 0x2c]
mov ecx, dword [edi + 0x54]
push ecx
mov eax, dword [ebp - 0x80]
cmp dword [ebp - 0x38], 1
je 0x4046b8
call 0x417c3a
mov ebx, dword [ebp - 0x44]
and edi, eax
lea eax, [ebx + 0xcc8]
mov dword [ebp - 0x80], eax
or ecx, dword [ebp - 0x68]
cmp dword [ebp - 0x48], 0x400002
jne 0x4046e2
xor esi, esi
mov eax, dword [ecx + 0x14]
mov edi, dword [ebp + 0x1c]
and eax, 0x1c0
push dword [ebp - 0x80]
mov esi, dword [ebp - 0x80]
mov eax, dword [ebp - 0x44]
lea esi, [eax + 0x4a8]
mov dword [ebp - 0x80], esi
push dword [ebp - 0x80]
call fcn.004171f4
add ebx, edi
and edx, eax
mov ebx, dword [ebp - 0x80]
add dword [ebp - 0x2c], esi
mov edi, dword [ebp - 0x44]
lea ebx, [edi + 0x4a8]
mov dword [ebp - 0x80], ebx
mov dword [ebp - 0x78], esi
cmp dword [ebp - 0x48], 0x400002
jne 0x404725
jne 0x4046d7
mov ecx, dword [esi]
test dword [ebp - 0x48], 0
je 0x40473d
cmp byte [eax], 0x7f
je 0x40475e
mov eax, edx
cmp ecx, 0x10
jae 0x404780
push dword [ebp - 0x80]
add edi, dword [ebp - 0x34]
and eax, edx
test dword [ebp - 0x48], 0
je 0x40475b
push dword [ebp - 0x44]
xor esi, edi
call fcn.0040f5bd
or dword [ebp - 0x68], esi
or dword [ebp - 0x34], 0x7db
mov edi, dword [ebp - 0x80]
sub ecx, eax
or dword [ebp - 0x80], edi
je 0x40490c
lea edi, [ebp - 0x5c]
and ebx, esi
sub ebx, esi
push edi
push dword [ebp - 0x80]
xor eax, dword [ebp - 0x7c]
or edi, eax
call fcn.00403812
mov dword [ebp - 0x68], 0xdc5
mov eax, dword fs:[0x30]
mov dword [ebp - 0x80], eax
sub eax, dword [ebp - 0x50]
lea edx, [ebp - 0x40]
push edx
mov edx, dword [ebp - 0x80]
push dword [edx + 0xc]
call fcn.00403812
lea edx, [ebp - 0x40]
push edx
mov edx, dword [ebp - 0x40]
push dword [edx + 0xc]
call fcn.00403812
xor esi, dword [ebp - 0x84]
xor dword [ebp - 0x34], 0x30
xor edx, edi
mov eax, dword [ebp - 0x40]
mov edx, dword [ebp - 0x40]
add dword [ebp - 0x48], 0
je 0x4047e7
jle 0x40478b
mov eax, dword [edi + 4]
mov ecx, dword [ebx + eax + 4]
lea eax, [edx + 0x24]
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x48], 0x400002
jne 0x404808
test eax, eax
jne 0x4047fb
push dword [esi + 0xbc]
call fcn.0041353f
lea ecx, [ebp - 0x40]
push ecx
mov ecx, dword [ebp - 0x40]
push dword [ecx + 4]
call fcn.00403812
cmp dword [ebp - 0x48], 0xffffffa2
jne 0x404824
push eax
push dword [ebp + 0x10]
push dword [ebp - 0x40]
mov byte [ebp - 0x54], 0xb
and eax, edx
push dword [ebp - 0x5c]
and dword [ebp - 0x54], edi
cmp dword [ebp - 0x48], 0x7f
jne 0x404845
and dword [ebp - 4], 0
dec dword [ebp + 0x10]
js 0x4047c9
push dword [ebp - 0x44]
and ebx, dword [ebp - 0x60]
xor esi, dword [ebp - 0x78]
call fcn.0040fd77
add eax, dword [ebp - 0x7c]
test dword [ebp - 0x48], 0
je 0x40486a
push eax
mov dword [ebp - 4], 5
cmp dword [ebp - 0x80], 1
jne 0x4048d7
cmp dword [ebp - 0x38], 1
je 0x404884
inc edx
push dword [ebp - 0x80]
or dword [ebp - 0x54], edi
xor ebx, dword [ebp - 0x68]
sub esi, ebx
push 0xffffffff
and dword [ebp - 0x58], esi
cmp dword [ebp - 0x38], 1
je 0x4048b1
mov edx, dword [ebp - 0x40]
cmp dword [ebp - 0x38], 1
je 0x4048be
push eax
mov ebx, dword [ebp - 0x44]
add ebx, 0x5cc
call dword [ebx]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
jmp 0x40491e
xor dword [ebp - 0x68], eax
mov ecx, dword [ebp - 0x44]
or dword [ebp - 0x7c], ecx
cmp dword [ebp - 0x38], 1
je 0x4048fa
sbb eax, eax
add eax, 0xfffffff5
push eax
call dword [0x419054]
mov edi, eax
cmp edi, 0xffffffff
or dword [ecx + 4], 4
add dword [ebp - 0x7c], 0xffffffa6
jmp 0x40491e
mov ebx, dword [ebp - 0x44]
mov word [ebp - 0x28], 0x8e2
mov ecx, eax
or dword [ebx + 4], 4
sub edi, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x64]
mov dword [eax - 0x94], 0x400
add esi, ebx
or edi, eax
mov edi, ecx
add edi, dword [ebp - 0x34]
mov eax, dword [ebp - 0x64]
xor ecx, dword [ebp - 0x84]
mov dword [eax - 0x90], 0
or dword [ebp - 0x78], 0xa75
cmp dword [ebp - 0x38], 0x5e
jne 0x404966
add esp, 0x14
test esi, esi
je 0x404977
mov eax, dword [esi]
mov eax, dword [eax + 4]
push 4
cmp dword [ebp - 0x48], 0x400002
jne 0x404979
pop ecx
pop edi
push 0x3000
mov edi, dword [ebp - 0x80]
mov eax, dword [ebp - 0x64]
add edx, dword [ebp - 0x60]
lea edi, [eax - 0x94]
mov dword [ebp - 0x80], edi
or ecx, esi
or dword [ebp - 0x2c], ecx
and ecx, eax
push dword [ebp - 0x80]
add word [ebp - 0x68], 0x54f
mov dword [ebp - 0x60], edi
push 0
xor dword [ebp - 0x58], ebx
mov ecx, dword [ebp - 0x80]
mov edx, dword [ebp - 0x64]
cmp dword [ebp - 0x38], 0x400002
jne 0x4049c2
int3
lea ecx, [edx - 0x90]
mov dword [ebp - 0x80], ecx
lea ecx, [ecx]
cmp dword [ebp - 0x38], 1
je 0x4049e5
cmp ecx, 4
ja 0x40495f
mov eax, 0x4192e6
mov eax, 0x41928a
or ecx, dword [ebp - 0x60]
cmp dword [ebp - 0x38], 0xe
jne 0x4049f2
pop esi
push dword [ebp - 0x80]
cmp dword [ebp - 0x38], 0x400002
jne 0x404a07
call fcn.00406086
pop ecx
mov dword [ebp - 0x7c], edx
push 0xffffffff
mov edx, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x44]
add ecx, 0x5a0
call dword [ecx]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
sub eax, dword [ebp - 0x60]
add eax, 0x5634
and dword [ebp - 0x68], 0xffffff93
mov dword [ebp - 0x40], 0x7ffe0030
xor ecx, edx
push dword [ebp - 0x40]
mov esi, dword [ebp - 0x64]
mov word [ebp - 0x2c], 0x4a9
or dword [ebp - 0x50], 0xffffffa5
push dword [esi - 0x90]
and ebx, dword [ebp - 0x58]
add dword [ebp - 0x30], edi
call fcn.00411cbb
xor esi, dword [ebp - 0x6c]
xor ebx, esi
mov edi, dword [ebp - 0x64]
xor edx, dword [ebp - 0x28]
cmp dword [edi - 0x8c], 0
jne 0x404ac1
cmp dword [ebp - 0x48], 0x400002
jne 0x404a8f
push edx
push ebx
call 0x4132c0
mov ecx, dword [eax]
xor edx, edx
mov dword [ebp + 0xc], ecx
mov ebx, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x44]
cmp dword [ebp - 0x48], 0x400002
jne 0x404aa9
movzx ebx, byte [ecx + 0x1e]
sub esi, ebx
je 0x404ad2
lea ebx, [ecx + 0xce8]
mov dword [ebp - 0x40], ebx
add eax, dword [ebp - 0x50]
jmp 0x404af0
cmp dword [ebp - 0x48], 0x47
jne 0x404ad4
xor eax, eax
cmp dword [ebp - 0x90], eax
jne 0x404b1e
mov edx, dword [ebp - 0x40]
add edi, dword [ebp - 0x2c]
xor dword [ebp - 0x28], 0xffffffb6
mov edi, dword [ebp - 0x44]
lea edx, [edi + 0xd18]
mov dword [ebp - 0x40], edx
add ecx, eax
or dword [ebp - 0x7c], 0xffffff98
sub edi, dword [ebp - 0x6c]
push dword [ebp - 0x40]
mov esi, dword [ebp - 0x64]
push dword [esi - 0x90]
call fcn.00411cbb
cmp dword [ebp - 0x38], 1
je 0x404b22
call 0x40810f
call 0x40bb40
mov eax, dword [eax + 0x78]
test eax, eax
je 0x404aca
and dword [ebp - 4], 0
push dword [ebp - 0x44]
and dword [ebp - 0x68], ecx
add edi, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x64]
add ebx, dword [ebp - 0x50]
push dword [ecx - 0x98]
and esi, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x64]
push dword [eax - 0x90]
call fcn.004142c2
cmp dword [ebp - 0x48], 0
je 0x404b65
jne 0x404b1a
or edx, 0x4195a4
or edx, 0x4196d6
or edx, 0x419627
sub eax, dword [ebp - 0x58]
or esi, eax
mov ecx, dword [ebp - 0x64]
mov dword [ecx - 0x94], 0
xor dword [ebp - 0x7c], 0xee7
cmp dword [ebp - 0x38], 0x1c
jne 0x404b90
lea eax, [edx + eax*2]
push eax
call fcn.00417bbf
push 0x8000
add ecx, 0x3828
test dword [ebp - 0x48], 0
je 0x404baa
lea edx, [ebp - 0x14]
cmp dword [ebp - 0x48], 0
je 0x404bc1
push dword [ebp + 0x10]
push eax
call fcn.00412665
mov esi, eax
add esp, 0x14
mov eax, dword [ebp - 0x80]
mov dword [ebp - 0x2c], esi
mov edx, dword [ebp - 0x64]
add dword [ebp - 0x68], esi
lea eax, [edx - 0x94]
mov dword [ebp - 0x80], eax
cmp dword [ebp - 0x48], 0
je 0x404be9
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esi]
mov eax, dword [ecx + 4]
push dword [ebp - 0x80]
add ebx, edi
mov ecx, dword [ebp - 0x80]
mov edi, dword [ebp - 0x64]
add ebx, dword [ebp - 0x78]
lea ecx, [edi - 0x90]
mov dword [ebp - 0x80], ecx
cmp dword [ebp - 0x48], 0x2d
jne 0x404c13
mov dword [ebp - 0x10], ebx
jne 0x404bca
push 0
lea ecx, [ebp - 0x14]
xor dword [ebp - 0x4c], edi
push dword [ebp - 0x80]
cmp dword [ebp - 0x38], 1
je 0x404c2d
mov dword [esi], 0x43182c
call fcn.00405ec0
push 0xffffffff
cmp dword [ebp - 0x48], 0x76
jne 0x404c4a
mov edx, dword [ebp - 0x40]
mov ebx, dword [ebp - 0x44]
add ebx, 0x5a4
call dword [ebx]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
xor ecx, ebx
lea eax, [ebp - 0x40]
and word [ebp - 0x60], 0x47f
lea edx, [eax + edi*8 + 0x19]
push eax
cmp dword [ebp - 0x38], 0x400002
jne 0x404c86
push eax
call fcn.0040f6ae
push eax
call 0x417ceb
push dword [ebp - 0x44]
cmp dword [ebp - 0x38], 1
je 0x404c9d
pop ebx
call 0x409224
mov esp, ebp
pop ebp
int3
call fcn.00403812
add eax, dword [ebp - 0x30]
pop dword [ebp - 0x24]
xor ecx, dword [ebp - 0x7c]
pop dword [ebp - 0x3c]
mov word [ebp - 0x60], 0x4db
xor dword [ebp - 0x68], ecx
pop dword [ebp - 0x44]
cmp dword [ebp - 0x38], 1
je 0x404ccc
push eax
mov dword [ecx + 0x14], edx
call fcn.004065fa
lea ebx, [ebp - 0x80]
push ebx
mov ebx, dword [ebp - 0x40]
push dword [ebx + 0x24]
call fcn.00403812
and esi, eax
lea ecx, [ebp - 0x80]
push ecx
mov ecx, dword [ebp - 0x40]
push dword [ecx + 0x3c]
call fcn.00403853
or edi, edx
mov edi, 0x55740c78
mov edi, ecx
cmp dword [ebp - 0x38], 0x28
jne 0x404d05
lea ebx, [ebp - 0x3c]
push ebx
mov ebx, dword [ebp - 0x80]
push dword [ebx]
call fcn.00403812
or ebx, dword [ebp - 0x30]
cmp dword [ebp - 0x48], 0x400002
jne 0x404d24
push 0
cmp dword [ebp - 0x38], 0x78
jne 0x404d36
int3
or word [ebp - 0x34], 0x1a7
mov edx, dword [ebp - 0x40]
mov ebx, dword [ebp - 0x3c]
call ebx
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
xor ecx, ebx
and ebx, edx
xor dword [ebp - 0x58], 0xbaf
or edi, dword [ebp - 0x60]
push dword [ebp - 0x44]
xor dword [ebp - 0x2c], 0x275
mov eax, dword [ebp - 0x80]
xor ecx, dword [ebp - 0x58]
cmp dword [ebp - 0x48], 0
je 0x404d80
mov ebx, dword [ebp - 0x44]
cmp dword [ebp - 0x48], 0xa
jne 0x404d98
mov eax, ebx
sar eax, 5
lea edi, [eax*4 + 0x440640]
lea eax, [ebx + 0xa8]
mov dword [ebp - 0x80], eax
xor ebx, esi
push dword [ebp - 0x80]
call fcn.00414053
or edi, dword [ebp - 0x34]
or esi, dword [ebp - 0x84]
add word [ebp - 0x78], 0x2f8
mov edi, dword [ebp - 0x80]
xor ebx, dword [ebp - 0x4c]
cmp dword [ebp - 0x38], 0x400002
jne 0x404dd5
shr eax, 1
mov dword [edi], eax
xor eax, eax
pop edi
pop esi
pop ebp
or dword [ebp - 0x80], edi
je 0x404e15
add dword [ebp - 0x48], 0
je 0x404de9
call edx
xor ecx, ebx
mov esi, dword [ebp - 0x44]
cmp dword [ebp - 0x38], 0x59
jne 0x404e05
mov ebp, esp
push 0
push dword [ebp + 8]
call 0x414c56
pop ecx
pop ecx
or dword [esi + 4], 0x80
add ecx, dword [ebp - 0x4c]
or ecx, dword [ebp - 0x6c]
and ebx, dword [ebp - 0x84]
test dword [ebp - 0x48], 0
je 0x404e28
push dword [ebp - 0x44]
cmp dword [ebp - 0x48], 0x400002
jne 0x404e3f
call 0x4158e5
mov edi, eax
push ebx
call fcn.0040d7f5
sub edi, dword [ebp - 0x6c]
cmp dword [ebp - 0x80], 1
jne 0x404e77
xor eax, dword [ebp - 0x34]
cmp dword [ebp - 0x38], 0x3e
jne 0x404e72
je 0x40d0f8
push edi
lea edi, [eax + 4]
mov byte [edi], 0
mov dword [eax], ebx
jmp 0x405d44
add eax, dword [ebp - 0x34]
mov edx, dword [ebp - 0x40]
mov edi, dword [ebp - 0x64]
xor dword [ebp - 0x50], 0x454
or dword [ebp - 0x30], ebx
lea edx, [edi - 0x74]
mov dword [ebp - 0x40], edx
cmp dword [ebp - 0x48], 0x400002
jne 0x404ea4
or ebx, edx
sub edi, ecx
mov esi, dword [ebp - 0x40]
and eax, dword [ebp - 0x50]
mov dword [esi + 0x64], 0
add ecx, esi
mov ebx, dword [ebp - 0x64]
lea ecx, [esi + edx + 0xd]
xor ecx, dword [ebp - 0x34]
mov dword [ebx - 0x84], 0x1400
sub esi, dword [ebp - 0x84]
or esi, dword [ebp - 0x78]
add edi, 0x64dc
push 0x40
cmp dword [ebp - 0x38], 0xffffff80
jne 0x404ef7
push esi
xor esi, esi
cmp dword [ebp + 0x1c], esi
jbe 0x404788
push 0x3000
xor dword [ebp - 0x28], eax
or ebx, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x80]
sub eax, esi
test dword [ebp - 0x48], 0
je 0x404f1a
push eax
call 0x407c3b
pop ecx
mov edx, dword [ebp - 0x64]
cmp dword [ebp - 0x38], 1
je 0x404f32
lea ecx, [edx - 0x84]
mov dword [ebp - 0x80], ecx
xor dword [ebp - 0x58], eax
and esi, ecx
and word [ebp - 0x68], 0x9ad
push dword [ebp - 0x80]
or edi, ebx
xor edx, eax
mov dword [ebp - 0x4c], ebx
add edx, 0xd49b
push 0
add dword [ebp - 0x48], 0
je 0x404f77
xor eax, dword [ebp - 0x6c]
cmp dword [ebp - 0x38], 0x400002
jne 0x404f91
push dword [ecx + 0x18]
push dword [ecx + 0x28]
call fcn.0041718d
mov edx, dword [ebp - 0x80]
add ebx, dword [ebp - 0x28]
and word [ebp - 0x54], 0xab4
mov eax, dword [ebp - 0x40]
add esi, 0x12c3
lea edx, [eax + 0x64]
mov dword [ebp - 0x80], edx
cmp dword [ebp - 0x48], 0x400002
jne 0x404fbb
int3
push dword [ebp - 0x80]
xor dword [ebp - 0x4c], 0xb1a
lea edx, [esi + ecx - 0x19]
or edi, dword [ebp - 0x54]
push 0xffffffff
and ecx, esi
mov edx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x44]
add edx, 0x5a0
call dword [edx]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
cmp dword [ebp - 0x38], 1
je 0x404ff3
lea ecx, [ebp - 0x11]
add dword [ebp - 0x50], ebx
cmp dword [ebp - 0x38], 0x400002
jne 0x40500b
sub esp, 0x419709
push ebx
push esi
push edi
mov ebx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x64]
sub ecx, esi
lea ebx, [eax - 0x74]
mov dword [ebp - 0x40], ebx
mov word [ebp - 0x28], 0xf5d
cmp dword [ebp - 0x48], 0x400002
jne 0x40502e
mov esi, dword [ebp - 0x44]
mov al, byte [ebp - 0x80]
mov al, byte [esi + 0x1c]
mov byte [ebp - 0x80], al
and dword [ebp - 0x28], 0xad6
or ebx, dword [ebp - 0x84]
mov esi, 0xff
add dword [ebp - 0x58], ebx
sub ebx, dword [ebp - 0x68]
and dword [ebp - 0x80], esi
push dword [ebp - 0x80]
xor edi, dword [ebp - 0x30]
mov dword [ebp - 0x78], 0x76e
mov eax, dword [ebp - 0x44]
mov bl, byte [ebp - 0x80]
mov bl, byte [eax + 0x1d]
mov byte [ebp - 0x80], bl
add edx, 0x1bc0
mov eax, 0xff
and dword [ebp - 0x80], eax
sub esi, dword [ebp - 0x54]
mov dword [ebp - 0x6c], ecx
push dword [ebp - 0x80]
and word [ebp - 0x34], 0x2fd
cmp dword [ebp - 0x38], 1
je 0x4050ad
int3
mov ecx, dword [ebp - 0x44]
cmp dword [ebp - 0x38], 1
je 0x4050bf
mov dword [eax], 0x50564150
push dword [ecx + 0x18]
add dword [ebp - 0x30], edx
mov ebx, dword [ebp - 0x44]
sub edi, esi
push dword [ebx + 0x14]
mov ebx, dword [ebp - 0x40]
push dword [ebx + 0x64]
mov edx, esi
mov edx, dword [ebp - 0x64]
or ecx, eax
push dword [edx - 0x98]
cmp dword [ebp - 0x48], 0x78
jne 0x405100
call fcn.00413bdc
mov ebx, dword [ebp - 0x44]
lea ebx, [ebx + 0x14]
push ebx
push dword [ebp - 0x80]
call fcn.00403812
mov ebx, dword [ebp - 0x40]
xor dword [ebp - 0x2c], ebx
mov eax, dword [ebp - 0x64]
lea ebx, [eax - 0x74]
mov dword [ebp - 0x40], ebx
or eax, dword [ebp - 0x4c]
cmp dword [ebp - 0x38], 1
je 0x405133
push ecx
push eax
mov ecx, edi
xor edi, dword [ebp - 0x68]
mov edi, dword [ebp - 0x40]
or dword [ebp - 0x78], 0x843
sub ebx, edx
mov dword [edi], 0
or dword [ebp - 0x4c], 0x29
or edi, eax
mov edx, dword [ebp - 0x64]
and ecx, esi
lea edi, [ebx + 0x57]
mov dword [edx - 0x88], 0x400
push 0x40
push 0x3000
xor esi, ebx
test dword [ebp - 0x48], 0
je 0x405179
dec esi
mov ecx, dword [ebp - 0x80]
test dword [ebp - 0x48], 0
je 0x40519a
add esp, 0xc
lea ecx, [ebp - 0x1a0]
mov byte [ebp - 4], 7
call 0x408a31
mov esi, dword [ebp - 0x64]
lea ecx, [esi - 0x88]
mov dword [ebp - 0x80], ecx
cmp dword [ebp - 0x48], 0x400002
jne 0x4051c4
mov dword [edx], 0
mov eax, dword [esi + 0x30]
mov dword [eax], 0
mov dword [esi + 0x54], ecx
push dword [ebp - 0x80]
add ecx, ebx
cmp dword [ebp - 0x38], 1
je 0x4051e1
mov dword [ebp - 4], 0x404e
mov dword [eax], ebx
mov dword [eax + 4], ebx
mov dword [eax + 8], ebx
or edx, esi
mov edx, esi
push 0
mov edx, dword [ebp - 0x40]
mov edi, dword [ebp - 0x80]
and eax, dword [ebp - 0x4c]
lea edi, [edx]
mov dword [ebp - 0x80], edi
and ebx, ecx
and esi, dword [ebp - 0x28]
mov byte [ebp - 0x6c], 0xe9
lea ecx, [edx]
push dword [ebp - 0x80]
xor edi, dword [ebp - 0x58]
test dword [ebp - 0x48], 0
je 0x40521b
fstp st(0)
fxch st(2)
fcomp st(1)
push 0xffffffff
or edx, dword [ebp - 0x30]
and edx, dword [ebp - 0x54]
or edi, edx
mov edx, dword [ebp - 0x40]
cmp dword [ebp - 0x48], 0x400002
jne 0x40523c
int3
mov edx, dword [ebp - 0x44]
add edx, 0x5a0
call dword [edx]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
mov eax, dword [ebp - 0x40]
sub ebx, ecx
mov esi, dword [ebp - 0x64]
add ebx, dword [ebp - 0x7c]
and ecx, ebx
lea eax, [esi - 0x74]
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x38], 0x400002
jne 0x40526e
int3
lea edx, [ebp - 0x80]
push edx
mov edx, dword [ebp - 0x64]
push dword [edx - 8]
call fcn.00403812
cmp dword [ebp - 0x38], 0x400002
jne 0x40528d
lea eax, [esi + 0x20]
push eax
sub esi, eax
or dword [ebp - 0x34], edx
mov esi, dword [ebp - 0x80]
add dword [ebp - 0x54], 0xa65
cmp dword [ebp - 0x48], 0
je 0x4052ba
mov eax, 0x419539
mov eax, 0x4196e0
mov eax, 0x4193c8
push 0x41978f
push eax
mov edx, dword [ebp - 0x80]
lea ecx, [esi]
lea esi, [edx + 0x24]
mov dword [ebp - 0x80], esi
sub ecx, ebx
mov ecx, dword [ebp - 0x40]
lea ecx, [ecx + 4]
push ecx
push dword [ebp - 0x80]
call fcn.00403812
mov word [ebp - 0x7c], 0xdb3
lea edi, [ebp - 0x80]
push edi
mov edi, dword [ebp - 0x64]
push dword [edi - 0x78]
call fcn.00403812
test dword [ebp - 0x48], 0
je 0x405311
lea ecx, [ebp - 0x418]
mov edx, dword [esp + 8]
lea eax, [edx + 0xc]
mov ecx, dword [edx - 0x434]
xor ecx, eax
call fcn.0041353f
mov edi, dword [ebp - 0x40]
lea edi, [edi + 8]
push edi
push dword [ebp - 0x80]
call fcn.00403812
add edi, 0x5f42
add dword [ebp - 0x48], 0
je 0x40533f
add dword [ebp - 0x30], 0x3b
mov eax, dword [ebp - 0x40]
add edx, 0x24b6
mov dword [eax + 0xc], 0
or word [ebp - 0x30], 0xc62
mov eax, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x40]
mov word [ebp - 0x54], 0x68c
xor edx, dword [ebp - 0x60]
lea eax, [esi + 0x10]
mov dword [ebp - 0x5c], eax
and ebx, dword [ebp - 0x7c]
mov ebx, dword [ebp - 0x5c]
test dword [ebp - 0x48], 0
je 0x405393
call fcn.00404cfe
add esp, 0x50
or edi, eax
lea eax, [esi + 0x148]
mov dword [ebx], 0x2a2a42e9
and ebx, dword [ebp - 0x7c]
cmp dword [ebp - 0x48], 0x400002
jne 0x4053b8
jg 0x4053ab
push edi
push ebx
lea eax, [ebp - 0x88]
push 0x4197c1
push eax
mov edi, dword [ebp - 0x5c]
cmp dword [ebp - 0x38], 0x400002
jne 0x4053d2
mov dword [edi + 4], ebx
mov dword [edi + 8], ebx
mov dword [edi], ebx
mov dword [edi + 0x1c], ebx
mov dword [edi + 4], 0xb0447394
mov dword [ebp - 0x34], edx
mov ebx, dword [ebp - 0x5c]
and edx, edi
mov edx, 0x23f34a82
mov edx, edi
mov dword [ebx + 8], 0
mov esi, dword [ebp - 0x5c]
and ecx, edx
add ecx, ebx
mov edx, dword [ebp - 0x40]
mov ebx, edx
lea esi, [edx + 0x38]
mov dword [ebp - 0x5c], esi
cmp dword [ebp - 0x38], 1
je 0x405414
mov esp, ebp
pop ebp
int3
sub esi, dword [ebp - 0x7c]
or esi, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x5c]
sub edi, dword [ebp - 0x6c]
mov dword [ebp - 0x50], 0x3c
mov dword [eax], 0x30006
or ecx, dword [ebp - 0x78]
mov eax, dword [ebp - 0x5c]
mov dword [eax + 4], 0x40005
and edx, dword [ebp - 0x84]
and edi, dword [ebp - 0x84]
or dword [ebp - 0x84], ebx
mov edi, dword [ebp - 0x5c]
mov dword [edi + 8], 0
mov edi, dword [ebp - 0x80]
mov ebx, dword [ebp - 0x44]
cmp dword [ebp - 0x38], 0x53
jne 0x40547d
call 0x40772c
pop ecx
mov ecx, dword [ecx + 4]
call fcn.0040685b
test eax, eax
je 0x405413
lea edi, [ebx + 0x648]
mov dword [ebp - 0x80], edi
cmp dword [ebp - 0x38], 1
je 0x40549c
sar edx, 5
mov edx, dword [edx*4 + 0x440640]
shl eax, 6
mov ecx, dword [ebp - 0x40]
lea ecx, [ecx + 0x60]
push ecx
push dword [ebp - 0x80]
call fcn.00403812
lea esi, [ebx - 0x38]
mov ebx, dword [ebp - 0x40]
lea ebx, [ebx + 0x68]
push ebx
push dword [ebp - 0x44]
call fcn.00403812
test dword [ebp - 0x48], 0
je 0x4054cd
push ebx
mov bl, byte [esi]
push edi
push dword [ebp - 0x40]
or dword [ebp - 0x50], 0xf27
cmp dword [ebp - 0x38], 1
je 0x4054e8
test ebx, ebx
je 0x40829c
call fcn.00412c08
or dword [ebp - 0x6c], 0xb43
or edx, ecx
cmp dword [ebp - 0x38], 0x400002
jne 0x405516
mov edx, dword [ebp - 0x80]
add dword [ebp - 0x48], 0
je 0x405528
mov dword fs:[0], eax
mov ecx, dword [ebp - 0x44]
xor ebx, dword [ebp - 0x60]
mov dword [ebp - 0x2c], 0x67f
lea edx, [ecx + 0xc44]
mov dword [ebp - 0x80], edx
cmp dword [ebp - 0x38], 1
je 0x405557
push ecx
mov dword [esi + 0x14], edi
mov dword [esi + 0x10], ebx
mov ecx, esi
mov dword [ebp - 4], 2
xor dword [ebp - 0x4c], esi
push dword [ebp - 0x80]
cmp dword [ebp - 0x48], 0x58
jne 0x405570
lea ecx, [ebp - 0x418]
mov edx, dword [esp + 8]
xor word [ebp - 0x6c], 0xb18
mov word [ebp - 0x28], 0x997
push dword [ebp - 0x44]
xor edx, dword [ebp - 0x50]
call fcn.00411e79
add esi, dword [ebp - 0x68]
and ecx, ebx
mov ecx, dword [ebp - 0x80]
lea edx, [esi + 0x120e]
mov edx, ecx
or dword [ebp - 0x80], ecx
jne 0x4055bb
and word [ebp - 0x54], 0xaca
or dword [ebp - 0x7c], 0xdb8
jmp 0x405d44
mov edi, dword [ebp - 0x44]
lea edi, [edi + 0xa0]
push edi
push dword [ebp - 0x80]
call fcn.00403812
mov edx, dword [ebp - 0x64]
lea edx, [edx - 0x7c]
push edx
push dword [ebp - 0x40]
call fcn.00403812
and dword [ebp - 0x78], 0xc09
sub ecx, ebx
or ecx, dword [ebp - 0x68]
mov ebx, dword [ebp - 0x40]
add edx, dword [ebp - 0x60]
mov edx, dword [ebp - 0x64]
add eax, 0x46e6
xor esi, ebx
lea ebx, [edx - 0x74]
mov dword [ebp - 0x40], ebx
lea esi, [ebp - 0x80]
push esi
mov esi, dword [ebp - 0x64]
push dword [esi - 0x7c]
call fcn.00403812
mov ecx, dword [ebp - 0x80]
xor esi, ebx
lea eax, [ebx - 0x50]
mov edx, dword [ebp - 0x80]
lea ecx, [edx + 0x24]
mov dword [ebp - 0x80], ecx
or dword [ebp - 0x68], ecx
mov ecx, dword [ebp - 0x40]
lea ecx, [ecx + 4]
push ecx
push dword [ebp - 0x80]
call fcn.00403812
lea ebx, [ebp - 0x80]
push ebx
mov ebx, dword [ebp - 0x44]
push dword [ebx + 0xa0]
call fcn.00403812
add edx, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x40]
lea ecx, [ecx + 8]
push ecx
push dword [ebp - 0x80]
call fcn.00403812
sub eax, dword [ebp - 0x34]
cmp dword [ebp - 0x38], 0x35
jne 0x405669
push eax
mov eax, dword [ebp - 0x8c]
push ebx
cmp dword [ebp - 0x48], 0
je 0x405676
cmp dword [esi + 4], 0
mov eax, dword [ebp - 0x40]
mov dword [eax + 0xc], 2
add word [ebp - 0x60], 0x659
add word [ebp - 0x54], 0x1ac
cmp dword [ebp - 0x38], 0xffffffb4
jne 0x40569c
mov dword [eax], ecx
mov esi, ecx
mov esi, dword [ebp - 0x5c]
xor dword [ebp - 0x84], 0xaea
sub ecx, eax
mov edi, dword [ebp - 0x40]
cmp dword [ebp - 0x48], 0
je 0x4056cb
lea esi, [edi + 0x10]
mov dword [ebp - 0x5c], esi
xor eax, ecx
and eax, edi
mov ebx, dword [ebp - 0x5c]
mov dword [ebx], 0xb9e7881
add edi, dword [ebp - 0x60]
xor dword [ebp - 0x84], ebx
mov eax, dword [ebp - 0x5c]
add esi, dword [ebp - 0x60]
cmp dword [ebp - 0x48], 0x1d
jne 0x405704
and dword [esi + 8], 0
xor eax, eax
inc eax
lea eax, [ebp - 0x7c]
push eax
push dword [esi + 4]
mov dword [eax + 4], 0
mov ecx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x40]
add ebx, 0xe30f
lea ecx, [eax + 0x38]
mov dword [ebp - 0x5c], ecx
mov byte [ebp - 0x2c], 0x19
mov edi, dword [ebp - 0x5c]
or eax, dword [ebp - 0x50]
and ebx, eax
mov dword [edi], 0x20005
or dword [ebp - 0x58], edi
mov eax, dword [ebp - 0x5c]
xor edx, esi
or word [ebp - 0x34], 0x33c
mov dword [eax + 4], 0
cmp dword [ebp - 0x48], 0x400002
jne 0x40575d
xor eax, eax
mov edi, edi
push ebp
mov ebp, esp
mov edx, dword [ebp - 0x80]
mov esi, dword [ebp - 0x44]
xor eax, dword [ebp - 0x2c]
lea edx, [esi + 0x650]
mov dword [ebp - 0x80], edx
mov edi, dword [ebp - 0x40]
lea edi, [edi + 0x60]
push edi
push dword [ebp - 0x80]
call fcn.00403812
mov ecx, dword [ebp - 0x40]
lea ecx, [ecx + 0x68]
push ecx
push dword [ebp - 0x44]
call fcn.00403812
xor ecx, dword [ebp - 0x84]
mov byte [ebp - 0x2c], 0xc3
push dword [ebp - 0x40]
call fcn.00412c08
add edx, eax
xor edx, dword [ebp - 0x78]
mov ecx, dword [ebp - 0x80]
mov eax, dword [ebp - 0x44]
lea ecx, [eax + 0xc5c]
mov dword [ebp - 0x80], ecx
add dword [ebp - 0x68], edi
xor edx, dword [ebp - 0x60]
push dword [ebp - 0x80]
push dword [ebp - 0x44]
add ebx, edi
call fcn.00411e79
mov word [ebp - 0x6c], 0x952
and edi, edx
mov edi, dword [ebp - 0x80]
and ebx, dword [ebp - 0x7c]
add ebx, dword [ebp - 0x6c]
or dword [ebp - 0x80], edi
jne 0x4057ec
and dword [ebp - 0x78], edi
xor edx, eax
jmp 0x405d44
mov ebx, dword [ebp - 0x44]
lea ebx, [ebx + 0xa4]
push ebx
push dword [ebp - 0x80]
call fcn.00403812
add dword [ebp - 0x48], 0
je 0x405817
test dword [ebp - 0x48], 0
je 0x405d66
push esi
call fcn.004132f8
sar eax, 5
push esi
lea edi, [eax*4 + 0x440640]
call fcn.00415e85
push 0
cmp dword [ebp - 0x38], 0xffffff9b
jne 0x405d83
push esi
mov dword [ebp - 0x174], esi
call fcn.0040fe13
add esp, 0xc
push 0xffffffff
or edx, eax
add eax, dword [ebp - 0x68]
lea edi, [ecx + edi*2 + 0x1108]
mov edx, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x44]
add ecx, 0x5cc
call dword [ecx]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
add esi, dword [ebp - 0x68]
and ebx, edi
push dword [ebp - 0x64]
mov byte [ebp - 0x7c], 0xc9
and eax, dword [ebp - 0x54]
mov dword [ebp - 0x64], esp
or dword [ebp - 0x68], ebx
test dword [ebp - 0x48], 0
je 0x405dd5
ja 0x405dcb
push eax
push edx
call dword [0x41911c]
test eax, eax
add esp, 0xfffffffc
cmp dword [ebp - 0x48], 0x400002
jne 0x405df3
push eax
call fcn.00406ebe
mov eax, dword [esi + 0xcc]
mov dword [ebp - 0x54], edx
test dword [ebp - 0x48], 0
je 0x405e0a
push esi
call fcn.0040ec51
pop ecx
pop ecx
push dword [ebp - 0x24]
cmp dword [ebp - 0x48], 0x400002
jne 0x405e1b
add edi, 0x87c
push dword [ebp - 0x3c]
add dword [ebp - 0x50], 0x766
and dword [ebp - 0x60], 0xffffffcf
and ebx, edi
push dword [ebp - 0x44]
add edi, 0x86e3
add word [ebp - 0x54], 0xbbd
lea edx, [ebp - 0x44]
push edx
mov edx, dword [ebp - 0x64]
push dword [edx + 8]
call fcn.00403812
and ebx, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x64]
or edx, dword [ebp - 0x54]
mov dword [ebx - 4], 0
and dword [ebp - 0x34], 0x958
add dword [ebp - 0x4c], ebx
mov ecx, dword [ebp - 0x40]
add dword [ebp - 0x28], 0x2d
add edi, esi
mov edi, dword [ebp - 0x44]
add esi, 0xeeaa
lea ecx, [edi + 0x48]
mov dword [ebp - 0x40], ecx
add ecx, dword [ebp - 0x28]
push 0x6e72656b
cmp dword [ebp - 0x48], 0x400002
jne 0x405ea4
sub eax, dword [ebp - 0x78]
add eax, 0xe14d
mov ecx, dword [ebp - 0x64]
lea ecx, [ecx - 4]
push ecx
push dword [ebp - 0x80]
call fcn.00403812
mov esi, dword [ebp - 0x64]
lea esi, [esi - 8]
push esi
push dword [ebp - 0x5c]
call fcn.00403853
lea edx, [ebp - 0x80]
and dword [ebp - 0x84], 0xffffff87
push edx
push dword [ebp - 0x5c]
or edx, edi
call fcn.00403968
and ebx, edi
lea ecx, [ebp - 0x40]
push ecx
mov ecx, dword [ebp - 0x64]
push dword [ecx - 4]
call fcn.00403911
and dword [ebp - 0x6c], 0xffffffed
mov esi, dword [ebp - 0x40]
and dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x64]
cmp dword [ebp - 0x48], 0
je 0x406e0b
pop ebp
lea esi, [ecx - 4]
mov dword [ebp - 0x40], esi
push dword [ebp - 0x40]
push dword [ebp - 0x5c]
call fcn.00403853
add edi, dword [ebp - 0x54]
mov esi, dword [ebp - 0x64]
lea esi, [esi - 4]
push esi
push dword [ebp - 0x80]
call fcn.00403812
mov ebx, dword [ebp - 0x64]
lea ebx, [ebx - 0x14]
push ebx
push dword [ebp - 0x5c]
call fcn.00403853
cmp dword [ebp - 0x38], 1
je 0x406e4d
lea edx, [ebp - 0x80]
push edx
add dword [ebp - 0x48], 0
je 0x406e67
call fcn.00410be4
add esp, 4
mov eax, dword [ebp - 0x18]
test eax, eax
push dword [ebp - 0x5c]
cmp dword [ebp - 0x38], 0xffffffb6
jne 0x406e7e
push ecx
mov dword [ebp - 0x12c], 0x431760
call fcn.00403968
lea ecx, [ebp - 0x40]
push ecx
mov ecx, dword [ebp - 0x64]
push dword [ecx - 0x14]
call fcn.00403911
mov dword [ebp - 0x28], ebx
cmp dword [ebp - 0x38], 0x400002
jne 0x406eb2
and dword [ebp - 0x28], 0
push 1
lea eax, [ebp - 0x28]
push eax
push dword [esi]
call fcn.0040d462
cmp dword [ebp - 0x48], 0x400002
jne 0x406ec4
mov ebx, dword [ebp - 0x40]
and ecx, edx
or eax, dword [ebp - 0x68]
mov edx, dword [ebp - 0x64]
lea ebx, [edx - 0x14]
mov dword [ebp - 0x40], ebx
push dword [ebp - 0x40]
push dword [ebp - 0x5c]
call fcn.00403853
and dword [ebp - 0x50], ecx
mov ebx, dword [ebp - 0x64]
lea ebx, [ebx - 0x18]
push ebx
push dword [ebp - 0x80]
call fcn.00403812
add ebx, dword [ebp - 0x6c]
mov esi, dword [ebp - 0x64]
lea esi, [esi - 8]
push esi
push dword [ebp - 0x5c]
call fcn.00403853
cmp dword [ebp - 0x48], 0x400002
jne 0x406f2c
push dword [esi + 0xf0]
call fcn.0040ed34
push dword [esi + 0xf4]
call fcn.00411791
push dword [esi + 0xf8]
lea edx, [ebp - 0x80]
sub ecx, dword [ebp - 0x2c]
xor dword [ebp - 0x6c], 0xffffffa1
push edx
cmp dword [ebp - 0x38], 0x400002
jne 0x406f55
lea ecx, [ebp - 0x104]
mov dword [ebp - 4], 0xffffffff
call fcn.00416287
push dword [ebp - 0x5c]
call fcn.00403968
lea ecx, [ebp - 0x40]
push ecx
mov ecx, dword [ebp - 0x64]
push dword [ecx - 4]
call fcn.00403911
or dword [ebp - 0x34], 0x71
mov ecx, edi
mov edi, dword [ebp - 0x40]
mov ebx, dword [ebp - 0x64]
lea edi, [ebx - 0x18]
mov dword [ebp - 0x40], edi
and dword [ebp - 0x68], 0xffffffae
cmp dword [ebp - 0x48], 0x400002
jne 0x406f93
and eax, 0x1c0
push dword [ebp - 0x40]
push dword [ebp - 0x5c]
call fcn.00403853
cmp dword [ebp - 0x48], 0xffffffa8
jne 0x406fb9
mov edx, dword [esi + 0x34]
mov dword [edx], edi
and dword [esi + 0x40], 0xfffffffe
mov dword [esi + 0x3c], edi
mov dword [esi], 0x43197c
mov edi, dword [ebp - 0x64]
add dword [ebp - 0x48], 0
je 0x406fd6
je 0x406fd0
mov dword [ebp - 0x228], ebx
test cl, 0x40
je 0x407027
movsx eax, word [ebx - 4]
mov esp, edi
add dword [ebp - 0x84], eax
sub esi, dword [ebp - 0x7c]
lea ebx, [esi + eax - 2]
pop dword [ebp - 0x64]
cmp dword [ebp - 0x38], 0x400002
jne 0x406ffd
push esi
push edi
mov eax, dword [0x419576]
xor eax, ebp
cmp dword [ebp - 0x38], 0xffffffaf
jne 0x407026
push 0x41969e
lea ecx, [ebp - 0x224]
mov dword [ebp - 0x228], 0x104
call fcn.00414b2a
mov dword [esi + 0x260], ebx
ret
mov byte [ebp - 0x7c], 0x46
or dword [ebp - 0x34], ecx
mov edx, 0xff
add dword [ebp - 0x48], 0
je 0x4080c9
add dword [ebp - 0x24], edx
cmp dword [ebp - 0x48], 0x15
jne 0x4080eb
lea ecx, [ebp - 0xc4]
call fcn.00405fe1
mov esi, 0x419563
mov dword [eax + 0x60], esi
add eax, 0x10
lea eax, [ebp - 0x40]
push eax
cmp dword [ebp - 0x38], 0xffffffd1
jne 0x4080fc
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 0x3c]
call fcn.00403812
or edi, ebx
cmp dword [ebp - 0x38], 0x7e
jne 0x408117
mov edi, ebx
shl ebx, 0x10
add ebx, edi
pop edi
mov eax, 0x14
sub esi, edx
mov dword [ebp - 0x7c], eax
add dword [ebp - 0x40], eax
mov byte [ebp - 0x58], 0x42
mov ecx, eax
lea ebx, [ebp - 0x5c]
push ebx
mov ebx, dword [ebp - 0x3c]
push dword [ebx + 8]
call fcn.00403812
sub edi, dword [ebp - 0x6c]
cmp dword [ebp - 0x48], 0xffffff9e
jne 0x40814d
add edi, 1
sub edx, 1
jne 0x4080e8
mov edi, dword [ebp - 0x5c]
shr edi, 2
mov dword [ebp - 0x5c], edi
or word [ebp - 0x84], 0x947
lea esi, [ebp - 0x80]
add edi, dword [ebp - 0x60]
lea edi, [edi + ecx*2 + 0x51e]
push esi
xor dword [ebp - 0x68], eax
cmp dword [ebp - 0x38], 0xffffffb6
jne 0x40817b
xor esi, esi
push dword [ebp - 0x80]
call fcn.00403968
lea edi, [ebp - 0x80]
push edi
mov edi, dword [ebp - 0x40]
push dword [edi]
call fcn.00403853
xor edi, dword [ebp - 0x50]
cmp dword [ebp - 0x48], 0
je 0x4081b0
mov dword [ebp - 0x70], ebx
test edi, edi
je 0x413749
test ebx, ebx
je 0x414340
cmp dword [ebp - 0x38], 0x23
jne 0x4081bb
jbe 0x4081a0
mov ecx, 4
mov dword [ebp - 0x2c], esi
add dword [ebp - 0x40], ecx
or ebx, eax
cmp dword [ebp - 0x48], 0x400002
jne 0x4081dc
call fcn.00415d5a
mov eax, dword [edi + 0x44]
sub dword [ebp - 0x5c], 1
jne 0x408183
add edx, 0x5a20
mov edx, 0x86c7b8b3
mov edx, ebx
mov edi, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x3c]
cmp dword [ebp - 0x38], 0x400002
jne 0x40820c
or eax, 0xffffffff
or edx, eax
mov eax, ebx
cmp edi, dword [ecx + 4]
mov dword [ebp - 0x80], edi
jne 0x409826
add ecx, dword [ebp - 0x30]
or dword [ebp - 0x34], ebx
mov eax, dword [ebp - 0x64]
or edx, dword [ebp - 0x50]
mov dword [eax - 0x44], 0
lea edx, [ebp - 0x40]
test dword [ebp - 0x48], 0
je 0x40824e
push eax
call dword [0x419020]
lea ecx, [ebp - 0x14]
push ecx
call dword [0x41901c]
push edx
push dword [ebp - 0x3c]
add ecx, dword [ebp - 0x4c]
call fcn.00403812
or ecx, dword [ebp - 0x50]
xor dword [ebp - 0x50], edi
sub eax, dword [ebp - 0x84]
add edi, dword [ebp - 0x4c]
mov edi, 0x14
cmp dword [ebp - 0x48], 0
je 0x408287
pop ecx
call fcn.00417413
mov dword [ebp - 4], esi
call fcn.0040fe13
test eax, eax
add dword [ebp - 0x40], edi
cmp dword [ebp - 0x48], 0x400002
jne 0x40829e
test esi, esi
jne 0x408300
xor ecx, ecx
mov ecx, dword [esi]
or dword [ebp - 0x4c], 0x188
cmp dword [ebp - 0x48], 0
je 0x4082c2
push 0x10
push 0x41981d
call 0x40823d
mov ebx, dword [ebp + 8]
cmp ebx, 0xfffffffe
jne 0x4082b5
lea esi, [ebp - 0x40]
push esi
mov esi, dword [ebp - 0x40]
push dword [esi + 0x3c]
call fcn.00403853
mov ecx, dword [ebp - 0x40]
cmp dword [ebp - 0x38], 0xffffffe9
jne 0x4082f1
call dword [section..rdata]
push eax
push 0x4198bf
lea ecx, [ebp - 0x40]
call fcn.0040ee9f
test word [ecx + 0x16], 0x2000
je 0x408323
or dword [ebp - 0x34], edx
mov word [ebp - 0x4c], 0x538
and dword [ebp - 0x58], 0xffffffb6
add edx, dword [ebp - 0x34]
mov edi, dword [ebp - 0x64]
mov dword [edi - 0x44], 1
xor esi, dword [ebp - 0x2c]
or eax, dword [ebp - 0x30]
cmp dword [ebp - 0x38], 1
je 0x408332
add eax, dword [ebx]
add eax, dword [ebx]
add ah, cl
mov eax, 1
xor dword [ebp - 0x24], eax
sub eax, dword [ebp - 0x2c]
push 0x1000
cmp dword [ebp - 0x48], 0x4d
jne 0x408358
mov esi, dword [ebp - 0x64]
cmp dword [ebp - 0x38], 1
je 0x40836a
mov dword [ebp - 0x100c], edi
push dword [esi - 8]
and edi, edx
sub edi, esi
mov edx, dword [ebp - 0x40]
cmp dword [ebp - 0x38], 1
je 0x40838b
jne 0x4083a5
add eax, 0
lea esp, [esp]
mov edi, dword [ebp - 0x44]
add edi, 0x5c0
call dword [edi]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
cmp dword [ebp - 0x48], 0x79
jne 0x4083b0
call fcn.0041016d
add esp, 4
mov eax, esi
pop esi
cmp dword [ebp - 0x38], 1
je 0x4083c9
push 0x41964f
push eax
call 0x40bcd8
add esp, 8
test eax, eax
mov edx, dword [0x7ffe0008]
lea ebx, [esi + 0x4b5]
mov ebx, 0x1cfff6d9
mov ebx, eax
mov dword [ebp - 0x40], edx
mov edx, dword [0x7ffe0014]
cmp dword [ebp - 0x38], 1
je 0x4083f5
mov ebp, esp
sub esp, 0xc
push ebx
push edi
mov dword [ebp - 0x5c], edx
add esi, edi
cmp dword [ebp - 0x38], 1
je 0x408410
add esp, 0xc
lea ecx, [ebp - 0x184]
mov byte [ebp - 4], 0xa
mov esi, dword [ebp - 0x64]
cmp dword [esi - 0x44], 1
jne 0x408508
xor esi, edx
add esi, 0x1aa3
xor dword [ebp - 0x4c], 0x6d4
push dword [ebp - 0x5c]
lea ebx, [ecx + eax*8 - 0x38]
xor edx, esi
push dword [ebp - 0x40]
add edi, 0xc382
cmp dword [ebp - 0x38], 0xffffffd0
jne 0x40844f
cmp dword [ebp - 4], edi
je 0x4083f8
mov eax, dword [ebp - 0x64]
xor ecx, ebx
push dword [eax - 4]
sub edx, esi
or dword [ebp - 0x54], 0xffffff86
or edx, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x80]
sub edi, dword [ebp - 0x54]
add dword [ebp - 0x60], 0xffffffc5
mov edx, dword [ebp - 0x44]
lea ecx, [edx + 0xf48]
mov dword [ebp - 0x80], ecx
add edi, ebx
or edi, ecx
sub esi, dword [ebp - 0x58]
cmp dword [ebp - 0x48], 0x400002
jne 0x408493
test ecx, ecx
je 0x40844d
lea ebx, [ebx]
push dword [ebp - 0x80]
mov edi, dword [ebp - 0x64]
cmp dword [ebp - 0x38], 1
je 0x4084a7
sete al
dec al
push dword [edi - 8]
test dword [ebp - 0x48], 0
je 0x4084c0
je 0x408521
add esi, dword [ebp - 0x58]
cmp dword [ebp - 0x38], 1
je 0x4084d5
or edx, 0x419367
mov dword [ecx + 0x14], edx
mov edx, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x44]
add ecx, 0x610
call dword [ecx]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
cmp dword [ebp - 0x48], 0x400002
jne 0x4084f7
jmp 0x40859c
or esi, ecx
push dword [ebp - 0x5c]
xor eax, dword [ebp - 0x54]
push dword [ebp - 0x40]
mov eax, dword [ebp - 0x64]
push dword [eax - 4]
mov esi, ebx
xor ecx, dword [ebp - 0x58]
and ecx, dword [ebp - 0x54]
or edi, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x80]
mov edi, dword [ebp - 0x44]
cmp dword [ebp - 0x38], 0x1a
jne 0x408543
jne 0x4084be
cmp dword [ebp - 0x8c], edi
je 0x408519
push ebx
call fcn.0040b754
lea ecx, [edi + 0xf70]
mov dword [ebp - 0x80], ecx
mov word [ebp - 0x28], 0xa80
add eax, ebx
push dword [ebp - 0x80]
mov edi, dword [ebp - 0x64]
cmp dword [ebp - 0x38], 0x400002
jne 0x40856e
mov dword [ebx + 0x10], eax
call fcn.00411791
push dword [edi - 8]
and dword [ebp - 0x7c], 0xffffffed
and ebx, esi
or esi, ecx
mov esi, edx
xor dword [ebp - 0x7c], esi
mov edx, dword [ebp - 0x40]
cmp dword [ebp - 0x38], 0xffffff9e
jne 0x40858b
int3
mov ecx, dword [ebp - 0x44]
add ecx, 0x610
call dword [ecx]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
add esp, 0x14
add word [ebp - 0x28], 0x46a
push 0
add ebx, dword [ebp - 0x50]
lea ecx, [edx + 0x63]
push 0
cmp dword [ebp - 0x38], 0x1e
jne 0x4085cc
jne 0x4085f8
mov edi, 0x4195d2
push edi
push eax
push edi
push ebx
mov edi, dword [ebp - 0x80]
mov esi, dword [ebp - 0x64]
or dword [ebp - 0x58], edx
cmp dword [ebp - 0x48], 0
je 0x4085e3
push esi
test eax, eax
je 0x4085c1
lea edi, [esi - 0x14]
mov dword [ebp - 0x80], edi
push dword [ebp - 0x80]
test dword [ebp - 0x48], 0
je 0x408603
and dword [ebp - 0x20], 0
or edi, 0xffffffff
mov ecx, edx
shl edi, cl
mov ecx, dword [ebp - 0x64]
push dword [ecx - 8]
sub edi, dword [ebp - 0x54]
mov edx, dword [ebp - 0x40]
xor eax, esi
mov ebx, dword [ebp - 0x44]
add ebx, 0x59c
call dword [ebx]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
or dword [ebp - 0x50], ebx
cmp dword [ebp - 0x80], 1
jne 0x409826
mov dword [ebp - 0x30], edi
or edi, eax
cmp dword [ebp - 0x48], 0x400002
jne 0x408649
mov esi, dword [ebp + 8]
mov edx, dword [ebp - 0x80]
mov eax, dword [ebp - 0x64]
add ecx, dword [ebp - 0x34]
lea edx, [eax - 0x14]
mov dword [ebp - 0x80], edx
push dword [ebp - 0x80]
and dword [ebp - 0x6c], 0x77
cmp dword [ebp - 0x38], 0x400002
jne 0x408671
mov esi, eax
test esi, esi
jne 0x4086cf
mov edi, dword [ebp - 0x80]
and dword [ebp - 0x28], edi
mov ebx, dword [ebp - 0x64]
or ecx, esi
lea edi, [ebx - 0x2c]
mov dword [ebp - 0x80], edi
and ecx, dword [ebp - 0x28]
and word [ebp - 0x60], 0xe6d
push dword [ebp - 0x80]
call fcn.00412aa6
and dword [ebp - 0x34], edx
xor esi, dword [ebp - 0x30]
xor eax, ecx
add edx, ebx
push 0
or ecx, dword [ebp - 0x68]
xor word [ebp - 0x7c], 0xd04
test dword [ebp - 0x48], 0
je 0x4086be
int3
push 0
or edx, dword [ebp - 0x6c]
and esi, dword [ebp - 0x54]
xor word [ebp - 0x50], 0xbfd
add edi, edx
push 0x60
add dword [ebp - 0x50], 0x6a
add esi, dword [ebp - 0x84]
push 5
xor edi, eax
mov edi, esi
push 1
xor edi, edx
mov edi, ecx
push 0x80
cmp dword [ebp - 0x48], 0xffffffc4
jne 0x408702
cmp eax, ebx
and edi, ecx
push 0
xor esi, ecx
mov ebx, dword [ebp - 0x80]
add esi, dword [ebp - 0x28]
add dword [ebp - 0x48], 0
je 0x40871f
sar ecx, 5
mov esi, eax
mov esi, dword [ebp - 0x64]
lea ebx, [esi - 0x38]
mov dword [ebp - 0x80], ebx
add esi, ecx
push dword [ebp - 0x80]
test dword [ebp - 0x48], 0
je 0x40873e
mov edx, dword [ebp - 0x80]
add ebx, eax
mov ebx, dword [ebp - 0x64]
lea edx, [ebx - 0x2c]
mov dword [ebp - 0x80], edx
sub edx, esi
push dword [ebp - 0x80]
and edx, dword [ebp - 0x7c]
xor dword [ebp - 0x50], edx
lea ecx, [ecx + ebx - 0x40]
push 0x40100000
and ebx, eax
mov ebx, esi
mov esi, dword [ebp - 0x80]
and ecx, eax
mov eax, dword [ebp - 0x64]
cmp dword [ebp - 0x48], 0xffffffa6
jne 0x408780
call 0x407dcd
add esp, 4
mov dword [ebp - 0x1c], eax
lea esi, [eax - 0x30]
mov dword [ebp - 0x80], esi
push dword [ebp - 0x80]
or dword [ebp - 0x78], ecx
and dword [ebp - 0x30], eax
mov edx, dword [ebp - 0x40]
or ebx, dword [ebp - 0x84]
mov edi, dword [ebp - 0x44]
add edi, 0x628
call dword [edi]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
mov eax, dword [ebp - 0x80]
or dword [ebp - 0x80], eax
jne 0x409826
add esi, 0xfa6c
test dword [ebp - 0x48], 0
je 0x4087ca
cmp cl, 0xa
mov edi, 2
xor dword [ebp - 0x24], edi
cmp dword [ebp - 0x38], 0x400002
jne 0x4087eb
or ecx, 0x419416
mov dword [edx + 0x14], ecx
mov edx, dword [edi + 8]
push edx
lea ecx, [ebp - 0x40]
or eax, dword [ebp - 0x54]
or edx, dword [ebp - 0x34]
push ecx
cmp dword [ebp - 0x48], 0x400002
jne 0x40880e
lea ecx, [ebp - 0xc4]
mov edx, dword [esp + 8]
lea eax, [edx + 0xc]
push dword [ebp - 0x3c]
add dword [ebp - 0x68], 0x2d6
cmp dword [ebp - 0x38], 0x400002
jne 0x40882b
mov eax, 0x4194b9
int3
call fcn.00403812
sub ebx, ecx
xor eax, dword [ebp - 0x60]
xor edi, dword [ebp - 0x50]
mov eax, 0x14
xor esi, dword [ebp - 0x60]
add dword [ebp - 0x40], eax
and dword [ebp - 0x50], eax
and eax, ebx
push 0
xor dword [ebp - 0x78], 0x34
mov ecx, esi
push 0
mov eax, dword [ebp - 0x3c]
push dword [eax + 8]
add ecx, 0x7d16
xor ebx, dword [ebp - 0x50]
push dword [ebp - 0x40]
xor dword [ebp - 0x58], 0xb91
and edi, esi
mov eax, dword [ebp - 0x80]
and ecx, dword [ebp - 0x84]
or edx, dword [ebp - 0x6c]
mov ebx, dword [ebp - 0x64]
xor dword [ebp - 0x60], edx
add dword [ebp - 0x34], 0x2e
lea eax, [ebx - 0x38]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x54], eax
push dword [ebp - 0x80]
cmp dword [ebp - 0x48], 0xffffffa1
jne 0x4088a7
test bl, 2
jne 0x404699
push 0
xor edi, dword [ebp - 0x54]
add ebx, esi
mov dword [ebp - 0x28], eax
push 0
and eax, edx
push 0
xor dword [ebp - 0x54], ebx
mov ebx, dword [ebp - 0x64]
cmp dword [ebp - 0x38], 0x400002
jne 0x4088df
mov eax, dword [eax + 0xc8]
movzx eax, word [eax + ebx*2]
mov dword [ebp + 8], ebx
push dword [ebx - 0x30]
and edi, dword [ebp - 0x50]
mov edx, dword [ebp - 0x40]
add esi, 0x1419
mov eax, dword [ebp - 0x44]
add eax, 0x62c
call dword [eax]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
cmp dword [ebp - 0x38], 0x400002
jne 0x408914
mov edi, dword [ebp + 8]
mov esi, ecx
mov ecx, dword [ebp + 0x1c]
push ecx
mov edx, dword [ebp - 0x80]
add esi, dword [ebp - 0x58]
add esi, edi
or dword [ebp - 0x80], edx
jne 0x409826
sub ebx, dword [ebp - 0x4c]
or edx, ebx
add dword [ebp - 0x48], 0
je 0x40893e
and edx, 4
je 0x408910
movsx ecx, bl
sub ecx, 0x30
mov edi, 4
and eax, ecx
cmp dword [ebp - 0x38], 0x400002
jne 0x408961
mov ebp, esp
push 0xffffffffffffffff
push 0x419875
mov eax, dword fs:[0]
push eax
xor dword [ebp - 0x24], edi
and ebx, edx
add ecx, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x64]
lea edx, [edx - 0xac]
push edx
push dword [ebp - 0x24]
call fcn.00403812
sub ecx, edx
xor edi, dword [ebp - 0x68]
mov ebx, dword [ebp - 0x64]
cmp dword [ebp - 0x48], 0
je 0x408991
mov eax, dword [edx + 4]
call eax
push dword [ebx - 0x30]
cmp dword [ebp - 0x48], 0x40
jne 0x4089a4
call fcn.004090a4
pop ecx
pop edi
mov edx, dword [ebp - 0x40]
or ecx, ebx
mov esi, dword [ebp - 0x44]
add esi, 0x598
call dword [esi]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
add dword [ebp - 0x4c], edi
or esi, dword [ebp - 0x4c]
cmp dword [ebp - 0x38], 1
je 0x4089d3
mov eax, dword [ebp - 0xa0]
test eax, eax
je 0x4089ba
mov ecx, dword [ebp - 0x64]
cmp dword [ecx - 0x44], 1
jne 0x409560
mov esi, dword [ebp - 0x64]
lea esi, [esi - 0xb0]
push esi
push dword [ebp - 0x3c]
call fcn.00403812
jmp 0x408a24
push ebp
cmp dword [ebp - 0x38], 0x400002
jne 0x408a35
int3
pop dword [ebp - 0x80]
cmp dword [ebp - 0x38], 1
je 0x408a53
xor ecx, ecx
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
add ecx, eax
mov edx, dword [ecx + 0x14]
and edx, 0x419678
xor eax, dword [ebp - 0x58]
xor dword [ebp - 0x78], 0xffffff93
push dword [ebp - 0x80]
cmp dword [ebp - 0x38], 0x400002
jne 0x408a79
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
xor esi, esi
push 0x419314
xor dword [ebp - 0x68], esi
push 0
lea edi, [esi + 0x1fcb]
push 0
or edi, dword [ebp - 0x78]
jmp 0x4094c1
pop ebx
lea ecx, [ebx - 0xcc]
mov dword [ebp - 0x80], ecx
push dword [ebp - 0x80]
test dword [ebp - 0x48], 0
je 0x409045
push edi
push edi
push edi
push ecx
call ebx
lea ecx, [ebp - 0x1a8]
mov ecx, dword [ebp - 0x64]
or edi, dword [ebp - 0x7c]
or dword [ebp - 0x6c], eax
push dword [ecx - 0xcc]
mov dword [ebp - 0x28], 0x4eb
sub eax, dword [ebp - 0x68]
and dword [ebp - 0x60], edx
xor esi, dword [ebp - 0x34]
mov ebx, dword [ebp - 0x80]
and eax, ebx
mov esi, dword [ebp - 0x64]
lea ebx, [esi - 0xc8]
mov dword [ebp - 0x80], ebx
add edi, 0xa5b3
xor eax, dword [ebp - 0x4c]
and edi, dword [ebp - 0x84]
push dword [ebp - 0x80]
cmp dword [ebp - 0x38], 0x400002
jne 0x409098
mov ecx, dword [ebp - 0x80]
cmp dword [ebp - 0x38], 1
je 0x4090ae
jne 0x409067
push dword [esi + 0x50]
mov eax, dword [ebp - 0x64]
or edx, dword [ebp - 0x6c]
add edx, dword [ebp - 0x78]
lea ecx, [eax - 0xc0]
mov dword [ebp - 0x80], ecx
or edx, dword [ebp - 0x84]
or word [ebp - 0x6c], 0x849
mov dword [ebp - 0x30], edi
mov byte [ebp - 0x30], 0x45
push dword [ebp - 0x80]
add dword [ebp - 0x48], 0
je 0x4090f4
jbe 0x4090a9
push esi
call dword [0x4191d0]
lea eax, [esi + 0x3e8]
cmp eax, dword [0x4197d0]
push 0xffffffff
xor edx, dword [ebp - 0x30]
cmp dword [ebp - 0x48], 0x42
jne 0x40910c
test byte [esi + 4], 1
je 0x4090c0
push ebx
mov edx, dword [ebp - 0x40]
mov dword [ebp - 0x2c], 0x57d
mov ebx, dword [ebp - 0x44]
add ebx, 0x63c
call dword [ebx]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
add dword [ebp - 0x60], 0x57
lea edx, [ebp - 0x80]
push edx
mov edx, dword [ebp - 0x64]
push dword [edx - 0xc4]
call fcn.00403812
add esp, 4
mov dword [ebp - 0x6c], 0xc3a
and eax, dword [ebp - 0x7c]
push dword [ebp - 0x80]
mov eax, dword fs:[0]
mov dword [ebp - 0x80], eax
or dword [ebp - 0x28], edi
cmp dword [ebp - 0x38], 0x400002
jne 0x40916b
mov esp, ebp
pop ebp
push dword [ebp - 0x80]
and dword [ebp - 0x84], edx
cmp dword [ebp - 0x38], 0xffffffe6
jne 0x40918c
mov ebp, esp
sub esp, 0x38
mov eax, dword [0x419423]
xor eax, ebp
mov dword [ebp - 4], eax
push esp
cmp dword [ebp - 0x38], 0xffffffcf
jne 0x40919f
mov eax, dword [ecx + 0xc]
or eax, edx
cmp dword [ecx + 0x38], 0
pop dword [ebp - 0x80]
add eax, 0xe0dd
mov eax, dword [ebp - 0x80]
mov dword fs:[0], eax
mov edi, dword [ebp - 0x64]
lea ebx, [ebx]
push dword [edi - 8]
xor eax, dword [ebp - 0x54]
cmp dword [ebp - 0x48], 0x400002
jne 0x4091de
mov dword [ebp - 0x230], 2
test ecx, 0x1000
jne 0x409020
mov ebx, dword [ebp - 0x80]
mov esi, dword [ebp - 0x64]
cmp dword [ebp - 0x38], 0x400002
jne 0x409202
test bl, 2
jne 0x4051bb
mov eax, dword [ebp - 4]
and ebx, 0xfffffffe
and eax, 0xfffffffc
lea ebx, [esi - 0x50]
mov dword [ebp - 0x80], ebx
mov ebx, esi
push dword [ebp - 0x80]
add dword [ebp - 0x2c], ecx
or ecx, dword [ebp - 0x58]
or ecx, edi
mov edx, dword [ebp - 0x40]
test dword [ebp - 0x48], 0
je 0x409227
push eax
je 0x40920d
mov edx, dword [ebp - 0x44]
add edx, 0x5b0
call dword [edx]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
sub esi, dword [ebp - 0x78]
cmp dword [ebp - 0x48], 0xffffff85
jne 0x409245
int3
mov edi, dword [ebp - 0x80]
cmp dword [ebp - 0x38], 0x400002
jne 0x40925b
call fcn.00412e60
mov edi, eax
mov ebx, dword [ebp - 0x64]
cmp dword [ebp - 0x48], 0xffffffdc
jne 0x40927b
cmp eax, 0x100
jge 0x409275
mov cl, byte [eax + ebx + 0x11d]
mov byte [eax + 0x43eb88], cl
lea edi, [ebx - 0x48]
mov dword [ebp - 0x80], edi
and esi, edx
add ebx, eax
add word [ebp - 0x54], 0x602
push dword [ebp - 0x80]
or ebx, edx
and dword [ebp - 0x30], edx
add edi, dword [ebp - 0x54]
or ebx, edi
mov ecx, dword [ebp - 0x80]
add dword [ebp - 0x60], edx
mov esi, dword [ebp - 0x64]
lea ecx, [esi - 0x50]
mov dword [ebp - 0x80], ecx
cmp dword [ebp - 0x38], 0x400002
jne 0x4092b9
jne 0x406da7
push dword [ebp - 0x80]
sub edx, edi
push 0
or dword [ebp - 0x58], 0x613
cmp dword [ebp - 0x38], 1
je 0x4092db
test si, si
jg 0x409326
test si, si
push 0
xor word [ebp - 0x84], 0xa5c
mov edx, dword [ebp - 0x40]
and dword [ebp - 0x30], ecx
mov edx, dword [ebp - 0x44]
add edx, 0x648
call dword [edx]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
cmp dword [ebp - 0x48], 0xffffffcb
jne 0x409311
push ecx
push esi
call dword [0x41905c]
or edx, dword [ebp - 0x68]
add ebx, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x80]
or dword [ebp - 0x80], ecx
jne 0x40945b
xor dword [ebp - 0x68], esi
mov dword [ebp - 0x50], esi
mov ecx, 8
xor dword [ebp - 0x24], ecx
add edi, ecx
mov edi, dword [ebp - 0x64]
lea edi, [edi - 0xac]
push edi
push dword [ebp - 0x24]
call fcn.00403812
xor dword [ebp - 0x54], 0x377
mov edx, dword [ebp - 0x3c]
xor dword [ebp - 0x30], eax
push dword [edx + 0xc]
mov edx, dword [ebp - 0x64]
and eax, ebx
and edi, dword [ebp - 0x30]
push dword [edx - 0x48]
sub esi, ebx
and esi, eax
call fcn.00416818
mov ebx, dword [ebp - 0x80]
add dword [ebp - 0x30], 0xffffffb6
or dword [ebp - 0x80], ebx
je 0x4093d9
mov eax, 0x10
xor dword [ebp - 0x24], eax
add dword [ebp - 0x2c], 0x38
add dword [ebp - 0x50], 0xffffff95
mov edx, dword [ebp - 0x64]
lea edx, [edx - 0xac]
push edx
push dword [ebp - 0x24]
call fcn.00403812
xor ecx, dword [ebp - 0x60]
sub eax, dword [ebp - 0x68]
push 0x42851289
and word [ebp - 0x30], 0xe90
lea esi, [eax + edi - 0x2f]
mov eax, edi
mov edx, dword [ebp - 0x40]
sub eax, dword [ebp - 0x2c]
add eax, dword [ebp - 0x60]
mov eax, dword [ebp - 0x80]
xor dword [ebp - 0x34], ecx
call eax
mov dword [ebp - 0x80], eax
xor dword [ebp - 0x4c], edx
mov dword [ebp - 0x40], edx
add dword [ebp - 0x2c], ecx
sub ecx, edx
add esp, 4
and ecx, esi
mov edi, dword [ebp - 0x64]
or esi, dword [ebp - 0x54]
or ebx, dword [ebp - 0x84]
push dword [edi - 0x48]
xor ecx, dword [ebp - 0x34]
xor esi, dword [ebp - 0x50]
mov dword [ebp - 0x2c], edx
mov edx, dword [ebp - 0x40]
or word [ebp - 0x58], 0x302
cmp dword [ebp - 0x38], 1
je 0x409407
inc eax
cmp dword [ebp + 0xc], eax
mov edx, dword [ebp - 0x44]
add edx, 0x64c
call dword [edx]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
mov eax, dword [ebp - 0x80]
xor ecx, dword [ebp - 0x68]
or dword [ebp - 0x80], eax
jne 0x40945b
cmp dword [ebp - 0x38], 1
je 0x409433
lea ecx, [ebp - 0x20]
mov edx, 0x20
and dword [ebp - 0x60], ecx
and dword [ebp - 0x7c], edi
xor dword [ebp - 0x24], edx
and esi, edi
lea ebx, [ecx + 0x172b]
mov eax, dword [ebp - 0x64]
lea eax, [eax - 0xac]
push eax
push dword [ebp - 0x24]
call fcn.00403812
mov edx, 0x40
cmp dword [ebp - 0x38], 0x400002
jne 0x40947a
je 0x409476
cmp ebx, 0x10
jae 0x4093f4
lea eax, [ebp - 0x2c]
mov ecx, dword [esi + 0x54]
push ecx
xor dword [ebp - 0x24], edx
xor ebx, dword [ebp - 0x7c]
cmp dword [ebp - 0x38], 0x400002
jne 0x409492
push eax
mov eax, dword [ebp + 8]
push dword [eax]
mov edi, dword [ebp - 0x64]
lea edi, [edi - 0xac]
push edi
push dword [ebp - 0x24]
call fcn.00403812
and eax, dword [ebp - 0x84]
cmp dword [ebp - 0x38], 0x72
jne 0x4094b7
jmp 0x4094d1
call fcn.00408a9c
mov ebx, edi
sub edi, edx
mov edi, 0xa288ccc4
mov edi, ebx
sub ebx, dword [ebp - 0x34]
cmp dword [ebp - 0x38], 0x400002
jne 0x4094e9
mov byte [ebp - 0x14], dl
push 1
lea edx, [ebp - 0x14]
push edx
pop dword [ebp - 0x80]
mov eax, dword [ebp - 0x80]
mov dword fs:[0], eax
cmp dword [ebp - 0x48], 0xffffffb8
jne 0x409509
push ecx
lea ecx, [esp + 4]
sub ecx, eax
sbb eax, eax
not eax
add esp, 0x14
lea ebx, [ebp - 0x24]
push ebx
mov ebx, dword [ebp - 0x64]
push dword [ebx - 0xac]
call fcn.00403812
add dword [ebp - 0x6c], 0x6e1
lea eax, [ebp - 0x3c]
push eax
mov eax, dword [ebp - 0x64]
push dword [eax - 0xb0]
call fcn.00403812
lea ebx, [ebp - 0x44]
push ebx
mov ebx, dword [ebp - 0x64]
push dword [ebx + 8]
call fcn.00403812
mov dword [ebp - 0x4c], ebx
or eax, dword [ebp - 0x54]
jmp 0x4097e6
add edx, 0x2efe
mov dword [ebp - 0x84], 0x638
mov ecx, 0x70
sub ebx, eax
cmp dword [ebp - 0x38], 0xffffffaa
jne 0x409590
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
add edx, eax
mov ecx, dword [edx + 0x14]
and ecx, 0x41941e
xor dword [ebp - 0x24], ecx
sub edi, esi
add edx, eax
cmp dword [ebp - 0x38], 0x43
jne 0x4095a1
push 0x44
cmp dword [ebp - 0x38], 1
je 0x4095b6
push ebp
mov ebp, esp
mov edx, dword [ebp + 8]
push ebx
mov ecx, dword [ebp - 0x80]
mov esi, dword [ebp - 0x64]
xor ebx, dword [ebp - 0x54]
cmp dword [ebp - 0x38], 1
je 0x4095d8
push 0x41984f
lea eax, [ebp - 0xc]
push eax
mov dword [ebp - 0xc], 0x433bbc
lea ecx, [esi - 0x98]
mov dword [ebp - 0x80], ecx
xor dword [ebp - 0x2c], ecx
mov dword [ebp - 0x78], 0xa9c
push dword [ebp - 0x80]
sub ecx, dword [ebp - 0x50]
and esi, dword [ebp - 0x84]
mov edx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x44]
add edx, 0x5c0
call dword [edx]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
sub edx, esi
or ebx, ecx
cmp dword [ebp - 0x38], 1
je 0x40961a
mov esi, eax
mov esi, dword [ebp - 0x64]
cmp dword [ebp - 0x38], 1
je 0x40962b
test ebx, ebx
je 0x40960b
push ebx
mov dword [esi - 0x98], 0x44
xor edx, dword [ebp - 0x30]
xor eax, ecx
xor dword [ebp - 0x50], ecx
push 0x2cd38ae7
and ebx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x44]
xor edx, dword [ebp - 0x68]
add dword [ebp - 0x4c], edi
push dword [eax + 0x9c]
call fcn.00416818
or ebx, edx
mov esi, dword [ebp - 0x44]
lea esi, [esi + 0x640]
push esi
push dword [ebp - 0x80]
call fcn.00403812
cmp dword [ebp - 0x48], 0x400002
jne 0x409684
mov dword [esi + 8], ecx
call 0x4136fa
mov dword [ebp - 0x1c], edx
cmp dword [ebp - 0x48], 0x400002
jne 0x409692
push 0
cmp dword [ebp - 0x38], 1
je 0x4096a6
mov eax, dword fs:[0]
or edi, esi
cmp dword [ebp - 0x38], 0xffffffcc
jne 0x4096c0
mov eax, dword [edx + 4]
mov ecx, dword [eax + ebx + 0x38]
movzx edx, word [eax + ebx + 0x40]
mov eax, dword [ecx + 0x24]
mov eax, dword [ebp - 0x80]
or edi, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x64]
sub edx, dword [ebp - 0x7c]
lea eax, [ecx - 0xa8]
mov dword [ebp - 0x80], eax
or ebx, dword [ebp - 0x4c]
or edx, dword [ebp - 0x84]
push dword [ebp - 0x80]
add esi, 0x2edf
cmp dword [ebp - 0x48], 0xffffff8e
jne 0x4096f3
mov dword [ebp - 0x2c], edx
mov ecx, dword [ebp - 0x80]
mov ebx, dword [ebp - 0x64]
or esi, dword [ebp - 0x60]
and dword [ebp - 0x84], 0x4c
lea ecx, [ebx - 0x98]
mov dword [ebp - 0x80], ecx
and dword [ebp - 0x58], eax
push dword [ebp - 0x80]
push 0
push 0
add esi, 0xc5b5
xor dword [ebp - 0x50], edx
push 0
or dword [ebp - 0x2c], esi
mov dword [ebp - 0x60], edx
push 0
add eax, dword [ebp - 0x34]
push 0
add esi, eax
cmp dword [ebp - 0x48], 0
je 0x409754
jne 0x4096f3
push edi
call fcn.0040c3dd
pop ecx
test dword [ebp - 0x48], 0
je 0x409763
pop ebx
push 0
xor eax, ecx
xor ecx, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x64]
push dword [ecx - 8]
push 0
lea edi, [ecx + 0x4d]
or dword [ebp - 0x84], ecx
push 0
and ebx, edi
mov edx, dword [ebp - 0x40]
xor word [ebp - 0x34], 0xf71
mov ebx, dword [ebp - 0x44]
add ebx, 0x640
call dword [ebx]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
cmp dword [ebp - 0x38], 0x400002
jne 0x4097b0
int3
mov ecx, dword [ebp - 0x80]
or dword [ebp - 0x80], ecx
je 0x4097e6
cmp dword [ebp - 0x38], 0x56
jne 0x4097c8
mov dword [ebp - 0x1c], esi
cmp dword [ebp - 0x48], 0x51
jne 0x4097de
xor esi, esi
add esp, 8
cmp eax, esi
jne 0x409762
xor edx, edx
mov ecx, dword [eax]
mov edi, 8
xor dword [ebp - 0x24], edi
push dword [ebp - 0x44]
and edi, dword [ebp - 0x54]
xor ecx, dword [ebp - 0x54]
mov esi, dword [ebp - 0x64]
push dword [esi - 8]
xor ebx, dword [ebp - 0x78]
call fcn.00414053
add ecx, ebx
mov eax, dword [ebp - 0x80]
and esi, dword [ebp - 0x6c]
or dword [ebp - 0x80], eax
jne 0x409826
cmp dword [ebp - 0x48], 0x400002
jne 0x40981c
mov edi, edi
mov edx, 0x80
add eax, edx
xor dword [ebp - 0x24], edx
xor edx, esi
or dword [ebp - 0x68], 0xfffffffb
mov edi, dword [ebp - 0x64]
sub esi, dword [ebp - 0x28]
xor ebx, edx
add dword [edi - 0x54], 1
mov dword [ebp - 0x6c], 0x950
xor word [ebp - 0x30], 0xc93
mov eax, dword [ebp - 0x24]
ror eax, 8
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x38], 0x400002
jne 0x409878
mov edx, dword [esi + 0x10]
mov dword [edx], 0
mov eax, dword [esi + 0x20]
mov dword [eax], 0
mov ecx, dword [esi + 0x30]
mov dword [ecx], 0
lea ecx, [ebp - 0x80]
push ecx
mov ecx, dword [ebp - 0x64]
push dword [ecx + 0xc]
call fcn.00403812
lea ebx, [ebp - 0x80]
push ebx
mov ebx, dword [ebp - 0x3c]
push dword [ebx + 0x10]
call fcn.00403853
cmp dword [ebp - 0x38], 0xfffffffd
jne 0x4098a0
int3
lea edx, [ebp - 0x3c]
or dword [ebp - 0x68], 0xffffffb2
or ebx, dword [ebp - 0x30]
push edx
push dword [ebp - 0x80]
cmp dword [ebp - 0x48], 0x400002
jne 0x4098c6
mov ebx, dword [ebp - 0x2124]
mov edi, dword [ebp - 0x211c]
call fcn.00403812
sub ebx, dword [ebp - 0x58]
cmp dword [ebp - 0x38], 1
je 0x4098dc
cmp eax, 1
jle 0x4098e2
xor dword [ebp - 0x84], eax
or eax, dword [ebp - 0x58]
mov edi, dword [ebp - 0x3c]
cmp dword [edi + 0x10], 0
jne 0x4080a9
cmp dword [ebp - 0x38], 0xf
jne 0x409900
add edi, esi
mov ebx, dword [ebp - 0x64]
add eax, 0xbdc0
sub edx, edi
cmp dword [ebx - 0x54], 1
jne 0x409929
xor dword [ebp - 0x60], esi
mov ebx, dword [ebp - 0x24]
ror ebx, 0x10
mov dword [ebp - 0x24], ebx
jmp 0x40997d
add dword [ebp - 0x48], 0
je 0x40993b
push edi
push edi
push edi
push edi
call 0x40db20
mov esi, dword [ebp - 0x64]
and dword [ebp - 0x4c], edi
and ecx, dword [ebp - 0x34]
cmp dword [esi - 0x54], 2
jne 0x40997d
add eax, dword [ebp - 0x6c]
cmp dword [ebp - 0x38], 1
je 0x409974
mov edi, dword [ebp - 0x24]
ror edi, 8
mov dword [ebp - 0x24], edi
push 5
xor eax, edi
cmp dword [ebp - 0x38], 0x400002
jne 0x4099a6
push 0x4197c9
lea eax, [ebp - 0x104]
push 0x4192cd
push eax
call fcn.0040ff3b
push dword [ebp - 0x44]
or edi, esi
or eax, ebx
call fcn.00417371
cmp dword [ebp - 0x48], 0
je 0x4099ca
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
or dword [ebp - 0x7c], eax
or dword [ebp - 0x34], 0x25
mov ecx, dword [ebp - 0x44]
or esi, dword [ebp - 0x84]
xor dword [ebp - 0x2c], esi
mov dword [ecx + 4], 0
add dword [ebp - 0x2c], 0x64
mov word [ebp - 0x58], 0xce4
add esi, dword [ebp - 0x30]
push dword [ebp - 0x44]
or dword [ebp - 0x2c], edi
call fcn.0040c476
sub edx, dword [ebp - 0x2c]
lea ecx, [ebp - 0x5c]
or dword [ebp - 0x2c], edi
cmp dword [ebp - 0x48], 0x400002
jne 0x409a15
push edi
push ecx
or esi, eax
cmp dword [ebp - 0x38], 0x49
jne 0x409a2f
push eax
mov dword [esi], 0x432ec0
mov dword [esi + 4], 0xffffffff
push dword [ebp - 0x5c]
cmp dword [ebp - 0x38], 0x400002
jne 0x409a45
mov dword [ebp - 4], 1
call fcn.00403968
mov esi, dword [ebp - 0x44]
and eax, dword [ebp - 0x2c]
test dword [esi + 4], 0x10
je 0x409aae
or eax, esi
cmp dword [ebp - 0x48], 0xffffffd1
jne 0x409a7f
mov byte [ebp - 4], 0
call 0x404bb3
lea eax, [ebp - 0x5c]
push eax
mov dword [ebp - 0x5c], 0x431760
mov ecx, 1
cmp dword [ebp - 0x38], 0xffffff8d
jne 0x409aa8
lea ecx, [ebp - 0x18]
mov dword [ebp - 4], 0xffffffff
call 0x40fd19
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
or dword [ebp - 0x5c], ecx
or dword [ebp - 0x6c], edi
sub eax, esi
add edi, dword [ebp - 0x84]
mov edi, dword [ebp - 0x44]
sub ecx, edi
test dword [edi + 4], 0x20
je 0x409ada
mov esi, 2
xor dword [ebp - 0x68], 0xffffffa4
sub edx, dword [ebp - 0x68]
or dword [ebp - 0x5c], esi
or edi, dword [ebp - 0x54]
add esi, dword [ebp - 0x6c]
mov edi, dword [ebp - 0x44]
test dword [edi + 4], 0x40
je 0x409b20
cmp dword [ebp - 0x38], 0x400002
jne 0x409b02
cmp cl, 0x3b
cmp dword [ebp - 0x38], 8
jne 0x409b0d
jl 0x409ab0
mov edx, 4
add ecx, dword [ebp - 0x30]
add dword [ebp - 0x4c], ecx
or dword [ebp - 0x5c], edx
add edx, ecx
add edx, dword [ebp - 0x58]
xor eax, dword [ebp - 0x54]
mov edi, dword [0x7ffe0014]
and ebx, eax
sub edx, dword [ebp - 0x54]
mov dword [ebp - 0x40], edi
xor dword [ebp - 0x50], edx
sub eax, dword [ebp - 0x7c]
or edx, dword [ebp - 0x28]
xor edx, dword [ebp - 0x50]
mov edi, 0xf
cmp dword [ebp - 0x38], 0x400002
jne 0x409b54
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0x3c]
movsd dword es:[edi], dword [esi]
and dword [ebp - 0x40], edi
lea esi, [ebp - 0x24]
mov dword [ebp - 0x60], ebx
cmp dword [ebp - 0x48], 0
je 0x409b82
push esi
and ebx, dword [ebp - 0x58]
and ebx, dword [ebp - 0x54]
push dword [ebp - 0x40]
add edi, eax
mov edi, 0xf657427
mov edi, ecx
or dword [ebp - 0x2c], edx
call fcn.00403853
and dword [ebp - 0x60], 0xffffffe3
mov dword [ebp - 0x4c], 0x48f
mov esi, dword [ebp - 0x5c]
rol esi, 4
mov dword [ebp - 0x5c], esi
lea edx, [ebp - 0x24]
xor edi, dword [ebp - 0x60]
push edx
push dword [ebp - 0x5c]
add esi, ebx
call fcn.00403853
add edx, edi
mov edi, ebx
mov eax, dword [ebp - 0x44]
lea eax, [eax + 8]
push eax
push dword [ebp - 0x24]
call fcn.00403812
sub edx, dword [ebp - 0x58]
add edi, 0xd581
mov edi, dword [ebp - 0x64]
mov dword [edi - 0xc], 0
xor edx, esi
push 0x8000
lea esi, [edx]
mov edx, dword [ebp - 0x80]
lea ebx, [ecx - 0x63]
mov ecx, dword [ebp - 0x64]
add ebx, 0x879a
add edi, edx
lea edx, [ecx - 0xc]
mov dword [ebp - 0x80], edx
xor edx, dword [ebp - 0x4c]
push dword [ebp - 0x80]
or dword [ebp - 0x54], 0x70
mov byte [ebp - 0x50], 0x11
mov esi, dword [ebp - 0x80]
and eax, ebx
add edi, 0xe410
mov edi, dword [ebp - 0x64]
or dword [ebp - 0x30], edx
and ecx, dword [ebp - 0x60]
lea esi, [edi - 8]
mov dword [ebp - 0x80], esi
xor word [ebp - 0x58], 0xbe5
push dword [ebp - 0x80]
cmp dword [ebp - 0x38], 1
je 0x409c47
push 0xffffffffffffffff
push 0xffffffff
cmp dword [ebp - 0x38], 1
je 0x409c5b
xor ecx, ecx
cmp dword [ebp - 0x2c], 0x2d
mov edx, dword [ebp - 0x40]
and dword [ebp - 0x30], edx
cmp dword [ebp - 0x38], 1
je 0x409c81
add esp, 4
lea ecx, [ebp - 0x18]
mov dword [ebp - 4], 0xffffffff
call fcn.004160f1
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x44]
add edx, 0x5a4
call dword [edx]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
cmp dword [ebp - 0x38], 1
je 0x409ca7
lea edi, [edx + 1]
mov dword [ecx], edi
mov byte [edx], al
movzx eax, al
mov edx, dword [ecx]
and word [ebp - 0x6c], 0xcb2
sub edx, eax
pop dword [ebp - 0x44]
or esi, dword [ebp - 0x60]
xor ebx, esi
pop dword [ebp - 0x24]
add dword [ebp - 0x30], 0x58
add edi, ebx
and eax, dword [ebp - 0x60]
pop dword [ebp - 0x3c]
add dword [ebp - 0x30], esi
mov dword [ebp - 0x28], 0x63b
mov ecx, dword [ebp - 0x64]
test dword [ebp - 0x48], 0
je 0x409ce8
cmp ebx, dword [eax + 0xc]
jb 0x409cad
test edi, edi
js 0x409c6a
mov esp, ecx
cmp dword [ebp - 0x48], 0x400002
jne 0x409cff
mov eax, dword [esi + 0x24]
mov dword [eax], 0
cmp dword [ebp - 0x38], 1
je 0x409d16
lea eax, [ebp - 0x7c]
push eax
push dword [esi + 4]
call fcn.0040d71c
pop ecx
pop ecx
pop dword [ebp - 0x64]
xor dword [ebp - 0x54], esi
and ecx, dword [ebp - 0x30]
ret 0xc
add esi, ecx
cmp dword [ebp - 0x38], 0x63
jne 0x40a5ad
call fcn.0040db5e
mov ecx, 0x41926a
cmp cx, ax
add ebx, dword [ebp - 0x7c]
mov eax, 0xf0
and dword [ebp - 0x3c], eax
or dword [ebp - 0x7c], 0x12
and dword [ebp - 0x30], ecx
and dword [ebp - 0x2c], 0x17a
cmp dword [ebp - 0x3c], 0x10
jne 0x40a5e6
push dword [ebp - 0x24]
jmp 0x40a681
add dword [ebp - 0x48], 0
je 0x40a600
mov ecx, dword [ebp - 0x21c]
mov byte [ecx], 0x30
inc eax
dec ecx
cmp word [eax], 0
je 0x40a5ef
cmp dword [ebp - 0x3c], 0x20
jne 0x40a637
sub eax, dword [ebp - 0x54]
cmp dword [ebp - 0x48], 0x400002
jne 0x40a626
pop esi
mov eax, 0x419807
pop ebx
push dword [ebp - 0x5c]
jmp 0x40a681
cmp dword [ebp - 0x3c], 0x30
jne 0x40a676
mov word [ebp - 0x6c], 0x80d
xor esi, dword [ebp - 0x6c]
or dword [ebp - 0x30], ecx
push dword [ebp - 0x40]
mov word [ebp - 0x58], 0xbcb
jmp 0x40a681
lea eax, [eax + 0x8f5]
push dword [ebp - 0x80]
sub edi, esi
lea ecx, [ebp - 0x3c]
push ecx
mov ecx, dword [ebp - 0x44]
push dword [ecx + 0x7d8]
call fcn.00403812
cmp dword [ebp - 0x38], 0x400002
jne 0x40a6a7
call edx
sub eax, 0
je 0x40a6c8
dec eax
add dword [ebp - 0x48], 0
je 0x40a6ca
mov ebx, dword [ebp - 0x210]
add esp, 0x1c
and ebx, 0x4192af
je 0x40a734
cmp dword [ebp - 0x218], 0
jne 0x40a69f
mov edi, 0xf
xor eax, dword [ebp - 0x7c]
xor dword [ebp - 0x58], edx
and dword [ebp - 0x3c], edi
sub ecx, dword [ebp - 0x28]
or ecx, dword [ebp - 0x4c]
add esi, 0x3034
cmp dword [ebp - 0x38], 1
je 0x40a701
xor ecx, eax
call fcn.00410211
mov eax, 0x4197fd
int3
cmp dword [ebp - 0x3c], 1
jne 0x40a721
and dword [ebp - 0x54], ecx
sub edi, dword [ebp - 0x28]
push dword [ebp - 0x24]
mov edi, ebx
jmp 0x40a7b5
cmp dword [ebp - 0x3c], 2
jne 0x40a759
push dword [ebp - 0x5c]
add dword [ebp - 0x28], 0x10
and ebx, edx
jmp 0x40a7b5
cmp dword [ebp - 0x3c], 3
jne 0x40a79a
cmp dword [ebp - 0x38], 0xffffffb0
jne 0x40a774
mov ebp, esp
cmp dword [ebp - 0x38], 1
je 0x40a789
push edx
lea eax, [ebp - 0x18]
push eax
mov byte [ebp + 0xc], 0x2e
mov dword [ebp - 0x18], ebx
push dword [ebp - 0x40]
add dword [ebp - 0x54], edx
xor ebx, dword [ebp - 0x2c]
jmp 0x40a7b5
or dword [ebp - 0x60], eax
cmp dword [ebp - 0x48], 0
je 0x40a7ab
push dword [ebp - 0x80]
and dword [ebp - 0x7c], 0x29
mov esi, dword [ebp - 0x80]
cmp dword [ebp - 0x38], 0x400002
jne 0x40a7c9
int3
mov ebx, dword [ebp - 0x44]
lea esi, [ebx + 0x744]
mov dword [ebp - 0x80], esi
lea eax, [ebx + esi*4 + 0x3af]
push dword [ebp - 0x80]
cmp dword [ebp - 0x38], 0x2d
jne 0x40a7f1
mov edi, dword [ebp - 0x64]
xor ebx, esi
add ecx, dword [ebp - 0x28]
push dword [edi - 0xc]
and dword [ebp - 0x34], 0x5c4
cmp dword [ebp - 0x48], 0x400002
jne 0x40a815
push esi
push dword [ebp + 8]
mov esi, ecx
mov edx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x44]
add eax, 0x618
call dword [eax]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
add esi, dword [ebp - 0x6c]
add dword [ebp - 0x2c], 0x41
add esp, 0x18
lea ecx, [ebp - 0x40]
push ecx
mov ecx, dword [ebp - 0x64]
push dword [ecx - 0xc]
call fcn.00403812
cmp dword [ebp - 0x48], 0x400002
jne 0x40a85e
jne 0x40a880
xor eax, eax
inc eax
mov esi, dword [esi + 0xbc]
push 0x14
lea esi, [ebp - 0x40]
mov byte [ebp - 0x4c], 0x41
add dword [ebp - 0x4c], 0x848
push esi
push dword [ebp - 0x80]
cmp dword [ebp - 0x38], 0xffffffcd
jne 0x40a88b
add byte [ebp + ebp*4 - 0x5283ffbf], al
inc ecx
add byte [ebp + ebp*4 + 0x41], dh
add byte [ebx - 0x761b71bc], cl
call fcn.00403853
cmp dword [ebp - 0x38], 1
je 0x40a89e
mov edx, dword [ecx + 4]
add edx, eax
mov eax, dword [ebp - 0x44]
xor ecx, dword [ebp - 0x7c]
cmp dword [eax + 8], 0
jne 0x40a91f
and dword [ebp - 0x30], 0xffffff96
or edx, dword [ebp - 0x7c]
mov ecx, dword [ebp - 0x44]
push dword [ecx]
cmp dword [ebp - 0x48], 0x400002
jne 0x40a8d7
ja 0x40a940
mov eax, dword [ebp + 0xc]
push ebx
mov ebx, dword [ebp + 8]
mov dword [ebp - 4], ecx
mov esi, edi
or esi, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x80]
mov ebx, dword [ebp - 0x44]
and edi, dword [ebp - 0x68]
lea eax, [ebx + 0x7dc]
mov dword [ebp - 0x80], eax
push dword [ebp - 0x80]
push dword [ebp - 0x40]
mov edx, dword [ebp - 0x40]
lea esi, [esi + 0x25]
mov ebx, dword [ebp - 0x44]
add ebx, 0x618
call dword [ebx]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
and edi, dword [ebp - 0x6c]
mov dword [ebp - 0x50], 0xfd2
jmp 0x40a9a3
mov esi, dword [ebp - 0x44]
push dword [esi + 8]
xor ecx, dword [ebp - 0x30]
or ecx, dword [ebp - 0x7c]
cmp dword [ebp - 0x38], 1
je 0x40a93b
jb 0x40a951
mov edi, 0x4198e0
mov ebx, dword [ebp - 0x80]
sub eax, edi
or esi, edi
mov edx, dword [ebp - 0x44]
and edi, dword [ebp - 0x2c]
lea ebx, [edx + 0x8dc]
mov dword [ebp - 0x80], ebx
and edx, dword [ebp - 0x84]
mov word [ebp - 0x54], 0x7bd
mov dword [ebp - 0x34], 0x4b6
push dword [ebp - 0x80]
add esi, 0xecf9
and edi, ebx
push dword [ebp - 0x40]
test dword [ebp - 0x48], 0
je 0x40a987
mov edx, dword [ebp - 0x40]
xor dword [ebp - 0x78], esi
mov edi, dword [ebp - 0x44]
add edi, 0x618
call dword [edi]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
or esi, edi
and ecx, dword [ebp - 0x30]
add esp, 0xc
sub esi, dword [ebp - 0x34]
mov edx, ebx
add edi, dword [ebp - 0x84]
mov edx, dword [ebp - 0x64]
cmp dword [ebp - 0x48], 0xfffffffc
jne 0x40a9c7
movzx ecx, byte [eax + 0x416c3c]
cmp dword [edx + 0xc], 0
je 0x40b205
xor esi, dword [ebp - 0x60]
mov esi, dword [ebp - 0x44]
push dword [esi + 0xc14]
or edx, dword [ebp - 0x28]
or edx, esi
and eax, dword [ebp - 0x28]
or edx, dword [ebp - 0x7c]
push dword [ebp - 0x44]
call fcn.00417371
push 0
cmp dword [ebp - 0x38], 0x400002
jne 0x40aa13
mov dword [0x4192aa], eax
call fcn.004170e5
mov dword [0x41972b], eax
or ebx, edx
add edx, 0x46a4
push 0x84000000
cmp dword [ebp - 0x38], 1
je 0x40aa30
mov eax, dword [edi + 4]
test eax, eax
je 0x40a9c0
add dword [ebp - 0x48], 0
je 0x40aa46
mov dword [0x4192f8], eax
mov eax, dword [ebp + 4]
mov dword [0x41977f], eax
push 0xffffffff
cmp dword [ebp - 0x48], 0x400002
jne 0x40aa60
je 0x40b794
lea edi, [ecx + 0x7f]
sub edx, dword [ebp - 0x84]
mov edi, dword [ebp - 0x80]
sub ecx, dword [ebp - 0x34]
lea ecx, [eax + 0x3c]
mov ecx, dword [ebp - 0x44]
lea edi, [ecx + 0x9dc]
mov dword [ebp - 0x80], edi
xor ecx, dword [ebp - 0x34]
sub edx, ebx
push dword [ebp - 0x80]
mov eax, dword [ebp - 0x64]
add dword [ebp - 0x68], 0x397
push dword [eax - 0xc]
and ecx, esi
xor edi, dword [ebp - 0x84]
mov edx, dword [ebp - 0x64]
push dword [edx - 4]
cmp dword [ebp - 0x48], 0x400002
jne 0x40aab3
cmp dword [ebp - 0x18], 0x10
jb fcn.0040aad3
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x40]
mov esi, dword [ebp - 0x44]
add esi, 0x658
call dword [esi]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
cmp dword [ebp - 0x48], 0x400002
jne 0x40aae9
mov eax, dword [ebp - 0x80]
or dword [ebp - 0x80], eax
je 0x40ad06
cmp dword [ebp - 0x38], 1
je 0x40ab01
mov ecx, dword [ebp - 0x64]
lea ecx, [ecx - 8]
push ecx
push dword [ebp - 0x80]
call fcn.00403812
sub ecx, dword [ebp - 0x2c]
and edx, eax
add dword [ebp - 0x7c], eax
add dword [ebp - 0x48], 0
je 0x40ab2a
jne 0x40ab57
test edx, edx
jne 0x40ab89
cmp dword [ebp + 0xc], edx
mov eax, dword [ebp - 0x64]
add dword [ebp - 0x6c], 0x523
sub ebx, eax
mov dword [eax - 0x18], 0x400
push 0
or dword [ebp - 0x68], eax
mov edx, dword [ebp - 0x80]
sub ecx, dword [ebp - 0x30]
mov edi, dword [ebp - 0x64]
lea edx, [edi - 0x18]
mov dword [ebp - 0x80], edx
add ecx, dword [ebp - 0x60]
push dword [ebp - 0x80]
xor ebx, eax
mov ebx, dword [ebp - 0x64]
or eax, edi
push dword [ebx - 0x14]
cmp dword [ebp - 0x38], 1
je 0x40ab76
int3
push 0x13
and edx, edi
mov edi, dword [ebp - 0x64]
cmp dword [ebp - 0x38], 0x46
jne 0x40ab8e
lea edx, [ebx + esi + 1]
push edx
push dword [edi - 8]
or eax, esi
add dword [ebp - 0x48], 0
je 0x40abaf
push eax
call fcn.00405807
add esp, 0xc
lea ecx, [ebp - 0x60]
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x40]
add esi, 0xb8f8
mov eax, dword [ebp - 0x44]
add eax, 0x65c
call dword [eax]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
add ecx, 0x3984
sub eax, ecx
or edi, dword [ebp - 0x60]
or edx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x80]
or dword [ebp - 0x80], eax
je 0x40acf6
add edx, dword [ebp - 0x4c]
cmp dword [ebp - 0x48], 0x400002
jne 0x40ac03
movzx edi, byte [eax - 1]
movzx ecx, cl
mov ecx, dword [ebp - 0x24]
mov byte [edi + ecx], 0x20
movzx ecx, byte [eax]
lea eax, [ebp - 0x40]
push eax
mov eax, dword [ebp - 0x64]
push dword [eax - 0x14]
call fcn.00403812
lea edi, [ebp - 0x80]
push edi
mov edi, dword [ebp - 0x44]
push dword [edi + 0xc0c]
call fcn.00403812
mov eax, dword [ebp - 0x40]
mov ecx, eax
mov edx, esi
lea edi, [edx + ecx*8 + 0x110d]
sub ecx, 9
mov ebx, dword [ebp - 0x80]
and edx, dword [ebp - 0x6c]
mov dword [ebp - 0x28], ecx
cmp dword [ecx + 9], ebx
jne 0x40acdb
mov edx, dword [ebp - 0x64]
xor ecx, dword [ebp - 0x4c]
mov word [ebp - 0x4c], 0x6dd
push dword [edx - 8]
and eax, edi
xor dword [ebp - 0x60], 0x8fe
add edi, 0x7d0f
mov edx, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x44]
add ecx, 0x664
call dword [ecx]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
add eax, ebx
test dword [ebp - 0x48], 0
je 0x40ac9a
lea ecx, [ebp - 0x7c]
mov byte [ebp - 4], 1
call fcn.004078be
lea ecx, [ebp - 0x7c]
push ecx
mov dword [ebp - 0x7c], ebx
mov ecx, dword [ebp - 0x44]
cmp dword [ebp - 0x48], 0x5f
jne 0x40acae
test dl, 0x10
je 0x40ac97
mov byte [eax], 0x23
push dword [ecx + 0xc18]
and esi, edx
add ebx, edi
or dword [ebp - 0x50], esi
push dword [ebp - 0x44]
or eax, dword [ebp - 0x58]
add dword [ebp - 0x30], edx
call fcn.00417371
mov esi, dword [ebp - 0x44]
sub dword [esi + 0xc1c], 1
jmp 0x40ad0b
jmp 0x40ad27
jmp 0x40ad27
jmp 0x40ad27
mov ebx, dword [ebp - 0x44]
or esi, dword [ebp - 0x60]
add eax, dword [ebp - 0x34]
cmp dword [ebx + 0xc1c], 0
jne 0x40a9f3
xor dword [ebp - 0x34], ecx
or edx, dword [ebp - 0x4c]
lea eax, [ebp - 0x80]
push eax
mov eax, dword [ebp - 0x44]
push dword [eax + 0xc10]
call fcn.00403812
lea ebx, [ebp - 0x40]
push ebx
mov ebx, dword [ebp - 0x64]
push dword [ebx - 0x14]
call fcn.00403812
lea ecx, [eax]
mov esi, dword [ebp - 0x40]
cmp dword [ebp - 0x38], 0x400002
jne 0x40ad5b
mov ebx, esi
and edi, eax
add edx, 0x553c
sub ebx, 0x21
mov ecx, dword [ebp - 0x80]
cmp dword [ebx + 0x21], ecx
jne 0x40b1d8
or ecx, dword [ebp - 0x7c]
and ecx, dword [ebp - 0x68]
sub edi, dword [ebp - 0x78]
mov edx, dword [ebp - 0x64]
xor dword [ebp - 0x28], esi
mov dword [edx - 0x18], 4
or ecx, edx
mov eax, dword [ebp - 0x64]
mov dword [eax - 0x28], 0
and edx, dword [ebp - 0x84]
cmp dword [ebp - 0x38], 1
je 0x40adc1
call fcn.00411519
lea edx, [ebp - 0xb4]
push edx
mov dword [ebp - 0xb4], 0x431760
push 0
add edi, ecx
xor eax, dword [ebp - 0x34]
mov ebx, dword [ebp - 0x80]
or dword [ebp - 0x84], edi
mov edx, dword [ebp - 0x64]
lea ebx, [edx - 0x18]
mov dword [ebp - 0x80], ebx
mov dword [ebp - 0x84], edi
add ebx, 0x195
cmp dword [ebp - 0x48], 0
je 0x40adf7
mov edi, edi
push ebp
mov ebp, esp
push dword [ebp - 0x80]
or edi, dword [ebp - 0x78]
xor ecx, dword [ebp - 0x84]
and dword [ebp - 0x34], 0xffffffab
mov edi, dword [ebp - 0x80]
add ecx, esi
and word [ebp - 0x4c], 0xd03
mov eax, dword [ebp - 0x64]
lea edi, [eax - 0x28]
mov dword [ebp - 0x80], edi
sub edi, dword [ebp - 0x30]
xor dword [ebp - 0x84], 0xef1
push dword [ebp - 0x80]
push 0x20000005
or dword [ebp - 0x2c], esi
mov eax, dword [ebp - 0x64]
and edx, dword [ebp - 0x50]
xor esi, dword [ebp - 0x68]
push dword [eax - 8]
sub ebx, esi
mov dword [ebp - 0x7c], ecx
mov edx, dword [ebp - 0x40]
cmp dword [ebp - 0x38], 1
je 0x40ae5c
mov edx, dword [ebp - 0x44]
add edx, 0x65c
call dword [edx]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
sub edx, dword [ebp - 0x50]
and edi, dword [ebp - 0x6c]
cmp dword [ebp - 0x80], 1
jne 0x40b1d8
or edi, dword [ebp - 0x54]
xor dword [ebp - 0x30], 0x52
mov esi, dword [ebp - 0x64]
test dword [ebp - 0x48], 0
je 0x40aea4
push edx
push esi
mov ecx, esi
call fcn.004176b2
pop edi
pop esi
cmp dword [esi - 0x28], 0
je 0x40b1d8
lea ebx, [ebp - 0x80]
push ebx
mov ebx, dword [ebp - 0x64]
push dword [ebx - 0x28]
call fcn.00403812
xor eax, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x64]
lea edx, [edx - 0x24]
push edx
push dword [ebp - 0x80]
call fcn.00403812
add esi, 0x994
and ebx, dword [ebp - 0x58]
mov ebx, dword [ebp - 0x64]
add dword [ebx - 0x24], 0x400
cmp dword [ebp - 0x48], 0x73
jne 0x40aefe
mov ebx, dword [ebp - 0x64]
xor dword [ebp - 0x84], 0xffffffdb
mov dword [ebx - 0x20], 0
or esi, dword [ebp - 0x58]
add dword [ebp - 0x68], eax
and ebx, dword [ebp - 0x60]
push 0x40
cmp dword [ebp - 0x38], 0x400002
jne 0x40af2f
push ecx
call eax
or edx, dword [ebp - 0x7c]
lea eax, [esi - 0x5b]
push 0x3000
mov ecx, dword [ebp - 0x80]
cmp dword [ebp - 0x48], 0x400002
jne 0x40af50
mov esi, ecx
call fcn.0040ec0c
mov edi, dword [ebp - 0x64]
sub edx, esi
mov edx, 0x88da5757
mov edx, esi
mov dword [ebp - 0x2c], edx
lea ecx, [edi - 0x24]
mov dword [ebp - 0x80], ecx
or dword [ebp - 0x54], 0x984
add dword [ebp - 0x78], eax
push dword [ebp - 0x80]
add edi, edx
or eax, ebx
push 0
lea ebx, [edx + 0x7e]
or esi, dword [ebp - 0x2c]
add dword [ebp - 0x48], 0
je 0x40af8f
mov esi, dword [ebp - 0x80]
cmp dword [ebp - 0x48], 0x54
jne 0x40af9c
push ecx
mov eax, dword [ebp - 0x64]
mov word [ebp - 0x68], 0xf16
lea esi, [eax - 0x20]
mov dword [ebp - 0x80], esi
and esi, dword [ebp - 0x4c]
cmp dword [ebp - 0x38], 1
je 0x40afbd
movzx ecx, byte [esi]
mov word [eax], cx
push dword [ebp - 0x80]
sub ebx, edi
xor esi, dword [ebp - 0x2c]
push 0xffffffff
and edi, dword [ebp - 0x50]
mov edx, dword [ebp - 0x40]
add dword [ebp - 0x48], 0
je 0x40afdc
push edx
call eax
mov ecx, dword [ebp - 0x44]
add ecx, 0x5a0
call dword [ecx]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
add edi, dword [ebp - 0x6c]
sub ebx, ecx
mov ebx, 0xb32736bf
mov ebx, esi
lea edx, [ebp - 0x24]
push edx
mov edx, dword [ebp - 0x64]
push dword [edx - 0x20]
call fcn.00403812
and edx, dword [ebp - 0x78]
mov dword [ebp - 0x58], eax
mov ecx, dword [ebp - 0x64]
or dword [ebp - 0x84], ecx
cmp dword [ebp - 0x48], 0x400002
jne 0x40b02f
push eax
call dword [0x419064]
mov dword [esi], edi
mov eax, dword [esi]
push eax
mov dword [ecx - 0x2c], 0
sub edx, esi
mov dword [ebp - 0x34], 0x3c2
lea eax, [ebp - 0x24]
push eax
mov eax, dword [ebp - 0x64]
push dword [eax - 0x2c]
call fcn.00403853
or word [ebp - 0x68], 0x242
add ecx, dword [ebp - 0x30]
add dword [ebp - 0x84], ebx
sub edi, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x64]
add dword [ebp - 0x54], 0xb
cmp dword [ebp - 0x38], 0x400002
jne 0x40b089
je 0x40b0b4
push eax
call dword [0x4190f4]
test eax, eax
js 0x40b09e
mov eax, dword [ebp - 4]
lea eax, [ecx - 0x2c]
mov dword [ebp - 0x80], eax
push dword [ebp - 0x80]
lea ecx, [esi - 0xe]
add dword [ebp - 0x30], 0xffffffab
mov edi, dword [ebp - 0x64]
mov ecx, ebx
add ecx, dword [ebp - 0x4c]
push dword [edi - 0x28]
cmp dword [ebp - 0x38], 1
je 0x40b0bc
mov eax, dword [ebp - 0x1c]
and dword [eax + 0x70], 0xfffffffd
push 4
test byte [ebp - 0x14], 1
jne 0x40b079
xor esi, dword [ebp - 0x68]
push dword [ebp - 0x24]
or edx, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x64]
cmp dword [ebp - 0x38], 0x4b
jne 0x40b0d4
int3
push dword [edx - 8]
cmp dword [ebp - 0x48], 0x400002
jne 0x40b0e6
mov dword [esi + 0x20], ecx
mov edx, dword [ebp - 0x40]
cmp dword [ebp - 0x38], 0xffffffde
jne 0x40b0f8
mov edx, dword [ebp - 0x44]
add edx, 0x660
call dword [edx]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
cmp dword [ebp - 0x48], 0x400002
jne 0x40b129
add eax, 0x10
push 0x4196a0
push eax
call fcn.00409093
push eax
call fcn.00407c6d
mov eax, dword [ebp - 0x80]
or dword [ebp - 0x80], eax
jne 0x40b140
add dword [ebp - 0x60], ecx
sub eax, dword [ebp - 0x4c]
jmp 0x40b194
sub esi, dword [ebp - 0x78]
cmp dword [ebp - 0x80], 1
jne 0x40b00b
cmp dword [ebp - 0x48], 0x400002
jne 0x40b178
cmp eax, 0x1003
je 0x40b982
cmp eax, 0x1002
je 0x40f01c
lea edx, [ebp - 0x24]
and esi, dword [ebp - 0x30]
lea edx, [eax + ecx - 0x52]
mov esi, dword [ebp - 0x64]
add edi, edx
sub ebx, dword [ebp - 0x7c]
cmp dword [esi - 0x2c], 0
jne 0x40b00b
cmp dword [ebp - 0x80], 1
jne 0x40b1d8
xor esi, dword [ebp - 0x54]
mov edx, dword [ebp - 0x64]
cmp dword [edx - 0x2c], 0
jne 0x40b1d8
mov edi, dword [ebp - 0x64]
or dword [ebp - 0x50], eax
cmp dword [ebp - 0x38], 1
je 0x40b1c8
pop ebp
int3
mov dword [edi - 0x30], 1
add edx, dword [ebp - 0x78]
and dword [ebp - 0x60], esi
mov ebx, dword [ebp - 0x64]
push dword [ebx - 8]
or edx, dword [ebp - 0x2c]
xor ecx, ebx
mov edx, dword [ebp - 0x40]
sub ebx, edx
mov edx, dword [ebp - 0x44]
add edx, 0x664
call dword [edx]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
lea esi, [ebx + eax + 0x9db]
jmp 0x40b337
cmp dword [ebp - 0x48], 0x400002
jne 0x40b223
mov dword [0x4194d5], ecx
mov ecx, dword [eax + 0xc8]
mov dword [0x4197cd], ecx
push 0
or ecx, dword [ebp - 0x68]
xor dword [ebp - 0x7c], edx
push 0x84000000
mov byte [ebp - 0x54], 0x24
sub eax, dword [ebp - 0x28]
and edi, dword [ebp - 0x30]
sub edi, ecx
push 0xffffffff
mov edi, dword [ebp - 0x80]
add eax, dword [ebp - 0x50]
xor dword [ebp - 0x68], 0xdc7
mov ecx, dword [ebp - 0x44]
and edx, ecx
lea edi, [ecx + 0x9dc]
mov dword [ebp - 0x80], edi
add esi, 0xf520
push dword [ebp - 0x80]
or dword [ebp - 0x2c], edx
add dword [ebp - 0x6c], edi
mov eax, dword [ebp - 0x64]
and edi, dword [ebp - 0x50]
lea esi, [eax - 0x20]
push dword [eax - 0xc]
xor dword [ebp - 0x78], 8
add edx, 0xe9d5
mov ebx, dword [ebp - 0x64]
mov word [ebp - 0x6c], 0x385
push dword [ebx - 4]
xor dword [ebp - 0x50], ecx
xor eax, dword [ebp - 0x54]
cmp dword [ebp - 0x38], 0xffffffe1
jne 0x40b2a0
mov edx, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x44]
add ecx, 0x658
call dword [ecx]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
or esi, ebx
mov eax, dword [ebp - 0x80]
or dword [ebp - 0x80], eax
je 0x40b337
cmp dword [ebp - 0x48], 0x400002
jne 0x40b2d4
test al, al
jne 0x40b33d
mov ecx, edi
and edi, esi
push dword [ebp - 0x80]
test dword [ebp - 0x48], 0
je 0x40b2ee
cmp dword [ebp - 0x48], 0
je 0x40b303
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
mov edx, dword [ebp - 0x40]
cmp dword [ebp - 0x38], 0x400002
jne 0x40b31b
lea eax, [ecx - 2]
mov ecx, dword [esp + 4]
sub eax, ecx
mov edx, dword [ebp - 0x44]
add edx, 0x664
call dword [edx]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
cmp dword [ebp - 0x38], 1
je 0x40b337
pop ebx
pop ebp
mov eax, dword [ebp - 0x64]
push dword [eax - 4]
add edx, esi
cmp dword [ebp - 0x48], 0xffffffe6
jne 0x40b354
test byte [ebp + 8], 1
je 0x40b319
push edi
call fcn.00412ff0
and ebx, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x40]
cmp dword [ebp - 0x48], 0
je 0x40b366
int3
mov eax, dword [ebp - 0x44]
add eax, 0x664
call dword [eax]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
cmp dword [ebp - 0x48], 0x400002
jne 0x40b396
mov dword [eax], edi
mov edx, dword [esi + 0x20]
mov dword [edx], edi
mov eax, dword [esi + 0x30]
mov dword [eax], 1
mov edx, dword [esi + 0x3c]
cmp dword [ebp - 0x48], 0x12
jne 0x40b3b1
jne 0x40b3a1
push eax
call fcn.00411925
call fcn.0040af8a
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x64]
mov dword [ebp - 0x84], edx
cmp dword [ebp - 0x38], 0x59
jne 0x40b3cd
pop eax
mov byte [ebp - 0xc], dl
mov byte [ebp - 0xb], dh
mov dword [ebp - 0x10], eax
mov dword [edx - 0x10], 0
cmp dword [ebp - 0x38], 1
je 0x40b3f7
jg 0x40b3e9
movsx esi, byte [ebx + 8]
mov esi, dword [ebx + 8]
mov dword [ebp - 0x1c], esi
call 0x40f068
inc dword [eax + 0x90]
push 0x8000
xor dword [ebp - 0x78], 0x2a
mov ebx, edx
mov edi, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x64]
lea edi, [ecx - 0x10]
mov dword [ebp - 0x80], edi
xor eax, ebx
push dword [ebp - 0x80]
xor ebx, dword [ebp - 0x2c]
cmp dword [ebp - 0x38], 0xffffffec
jne 0x40b42b
push esi
mov esi, ecx
cmp dword [esi + 0x28], 0x10
jb 0x40b3e0
mov eax, dword [esi + 0x14]
mov eax, dword [ebp - 0x80]
xor ecx, dword [ebp - 0x7c]
or esi, ecx
mov ecx, dword [ebp - 0x64]
add esi, ecx
xor ebx, dword [ebp - 0x84]
lea eax, [ecx - 0xc]
mov dword [ebp - 0x80], eax
add ebx, dword [ebp - 0x54]
add dword [ebp - 0x60], eax
cmp dword [ebp - 0x38], 0x400002
jne 0x40b45c
int3
push dword [ebp - 0x80]
push 0xffffffff
and dword [ebp - 0x30], ebx
xor ebx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x44]
add edx, 0x5a4
call dword [edx]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
sub ecx, edx
cmp dword [ebp - 0x38], 0x400002
jne 0x40b495
mov eax, dword [ebp - 0x3c]
mov dword [esi + 0xc4], eax
mov edi, dword [ebp - 0x64]
mov dword [edi - 0x18], 0
cmp dword [ebp - 0x38], 1
je 0x40b4bb
push 0x8000
cmp dword [ebp - 0x38], 1
je 0x40b4d8
lea ecx, [ebp - 0x14]
call fcn.00407259
cmp dword [0x41961e], 0
mov esi, dword [ebp - 0x80]
mov eax, dword [ebp - 0x64]
lea esi, [eax - 0x18]
mov dword [ebp - 0x80], esi
push dword [ebp - 0x80]
or dword [ebp - 0x2c], esi
and edi, dword [ebp - 0x68]
lea edx, [ebx + edx*4 - 0xb]
mov edx, dword [ebp - 0x80]
mov eax, dword [ebp - 0x64]
lea edx, [eax - 0x14]
mov dword [ebp - 0x80], edx
push dword [ebp - 0x80]
test dword [ebp - 0x48], 0
je 0x40b51f
call fcn.004142a4
mov esi, eax
test esi, esi
js 0x417c91
cmp word [edi], 0x3d
and edi, dword [ebp - 0x58]
push 0xffffffff
mov ebx, ecx
mov edx, dword [ebp - 0x40]
and dword [ebp - 0x84], esi
mov edx, dword [ebp - 0x44]
add edx, 0x5a4
call dword [edx]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
lea ebx, [ebp - 0x80]
push ebx
push dword [ebp - 0x80]
lea edx, [esi + ebx*2 + 0x32]
cmp dword [ebp - 0x48], 0xffffff90
jne 0x40b562
call fcn.00403968
cmp dword [ebp - 0x38], 1
je 0x40b57a
mov eax, 0x419835
int3
cmp dword [ebp - 0x48], 0
je 0x40b585
and esi, edi
mov edx, dword [ebp - 0x64]
add eax, ecx
or dword [ebp - 0x2c], 0xaef
cmp dword [edx - 0x30], 1
jne 0x40b5ce
sub edi, dword [ebp - 0x50]
or dword [ebp - 0x84], eax
lea edi, [ebp - 0x80]
push edi
mov edi, dword [ebp - 0x64]
push dword [edi - 0x20]
call fcn.00403812
lea edi, [ebp - 0x5c]
push edi
mov edi, dword [ebp - 0x64]
push dword [edi - 0x28]
call fcn.00403812
or ecx, dword [ebp - 0x2c]
or word [ebp - 0x68], 0x6d9
pop dword [ebp - 0x44]
xor word [ebp - 0x34], 0x279
pop dword [ebp - 0x24]
mov ecx, edx
mov ecx, 0x67399080
mov ecx, edx
lea edi, [edx + ebx*2 + 0x157e]
cmp dword [ebp - 0x48], 0x400002
jne 0x40b5fa
mov edi, edi
push esi
push edi
pop dword [ebp - 0x3c]
sub esi, dword [ebp - 0x60]
mov ebx, dword [ebp - 0x64]
xor dword [ebp - 0x50], 0xffffff8b
mov esp, ebx
lea ebx, [esi + eax*2 + 0x6b]
or edi, dword [ebp - 0x4c]
pop dword [ebp - 0x64]
ret 8
add ecx, eax
jmp 0x40b7e0
cmp dword [ebp - 0x38], 0x400002
jne 0x40b7b9
mov edx, dword [ebp - 0x24]
sub ebx, dword [ebp - 0x58]
cmp dword [edx], 0
je 0x40b7db
lea eax, [ebp - 0x24]
push eax
mov eax, dword [ebp - 0x24]
push dword [eax]
call fcn.00403812
jmp 0x40b7e0
jmp 0x40b803
add ecx, 0xcbfc
add esi, dword [ebp - 0x54]
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x84], edx
cmp word [eax + 8], 1
jne 0x40b79b
sub eax, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x24]
xor dword [ebp - 0x7c], 0x947
and eax, dword [ebp - 0x84]
cmp word [edx + 8], 1
jne 0x40b845
lea ebx, [ebp - 0x80]
push ebx
mov ebx, dword [ebp - 0x24]
push dword [ebx + 0x18]
call fcn.00403812
and edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x64]
lea ecx, [ecx - 0xc]
push ecx
push dword [ebp - 0x80]
call fcn.00403812
mov dword [ebp - 0x28], ebx
sub esi, dword [ebp - 0x28]
push 0xf9f60992
mov eax, dword [ebp - 0x44]
or dword [ebp - 0x60], 0x201
push dword [eax + 0xa0]
xor eax, ecx
xor dword [ebp - 0x54], edi
call fcn.00416818
mov edi, esi
lea eax, [eax + ecx*4 + 0x165]
cmp dword [ebp - 0x38], 0xffffffb8
jne 0x40b882
mov eax, dword [eax]
test eax, eax
je 0x40b85f
mov edx, dword [ecx + 0x10]
mov edi, dword [ebp - 0x80]
and eax, dword [ebp - 0x28]
or esi, dword [ebp - 0x60]
or dword [ebp - 0x80], edi
je 0x40b8fd
mov edx, dword [ebp - 0x64]
lea edx, [edx - 4]
push edx
push dword [ebp - 0x80]
call fcn.00403812
cmp dword [ebp - 0x38], 0x400002
jne 0x40b8bc
push 1
mov eax, dword [ebp - 0x64]
push dword [eax - 8]
cmp dword [ebp - 0x48], 0x400002
jne 0x40b8df
call fcn.00409f3d
pop ecx
mov ecx, dword [0x4193a6]
mov edx, dword [ebp - 0x40]
sub edi, ebx
and ecx, edx
mov edi, dword [ebp - 0x64]
add edi, 0xfffffffc
call dword [edi]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
xor esi, dword [ebp - 0x84]
lea edx, [ebp - 0x80]
push edx
mov edx, dword [ebp - 0x64]
push dword [edx - 0xc]
call fcn.00403812
or dword [ebp - 0x60], eax
cmp dword [ebp - 0x38], 1
je 0x40b92d
jne 0x40b954
call fcn.0040b4ab
and dword [eax], 0
call 0x40e839
mov dword [eax], 0x16
pop dword [ebp - 0x44]
cmp dword [ebp - 0x48], 0
je 0x40b93d
pop ebx
mov esp, ebp
pop ebp
pop dword [ebp - 0x24]
cmp dword [ebp - 0x38], 0x400002
jne 0x40b957
jne 0x40b9b8
push dword [ebp + 0x24]
mov esi, dword [ebp + 0xc]
push dword [ebp + 0x20]
cmp dword [ebp - 0x48], 0x65
jne 0x40b97c
mov dword [esi + 0x250], eax
mov dword [esi + 0x258], eax
mov dword [esi + 0x25c], eax
call dword [0x4190a8]
test eax, eax
jns 0x40b978
pop dword [ebp - 0x3c]
mov esi, dword [ebp - 0x64]
and dword [ebp - 0x58], ebx
mov esp, esi
sub esi, ebx
sub edx, dword [ebp - 0x78]
cmp dword [ebp - 0x48], 0
je 0x40b99d
call 0x40be5b
mov eax, dword [edi + 4]
pop dword [ebp - 0x64]
or ebx, ecx
ret 8
xor dword [ebp - 0x4c], edi
mov dword [ebp - 0x64], esp
and ebx, ecx
add esp, 0xffffffe8
or edi, dword [ebp - 0x78]
push dword [ebp - 0x3c]
xor eax, dword [ebp - 0x50]
and esi, ecx
push dword [ebp - 0x24]
push dword [ebp - 0x44]
lea esi, [ebp - 0x44]
push esi
mov esi, dword [ebp - 0x64]
push dword [esi + 8]
call fcn.00403812
xor ebx, dword [ebp - 0x60]
mov edx, dword [ebp - 0x64]
or eax, edx
sub eax, ebx
mov dword [edx - 0xc], 0
add esi, 0x7df1
mov ebx, dword [ebp - 0x80]
xor eax, dword [ebp - 0x30]
cmp dword [ebp - 0x38], 1
je 0x40ba1d
mov eax, dword [ebp - 0x44]
add dword [ebp - 0x50], 0xaf
cmp dword [ebp - 0x48], 0
je 0x40ba3c
lea edi, [eax*4 + 0x440640]
call fcn.0040632b
lea ebx, [eax + 0xc78]
mov dword [ebp - 0x80], ebx
push dword [ebp - 0x80]
push dword [ebp - 0x44]
sub ebx, esi
call fcn.0041268d
mov ecx, dword [ebp - 0x80]
and edi, dword [ebp - 0x84]
mov dword [ebp - 0x2c], edx
or dword [ebp - 0x80], ecx
je 0x40c1f5
xor eax, dword [ebp - 0x60]
sub ebx, dword [ebp - 0x4c]
mov edi, dword [ebp - 0x64]
lea edi, [edi - 4]
push edi
push dword [ebp - 0x80]
call fcn.00403812
mov ebx, dword [ebp - 0x64]
lea ebx, [ebx - 8]
push ebx
push dword [ebp - 0x40]
call fcn.00403812
and ecx, eax
lea edx, [ebp - 0x40]
push edx
mov edx, dword [ebp - 0x64]
push dword [edx + 0xc]
call fcn.00403812
xor edi, dword [ebp - 0x4c]
cmp dword [ebp - 0x48], 0xffffff9f
jne 0x40bab6
pop ecx
pop ecx
mov dword [esi + 0x24], eax
cmp eax, ebx
jne 0x40bacc
mov eax, 0x41978c
lea eax, [ebp - 0x80]
push eax
mov eax, dword [ebp - 0x64]
push dword [eax - 8]
call fcn.00403812
xor dword [ebp - 0x84], 0xffffffe1
or word [ebp - 0x84], 0xb56
mov eax, dword [ebp - 0x80]
mov edi, dword [ebp - 0x80]
lea eax, [edi + 0x24]
mov dword [ebp - 0x80], eax
mov eax, dword [ebp - 0x40]
lea eax, [eax + 4]
push eax
push dword [ebp - 0x80]
call fcn.00403812
and word [ebp - 0x4c], 0xf08
cmp dword [ebp - 0x38], 1
je 0x40bb06
pop ebp
mov edi, edi
push ebp
mov ebp, esp
push ecx
lea ecx, [ebp - 0x80]
push ecx
mov ecx, dword [ebp - 0x64]
push dword [ecx - 4]
call fcn.00403812
cmp dword [ebp - 0x48], 0x400002
jne 0x40bb28
push ecx
push eax
call fcn.0040d730
mov edx, dword [ebp - 0x40]
lea edx, [edx + 8]
push edx
push dword [ebp - 0x80]
call fcn.00403812
add dword [ebp - 0x48], 0
je 0x40bb5a
push 0x419311
call fcn.00409760
push 0x419468
call 0x41463d
lea ecx, [ebp - 0x2228]
mov ebx, dword [ebp - 0x40]
cmp dword [ebp - 0x38], 0x400002
jne 0x40bb6e
mov dword [ebx + 0xc], 8
and dword [ebp - 0x68], edi
cmp dword [ebp - 0x38], 0xffffffc4
jne 0x40bb8b
je 0x40bb40
test eax, 0xff000000
mov ecx, dword [ebp - 0x5c]
or edx, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x40]
add word [ebp - 0x6c], 0x671
lea ecx, [edx + 0x10]
mov dword [ebp - 0x5c], ecx
mov ecx, dword [ebp - 0x5c]
add dword [ebp - 0x6c], ecx
mov dword [ecx], 0x3f577699
and edx, eax
and esi, ecx
mov ebx, dword [ebp - 0x5c]
xor dword [ebp - 0x68], 0xffffffb2
xor dword [ebp - 0x34], ecx
mov dword [ebx + 4], 0xdd979864
cmp dword [ebp - 0x48], 0xffffff90
jne 0x40bbd6
push eax
call dword [0x419218]
mov esi, eax
cmp dword [ebp - 0x38], 1
je 0x40bbe3
int3
mov esi, dword [ebp - 0x5c]
and ebx, edx
mov dword [esi + 8], 0xc7979076
xor eax, ecx
mov edi, dword [ebp - 0x5c]
add word [ebp - 0x28], 0x488
mov dword [edi + 0xc], 0xc88bbb88
lea ebx, [ebx + edi*8 - 0x65]
add eax, esi
add edi, dword [ebp - 0x4c]
xor dword [ebp - 0x30], 0xffffffb5
mov eax, dword [ebp - 0x5c]
add ebx, edx
mov dword [eax + 0x10], 0x5590e828
or ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x5c]
xor edi, dword [ebp - 0x7c]
cmp dword [ebp - 0x38], 1
je 0x40bc43
lea ecx, [esi + 0x48]
push edi
cmp dword [eax], ecx
jne 0x40bc07
cmp dword [ebp + 0x14], 1
jne 0x40bcae
mov dword [edx + 0x14], 0x3777a537
sub edx, dword [ebp - 0x50]
add ecx, dword [ebp - 0x60]
xor dword [ebp - 0x7c], 0xf86
mov edx, dword [ebp - 0x5c]
sub eax, dword [ebp - 0x34]
sub eax, dword [ebp - 0x34]
mov dword [edx + 0x18], 0xb256946c
lea edi, [ecx + edx*2 + 0x9e6]
cmp dword [ebp - 0x38], 1
je 0x40bc7e
pop esi
mov edi, dword [ebp - 0x5c]
cmp dword [ebp - 0x38], 1
je 0x40bc90
lea ecx, [ebp - 0x3c]
lea ecx, [ebp - 0x24]
mov dword [edi + 0x1c], 0xa8569c7e
and ecx, esi
mov ecx, edi
or edi, ecx
mov ebx, dword [ebp - 0x5c]
add dword [ebp - 0x48], 0
je 0x40bcb5
mov eax, edi
call 0x417da7
mov edi, edi
mov dword [ebx + 0x20], 0
cmp dword [ebp - 0x38], 1
je 0x40bccc
add edx, dword [ebp - 0x78]
cmp dword [ebp - 0x48], 0
je 0x40bcdb
cmp eax, 0xffffffff
mov esi, dword [ebp - 0x5c]
mov edi, dword [ebp - 0x40]
lea esi, [edi + 0x38]
mov dword [ebp - 0x5c], esi
or ebx, dword [ebp - 0x54]
and ebx, dword [ebp - 0x68]
mov edx, dword [ebp - 0x5c]
mov dword [edx], 0x80009
test dword [ebp - 0x48], 0
je 0x40bd0c
mov dword [esi + 0x10], edi
cmp eax, 0x10
jb 0x40bd7b
mov eax, dword [esi]
mov edx, dword [ebp - 0x5c]
add dword [ebp - 0x48], 0
je 0x40bd22
mov ecx, esi
mov ebx, eax
call 0x404c92
push eax
mov dword [edx + 4], 0x60007
mov eax, dword [ebp - 0x5c]
add edi, ebx
or esi, dword [ebp - 0x34]
mov dword [eax + 8], 0x50006
or edx, dword [ebp - 0x68]
test dword [ebp - 0x48], 0
je 0x40bd50
mov edi, dword [ebp - 0x5c]
mov dword [edi + 0xc], 0x70008
add edx, 0x46fb
mov edx, edi
mov ecx, dword [ebp - 0x5c]
cmp dword [ebp - 0x38], 0xfffffff3
jne 0x40bd84
push dword [eax + edi]
call dword [0x4191b8]
mov dword [ecx + 0x10], 0x50009
and ecx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x5c]
xor edx, dword [ebp - 0x84]
mov dword [eax + 0x14], 0x40005
and esi, dword [ebp - 0x2c]
sub eax, edx
mov eax, dword [ebp - 0x5c]
mov dword [eax + 0x18], 0x50006
cmp dword [ebp - 0x48], 0x400002
jne 0x40bdc5
pop esi
xor ecx, ebp
sub ebx, dword [ebp - 0x7c]
mov ebx, dword [ebp - 0x5c]
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x48], 0xffffffbb
jne 0x40bded
cmp dword [ebp + 0xc], 0
jne 0x40c210
push dword [0x419482]
mov esi, dword [0x419852]
mov dword [ebx + 0x1c], 0x50006
add ebx, dword [ebp - 0x60]
or word [ebp - 0x58], 0xc91
mov dword [ebp - 0x58], 0xf3a
test dword [ebp - 0x48], 0
je 0x40be1c
mov ebx, dword [ebp - 0x5c]
mov word [ebp - 0x54], 0x88d
sub eax, dword [ebp - 0x58]
mov dword [ebx + 0x20], 0
add esi, dword [ebp - 0x2c]
cmp dword [ebp - 0x48], 0x59
jne 0x40be49
jne 0x40be43
mov eax, dword [ebp + 0x14]
push eax
mov ecx, 0x4195dc
mov edi, dword [ebp - 0x80]
mov edx, dword [ebp - 0x44]
and ebx, dword [ebp - 0x7c]
add dword [ebp - 0x48], 0
je 0x40be5c
push esi
lea edi, [edx + 0x668]
mov dword [ebp - 0x80], edi
mov edi, dword [ebp - 0x40]
lea edi, [edi + 0x60]
push edi
push dword [ebp - 0x80]
call fcn.00403812
mov esi, dword [ebp - 0x40]
lea esi, [esi + 0x68]
push esi
push dword [ebp - 0x44]
call fcn.00403812
add eax, dword [ebp - 0x28]
push dword [ebp - 0x40]
add eax, ecx
xor ecx, esi
call fcn.00412c08
lea ecx, [ebp - 0x40]
push ecx
mov ecx, dword [ebp - 0x44]
push dword [ecx + 0xa4]
call fcn.00403812
or dword [ebp - 0x30], edx
lea ebx, [ebp - 0x40]
push ebx
mov ebx, dword [ebp - 0x40]
push dword [ebx + 0x3c]
call fcn.00403853
add ebx, dword [ebp - 0x4c]
lea esi, [ebp - 0x80]
push esi
mov esi, dword [ebp - 0x40]
push dword [esi + 0x38]
call fcn.00403812
and dword [ebp - 0x28], 0xffffffe9
mov eax, dword [ebp - 0x64]
lea eax, [eax - 0x18]
push eax
push dword [ebp - 0x80]
call fcn.00403812
or esi, dword [ebp - 0x84]
lea edi, [ebp - 0x5c]
push edi
mov edi, dword [ebp - 0x40]
push dword [edi + 6]
call fcn.00403812
mov byte [ebp - 0x50], 0xe8
cmp dword [ebp - 0x38], 0x48
jne 0x40bf01
push ebp
mov ebp, esp
push esi
xor dword [ebp - 0x34], edi
mov ecx, 0xffff
add dword [ebp - 0x48], 0
je 0x40bf18
push edx
push eax
push edi
lea ecx, [ebx + 0x1c]
and dword [ebp - 0x5c], ecx
cmp dword [ebp - 0x48], 0xffffffbe
jne 0x40bf34
sub esp, 0x4c
mov eax, dword [0x4195a6]
xor eax, ebp
mov dword [ebp - 4], eax
mov edx, dword [ebp + 0x1c]
lea esi, [ebp - 0x80]
push esi
mov esi, dword [ebp - 0x40]
push dword [esi + 0x14]
call fcn.00403812
or esi, dword [ebp - 0x78]
sub eax, ebx
and dword [ebp - 0x34], 0x5d
mov edi, 0xffff
add dword [ebp - 0x78], edx
and dword [ebp - 0x80], edi
cmp dword [ebp - 0x38], 0x400002
jne 0x40bf7a
mov dword [ebp - 0x24], ecx
mov ecx, dword [0x4196ed]
add ecx, dword [0x435558]
cmp dword [ebp - 0x24], ecx
jge 0x40bfcf
lea edx, [ebp - 0x40]
mov edi, eax
xor dword [ebp - 0x6c], ebx
push edx
cmp dword [ebp - 0x38], 0x47
jne 0x40bf92
mov byte [ebp - 0x20], dl
mov ebx, dword [ebp - 0x20]
push dword [ebp - 0x80]
xor esi, ebx
add edx, ecx
call fcn.00403853
add edi, dword [ebp - 0x4c]
mov ecx, 0x18
or ebx, dword [ebp - 0x68]
test dword [ebp - 0x48], 0
je 0x40bfb6
push eax
add dword [ebp - 0x40], ecx
and dword [ebp - 0x30], 0x2a
add edi, dword [ebp - 0x68]
jmp 0x40c1db
cmp dword [ebp - 0x48], 0xffffffdd
jne 0x40bfd5
pop ecx
mov edi, dword [ebp - 0x23c]
mov eax, dword [ebp - 0x40]
cmp dword [eax], 0x7461642e
jne 0x40c197
add dword [ebp - 0x84], 0xae4
add edx, 0xae4a
mov edx, dword [ebp - 0x40]
xor edi, dword [ebp - 0x54]
add ecx, dword [ebp - 0x84]
test dword [edx + 0x24], 0xc0000040
je 0x40c197
mov byte [ebp - 0x54], 0x94
lea ecx, [ebp - 0x80]
push ecx
mov ecx, dword [ebp - 0x44]
push dword [ecx + 0xa4]
call fcn.00403812
or word [ebp - 0x4c], 0xe51
lea esi, [ebp - 0x80]
push esi
mov esi, dword [ebp - 0x40]
push dword [esi + 0xc]
call fcn.00403853
add edi, 0x2b61
mov ebx, dword [ebp - 0x64]
lea ebx, [ebx - 0x10]
push ebx
push dword [ebp - 0x80]
call fcn.00403812
xor esi, dword [ebp - 0x50]
mov esi, dword [ebp - 0x64]
and edx, dword [ebp - 0x28]
push dword [esi - 0x18]
sub eax, dword [ebp - 0x68]
mov edi, dword [ebp - 0x40]
xor word [ebp - 0x54], 0xbcd
add eax, dword [ebp - 0x4c]
push dword [edi + 8]
xor esi, dword [ebp - 0x68]
call fcn.00415d4f
mov eax, dword [ebp - 0x64]
lea eax, [eax - 0x14]
push eax
push dword [ebp - 0x80]
call fcn.00403812
lea edi, [ebp - 0x24]
push edi
mov edi, dword [ebp - 0x64]
push dword [edi + 0xc]
call fcn.00403812
and dword [ebp - 0x34], 0xe24
xor ecx, dword [ebp - 0x54]
mov edi, dword [ebp - 0x40]
and dword [ebp - 0x58], ecx
mov ebx, dword [ebp - 0x44]
lea edi, [ebx + 0x668]
mov dword [ebp - 0x40], edi
sub eax, dword [ebp - 0x2c]
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp - 0x3c]
or ecx, dword [ebp - 0x78]
add edx, ecx
mov edi, dword [ebp - 0x24]
lea eax, [edi + 0x10]
mov dword [ebp - 0x3c], eax
jmp 0x40c165
add eax, ebx
cmp dword [ebp - 0x48], 0xfffffff0
jne 0x40c0e8
mov esi, dword [edx + esi]
mov ecx, dword [esi + ecx]
add ecx, edx
mov edx, dword [ebp - 0x40]
push dword [edx]
mov ecx, dword [ebp - 0x64]
xor eax, esi
and esi, edx
push dword [ecx - 0x14]
and dword [ebp - 0x78], 0x68
mov edx, dword [ebp - 0x64]
push dword [edx - 0x10]
sub eax, ecx
mov ebx, dword [ebp - 0x3c]
push dword [ebx]
add ecx, eax
mov eax, dword [ebp - 0x64]
push dword [eax - 4]
xor edi, eax
call fcn.0040c28d
cmp dword [ebp - 0x48], 0
je 0x40c12c
mov eax, 4
add dword [ebp - 0x3c], eax
cmp dword [ebp - 0x48], 0x400002
jne 0x40c14d
cmp dword [ebp - 0x48], 0xffffff8d
jne 0x40c15e
add dword [ebp - 0x40], 4
lea edx, [ebx + 0x20]
xor eax, ebx
mov eax, dword [ebp - 0x3c]
cmp dword [eax], 0
jne 0x40c0d5
cmp dword [ebp - 0x38], 0x400002
jne 0x40c192
sub dword [ebp - 0x24], edx
not edi
mov ebx, dword [ebp - 0x20]
lea ebx, [ebp + ebx*4 - 0x10]
mov esi, dword [ebx]
mov ecx, esi
jmp 0x40c1f5
cmp dword [ebp - 0x38], 0x400002
jne 0x40c1ae
push eax
call fcn.0041474c
or edi, eax
lea eax, [ebx + 0x30]
mov edx, 1
and edi, ecx
sub dword [ebp - 0x5c], edx
or ecx, dword [ebp - 0x68]
mov word [ebp - 0x58], 0x11d
mov byte [ebp - 0x7c], 0x9d
mov esi, 0x28
add dword [ebp - 0x40], esi
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x48], 0xffffffd3
jne 0x40c1db
je 0x40c1ef
add ebx, 0x9ab3
sub ebx, edi
mov ecx, dword [ebp - 0x5c]
or dword [ebp - 0x5c], ecx
jne 0x40bfc5
add ecx, dword [ebp - 0x4c]
xor dword [ebp - 0x78], ecx
lea edi, [ebp - 0x80]
push edi
mov edi, dword [ebp - 0x64]
push dword [edi - 0xc]
call fcn.00403812
cmp dword [ebp - 0x48], 0x400002
jne 0x40c216
pop ebx
pop ebp
int3
pop dword [ebp - 0x44]
cmp dword [ebp - 0x38], 1
je 0x40c238
test eax, eax
je 0x40e120
push 0
push dword [ebp - 0x1010]
push dword [ebp - 0x1014]
pop dword [ebp - 0x24]
cmp dword [ebp - 0x38], 0x400002
jne 0x40c252
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
xor eax, eax
cmp dword [ebp - 0x38], 1
je 0x40c264
add dword [ebp - 0x1ac0], esi
mov word [eax], dx
pop dword [ebp - 0x3c]
and eax, edx
or edx, dword [ebp - 0x60]
mov ebx, dword [ebp - 0x64]
mov esp, ebx
pop dword [ebp - 0x64]
sub esi, dword [ebp - 0x54]
or ecx, dword [ebp - 0x30]
add edx, ebx
cmp dword [ebp - 0x38], 1
je 0x40c28a
xor eax, ebp
mov dword [ebp - 4], eax
ret 8
mov esi, dword [edx + esi]
mov ecx, dword [esi + ecx]
add ecx, edx
add eax, ecx
pop esi
pop ebp
mov edi, dword [ebp - 0x64]
mov dword [edi - 0x34], 0
mov byte [ebp - 0x4c], 0xbe
or esi, eax
or edx, ecx
push 0x8000
and ebx, dword [ebp - 0x34]
and edx, dword [ebp - 0x4c]
mov esi, dword [ebp - 0x80]
or dword [ebp - 0x60], 0x43
cmp dword [ebp - 0x38], 1
je 0x40d13a
push 0
lea eax, [ebp + 8]
push eax
mov ebx, dword [ebp - 0x64]
lea esi, [ebx - 0x34]
mov dword [ebp - 0x80], esi
sub eax, dword [ebp - 0x4c]
or word [ebp - 0x6c], 0xe55
cmp dword [ebp - 0x48], 0
je 0x40d15a
lea eax, [ebp - 0xc]
push 2
push dword [ebp - 0x80]
cmp dword [ebp - 0x38], 1
je 0x40d16b
add esp, 8
xor edi, edi
mov ecx, dword [ebp - 0x80]
mov ebx, dword [ebp - 0x64]
mov edi, eax
lea ecx, [ebx - 0x30]
mov dword [ebp - 0x80], ecx
add esi, dword [ebp - 0x68]
add esi, ecx
push dword [ebp - 0x80]
and edx, dword [ebp - 0x58]
xor edi, edx
and ecx, dword [ebp - 0x6c]
add esi, dword [ebp - 0x34]
push 0xffffffff
xor dword [ebp - 0x6c], 0xca1
cmp dword [ebp - 0x48], 0x400002
jne 0x40d1cf
mov dword [ecx], 0
and dword [ebp - 0x8c], 0xfffffffe
mov dword [ebp - 0x90], 0
mov dword [ebp - 0xcc], 0x43197c
mov eax, dword [ebp - 0x94]
mov byte [ebp - 4], 0xd
sub edi, dword [ebp - 0x84]
mov edx, dword [ebp - 0x40]
xor ecx, dword [ebp - 0x54]
mov esi, dword [ebp - 0x44]
add esi, 0x5a4
call dword [esi]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
and esi, dword [ebp - 0x54]
or ecx, dword [ebp - 0x60]
lea edi, [ebp - 0x80]
push edi
mov edi, dword [ebp - 0x64]
push dword [edi - 0x38]
call fcn.00403812
sub edx, ecx
cmp dword [ebp - 0x38], 1
je 0x40d20e
sbb eax, eax
pop dword [ebp - 0x44]
mov edx, dword [ebp - 0x64]
or edi, edx
mov esp, edx
xor dword [ebp - 0x50], 0xffffffc8
pop dword [ebp - 0x64]
or dword [ebp - 0x30], 0x51c
ret 4
call fcn.0040c5da
and dword [esi + 0x1c], 0
push dword [edi + 0xfb4]
xor eax, dword [ebp - 0x54]
mov edi, dword [ebp - 0x44]
cmp dword [ebp - 0x38], 0x34
jne 0x40d9f5
push dword [edi + 0xfb0]
and dword [ebp - 0x68], eax
mov edx, dword [ebp - 0x80]
add esi, edi
sub eax, dword [ebp - 0x50]
mov ebx, dword [ebp - 0x44]
sub edi, dword [ebp - 0x54]
lea edx, [ebx + 0xf98]
mov dword [ebp - 0x80], edx
push dword [ebp - 0x80]
or ecx, dword [ebp - 0x6c]
and edx, edi
mov edi, dword [ebp - 0x64]
push dword [edi - 0x34]
cmp dword [ebp - 0x48], 0x400002
jne 0x40da3c
cmp esi, dword [eax + 0xc]
jae 0x40d9c5
mov edx, dword [eax + 8]
mov esi, dword [edx + esi*4]
xor ecx, ecx
mov edx, dword [ebp - 0x40]
mov edi, dword [ebp - 0x44]
add edi, 0x610
call dword [edi]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
and dword [ebp - 0x50], ebx
add esp, 0x10
sub edi, dword [ebp - 0x60]
mov edx, dword [ebp - 0x64]
add ebx, eax
add eax, ecx
push dword [edx - 0x34]
mov esi, dword [ebp - 0x64]
add ecx, dword [ebp - 0x60]
and edx, dword [ebp - 0x6c]
push dword [esi - 0x28]
call fcn.00411cbb
and dword [ebp - 0x6c], 0xffffffbc
or eax, dword [ebp - 0x84]
mov edi, dword [ebp - 0x64]
sub esi, dword [ebp - 0x28]
xor edx, dword [ebp - 0x50]
push dword [edi - 0x28]
cmp dword [ebp - 0x38], 1
je 0x40daa4
mov esi, dword [ebp - 0x80]
mov edx, dword [ebp - 0x64]
lea esi, [edx - 0x24]
mov dword [ebp - 0x80], esi
add edx, dword [ebp - 0x30]
cmp dword [ebp - 0x38], 0x400002
jne 0x40dac9
add ecx, 0xc
mov edx, dword [esp + 8]
lea eax, [edx + 0xc]
push dword [ebp - 0x80]
and word [ebp - 0x78], 0xb41
mov edx, dword [ebp - 0x40]
mov ebx, dword [ebp - 0x44]
add ebx, 0x5b0
call dword [ebx]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
xor eax, ecx
cmp dword [ebp - 0x38], 1
je 0x40dafc
push esi
call fcn.0040685b
pop ecx
test byte [esi + 0xc], 0x40
mov esi, dword [ebp - 0x80]
mov edx, dword [ebp - 0x64]
xor dword [ebp - 0x54], edx
lea esi, [edx - 0x24]
mov dword [ebp - 0x80], esi
add dword [ebp - 0x58], 0xd59
and edi, edx
push dword [ebp - 0x80]
cmp dword [ebp - 0x48], 0
je 0x40db24
push eax
push 0x15
push esi
mov edi, dword [ebp - 0x80]
xor esi, edi
or edx, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x64]
mov byte [ebp - 0x50], 0x43
lea edi, [ecx - 0x1c]
mov dword [ebp - 0x80], edi
add edx, 0x7d5
lea edi, [eax + 0xc4e]
xor edi, dword [ebp - 0x7c]
push dword [ebp - 0x80]
call fcn.00412aa6
add edi, edx
cmp dword [ebp - 0x38], 0x400002
jne 0x40db6d
add esi, 0x8570
mov esi, edi
push 0
add edi, dword [ebp - 0x68]
sub edx, dword [ebp - 0x54]
mov esi, dword [ebp - 0x80]
and ecx, dword [ebp - 0x78]
mov ecx, dword [ebp - 0x64]
lea esi, [ecx - 0x1c]
mov dword [ebp - 0x80], esi
cmp dword [ebp - 0x48], 0x400002
jne 0x40dbae
push eax
mov eax, esi
and eax, 0x3ff
push 0x4197d3
or eax, 0x400
push eax
and edi, ecx
or dword [ebp - 0x84], 0xffffffee
push dword [ebp - 0x80]
and edx, dword [ebp - 0x68]
push 0x1f0001
test dword [ebp - 0x48], 0
je 0x40dbdc
cmp ecx, edx
jne 0x40dbce
or eax, 0xc00
or eax, 0x800
xor ecx, edx
or ebx, dword [ebp - 0x54]
mov esi, dword [ebp - 0x80]
add dword [ebp - 0x28], 0xd7a
lea edx, [esi + 0x17d4]
mov ebx, dword [ebp - 0x64]
cmp dword [ebp - 0x38], 1
je 0x40dc0b
mov dword fs:[0], eax
push 1
lea ecx, [ebp - 0xbc]
lea esi, [ebx - 4]
mov dword [ebp - 0x80], esi
or edi, ebx
test dword [ebp - 0x48], 0
je 0x40dc2e
shr ecx, 1
shr edx, 1
cmp ecx, edx
jbe fcn.0040dca4
mov ecx, 0xf
lea esi, [edi + 0x1e44]
mov word [ebp - 0x68], 0xdca
and dword [ebp - 0x44], ecx
lea edx, [ebp - 0x80]
mov word [ebp - 0x30], 0x998
mov dword [ebp - 0x2c], ebx
push edx
xor edi, edx
sub esi, eax
push dword [ebp - 0x44]
call fcn.00403853
or dword [ebp - 0x7c], eax
mov ebx, dword [ebp - 0x24]
add dword [ebp - 0x48], 0
je 0x40df6b
mov eax, edi
pop edi
pop esi
pop ebp
mov cl, byte [ebp - 0x80]
add edx, dword [ebp - 0x60]
mov byte [ebx], cl
add dword [ebp - 0x24], 1
and edi, dword [ebp - 0x68]
cmp dword [ebp - 0x48], 0x400002
jne 0x40df91
test eax, eax
je 0x4179ad
mov edx, dword [ebp - 0x3c]
cmp dword [ebp - 0x38], 0x400002
jne 0x40dfa7
push edi
push eax
lea edx, [ebx + esi + 1]
push edx
cmp byte [edx], 0x2d
jne 0x40dfd8
add dword [ebp - 0x60], 0x6e
cmp dword [ebp - 0x48], 0x67
jne 0x40dfca
mov esi, 2
add dword [ebp - 0x3c], esi
lea ecx, [edi + ebx*8 + 0x76]
or ecx, eax
mov ecx, dword [ebp - 0x3c]
lea eax, [esi + 0xdca]
cmp dword [ebp - 0x38], 0x6b
jne 0x40dff3
shr ecx, 2
je 0x40e02e
mov edx, dword [esi]
mov dword [edi], edx
mov dl, byte [ebp - 0x40]
cmp dword [ebp - 0x48], 0x400002
jne 0x40e016
mov dword [ebp - 4], 0
call 0x415364
add esp, 8
test eax, eax
mov dl, byte [ecx]
mov byte [ebp - 0x40], dl
cmp dword [ebp - 0x38], 1
je 0x40e029
test eax, eax
mov edx, 0xff
add ebx, edx
and dword [ebp - 0x40], edx
cmp dword [ebp - 0x48], 0x15
jne 0x40e04f
add esp, 4
mov dword [ebp - 0x7c], esi
mov dword [ebp - 4], 0xffffffff
test eax, eax
je 0x40e04f
mov esi, eax
and dword [ebp - 0x34], ecx
add eax, 0xe549
cmp dword [ebp - 0x40], 0x40
jae 0x40e0a9
add dword [ebp - 0x48], 0
je 0x40e07f
add ebx, 0x10
cmp esi, dword [edi]
jl 0x40e011
call 0x40599c
push 1
mov dword [ebp - 0x44], 0xffffffff
cmp dword [ebp - 0x48], 0x400002
jne 0x40e0a1
push 1
push eax
call 0x40866b
add esp, 0x10
cmp esi, eax
jne 0x40e071
jmp 0x40e0d8
mov dword [ebp - 0x44], 0
or ebx, dword [ebp - 0x78]
cmp dword [ebp - 0x48], 2
jne 0x40e0d8
mov edi, 0x37
sub dword [ebp - 0x40], edi
or dword [ebp - 0x30], 0x32a
and dword [ebp - 0x84], esi
mov ecx, 7
cmp dword [ebp - 0x48], 0
je 0x40e108
mov edi, edi
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
mov ecx, 0x419522
and dword [ebp - 0x44], ecx
add dword [ebp - 0x3c], 2
and dword [ebp - 0x58], edx
lea ecx, [ebp - 0x44]
add esi, edi
push ecx
or ebx, esi
push dword [ebp - 0x40]
sub ecx, eax
call fcn.00403853
js 0x40e237
cmp dword [ebp - 0x48], 0x400002
jne 0x40e142
cmp eax, edi
jne 0x40e145
call fcn.00415f6e
lea esi, [ebp - 0x80]
mov dword [ebp - 0x6c], 0xd1e
and dword [ebp - 0x54], ebx
push esi
xor edi, dword [ebp - 0x68]
cmp dword [ebp - 0x48], 0x400002
jne 0x40e16b
call fcn.0040645e
pop ebx
mov eax, edi
pop edi
pop esi
mov esp, ebp
push dword [ebp - 0x44]
or edx, dword [ebp - 0x6c]
call fcn.00403812
or eax, edi
mov ecx, dword [ebp - 0x80]
shl ecx, 4
mov dword [ebp - 0x80], ecx
mov esi, dword [ebp - 0x3c]
or edx, ebx
mov bl, byte [ebp - 0x40]
mov bl, byte [esi]
mov eax, edi
mov byte [ebp - 0x40], bl
xor eax, dword [ebp - 0x84]
mov edi, 0xff
add ecx, dword [ebp - 0x68]
and dword [ebp - 0x40], edi
or esi, dword [ebp - 0x6c]
mov edx, ebx
cmp dword [ebp - 0x40], 0x40
jae 0x40e1e7
xor edi, ecx
mov edi, ebx
add esi, dword [ebp - 0x78]
mov dword [ebp - 0x44], 0xffffffff
jmp 0x40e1ee
mov dword [ebp - 0x44], 0
lea ebx, [edx]
mov ebx, 0x37
sub dword [ebp - 0x40], ebx
and eax, dword [ebp - 0x30]
add edx, esi
add dword [ebp - 0x7c], ecx
mov eax, 7
add ebx, 0xa079
and dword [ebp - 0x44], eax
add dword [ebp - 0x3c], 2
sub ecx, dword [ebp - 0x50]
lea eax, [ebp - 0x44]
add ecx, dword [ebp - 0x58]
push eax
lea eax, [edi + eax*4 - 0x71]
push dword [ebp - 0x40]
and esi, dword [ebp - 0x50]
call fcn.00403853
jns 0x40df2a
xor edi, dword [ebp - 0x60]
cmp dword [ebp - 0x48], 0
je 0x40e248
mov eax, dword [ecx]
mov edx, dword [ebp + 8]
mov eax, dword [eax + 0xc]
pop dword [ebp - 0x44]
or edi, edx
or dword [ebp - 0x28], 0xf96
cmp dword [ebp - 0x48], 0xf
jne 0x40e26e
mov ebx, eax
sar ebx, 5
shl ecx, 6
add ecx, dword [ebx*4 + 0x440640]
mov ecx, edx
pop dword [ebp - 0x24]
lea edi, [edi + ecx*2 + 0xd]
add dword [ebp - 0x50], 0xc69
xor eax, dword [ebp - 0x30]
pop dword [ebp - 0x3c]
cmp dword [ebp - 0x38], 1
je 0x40e291
and esi, edi
je 0x40e2e0
mov edx, dword [esi]
mov esi, dword [ebp - 0x64]
mov esp, esi
test dword [ebp - 0x48], 0
je 0x40e2b4
add byte [edi + ebp*4 - 0x5067ffbf], al
inc ecx
add byte [ebx + 0x5f5e0845], cl
nop
mov al, byte [esi + 3]
lea edx, [edx + 0x13d5]
pop dword [ebp - 0x64]
add eax, edi
cmp dword [ebp - 0x48], 0
je 0x40e2dd
ret 8
xor edi, edx
mov edi, esi
cmp dword [ebp - 0x38], 0x400002
jne fcn.0040e2f7
lea eax, [ebp - 0x1a4]
push eax
add dword [ebp - 0x2c], eax
push dword [esi + 0x10]
sub esi, edi
or dword [ebp - 0x4c], 0xc00
mov eax, dword [ebp - 0x80]
cmp dword [ebp - 0x38], 0xffffffc9
jne 0x40f038
je 0x40f049
test eax, 0x400
jne 0x40f014
mov ebx, dword [ebp - 0x64]
cmp dword [ebp - 0x38], 1
je 0x40f059
mov eax, 0x419794
mov eax, 0x4193fc
mov eax, 0x419489
push 0x4192b4
push eax
lea eax, [ebx - 0x24]
mov dword [ebp - 0x80], eax
cmp dword [ebp - 0x48], 0xffffffab
jne 0x40f070
sub esi, edx
je 0x40f031
xor edx, edx
test esi, esi
push dword [ebp - 0x80]
test dword [ebp - 0x48], 0
je 0x40f092
push 0x4194b4
push eax
mov byte [ebp - 4], 5
call fcn.00410dd9
add esp, 8
push eax
sub esi, edx
mov edx, dword [ebp - 0x40]
add ecx, esi
mov edi, dword [ebp - 0x44]
add edi, 0x5b0
call dword [edi]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
xor edi, dword [ebp - 0x6c]
add ecx, 0xafb4
cmp dword [ebp - 0x38], 1
je 0x40f0c1
mov esp, ebp
pop ebp
int3
mov edi, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x64]
cmp dword [ebp - 0x48], 0xffffffb2
jne 0x40f0db
jne 0x40f0bf
push esi
push 1
cmp dword [esi + 0x10], 0
jne 0x40f114
lea edi, [ecx - 0x28]
mov dword [ebp - 0x80], edi
and word [ebp - 0x28], 0xfc5
cmp dword [ebp - 0x38], 1
je 0x40f0f9
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], ecx
xor edi, dword [ebp - 0x58]
test dword [ebp - 0x48], 0
je 0x40f111
mov dword [eax + 0x60], 0x64
mov ecx, dword [edi]
push dword [ebp - 0x80]
xor esi, dword [ebp - 0x84]
cmp dword [ebp - 0x48], 0xf
jne 0x40f12f
mov eax, dword [ebp + 8]
push dword [eax + 0x18]
call 0x40bc7d
pop ecx
mov edx, dword [ebp - 0x64]
or edi, esi
xor edi, dword [ebp - 0x6c]
push dword [edx - 0x2c]
mov ebx, dword [ebp - 0x64]
add esi, dword [ebp - 0x58]
push dword [ebx - 0x30]
add esi, 0x6bdb
push 2
mov dword [ebp - 0x7c], 0xdfd
cmp dword [ebp - 0x38], 0x400002
jne 0x40f16c
je 0x40f114
mov ecx, dword [ebp - 8]
and dword [ecx + 0x70], 0xfffffffd
mov edi, edi
mov edi, dword [ebp - 0x80]
cmp dword [ebp - 0x48], 0x46
jne 0x40f188
push eax
push ecx
lea ecx, [ebp - 0x42c]
call 0x40af49
mov edi, eax
push esi
mov edx, dword [ebp - 0x64]
and ebx, ecx
add eax, dword [ebp - 0x7c]
lea edi, [edx - 0x24]
mov dword [ebp - 0x80], edi
or dword [ebp - 0x28], 0x7d
cmp dword [ebp - 0x38], 0x400002
jne 0x40f1b3
push 0xffffffffffffffff
push 0x419462
mov eax, dword fs:[0]
cmp dword [ebp - 0x48], 0xffffffce
jne 0x40f1c3
push 0x10
push 0x4192db
push dword [ebp - 0x80]
mov dword [ebp - 0x30], edx
mov edx, dword [ebp - 0x64]
push dword [edx - 0x1c]
mov edx, dword [ebp - 0x40]
test dword [ebp - 0x48], 0
je 0x40f1e5
add edi, eax
mov edi, edi
insb byte es:[edi], dx
scasd eax, dword es:[edi]
inc ecx
mov ecx, dword [ebp - 0x44]
add ecx, 0x5f0
call dword [ecx]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
sub esi, dword [ebp - 0x34]
cmp dword [ebp - 0x38], 0x400002
jne 0x40f217
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x30]
add esp, 0xc
add dword [ebp - 0xc], esi
adc dword [ebp - 8], ebx
sub dword [ebp + 0xc], esi
and dword [ebp - 0x54], edx
cmp dword [ebp - 0x38], 1
je 0x40f226
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x80]
and dword [ebp - 0x50], ebx
or dword [ebp - 0x80], ecx
jne 0x40f37b
lea eax, [ebp - 0x3c]
push eax
mov eax, dword [ebp - 0x64]
push dword [eax - 0x30]
call fcn.00403812
xor dword [ebp - 0x84], eax
lea edx, [ecx + 0x8fa]
lea edi, [ebp - 0x80]
push edi
mov edi, dword [ebp - 0x64]
push dword [edi + 0x18]
call fcn.00403812
cmp dword [ebp - 0x48], 0x47
jne 0x40f26d
call 0x414be3
cmp dword [ebp - 0x38], 1
je 0x40f27d
mov ecx, dword [ebp - 0xc]
and dword [ecx + 0x70], 0xfffffffd
mov eax, dword [ebp - 0x3c]
cmp dword [ebp - 0x48], 0x400002
jne 0x40f297
test esi, esi
je 0x40f276
mov ecx, esi
call fcn.00415738
mov ebx, dword [ebp - 0x80]
lea esi, [eax]
cmp dword [ebp - 0x38], 0xffffff94
jne 0x40f2a9
jbe 0x40f2a7
mov ecx, dword [esi]
cmp dword [eax + 4], ebx
jne 0x40f3a2
mov dword [ebp - 0x6c], ecx
add esi, 0x6af5
mov ecx, dword [ebp - 0x3c]
cmp dword [ebp - 0x38], 1
je 0x40f2cc
call fcn.0040c2c1
push dword [ecx + 8]
test dword [ebp - 0x48], 0
je 0x40f2e0
mov esp, ebp
pop ebp
int3
mov eax, dword [ebp - 0x80]
mov edx, dword [ebp - 0x3c]
add esi, edx
lea eax, [edx + 0xc]
mov dword [ebp - 0x80], eax
add dword [ebp - 0x50], 0xc01
xor ebx, edx
push dword [ebp - 0x80]
xor ebx, edi
and dword [ebp - 0x30], edi
mov ecx, dword [ebp - 0x64]
push dword [ecx + 0x14]
sub edi, dword [ebp - 0x7c]
or ecx, edx
call fcn.004171f4
cmp dword [ebp - 0x38], 1
je 0x40f320
push ecx
cmp dword [0x419861], 0xfffffffe
lea eax, [ebp - 0x5c]
push eax
mov eax, dword [ebp - 0x3c]
push dword [eax + 8]
call fcn.00403812
mov edx, dword [ebp - 0x64]
lea edx, [edx - 0x28]
push edx
push dword [ebp - 0x5c]
call fcn.00403812
sub esi, edx
sub ecx, edx
cmp dword [ebp - 0x48], 0
je 0x40f351
pop ecx
cmp eax, 0xffffffff
je 0x40f38e
mov dword [ebp - 0x24], 1
add ebx, dword [ebp - 0x54]
jmp 0x40f3a2
test dword [ebp - 0x48], 0
je 0x40f399
mov dword [ebp - 0xc], 0x431390
call fcn.00405b11
push esi
mov esi, dword [ecx + 4]
push eax
push esi
mov dword [ebp - 0x24], 0xfffffffe
sub ecx, edi
add eax, 0xe0ae
mov esi, dword [ebp - 0x64]
xor edi, dword [ebp - 0x50]
cmp dword [ebp - 0x48], 0x400002
jne 0x40f3cb
call fcn.0041570f
mov ecx, dword [ebp + 8]
push ecx
mov ecx, esi
call fcn.0040e88d
pop esi
mov dword [esi - 0x2c], 0
or ecx, dword [ebp - 0x60]
xor esi, ebx
cmp dword [ebp - 0x38], 1
je 0x40f3e4
pop esi
push 0x8000
and esi, dword [ebp - 0x2c]
and word [ebp - 0x68], 0x5c8
mov edx, dword [ebp - 0x80]
or ecx, dword [ebp - 0x58]
cmp dword [ebp - 0x38], 0x6b
jne 0x40f40b
push eax
call fcn.004060eb
pop ecx
neg eax
pop ecx
mov edi, dword [ebp - 0x64]
xor dword [ebp - 0x68], 0x6e
lea edx, [edi - 0x2c]
mov dword [ebp - 0x80], edx
mov ecx, esi
add esi, dword [ebp - 0x68]
push dword [ebp - 0x80]
xor dword [ebp - 0x6c], 0x546
mov esi, dword [ebp - 0x80]
and dword [ebp - 0x28], ebx
mov edx, dword [ebp - 0x64]
sub eax, dword [ebp - 0x68]
lea esi, [edx - 0x30]
mov dword [ebp - 0x80], esi
add esi, 0xc5be
sub edx, dword [ebp - 0x50]
and dword [ebp - 0x54], 0x43b
push dword [ebp - 0x80]
cmp dword [ebp - 0x48], 0x43
jne 0x40f457
mov edi, edi
push 0xffffffff
add ecx, 0xa401
mov ecx, edi
mov edx, ecx
sub eax, dword [ebp - 0x84]
mov edx, dword [ebp - 0x40]
mov ebx, dword [ebp - 0x44]
add ebx, 0x5a4
call dword [ebx]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
cmp dword [ebp - 0x48], 0
je 0x40f494
push esi
mov esi, dword [ecx + 0x3c]
mov dword [edx], esi
mov edx, dword [ecx + 0x20]
mov dword [edx], eax
mov esi, dword [ebp - 0x64]
push dword [esi - 0x1c]
cmp dword [ebp - 0x38], 0x400002
jne 0x40f4b0
call dword [0x4191dc]
test eax, eax
jne 0x40f4ce
xor dword [ebp - 0x78], 0xef9
mov edx, dword [ebp - 0x40]
or esi, dword [ebp - 0x78]
mov edi, dword [ebp - 0x44]
add edi, 0x598
call dword [edi]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
add edx, dword [ebp - 0x54]
mov eax, ebx
mov ebx, dword [ebp - 0x64]
or dword [ebp - 0x2c], ebx
and eax, ecx
mov eax, ecx
push dword [ebx - 0x14]
sub esi, edi
mov edx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x44]
add eax, 0x598
call dword [eax]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
cmp dword [ebp - 0x48], 0x400002
jne 0x40f50b
jmp 0x40f548
lea ebx, [ebp - 0x80]
push ebx
push dword [ebp - 0x24]
or ebx, dword [ebp - 0x30]
or word [ebp - 0x2c], 0x35a
call fcn.00403812
lea edx, [ebp - 0x5c]
push edx
mov edx, dword [ebp - 0x64]
push dword [edx - 0x28]
call fcn.00403812
pop dword [ebp - 0x24]
mov dword [ebp - 0x7c], edx
add edx, 0xda08
pop dword [ebp - 0x3c]
and ecx, edi
cmp dword [ebp - 0x38], 0x77
jne 0x40f58d
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
push esi
pop dword [ebp - 0x44]
or word [ebp - 0x28], 0x6d4
sub eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x64]
xor dword [ebp - 0x6c], 0xffffff91
mov esp, edx
and edx, dword [ebp - 0x34]
pop dword [ebp - 0x64]
xor word [ebp - 0x60], 0xf9f
sub eax, dword [ebp - 0x60]
or edi, dword [ebp - 0x84]
ret 0x14
mov esp, ebp
pop ebp
push 1
mov dword [ecx - 4], 0
add ebx, 0x4eec
lea eax, [ebp - 0x44]
push eax
mov eax, dword [ebp - 0x64]
push dword [eax + 0x14]
call fcn.00403812
xor dword [ebp - 0x50], edi
jmp 0x413a84
add dword [ebp - 0x78], edx
cmp dword [ebp - 0x38], 1
je 0x413399
push ebx
push edi
push dword [ebp - 0x44]
xor esi, dword [ebp - 0x28]
mov edx, dword [ebp - 0x40]
cmp dword [ebp - 0x48], 0x32
jne 0x4133b6
call 0x415162
and esi, edi
je 0x41335f
mov edx, dword [esi]
mov eax, dword [ebp - 0x64]
add eax, 8
call dword [eax]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
xor ecx, dword [ebp - 0x7c]
mov ebx, dword [ebp - 0x64]
lea ebx, [ebx - 4]
push ebx
push dword [ebp - 0x80]
call fcn.00403853
cmp dword [ebp - 0x38], 0x31
jne 0x4133e8
sub esi, ecx
movzx eax, word [esi + ecx]
cmp dword [ebp - 0x80], 5
jne 0x4135c6
mov esi, dword [ebp - 0x44]
cmp byte [esi], 0xe8
je 0x413425
cmp dword [ebp - 0x38], 1
je 0x413419
mov ebx, dword [ebp - 0x44]
cmp byte [ebx], 0xe9
jne 0x4135c6
mov esi, dword [ebp - 0x44]
add dword [ebp - 0x78], edx
and ebx, dword [ebp - 0x54]
mov al, byte [ebp - 0x5c]
add dword [ebp - 0x48], 0
je 0x41344e
add esi, 0xffffffff
adc dword [ebp - 0x24], 0xffffffff
mov ecx, dword [ebp + 8]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
add eax, ecx
mov al, byte [esi]
or ecx, edx
mov byte [ebp - 0x5c], al
test dword [ebp - 0x48], 0
je 0x413476
jbe 0x413499
cmp eax, 5
jne 0x415d44
movsx eax, byte [ebp - 2]
xor edi, edi
dec eax
mov ebx, dword [ebp - 0x24]
mov dl, byte [ebp - 0x5c]
mov byte [ebx], dl
lea edx, [ebp - 0x5c]
push edx
mov edx, dword [ebp - 0x44]
push dword [edx + 1]
call fcn.00403812
mov edx, esi
lea edx, [ebp - 0x5c]
push edx
push dword [ebp - 0x24]
and edx, dword [ebp - 0x30]
call fcn.00403911
cmp dword [ebp - 0x38], 0x400002
jne 0x4134bb
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
mov dword [0x419377], eax
pop ebp
mov edi, edi
lea edi, [ebp - 0x40]
or ecx, dword [ebp - 0x6c]
cmp dword [ebp - 0x48], 0xffffffa3
jne 0x4134d8
int3
push edi
cmp dword [ebp - 0x38], 1
je 0x4134e6
pop esi
mov edi, edi
push esi
push dword [ebp - 0x44]
and dword [ebp - 0x78], 0x697
cmp dword [ebp - 0x38], 7
jne 0x413510
mov dword [ebp - 4], 1
jne 0x4134b0
lea ecx, [ebp + 0xc]
push ecx
lea ecx, [ebp - 0x18]
mov dword [ebp + 0xc], 0x432468
call fcn.00403812
lea esi, [ebp - 0x40]
push esi
mov esi, dword [ebp - 0x64]
push dword [esi + 0x10]
call fcn.00403911
lea edi, [ebp - 0x40]
push edi
mov edi, dword [ebp - 0x64]
push dword [edi + 0x18]
call fcn.00403853
lea ecx, [ebp - 0x5c]
cmp dword [ebp - 0x48], 0x6a
jne 0x413554
push ecx
push dword [ebp - 0x40]
mov dword [ebp - 0x30], esi
call fcn.00403853
xor word [ebp - 0x7c], 0xbb1
add eax, dword [ebp - 0x30]
mov esi, dword [ebp - 0x24]
lea esi, [esi + 1]
push esi
push dword [ebp - 0x5c]
call fcn.00403812
cmp dword [ebp - 0x38], 0x400002
jne 0x41358d
cmp eax, 0xffffffff
jae 0x4135c6
dec eax
mov dword [edi + 4], eax
lea ecx, [ebp - 0x24]
push ecx
lea edi, [eax + esi + 0x1d76]
mov edi, esi
push dword [ebp - 0x80]
xor dword [ebp - 0x34], 0x54
and eax, ebx
call fcn.00403853
jmp 0x413a57
add dword [ebp - 0x28], 0xa17
cmp dword [ebp - 0x80], 6
jne 0x4137b6
cmp dword [ebp - 0x38], 0x47
jne 0x4135e9
mov dword [ebp - 0xc], ecx
lea edx, [ebp - 0x5c]
push edx
mov edx, dword [ebp - 0x44]
push dword [edx]
call fcn.00403812
add ecx, 0xd42a
mov eax, 0xf0ff
lea esi, [ecx + edi - 0x52]
and dword [ebp - 0x5c], eax
mov edx, edi
cmp dword [ebp - 0x5c], 0x800f
jne 0x4137ac
lea esi, [ebp - 0x5c]
push esi
mov esi, dword [ebp - 0x44]
push dword [esi]
call fcn.00403812
sub ebx, dword [ebp - 0x34]
mov edi, esi
mov esi, 0xffff
and eax, ecx
and dword [ebp - 0x5c], esi
cmp dword [ebp - 0x48], 0
je 0x41364d
push ebx
push edi
mov edi, dword [ecx + 0x30]
mov ebx, dword [edi]
mov eax, esi
lea ebx, [eax + ebx*2]
push dword [ebp - 0x24]
push dword [ebp - 0x5c]
call fcn.00403812
add ecx, 0xf307
add ebx, edi
lea edx, [ebp - 0x5c]
push edx
mov edx, dword [ebp - 0x44]
push dword [edx + 2]
call fcn.00403812
and ecx, dword [ebp - 0x60]
lea edx, [ebp - 0x5c]
push edx
sub edi, dword [ebp - 0x2c]
add edx, dword [ebp - 0x60]
push dword [ebp - 0x24]
mov byte [ebp - 0x54], 0x50
cmp dword [ebp - 0x48], 0
je 0x413698
mov dword [ebp - 4], 2
mov eax, 0x419619
call fcn.00403911
add eax, dword [ebp - 0x30]
add eax, dword [ebp - 0x4c]
lea edx, [ebp - 0x40]
push edx
push dword [ebp - 0x44]
and eax, edi
call fcn.00403812
add dword [ebp - 0x50], ebx
and eax, dword [ebp - 0x50]
lea ecx, [ebp - 0x40]
push ecx
mov ecx, dword [ebp - 0x64]
push dword [ecx + 0x10]
call fcn.00403911
cmp dword [ebp - 0x38], 0xffffff89
jne 0x4136e2
lea eax, [ebp - 0x40]
push eax
mov eax, dword [ebp - 0x64]
push dword [eax + 0x18]
call fcn.00403853
cmp dword [ebp - 0x38], 1
je 0x41370e
inc esi
mov dword [ebx + 0x10], eax
call fcn.00415f6e
mov edi, 0x4192f0
push edi
mov esi, 0x419441
lea eax, [ebp - 0x5c]
add dword [ebp - 0x48], 0
je 0x413724
cmp dword [ebp + 0x10], 0
je 0x40e03f
push eax
push dword [ebp - 0x40]
xor dword [ebp - 0x68], 0x11
or edi, dword [ebp - 0x6c]
call fcn.00403853
and edx, dword [ebp - 0x30]
cmp dword [ebp - 0x38], 1
je 0x41374a
add esp, 0x44
pop edi
mov eax, esi
pop esi
xor ecx, ebp
pop ebx
mov ecx, dword [ebp - 0x24]
lea ecx, [ecx + 2]
push ecx
push dword [ebp - 0x5c]
call fcn.00403812
lea eax, [ebp - 0x24]
cmp dword [ebp - 0x38], 1
je 0x413778
je 0x40a595
mov eax, dword [ebx]
test byte [edi + eax + 4], 0x80
je 0x4096e1
push eax
or dword [ebp - 0x34], edx
push dword [ebp - 0x80]
xor dword [ebp - 0x54], ecx
cmp dword [ebp - 0x38], 1
je 0x413798
or esi, dword [ebp - 0x28]
mov dword [ebx], esi
mov esi, dword [ebp - 0x2c]
shl esi, cl
inc dword [ebp - 0x20]
call fcn.00403853
jmp 0x413a57
jmp 0x4139f9
or esi, dword [ebp - 0x50]
cmp dword [ebp - 0x48], 0xffffff93
jne 0x4137cc
cmp dword [ebp - 0x80], 2
jne 0x4139f9
or ecx, edi
lea esi, [ebp - 0x5c]
push esi
mov esi, dword [ebp - 0x44]
push dword [esi]
call fcn.00403812
add ecx, dword [ebp - 0x6c]
or esi, ecx
mov ebx, eax
cmp dword [ebp - 0x38], 0x400002
jne 0x413807
mov byte [edi], al
inc esi
inc edi
dec ecx
jne 0x413793
pop eax
mov edx, 0xf0
cmp dword [ebp - 0x48], 0x400002
jne 0x413819
int3
and dword [ebp - 0x5c], edx
mov dword [ebp - 0x4c], ebx
sub eax, ebx
or edi, dword [ebp - 0x60]
cmp dword [ebp - 0x5c], 0x70
jne 0x4139d4
lea esi, [ebp - 0x5c]
push esi
mov esi, dword [ebp - 0x44]
push dword [esi]
call fcn.00403812
lea eax, [ecx - 0x71]
mov ecx, 0xff
cmp dword [ebp - 0x48], 0
je 0x413858
int3
and dword [ebp - 0x5c], ecx
sub ecx, ebx
sub dword [ebp - 0x5c], 0x70
and eax, dword [ebp - 0x84]
sub esi, dword [ebp - 0x54]
mov eax, 0x80
add ecx, 0x8fbd
cmp dword [ebp - 0x48], 0x5c
jne 0x413896
or dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x5c]
shl eax, 8
mov dword [ebp - 0x5c], eax
add edi, 0x1f11
cmp dword [ebp - 0x38], 0x49
jne 0x4138bb
push 0
call fcn.00413196
int3
mov edx, 0xf
cmp dword [ebp - 0x38], 0x400002
jne 0x4138cd
int3
add dword [ebp - 0x5c], edx
test dword [ebp - 0x48], 0
je 0x4138e0
jae 0x4138b1
cmp dword [eax], edx
push dword [ebp - 0x24]
push dword [ebp - 0x5c]
call fcn.00403812
add eax, ecx
lea ecx, [ebp - 0x5c]
push ecx
mov ecx, dword [ebp - 0x44]
push dword [ecx + 1]
call fcn.00403812
mov dword [ebp - 0x58], ecx
test dword [ebp - 0x48], 0
je 0x413910
mov eax, dword [ebp + 8]
push esi
push edi
mov ecx, 0xff
and dword [ebp - 0x5c], ecx
add dword [ebp - 0x50], 0x10
lea esi, [ebp - 0x5c]
lea ebx, [edx]
add ebx, dword [ebp - 0x6c]
push esi
sub ecx, dword [ebp - 0x34]
or ecx, dword [ebp - 0x6c]
push dword [ebp - 0x24]
and dword [ebp - 0x34], eax
and dword [ebp - 0x2c], 0xdf8
call fcn.00403911
lea edi, [ebp - 0x40]
mov ecx, esi
push edi
push dword [ebp - 0x44]
call fcn.00403812
lea eax, [ebp - 0x40]
push eax
mov eax, dword [ebp - 0x64]
push dword [eax + 0x10]
call fcn.00403911
or edi, dword [ebp - 0x50]
and ebx, dword [ebp - 0x60]
lea edi, [ebp - 0x40]
push edi
mov edi, dword [ebp - 0x64]
push dword [edi + 0x18]
call fcn.00403853
sub dword [ebp - 0x40], 4
cmp dword [ebp - 0x48], 0x400002
jne 0x413999
mov dword [esi + edx], 0x431ac4
mov dword [esi + 0x60], eax
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
lea edx, [ebp - 0x5c]
sub ecx, edi
push edx
or dword [ebp - 0x60], 0x39c
push dword [ebp - 0x40]
and dword [ebp - 0x54], edx
call fcn.00403853
xor ebx, esi
mov edx, dword [ebp - 0x24]
lea edx, [edx + 2]
push edx
push dword [ebp - 0x5c]
call fcn.00403812
mov eax, esi
or edx, eax
add dword [ebp - 0x24], 6
or eax, ebx
jmp 0x413a57
jmp 0x4139f9
add edi, eax
add ebx, edx
push dword [ebp - 0x80]
cmp dword [ebp - 0x48], 0x400002
jne 0x413a0e
push dword [ebp - 0x44]
and dword [ebp - 0x58], edx
or edi, dword [ebp - 0x58]
push dword [ebp - 0x24]
cmp dword [ebp - 0x38], 1
je 0x413a25
cmp eax, edi
call fcn.004171f4
lea edi, [ebp - 0x24]
add eax, edx
push edi
add eax, ecx
xor ecx, dword [ebp - 0x84]
push dword [ebp - 0x80]
or dword [ebp - 0x6c], 0xffffffed
cmp dword [ebp - 0x48], 0x400002
jne 0x413a52
cmp byte [ebx], 0
je 0x413a5a
mov esi, edi
call fcn.00403853
lea edi, [ebp - 0x44]
or edx, dword [ebp - 0x58]
or edx, edi
push edi
push dword [ebp - 0x80]
call fcn.00403853
or dword [ebp - 0x4c], 0xcc
mov esi, dword [ebp - 0x64]
add dword [ebp - 0x60], 0x7f1
mov byte [ebp - 0x28], 0xb
sub dword [esi + 0x20], 1
mov ebx, dword [ebp - 0x64]
cmp dword [ebx + 0x20], 0
jne 0x41338b
lea esi, [esi]
xor esi, dword [ebp - 0x50]
xor dword [ebp - 0x30], edi
lea esi, [edx]
mov ebx, dword [ebp - 0x24]
mov byte [ebx], 0xe9
cmp dword [ebp - 0x38], 0xffffffbf
jne 0x413ab1
pop ecx
mov eax, dword [esi + 8]
lea edi, [ebp - 0x5c]
push edi
mov edi, dword [ebp - 0x64]
push dword [edi + 0x14]
call fcn.00403812
cmp dword [ebp - 0x38], 0xffffffd0
jne 0x413ad2
je fcn.00413aea
push eax
call esi
test eax, eax
je 0x413a99
lea ecx, [ebp - 0x5c]
push ecx
mov ecx, dword [ebp - 0x64]
push dword [ecx + 0x10]
call fcn.00403911
cmp dword [ebp - 0x38], 1
je 0x413af2
lea edx, [ebp - 0x5c]
push edx
mov edx, dword [ebp - 0x64]
push dword [edx + 0x18]
call fcn.00403853
and dword [ebp - 0x60], 0x2ca
cmp dword [ebp - 0x48], 0xffffff9a
jne 0x413b21
mov eax, dword [ebp - 0x1c]
call 0x40985d
push dword [ebp + 8]
call fcn.0040a74b
lea esi, [ebp - 0x5c]
push esi
mov esi, dword [ebp - 0x64]
push dword [esi - 4]
call fcn.00403853
and ecx, edx
lea esi, [ebp - 0x5c]
add ecx, dword [ebp - 0x58]
push esi
push dword [ebp - 0x24]
call fcn.00403911
add dword [ebp - 0x4c], edi
or edx, edi
xor dword [ebp - 0x54], eax
mov esi, 5
xor dword [ebp - 0x54], 0x50
sub dword [ebp - 0x5c], esi
cmp dword [ebp - 0x48], 0x72
jne 0x413b67
pop esi
xor ecx, ebp
pop ebx
call 0x409b0b
and edi, eax
mov ebx, 1
add edi, dword [ebp - 0x2c]
add dword [ebp - 0x24], ebx
cmp dword [ebp - 0x38], 0xffffffd6
jne 0x413b80
int3
mov edx, eax
push dword [ebp - 0x24]
push dword [ebp - 0x5c]
call fcn.00403812
cmp dword [ebp - 0x38], 1
je 0x413b9b
mov byte [eax], cl
xor edi, edi
inc edi
pop dword [ebp - 0x24]
pop dword [ebp - 0x44]
mov ebx, dword [ebp - 0x64]
or dword [ebp - 0x2c], esi
and eax, ebx
mov esp, ebx
cmp dword [ebp - 0x38], 0xfffffff6
jne 0x413bb5
cmp dword [ebp - 0x48], 0x36
jne 0x413bd2
cmp dword [eax + 0xb4], ebx
jne 0x413b61
push eax
call fcn.004127e6
push dword [esi + 0xd4]
pop dword [ebp - 0x64]
and dword [ebp - 0x2c], 4
ret 0x1c
mov dword [esi + 0x258], eax
mov dword [esi + 0x25c], eax
call dword [0x419068]
test eax, eax
lea eax, [ebp - 0x3c]
push eax
mov eax, dword [ebp - 0x64]
push dword [eax + 0x10]
call fcn.00403812
cmp dword [ebp - 0x48], 0x400002
jne 0x414372
add esi, 2
and edi, dword [ebp - 0x34]
push 0
add dword [ebp - 0x48], 0
je 0x414385
test eax, eax
cmp dword [ebp - 0x48], 0x400002
jne 0x41439b
movzx eax, byte [eax]
movzx ecx, byte [ecx]
xor eax, eax
pop edi
pop esi
push 0
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x34], 0x5c9
cmp dword [ebp - 0x38], 0x27
jne 0x4143b9
mov eax, dword [ebp - 0x1c]
push eax
call edx
mov ebx, dword [ebp - 0x80]
and eax, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x64]
add ecx, ebx
lea ebx, [edx - 0x28]
mov dword [ebp - 0x80], ebx
lea edx, [edx + eax*4 + 0x78]
sub ecx, dword [ebp - 0x30]
push dword [ebp - 0x80]
mov ebx, dword [ebp - 0x64]
add esi, dword [ebp - 0x60]
push dword [ebx + 8]
cmp dword [ebp - 0x48], 0x15
jne 0x4143fe
mov edx, dword [ebp - 0x40]
xor dword [ebp - 0x7c], ebx
cmp dword [ebp - 0x48], 0xffffffc9
jne 0x41440e
int3
mov ebx, dword [ebp - 0x3c]
add ebx, 0x59c
call dword [ebx]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
add dword [ebp - 0x50], 0xffffff82
lea esi, [ebx]
cmp dword [ebp - 0x80], 1
jne 0x415b11
and ebx, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x80]
cmp dword [ebp - 0x48], 0x400002
jne 0x41445a
mov byte [ebp - 0x1ac1], cl
cmp cl, 2
je fcn.004144c8
cmp cl, 1
jne 0x4144b4
mov ecx, dword [ebp + 0x10]
mov edi, dword [ebp - 0x64]
lea ebx, [edi - 0x28]
mov dword [ebp - 0x80], ebx
and ebx, dword [ebp - 0x84]
push dword [ebp - 0x80]
lea esi, [esi + eax*4 + 0x1e1a]
test dword [ebp - 0x48], 0
je 0x414484
jne 0x41447f
add ebx, 4
mov edx, dword [ebp - 0x80]
cmp dword [ebp - 0x48], 0x400002
jne 0x4144a4
push dword [ebp + 0xc]
call dword [0x419194]
test eax, eax
je 0x4144f9
and dword [esi], 0
push ebx
mov ebx, dword [ebp - 0x64]
cmp dword [ebp - 0x48], 0
je 0x4144b6
sub esi, edx
lea edx, [ebx - 0x20]
mov dword [ebp - 0x80], edx
cmp dword [ebp - 0x38], 0x400002
jne 0x4144d2
add dword [ebp - 0x30], ecx
and edi, dword [ebp - 0x28]
push dword [ebp - 0x80]
cmp dword [ebp - 0x48], 0x68
jne 0x4144e8
add edi, eax
mov edi, edi
call fcn.00412aa6
test dword [ebp - 0x48], 0
je 0x4144fb
int3
push 0x60
or edx, esi
add dword [ebp - 0x50], eax
push 5
lea edx, [edx + 0x61]
mov edx, ebx
or eax, edx
cmp dword [ebp - 0x48], 0x400002
jne 0x41452d
mov ebp, esp
push 0xffffffffffffffff
push 0x419799
mov eax, dword fs:[0]
push eax
mov edi, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x64]
and esi, ecx
cmp dword [ebp - 0x38], 0xfffffffb
jne 0x414552
cmp dword [ebp - 4], edi
je 0x41451f
or dword [esi + 0xc], 0x20
or eax, 0xffffffff
mov eax, dword [ebp + 8]
and eax, 0xff
lea edi, [ecx - 0x30]
mov dword [ebp - 0x80], edi
add dword [ebp - 0x48], 0
je 0x414564
cmp ah, byte [ecx + 3]
and ebx, edi
add ecx, dword [ebp - 0x50]
push dword [ebp - 0x80]
xor edi, dword [ebp - 0x28]
mov esi, dword [ebp - 0x80]
sub ecx, dword [ebp - 0x60]
or dword [ebp - 0x28], esi
mov ecx, dword [ebp - 0x64]
lea esi, [ecx - 0x20]
mov dword [ebp - 0x80], esi
cmp dword [ebp - 0x38], 1
je 0x414592
and dword [ebp - 0x28], 0
and dword [ebp - 0x20], 0
push dword [ebp - 0x80]
cmp dword [ebp - 0x48], 0xffffffab
jne 0x4145b3
lea ecx, [ebp - 0x6c]
call fcn.0040b557
test eax, eax
je 0x409323
mov edi, dword [ebp - 0x74]
cmp dword [esi], edi
push 0x80100080
and dword [ebp - 0x58], ebx
xor dword [ebp - 0x6c], eax
lea ecx, [esi + edi*8 + 0x3d]
mov esi, dword [ebp - 0x80]
and edx, dword [ebp - 0x4c]
mov ebx, dword [ebp - 0x64]
xor dword [ebp - 0x6c], ebx
lea esi, [ebx - 4]
mov dword [ebp - 0x80], esi
or eax, esi
push dword [ebp - 0x80]
mov edx, dword [ebp - 0x40]
or esi, ecx
mov edi, dword [ebp - 0x3c]
add edi, 0x58c
call dword [edi]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
test dword [ebp - 0x48], 0
je 0x414601
mov edx, dword [ecx + 8]
push eax
call edx
mov edi, dword [ebp - 0x80]
or dword [ebp - 0x4c], 0xffffffec
or dword [ebp - 0x80], edi
jne 0x415b11
mov esi, dword [ebp - 0x64]
or dword [ebp - 0x50], 0xfffffff9
cmp dword [ebp - 0x48], 0
je 0x41462e
mov dword [esi], 0x431780
push dword [esi - 4]
cmp dword [ebp - 0x48], 0x400002
jne 0x414646
push edi
ja 0x41469b
cmp dword [ebp + 0xc], 0
je 0x4146c5
sub eax, ebx
push 0x1000000
add edi, 0x1e2a
test dword [ebp - 0x48], 0
je 0x414667
call dword [0x4191e8]
test eax, eax
push 2
xor edi, dword [ebp - 0x6c]
cmp dword [ebp - 0x38], 0x400002
jne 0x414687
test di, di
jle 0x414628
test dword [ebp - 8], 0x80000000
cmp dword [ebp - 0x38], 0xffffff94
jne 0x4146a3
lea eax, [ebp - 0x30]
push eax
push edi
mov dword [ebp - 0x170], esi
call dword [0x419198]
cmp eax, esi
push 0
sub ecx, esi
cmp dword [ebp - 0x38], 0x400002
jne 0x4146bd
int3
xor ebx, edi
push 0
add dword [ebp - 0x48], 0
test dword [eax + 0xffffff], edi
je 0x4146ce
int3
mov esi, edi
push 4
add edi, dword [ebp - 0x60]
mov eax, dword [ebp - 0x80]
xor word [ebp - 0x50], 0xeb4
add dword [ebp - 0x48], 0
je 0x4146ee
pop edi
pop esi
mov esp, ebp
mov edx, dword [ebp - 0x64]
xor esi, dword [ebp - 0x60]
lea eax, [edx - 8]
mov dword [ebp - 0x80], eax
cmp dword [ebp - 0x48], 0x400002
jne 0x414708
push 1
xor eax, esi
mov eax, esi
cmp dword [ebp - 0x48], 0x400002
jne 0x41472b
call fcn.004067b9
mov ecx, 0x419494
add esp, 8
cmp ax, cx
movzx eax, di
push dword [ebp - 0x80]
cmp dword [ebp - 0x38], 0x400002
jne 0x414740
pop edi
mov eax, esi
pop esi
pop ebx
pop ebp
mov edx, dword [ebp - 0x40]
cmp dword [ebp - 0x48], 0x6d
jne 0x41474e
mov edx, dword [ebp - 0x3c]
add edx, 0x590
call dword [edx]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
add ebx, 0x2ec4
add edi, 0xb20
mov eax, dword [ebp - 0x80]
or dword [ebp - 0x80], eax
jne 0x415acd
mov edi, dword [ebp - 0x64]
add ecx, 0x899b
add edx, 0xaa6e
mov dword [edi - 0x34], 0
mov ecx, dword [ebp - 0x64]
mov dword [ecx - 0x38], 0
or edx, edi
mov word [ebp - 0x4c], 0xc2c
push 2
test dword [ebp - 0x48], 0
je 0x4147bc
add esp, 0xc
mov dword [ebp - 0x1c], eax
sub eax, ecx
push 0
push 1
and dword [ebp - 0x30], 0xb5a
and ecx, dword [ebp - 0x30]
mov edi, dword [ebp - 0x80]
cmp dword [ebp - 0x48], 0
je 0x4147f2
mov dword [ebp - 0x44], 0x4321e4
call fcn.00406168
push 0x419691
lea edx, [ebp - 0x50]
mov eax, dword [ebp - 0x64]
lea edx, [eax + edx*8 - 0x46]
cmp dword [ebp - 0x38], 1
je 0x414803
inc esi
lea edi, [eax - 0x38]
mov dword [ebp - 0x80], edi
add eax, dword [ebp - 0x78]
and eax, dword [ebp - 0x60]
test dword [ebp - 0x48], 0
je 0x41481e
push dword [ebp + 0x28]
push dword [ebp - 0x80]
sub edi, dword [ebp - 0x58]
push 0
and dword [ebp - 0x7c], eax
mov edx, ebx
push 0
cmp dword [ebp - 0x38], 0xffffffae
jne 0x41484a
push 0
cmp dword [ebp - 0x38], 0x400002
jne 0x414863
mov edx, dword [ecx]
lea esi, [eax + 0x10]
mov eax, dword [edx + 4]
mov edx, dword [ebp - 0x80]
add esi, dword [ebp - 0x58]
add word [ebp - 0x54], 0xa63
mov ecx, dword [ebp - 0x64]
cmp dword [ebp - 0x38], 1
je 0x41488d
and dword [ebp - 0x1c], 0
cmp dword [ebp - 0x1c], 0
je 0x414866
call fcn.00412f57
mov ecx, dword [ebp - 0x1c]
lea edx, [ecx - 0x34]
mov dword [ebp - 0x80], edx
and eax, edx
add ecx, 0x2ee3
xor dword [ebp - 0x58], esi
push dword [ebp - 0x80]
cmp dword [ebp - 0x38], 0xffffff8f
jne 0x4148b1
push 0x419676
push ebx
push esi
mov word [ebp - 0x34], 0x941
push 0xffffffff
mov eax, dword [ebp - 0x64]
add ecx, dword [ebp - 0x68]
cmp dword [ebp - 0x38], 1
je 0x4148d3
movsd dword es:[edi], dword [esi]
cdq
and edx, 0x1f
add eax, edx
movsd dword es:[edi], dword [esi]
push dword [eax - 8]
xor esi, eax
mov edx, dword [ebp - 0x40]
and edi, dword [ebp - 0x2c]
add edi, 0x1492
mov ecx, dword [ebp - 0x3c]
add ecx, 0x594
call dword [ecx]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
mov byte [ebp - 0x2c], 0x4c
add dword [ebp - 0x54], 0xfa5
cmp dword [ebp - 0x48], 0x400002
jne 0x414921
call fcn.00405cd4
xor eax, eax
mov dword [ebx + 0x3c], eax
mov dword [ebx + 0x40], eax
mov dword [ebx], 0x4319bc
mov ecx, dword [esi]
mov edx, dword [ebp - 0x80]
sub eax, ebx
or dword [ebp - 0x80], edx
je 0x414956
cmp dword [ebp - 0x80], 0x40000003
jne 0x415a9a
test dword [ebp - 0x48], 0
je 0x414956
lea ecx, [ebp - 0x2c]
call fcn.00412665
lea ecx, [ebp - 0x2c]
lea ebx, [ebp - 0x40]
push ebx
mov ebx, dword [ebp - 0x64]
push dword [ebx - 0x34]
call fcn.00403812
add ecx, dword [ebp - 0x6c]
add esi, edi
lea esi, [ebp - 0x40]
push esi
mov esi, dword [ebp - 0x40]
push dword [esi + 0x3c]
call fcn.00403853
sub edx, esi
lea edx, [ebp - 0x80]
push edx
mov edx, dword [ebp - 0x40]
push dword [edx + 0x28]
call fcn.00403812
mov dword [ebp - 0x34], esi
mov eax, dword [ebp - 0x64]
lea eax, [eax - 0x64]
push eax
push dword [ebp - 0x80]
call fcn.00403812
or dword [ebp - 0x58], esi
sub ecx, dword [ebp - 0x54]
lea ecx, [ebp - 0x80]
push ecx
mov ecx, dword [ebp - 0x64]
push dword [ecx - 0x38]
call fcn.00403812
or dword [ebp - 0x84], 5
mov ebx, dword [ebp - 0x64]
lea ebx, [ebx - 0x44]
push ebx
push dword [ebp - 0x80]
call fcn.00403812
add dword [ebp - 0x50], 0xffffffa8
mov esi, dword [ebp - 0x64]
mov dword [esi - 0x40], 0
push 0
cmp dword [ebp - 0x48], 0x400002
jne 0x4149fd
xor ecx, ecx
mov eax, dword [ebp + 8]
mov edx, dword [0x4196b8]
pop edi
mov dword [eax], edx
mov edx, dword [0x4198f2]
cmp dword [ebp - 0x38], 1
je 0x414a0d
add eax, dword [ecx*4 + 0x440640]
push 0x8000000
xor eax, dword [ebp - 0x84]
and edi, dword [ebp - 0x58]
push 0x40
mov edx, eax
xor esi, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x80]
add ecx, dword [ebp - 0x60]
mov dword [ebp - 0x28], ecx
mov edx, dword [ebp - 0x64]
mov dword [ebp - 0x6c], 0x629
xor esi, ecx
lea edi, [edx - 0x44]
mov dword [ebp - 0x80], edi
cmp dword [ebp - 0x48], 0xffffffc5
jne 0x414a4d
pop esi
pop ebx
mov esp, ebp
xor edx, dword [ebp - 0x34]
push dword [ebp - 0x80]
add ecx, dword [ebp - 0x50]
and dword [ebp - 0x68], 0x1f
cmp dword [ebp - 0x38], 0x400002
jne 0x414a6d
push 0
add ecx, dword [ebp - 0x2c]
and eax, edx
mov eax, ecx
push 0xf001f
cmp dword [ebp - 0x48], 0x400002
jne 0x414a91
add ebx, 0x10
cmp esi, dword [edi]
jl 0x414a8f
mov eax, dword [ebp - 0x80]
sub edi, eax
mov byte [ebp - 0x28], 0xea
mov esi, dword [ebp - 0x64]
lea eax, [esi - 0x3c]
mov dword [ebp - 0x80], eax
sub edx, dword [ebp - 0x68]
push dword [ebp - 0x80]
cmp dword [ebp - 0x48], 0x400002
jne 0x414abb
pop ebx
push 0x419822
mov edx, dword [ebp - 0x40]
xor dword [ebp - 0x34], ebx
mov edx, dword [ebp - 0x3c]
add edx, 0x590
call dword [edx]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
add ecx, dword [ebp - 0x30]
cmp dword [ebp - 0x38], 0x400002
jne 0x414aef
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov esi, ecx
mov dword [ebp - 0x28], esi
xor edi, edx
mov edi, dword [ebp - 0x80]
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x6c], 0xf15
or dword [ebp - 0x80], edi
jne 0x415a55
sub ecx, dword [ebp - 0x60]
sub esi, eax
mov ebx, dword [ebp - 0x64]
mov dword [ebx - 0x48], 0
or eax, dword [ebp - 0x28]
add dword [ebp - 0x54], esi
sub esi, edi
cmp dword [ebp - 0x48], 0x5d
jne 0x414b3b
mov edx, dword [ebp - 0x64]
mov dword [edx - 0x4c], 0
mov byte [ebp - 0x60], 0x86
and ecx, dword [ebp - 0x58]
or dword [ebp - 0x28], edx
cmp dword [ebp - 0x48], 0x400002
jne 0x414b70
lea ecx, [ebp - 0x88]
mov ebx, 0x4194c1
push ecx
mov dword [ebp - 0x88], ebx
push 4
or edi, eax
sub esi, edi
or dword [ebp - 0x50], esi
push 0
xor dword [ebp - 0x54], esi
cmp dword [ebp - 0x38], 1
je 0x414b94
int3
push 1
and ecx, dword [ebp - 0x84]
add dword [ebp - 0x48], 0
je 0x414bb2
call fcn.0040d04f
mov ecx, eax
and eax, 0x1f
mov ebx, dword [ebp - 0x80]
add eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x64]
lea ebx, [edx - 0x4c]
mov dword [ebp - 0x80], ebx
add ecx, dword [ebp - 0x2c]
cmp dword [ebp - 0x38], 1
je 0x414bcf
mov ebp, esp
or edi, ecx
push dword [ebp - 0x80]
add word [ebp - 0x60], 0x9a9
cmp dword [ebp - 0x38], 1
je 0x414bea
lea ecx, [ebp - 0x1004]
push ecx
or dword [ebp - 0x6c], 0x3fd
push 0
add word [ebp - 0x7c], 0x742
add edx, edi
add eax, dword [ebp - 0x54]
push 0
push 0
and esi, ecx
mov edx, esi
mov ecx, dword [ebp - 0x80]
xor dword [ebp - 0x30], 0x7e2
mov edi, dword [ebp - 0x64]
lea ecx, [edi - 0x48]
mov dword [ebp - 0x80], ecx
cmp dword [ebp - 0x38], 0x75
jne 0x414c2f
xor ecx, ecx
mov edx, dword [eax]
cmp dword [ebp - 0x48], 0xffffff83
jne 0x414c47
push dword [ebp - 0x80]
cmp dword [ebp - 0x38], 0x400002
jne 0x414c58
xor ebx, ebx
cmp dword [ebp - 0x48], 0x400002
jne 0x414c69
push 0xffffffff
add eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x64]
push dword [eax - 0x3c]
add ebx, 0x2266
and edi, edx
mov edx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x3c]
add eax, 0x594
call dword [eax]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
or ecx, edx
or dword [ebp - 0x28], edi
mov ecx, edi
mov ebx, dword [ebp - 0x80]
xor ecx, dword [ebp - 0x28]
or dword [ebp - 0x80], ebx
jne 0x415a2f
mov ecx, dword [ebp - 0x64]
sub esi, dword [ebp - 0x68]
or ebx, esi
push dword [ecx - 0x48]
lea esi, [ebx + edx*2 + 0x43]
cmp dword [ebp - 0x38], 1
je 0x414cca
mov dword [ebp - 8], eax
push edi
call fcn.00408f58
mov esi, dword [ebp - 0x64]
or edx, ecx
push dword [esi - 0x34]
mov dword [ebp - 0x30], ebx
call fcn.00415b8e
add ecx, 0xc7f4
and dword [ebp - 0x50], 0x22
lea edi, [ebp - 0x40]
push edi
mov edi, dword [ebp - 0x64]
push dword [edi + 0xc]
call fcn.00403812
or eax, dword [ebp - 0x54]
cmp dword [ebp - 0x38], 0x47
jne 0x414d07
call 0x4146cd
add esp, 0x10
lea esi, [ebp - 0x40]
push esi
mov esi, dword [ebp - 0x40]
push dword [esi + 0x3c]
call fcn.00403853
and ebx, edi
lea eax, [ebp - 0x80]
push eax
mov eax, dword [ebp - 0x40]
push dword [eax + 0x50]
call fcn.00403812
cmp dword [ebp - 0x38], 0x64
jne 0x414d3e
add esp, 4
call fcn.004106a8
test eax, eax
jne 0x414d4d
push 1
mov edi, dword [ebp - 0x64]
lea edi, [edi - 0x44]
push edi
push dword [ebp - 0x80]
call fcn.00403812
xor dword [ebp - 0x6c], edx
or eax, dword [ebp - 0x6c]
cmp dword [ebp - 0x48], 0xffffffdb
jne 0x414d63
lea eax, [esi + 0xe4]
push eax
mov edx, dword [ebp - 0x64]
add eax, 0x6f5b
xor dword [ebp - 0x58], esi
mov dword [edx - 0x40], 0
xor ecx, dword [ebp - 0x50]
sub edi, dword [ebp - 0x58]
cmp dword [ebp - 0x48], 0x1e
jne 0x414da3
lea eax, [ebp - 0x320]
mov dword [ebp - 0x328], eax
lea eax, [ebp - 0x2d0]
add esp, 0xc
mov dword [ebp - 0x324], eax
push 0
add edx, 0xd61f
push 0x8000000
push 0x40
cmp dword [ebp - 0x48], 0x400002
jne 0x414dca
pop ebp
int3
mov edi, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x64]
add esi, ebx
add edx, dword [ebp - 0x7c]
lea edi, [ecx - 0x44]
mov dword [ebp - 0x80], edi
xor ecx, dword [ebp - 0x78]
and edi, dword [ebp - 0x58]
push dword [ebp - 0x80]
and ebx, dword [ebp - 0x78]
xor ecx, dword [ebp - 0x54]
push 0
xor ecx, dword [ebp - 0x84]
push 0xf001f
or word [ebp - 0x34], 0xc4a
sub edx, dword [ebp - 0x28]
mov edi, dword [ebp - 0x80]
xor esi, edx
mov eax, dword [ebp - 0x64]
lea esi, [esi + eax*8 + 0x3c]
add ebx, esi
lea edi, [eax - 0x50]
mov dword [ebp - 0x80], edi
and esi, edx
push dword [ebp - 0x80]
or edx, ecx
xor esi, eax
mov edx, dword [ebp - 0x40]
and eax, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x3c]
add eax, 0x590
call dword [eax]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
or edi, edx
and eax, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x80]
add ecx, 0x866b
or dword [ebp - 0x80], eax
jne 0x4159c5
sub edi, ebx
and edx, eax
add dword [ebp - 0x58], ecx
mov edx, dword [ebp - 0x64]
or eax, dword [ebp - 0x78]
mov dword [edx - 0x54], 0
cmp dword [ebp - 0x38], 0x7f
jne 0x414e6f
pop ebx
add dword [ebp - 0x84], edi
mov edx, dword [ebp - 0x64]
and dword [ebp - 0x7c], 0x5e
cmp dword [ebp - 0x38], 0x400002
jne 0x414e98
je 0x414f00
cmp eax, 0x66
jne 0x414e17
push dword [ebp + 0x20]
push dword [ebp + 0x18]
push dword [ebp + 0x10]
mov dword [edx - 0x58], 0
add ecx, 0x89c
cmp dword [ebp - 0x48], 0x400002
jne 0x414ec2
mov eax, dword [ebp - 8]
and dword [eax + 0x70], 0xfffffffd
mov byte [esi], al
mov eax, dword [ebp + 8]
cmp eax, ebx
push 4
cmp dword [ebp - 0x38], 1
je 0x414ee1
cmp word [edi], 0x3d
jne 0x417fa0
xor ebx, ebx
cmp dword [ebp + 0x10], ebx
je 0x414f2c
push 0
add dword [ebp - 0x58], ebx
or eax, dword [ebp - 0x2c]
or ebx, dword [ebp - 0x60]
push 1
cmp dword [ebp - 0x38], 0x400002
jne 0x414f09
mov eax, dword [esi + 0xd0]
sub eax, edi
push eax
mov eax, dword [ebp - 0x80]
mov ebx, dword [ebp - 0x64]
lea eax, [ebx - 0x58]
mov dword [ebp - 0x80], eax
add dword [ebp - 0x48], 0
je 0x414f21
add esp, 0x18
add dword [ebp - 0x48], 0
je 0x414f3b
mov ebp, esp
xor eax, eax
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax*8 + 0x435330]
je 0x414f8f
inc eax
push dword [ebp - 0x80]
push 0
sub ebx, edi
xor dword [ebp - 0x30], ebx
push 0
and edx, dword [ebp - 0x6c]
push 0
cmp dword [ebp - 0x38], 0x400002
jne 0x414f67
xor edi, dword [ebp - 0x34]
sub edi, ecx
mov esi, dword [ebp - 0x80]
mov eax, dword [ebp - 0x64]
lea esi, [eax - 0x54]
mov dword [ebp - 0x80], esi
xor ecx, edi
sub edx, esi
push dword [ebp - 0x80]
sub edi, dword [ebp - 0x58]
test dword [ebp - 0x48], 0
je 0x414f91
int3
int3
push 0xffffffff
and ecx, dword [ebp - 0x34]
xor esi, edi
mov edx, dword [ebp - 0x64]
lea eax, [edi + 0x1f9a]
add dword [ebp - 0x48], 0
je 0x414fba
push eax
mov eax, dword [ebx]
call eax
mov ecx, dword [esi]
mov edx, dword [ecx + 4]
mov ebx, dword [ebp + 0xc]
push dword [edx - 0x50]
mov edx, dword [ebp - 0x40]
or dword [ebp - 0x7c], ebx
mov esi, eax
mov eax, dword [ebp - 0x3c]
add eax, 0x594
call dword [eax]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
cmp dword [ebp - 0x48], 0x400002
jne 0x414fe7
mov eax, esi
pop esi
mov esp, ebp
mov edi, dword [ebp - 0x80]
or dword [ebp - 0x80], edi
jne 0x415996
or dword [ebp - 0x6c], eax
mov esi, dword [ebp - 0x64]
and eax, dword [ebp - 0x84]
add edx, dword [ebp - 0x7c]
push dword [esi - 0x54]
and ecx, edx
mov ecx, dword [ebp - 0x64]
xor ebx, dword [ebp - 0x50]
push dword [ecx + 0xc]
or dword [ebp - 0x4c], 0x6f
xor esi, dword [ebp - 0x7c]
call fcn.00415b8e
add ecx, dword [ebp - 0x6c]
xor eax, dword [ebp - 0x78]
or edx, dword [ebp - 0x60]
push 0x44
and ecx, edx
cmp dword [ebp - 0x38], 0x400002
jne 0x41503e
pop ecx
mov eax, ebx
push dword [ebp - 0x2c]
mov edi, dword [ebp - 0x80]
or dword [ebp - 0x2c], 0xe6
or dword [ebp - 0x58], ecx
mov edx, dword [ebp - 0x64]
lea edi, [edx - 0xac]
mov dword [ebp - 0x80], edi
or edx, dword [ebp - 0x6c]
add dword [ebp - 0x48], 0
je 0x415070
mov ecx, dword [ebp - 0x24]
mov ecx, dword [ecx + 0xbc]
mov ecx, dword [ecx]
mov cl, byte [ecx]
push dword [ebp - 0x80]
add eax, dword [ebp - 0x6c]
and eax, dword [ebp - 0x54]
xor dword [ebp - 0x60], edx
mov edx, dword [ebp - 0x40]
add dword [ebp - 0x54], ecx
mov ecx, dword [ebp - 0x3c]
add ecx, 0x5c0
call dword [ecx]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
cmp dword [ebp - 0x38], 1
je 0x4150a2
je 0x415105
sub esi, edx
mov al, byte [edx]
mov ecx, dword [ebp - 0x64]
or esi, dword [ebp - 0x50]
mov dword [ecx - 0xac], 0x44
mov dword [ebp - 0x58], ebx
and eax, dword [ebp - 0x78]
xor dword [ebp - 0x4c], ecx
push 0x2cd38ae7
mov esi, dword [ebp - 0x3c]
lea ebx, [esi + edx*2 - 0x1a]
mov ebx, 0xd6a3595e
mov ebx, ecx
push dword [esi + 0x9c]
cmp dword [ebp - 0x48], 0
je 0x4150ee
mov ecx, dword [esi + 8]
and eax, 0xfffffffe
mov dword [esi], ecx
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0xc]
and eax, 0xffffffef
call fcn.00416818
mov ecx, dword [ebp - 0x3c]
lea ecx, [ecx + 0x640]
push ecx
push dword [ebp - 0x80]
call fcn.00403812
or dword [ebp - 0x78], ebx
cmp dword [ebp - 0x38], 0xffffffaf
jne 0x41511f
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 4]
movzx edx, word [ecx + esi + 0x40]
mov ebx, dword [ebp + 8]
push 0
xor eax, edx
cmp dword [ebp - 0x38], 1
je 0x415133
push ebx
mov ebx, dword [ebp + 8]
mov ecx, dword [ebp - 0x80]
mov eax, dword [ebp - 0x64]
mov ebx, eax
lea ecx, [eax - 0xbc]
mov dword [ebp - 0x80], ecx
lea edi, [eax - 0x21]
push dword [ebp - 0x80]
lea ecx, [ecx + 0xd77]
mov ebx, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x64]
and esi, dword [ebp - 0x7c]
cmp dword [ebp - 0x38], 1
je 0x41517b
mov ecx, esi
call fcn.0040e4da
lea ecx, [ebp - 0x2120]
mov esi, eax
call 0x40c1d9
cmp eax, 0x4008
lea ebx, [ecx - 0xac]
mov dword [ebp - 0x80], ebx
and dword [ebp - 0x2c], 0xffffffdd
cmp dword [ebp - 0x38], 0x400002
jne 0x41519a
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
or eax, dword [ebp - 0x84]
and edi, edx
push dword [ebp - 0x80]
add edi, dword [ebp - 0x50]
sub eax, edx
or ecx, dword [ebp - 0x4c]
push 0
xor dword [ebp - 0x68], edx
push 0
and dword [ebp - 0x4c], 0x375
xor word [ebp - 0x30], 0xa01
add ecx, ebx
push 4
mov dword [ebp - 0x7c], edi
or edx, dword [ebp - 0x50]
push 0
and dword [ebp - 0x58], 0xac2
and eax, dword [ebp - 0x50]
push 0
cmp dword [ebp - 0x48], 0x400002
jne 0x415200
call fcn.0041216c
mov eax, dword [0x41930d]
xor eax, ebp
test dword [ebp - 0x48], 0
je 0x41520f
mov ebp, esp
push esi
push 0
and dword [ebp - 0x68], 0x2c
mov eax, dword [ebp - 0x64]
xor dword [ebp - 0x54], edx
push dword [eax + 8]
add edi, dword [ebp - 0x30]
add ecx, ebx
add ebx, dword [ebp - 0x60]
push 0
or ecx, ebx
xor dword [ebp - 0x68], eax
push 0
and dword [ebp - 0x7c], 0xb6e
lea ebx, [ebx]
add ecx, edi
xor eax, dword [ebp - 0x54]
mov edx, dword [ebp - 0x40]
and ebx, dword [ebp - 0x54]
xor dword [ebp - 0x30], edx
mov ebx, dword [ebp - 0x3c]
add ebx, 0x640
call dword [ebx]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
or eax, ecx
mov dword [ebp - 0x68], 0x859
mov ecx, dword [ebp - 0x80]
cmp dword [ebp - 0x48], 0
je 0x415280
push 0x419456
mov eax, dword fs:[0]
or dword [ebp - 0x80], ecx
je 0x41596b
and dword [ebp - 0x2c], ebx
add ecx, 0xe8b7
mov ebx, dword [ebp - 0x64]
mov dword [ebx - 0x388], 0x10002
add dword [ebp - 0x2c], ecx
add eax, dword [ebp - 0x84]
mov ecx, dword [ebp - 0x80]
mov eax, dword [ebp - 0x64]
lea ecx, [eax - 0x388]
mov dword [ebp - 0x80], ecx
sub edx, dword [ebp - 0x60]
test dword [ebp - 0x48], 0
je 0x4152d7
in al, 0xff
inc dword [ebx - 0x3f7af73c]
jne 0x4152ff
mov eax, 0x4197d2
mov ecx, ebx
push dword [ebp - 0x80]
cmp dword [ebp - 0x38], 1
je 0x4152ee
mov eax, dword [ebp + 8]
pop esi
pop edi
lea ecx, [ecx]
mov al, byte [esi + 3]
mov ecx, dword [ebp - 0x64]
push dword [ecx - 0xb8]
and esi, dword [ebp - 0x6c]
or edx, eax
mov edx, dword [ebp - 0x40]
or dword [ebp - 0x7c], 0x1f2
cmp dword [ebp - 0x48], 0xffffffde
jne 0x415311
je 0x4152f7
mov edi, dword [ebp - 0x3c]
add edi, 0x5c8
call dword [edi]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
and edi, ebx
or dword [ebp - 0x84], esi
add esi, dword [ebp - 0x84]
mov esi, dword [ebp - 0x80]
or dword [ebp - 0x80], esi
jne 0x41590b
or dword [ebp - 0x6c], eax
and dword [ebp - 0x78], 0xbf2
lea edx, [ebp - 0x80]
push edx
mov edx, dword [ebp - 0x64]
push dword [edx - 0x2d8]
call fcn.00403812
cmp dword [ebp - 0x48], 0x400002
jne 0x415367
lea eax, [ebx - 1]
lea ebx, [ebp - 0x80]
push ebx
mov ebx, dword [ebp - 0x64]
push dword [ebx - 0x64]
call fcn.00403911
and esi, edi
mov ebx, dword [ebp - 0x64]
lea ebx, [ebx - 0x68]
push ebx
push dword [ebp - 0x80]
call fcn.00403812
or ecx, dword [ebp - 0x28]
cmp dword [ebp - 0x38], 0x400002
jne 0x4153a6
xor dword [ebp - 0x34], eax
or edx, eax
mov esi, dword [ebp - 0x64]
add dword [ebp - 0x2c], ebx
or dword [ebp - 0x78], 0x21
mov dword [esi - 0x60], 0
or dword [ebp - 0x30], esi
add dword [ebp - 0x48], 0
je 0x4153d0
call fcn.00416549
mov edx, dword [ebp - 0x64]
mov dword [edx - 0x5c], 0
cmp dword [ebp - 0x38], 1
je 0x4153ef
mov eax, dword [edi + 4]
cmp eax, ebx
je 0x4153ed
cmp dword [eax], ebx
push 0x40
add edi, 0x6a1a
xor esi, edx
and ecx, esi
mov dword [ebp - 0x54], 0x83
push 0
test dword [ebp - 0x48], 0
je 0x415420
push 1
and dword [ebp - 0x6c], 0x6c
and ecx, dword [ebp - 0x28]
add edi, dword [ebp - 0x84]
mov ebx, dword [ebp - 0x80]
add dword [ebp - 0x48], 0
je 0x415448
jne 0x4153fe
push esi
call 0x40df89
pop ecx
pop edi
mov edx, dword [ebp - 0x64]
sub esi, dword [ebp - 0x6c]
xor eax, dword [ebp - 0x7c]
lea ebx, [edx - 0x60]
mov dword [ebp - 0x80], ebx
push dword [ebp - 0x80]
cmp dword [ebp - 0x38], 0x400002
jne 0x41547d
push 0
cmp dword [ebp - 0x38], 0x7b
jne 0x415490
push 0x4195d5
push 0
add dword [ebp - 0x58], edx
cmp dword [ebp - 0x48], 0
je 0x4154a3
int3
push 0
cmp dword [ebp - 0x48], 0x400002
jne 0x4154c1
mov edx, dword [ebp - 0x80]
lea ecx, [ebx + eax*8 - 0x3b]
mov esi, dword [ebp - 0x64]
mov byte [ebp - 0x28], 0xd3
lea edx, [esi - 0x5c]
mov dword [ebp - 0x80], edx
and dword [ebp - 0x58], esi
sub ebx, edx
add ebx, dword [ebp - 0x30]
push dword [ebp - 0x80]
or esi, dword [ebp - 0x30]
or dword [ebp - 0x58], ebx
mov eax, dword [ebp - 0x64]
add ebx, edx
push dword [eax - 0xbc]
lea esi, [ebx + esi*2 + 0x142b]
mov edi, dword [ebp - 0x64]
add esi, 0x8d25
push dword [edi - 0x50]
add ecx, dword [ebp - 0x28]
cmp dword [ebp - 0x38], 0xffffffd0
jne 0x415514
movzx ebx, byte [ecx + 8]
add edi, 0x2b45
and eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x40]
mov edi, dword [ebp - 0x3c]
add edi, 0x594
call dword [edi]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
cmp dword [ebp - 0x48], 0xffffff9e
jne 0x41553c
int3
cmp dword [ebp - 0x38], 0x400002
jne 0x41555c
mov edx, dword [eax + esi + 0x24]
mov ecx, dword [eax + esi + 0x20]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x1c], edi
test edx, edx
mov eax, dword [ebp - 0x80]
add dword [ebp - 0x48], 0
je 0x415575
cmp eax, ecx
je fcn.0040f5bd
mov eax, dword [ebp + 0x1c]
cmp dword [edi], eax
or dword [ebp - 0x80], eax
jne 0x41590b
add ebx, dword [ebp - 0x4c]
lea eax, [ebp - 0x40]
push eax
mov eax, dword [ebp - 0x64]
push dword [eax - 0x48]
call fcn.00403812
mov byte [ebp - 0x58], 0x77
lea esi, [ebp - 0x40]
push esi
mov esi, dword [ebp - 0x64]
push dword [esi - 0x64]
call fcn.00403853
xor dword [ebp - 0x30], 0xfe2
mov edx, dword [ebp - 0x40]
mov byte [edx], 0x90
xor word [ebp - 0x4c], 0x863
add dword [ebp - 0x40], 1
and edx, dword [ebp - 0x4c]
add dword [ebp - 0x48], 0
je 0x4155cb
add ecx, eax
mov eax, dword [ebp - 0x40]
cmp dword [ebp - 0x38], 1
je 0x4155da
pop edi
mov eax, esi
mov byte [eax], 0xe9
cmp dword [ebp - 0x38], 1
je 0x4155f0
call fcn.004129ce
add esp, 0x50
or edi, eax
lea eax, [ebp - 0x5c]
push eax
mov eax, dword [ebp - 0x64]
push dword [eax - 0x68]
call fcn.00403812
and dword [ebp - 0x50], eax
cmp dword [ebp - 0x38], 0xffffffd0
jne 0x415610
int3
lea edx, [ebp - 0x5c]
push edx
mov edx, dword [ebp - 0x64]
push dword [edx - 0x64]
call fcn.00403853
lea ebx, [ebp - 0x80]
push ebx
mov ebx, dword [ebp - 0x3c]
push dword [ebx + 0x10]
call fcn.00403812
and ebx, eax
cmp dword [ebp - 0x38], 0x5f
jne 0x415643
ja 0x41564e
cmp dword [ecx + 0x3c], esi
jbe 0x41567b
cmp dword [ecx + 0x3c], eax
sub ebx, ecx
mov eax, 0x123
add dword [ebp - 0x2c], 0x2b
sub edi, esi
add dword [ebp - 0x80], eax
lea eax, [ebp - 0x80]
push eax
mov eax, dword [ebp - 0x64]
push dword [eax - 0x5c]
call fcn.00403853
add edx, eax
lea eax, [ebp - 0x80]
push eax
cmp dword [ebp - 0x48], 0x400002
jne 0x41567c
cmp dword [0x4193db], 0
push esi
push dword [ebp - 0x5c]
sub ecx, edx
call fcn.00403911
sub dword [ebp - 0x80], 6
sub esi, dword [ebp - 0x34]
cmp dword [ebp - 0x48], 0x3f
jne 0x41569f
mov dword [ebp - 0x1c], ecx
mov byte [ebp - 0x2c], cl
mov ebx, dword [ebp - 0x40]
lea ebx, [ebx + 1]
push ebx
push dword [ebp - 0x80]
call fcn.00403812
and edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x64]
cmp dword [ebp - 0x48], 0x21
jne 0x4156c9
movzx esi, byte [eax - 7]
movzx edx, byte [ecx - 7]
sub esi, edx
je 0x4156c7
push dword [eax - 0x68]
mov ebx, dword [ebp - 0x64]
push dword [ebx - 0xbc]
mov word [ebp - 0x4c], 0x144
cmp dword [ebp - 0x38], 0x400002
jne 0x4156eb
mov esp, ebp
pop ebp
int3
mov edx, dword [ebp - 0x40]
mov dword [ebp - 0x30], 0x2f6
mov esi, dword [ebp - 0x3c]
add esi, 0x5a8
call dword [esi]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
cmp dword [ebp - 0x38], 1
je 0x415715
int3
mov eax, dword [ebp - 0x80]
or dword [ebp - 0x80], eax
jne 0x41590b
add esi, 0xc90c
add ebx, dword [ebp - 0x60]
push 0x40
cmp dword [ebp - 0x38], 1
je 0x41573e
sub eax, dword [ebp - 0x78]
push 0
push 1
cmp dword [ebp - 0x38], 0x51
jne 0x41575d
pop ecx
test edi, edi
je 0x415757
cmp ebx, esi
jae 0x415714
add dword [ebp - 0x60], edx
or dword [ebp - 0x78], edi
mov ecx, dword [ebp - 0x80]
cmp dword [ebp - 0x38], 1
je 0x415772
push dword [edi + 0x18]
mov edx, dword [ebp - 0x64]
or eax, edx
lea ecx, [edx - 0x4c]
mov dword [ebp - 0x80], ecx
or edi, esi
sub ebx, dword [ebp - 0x58]
lea esi, [esi + 0x16c6]
push dword [ebp - 0x80]
and word [ebp - 0x58], 0x656
and ebx, dword [ebp - 0x28]
push 0
and edi, dword [ebp - 0x84]
add word [ebp - 0x50], 0x44d
or dword [ebp - 0x78], 0xffffff85
and dword [ebp - 0x68], edi
push 0
add dword [ebp - 0x4c], ebx
and dword [ebp - 0x54], 0xffffffab
push 0
mov edx, ecx
mov edi, dword [ebp - 0x80]
and dword [ebp - 0x30], eax
mov ebx, dword [ebp - 0x64]
lea edi, [ebx - 0x68]
mov dword [ebp - 0x80], edi
push dword [ebp - 0x80]
xor ecx, dword [ebp - 0x34]
add edi, 0xcbee
mov ebx, dword [ebp - 0x64]
mov word [ebp - 0x4c], 0xf4a
or esi, dword [ebp - 0x84]
push dword [ebx - 0xbc]
or dword [ebp - 0x50], edx
xor dword [ebp - 0x60], 0xffffffd7
mov esi, dword [ebp - 0x64]
push dword [esi - 0x3c]
test dword [ebp - 0x48], 0
je 0x41580f
mov dword [ecx], 0x432e8c
int3
mov edx, dword [ebp - 0x40]
add ebx, 0x48d7
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x3c]
add eax, 0x594
call dword [eax]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
lea ebx, [eax + edi*4 + 0x17eb]
add dword [ebp - 0x60], 0xffffffec
mov ebx, dword [ebp - 0x80]
or dword [ebp - 0x80], ebx
jne 0x4158c1
or word [ebp - 0x54], 0x76a
cmp dword [ebp - 0x38], 1
je 0x415853
push eax
push 0
sub edi, ebx
mov edx, dword [ebp - 0x64]
xor dword [ebp - 0x2c], edi
push dword [edx - 0xb8]
add dword [ebp - 0x54], edi
mov edx, dword [ebp - 0x40]
cmp dword [ebp - 0x38], 0x400002
jne 0x415886
cmp eax, 0xffffffff
jae 0x415843
dec eax
mov dword [ebx + 4], eax
mov edi, dword [ebx + 4]
neg edi
mov esi, dword [ebp - 0x3c]
add esi, 0x5c4
call dword [esi]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
cmp dword [ebp - 0x38], 0xffffff96
jne 0x4158ae
mov eax, dword [ebp + 8]
push ecx
push edx
push eax
call fcn.0040ba0f
add esp, 0x10
jmp 0x41590b
xor eax, dword [ebp - 0x34]
sub eax, dword [ebp - 0x68]
push 0
mov edi, dword [ebp - 0x64]
mov dword [ebp - 0x4c], 0xcea
push dword [edi - 0xbc]
cmp dword [ebp - 0x38], 1
je 0x4158ef
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push esi
mov esi, dword [ebp + 0xc]
and eax, ebx
lea edi, [edx]
mov edx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x3c]
add eax, 0x5cc
call dword [eax]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
sub esi, edi
xor edx, ecx
mov ebx, dword [ebp - 0x64]
cmp dword [ebp - 0x48], 0
je 0x415926
je 0x4158a0
push dword [edi + 0x18]
call fcn.00406168
pop ecx
test eax, eax
je 0x4158a6
push dword [ebx - 0xbc]
mov edx, dword [ebp - 0x40]
add esi, dword [ebp - 0x28]
and ebx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x3c]
add esi, 0x598
call dword [esi]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
mov ecx, dword [ebp - 0x64]
push dword [ecx - 0xb8]
sub ecx, ebx
xor ecx, dword [ebp - 0x60]
sub ebx, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x3c]
add ecx, 0x598
call dword [ecx]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
mov edx, dword [ebp - 0x64]
push dword [edx - 0x54]
sub ebx, dword [ebp - 0x4c]
push 0xffffffff
add edx, dword [ebp - 0x60]
and esi, dword [ebp - 0x34]
or dword [ebp - 0x4c], esi
mov edx, dword [ebp - 0x40]
mov edi, dword [ebp - 0x3c]
add edi, 0x5a8
call dword [edi]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
mov ebx, dword [ebp - 0x64]
cmp dword [ebp - 0x38], 0xffffff91
jne 0x4159ab
jb 0x415979
std
rep movsd dword es:[edi], dword [esi]
cld
lea ecx, [ecx]
push dword [ebx - 0x50]
mov dword [ebp - 0x28], ebx
mov edx, dword [ebp - 0x40]
mov edi, dword [ebp - 0x3c]
add edi, 0x598
call dword [edi]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
mov esi, dword [ebp - 0x64]
and dword [ebp - 0x34], esi
push dword [esi - 0x48]
add edx, dword [ebp - 0x58]
and ebx, dword [ebp - 0x68]
cmp dword [ebp - 0x38], 1
je 0x4159f5
jne 0x415971
call fcn.00414243
and dword [eax], 0
call fcn.0040a2e4
mov dword [eax], 9
or eax, 0xffffffff
push 0xffffffff
sub esi, ebx
cmp dword [ebp - 0x38], 0x32
jne 0x415a0b
add eax, 0x2e5c
or eax, dword [ebp - 0x34]
mov edx, dword [ebp - 0x40]
add dword [ebp - 0x60], 0x989
mov eax, dword [ebp - 0x3c]
add eax, 0x5a8
call dword [eax]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
mov edi, dword [ebp - 0x64]
push dword [edi - 0x3c]
xor dword [ebp - 0x6c], eax
add eax, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x3c]
add ecx, 0x598
call dword [ecx]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
xor dword [ebp - 0x7c], edi
or dword [ebp - 0x4c], edx
mov ebx, dword [ebp - 0x64]
push dword [ebx - 0x34]
add ebx, dword [ebp - 0x7c]
cmp dword [ebp - 0x38], 1
je 0x415a69
pop edi
pop esi
push 0xffffffff
or dword [ebp - 0x78], esi
xor eax, ebx
mov edx, dword [ebp - 0x40]
mov dword [ebp - 0x50], 0x924
and dword [ebp - 0x6c], ebx
mov eax, dword [ebp - 0x3c]
add eax, 0x5a8
call dword [eax]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
add edi, dword [ebp - 0x28]
and word [ebp - 0x78], 0xd95
mov esi, dword [ebp - 0x64]
and ecx, dword [ebp - 0x84]
push dword [esi - 8]
cmp dword [ebp - 0x38], 1
je 0x415ab5
test ecx, ecx
je 0x415a9d
mov eax, ecx
xor eax, ebx
mov edx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x3c]
add eax, 0x598
call dword [eax]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
sub eax, edi
mov eax, dword [ebp - 0x64]
cmp dword [ebp - 0x48], 0x7a
jne 0x415ae6
test edx, edx
jne 0x415a67
and dword [ebp - 0x100c], edx
sub ecx, dword [esi + 8]
push dword [eax - 4]
mov dword [ebp - 0x30], 0xbab
mov edx, dword [ebp - 0x40]
add dword [ebp - 0x28], edi
xor dword [ebp - 0x84], 0xa9d
mov edi, dword [ebp - 0x3c]
add edi, 0x598
call dword [edi]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x40], edx
lea esi, [ebp - 0x80]
push esi
cmp dword [ebp - 0x38], 0x400002
jne 0x415b28
cmp dword [ebp - 0x20], 3
mov dword [ebp - 0x28], esi
push dword [ebp - 0x44]
sub ecx, ebx
call fcn.00403812
pop dword [ebp - 0x24]
or ebx, dword [ebp - 0x7c]
sub eax, edx
pop dword [ebp - 0x3c]
and esi, dword [ebp - 0x58]
pop dword [ebp - 0x44]
and ebx, dword [ebp - 0x84]
mov edi, dword [ebp - 0x64]
test dword [ebp - 0x48], 0
je 0x415b59
pop esi
mov esp, edi
cmp dword [ebp - 0x48], 0x6d
jne 0x415b70
jne 0x415bde
mov esi, dword [esi + 0x54]
push esi
push edi
call fcn.00413282
pop dword [ebp - 0x64]
test dword [ebp - 0x48], 0
je 0x415b85
cmp ecx, edi
jae 0x415be4
push eax
push edi
or ecx, dword [ebp - 0x58]
sub edi, dword [ebp - 0x34]
ret 0xc
and ecx, dword [ebp - 0x28]
push dword [ebx + 8]
sub edi, esi
mov eax, dword [ebp - 0x64]
push dword [eax + 0xc]
call fcn.004171f4
lea edi, [ebp - 0x5c]
push edi
mov edi, dword [ebp - 0x40]
push dword [edi + 6]
call fcn.00403812
xor eax, dword [ebp - 0x34]
mov ecx, 0xffff
cmp dword [ebp - 0x48], 0x400002
jne 0x415c17
mov eax, dword [edi]
push eax
and dword [ebp - 0x5c], ecx
or dword [ebp - 0x7c], ebx
and esi, dword [ebp - 0x60]
lea ecx, [ebp - 0x80]
push ecx
mov ecx, dword [ebp - 0x40]
push dword [ecx + 0x14]
call fcn.00403812
mov esi, 0xffff
sub eax, edx
xor edi, edx
and dword [ebp - 0x80], esi
lea edx, [ebp - 0x40]
add edi, 0xe7a8
push edx
push dword [ebp - 0x80]
sub ebx, dword [ebp - 0x30]
and esi, edx
call fcn.00403853
sub ecx, edi
add esi, edx
mov esi, edx
cmp dword [ebp - 0x38], 1
je 0x415c73
and edx, 0x4193ff
or edx, 0x419619
mov dword [ecx + 0x14], edx
mov ecx, dword [esi]
push ecx
mov edi, 0x18
or ecx, edi
add dword [ebp - 0x40], edi
and esi, dword [ebp - 0x6c]
add ebx, dword [ebp - 0x2c]
jmp 0x415d12
lea ebx, [ebp - 0x80]
push ebx
mov ebx, dword [ebp - 0x40]
push dword [ebx + 0xc]
call fcn.00403812
sub esi, ecx
lea ebx, [ebp - 0x24]
push ebx
mov dword [ebp - 0x4c], esi
push dword [ebp - 0x80]
call fcn.00403812
or edx, eax
lea edx, [ebp - 0x80]
push edx
mov edx, dword [ebp - 0x64]
push dword [edx + 8]
call fcn.00403853
xor dword [ebp - 0x6c], ebx
cmp dword [ebp - 0x48], 0xffffffec
jne 0x415cd4
jb 0x415c70
mov ecx, dword [esi]
mov byte [ecx + eax], 0
pop edi
lea ecx, [ebp - 0x24]
push ecx
mov ecx, dword [ebp - 0x64]
push dword [ecx + 0xc]
call fcn.00403853
mov dword [ebp - 0x68], edx
mov edx, dword [ebp - 0x40]
push dword [edx + 8]
xor ecx, dword [ebp - 0x7c]
push dword [ebp - 0x80]
mov dword [ebp - 0x60], 0x1c5
push dword [ebp - 0x24]
xor ecx, ebx
call fcn.004171f4
sub edi, ecx
add dword [ebp - 0x40], 0x28
sub dword [ebp - 0x5c], 1
add ecx, ebx
mov ecx, dword [ebp - 0x5c]
or dword [ebp - 0x5c], ecx
jne 0x415c8e
pop dword [ebp - 0x24]
mov esi, dword [ebp - 0x64]
xor edi, dword [ebp - 0x50]
cmp dword [ebp - 0x38], 9
jne 0x415d36
mov esp, esi
add esi, 0xbe77
pop dword [ebp - 0x64]
sub edx, dword [ebp - 0x60]
or ecx, dword [ebp - 0x28]
add dword [ebp - 0x34], ecx
add eax, edx
ret 8
mov dword [ebp - 0x50], edi
add edx, dword [ebp - 0x2c]
push dword [ebp - 0x40]
or ebx, dword [ebp - 0x54]
sub edi, dword [ebp - 0x84]
lea esi, [ebp - 0x24]
mov ebx, eax
sub ebx, dword [ebp - 0x2c]
push esi
cmp dword [ebp - 0x38], 1
je 0x41773c
push dword [ebp - 0x80]
or eax, edx
call fcn.00403812
and esi, dword [ebp - 0x50]
mov edx, dword [ebp - 0x24]
shr edx, 5
mov dword [ebp - 0x24], edx
lea edx, [ebp - 0x44]
push edx
mov edx, dword [ebp - 0x64]
push dword [edx + 0x1c]
call fcn.00403812
lea edi, [ebp - 0x24]
lea ebx, [ebx]
push edi
push dword [ebp - 0x44]
call fcn.00403853
lea ebx, [ebp - 0x44]
xor esi, dword [ebp - 0x58]
push ebx
lea esi, [ecx]
push dword [ebp - 0x80]
or ecx, edi
add dword [ebp - 0x48], 0
je 0x417792
call fcn.00403812
cmp dword [ebp - 0x38], 1
je 0x4177ad
mov eax, 0x419832
pop esi
mov esp, ebp
pop ebp
lea edx, [ebp - 8]
push edx
mov ecx, dword [ebp - 0x44]
shl ecx, 4
mov dword [ebp - 0x44], ecx
lea esi, [ebp - 0x40]
push esi
mov esi, dword [ebp - 0x64]
push dword [esi + 0x18]
call fcn.00403812
xor esi, ecx
lea edx, [ebp - 0x44]
push edx
push dword [ebp - 0x40]
add dword [ebp - 0x30], 0xffffffef
call fcn.00403853
and dword [ebp - 0x7c], eax
lea eax, [ebp - 0x24]
add dword [ebp - 0x48], 0
je 0x4177f8
lea eax, [ebp - 0x1f8]
push eax
push esi
call dword [0x4190f4]
mov ecx, dword [ebp - 4]
pop edi
push eax
lea edx, [ecx + esi*2 + 0x4e]
push dword [ebp - 0x44]
call fcn.00403968
cmp dword [ebp - 0x38], 1
je 0x417812
sub ecx, dword [ebp - 0x30]
add dword [ebp - 0x28], 0xffffffa5
mov edi, dword [ebp - 0x5c]
cmp dword [ebp - 0x38], 0x400002
jne 0x41782c
int3
cmp dword [ebp - 0x38], 1
je 0x41784e
mov eax, 0x419851
int3
add edi, dword [ebp - 0x80]
mov edx, dword [ebp - 0x44]
lea edx, [edi]
mov dword [ebp - 0x44], edx
cmp dword [ebp - 0x38], 1
je 0x41787a
call fcn.00409105
mov ecx, eax
mov eax, dword [ecx + 0x6c]
cmp eax, dword [0x419632]
je 0x417835
mov edx, dword [0x4196da]
lea esi, [ebp - 0x24]
cmp dword [ebp - 0x38], 0x2b
jne 0x417895
call fcn.00416565
push 1
lea ecx, [ebp - 0x2014]
push ecx
push edi
push esi
or word [ebp - 0x84], 0x7d2
push dword [ebp - 0x44]
add edi, ebx
call fcn.00403968
lea eax, [ebp - 0x3c]
push eax
push dword [ebp - 0x24]
call fcn.00403911
add dword [ebp - 0x50], 0x69a
lea edx, [ebp - 0x24]
push edx
push dword [ebp - 0x3c]
and ecx, dword [ebp - 0x34]
lea edi, [edi - 0x71]
call fcn.00403812
add ecx, 0x9e76
mov eax, dword [ebp - 0x24]
shr eax, 5
mov dword [ebp - 0x24], eax
lea edi, [ebp - 0x44]
push edi
mov edi, dword [ebp - 0x64]
push dword [edi + 0x14]
call fcn.00403812
xor word [ebp - 0x34], 0x395
lea edi, [ebp - 0x24]
xor dword [ebp - 0x78], edx
or ebx, esi
push edi
push dword [ebp - 0x44]
or word [ebp - 0x84], 0xce3
call fcn.00403853
and dword [ebp - 0x60], edi
or edx, esi
lea edx, [ebp - 0x44]
add dword [ebp - 0x48], 0
je 0x417923
push edx
push ebx
push esi
call eax
pop edi
push edx
test dword [ebp - 0x48], 0
je 0x417932
pop ebp
int3
push dword [ebp - 0x3c]
call fcn.00403812
or dword [ebp - 0x54], ebx
mov edi, dword [ebp - 0x44]
shl edi, 4
mov dword [ebp - 0x44], edi
or dword [ebp - 0x4c], ebx
or esi, dword [ebp - 0x6c]
lea edi, [ebp - 0x40]
push edi
mov edi, dword [ebp - 0x64]
push dword [edi + 0x10]
call fcn.00403812
add ecx, dword [ebp - 0x78]
and dword [ebp - 0x28], edx
lea edi, [ebp - 0x44]
xor edx, dword [ebp - 0x60]
test dword [ebp - 0x48], 0
je 0x417983
pop ebp
mov dword [ebp - 4], 0xffffffff
mov eax, 0x419843
mov ebx, dword [ebp + 8]
push edi
push dword [ebp - 0x40]
call fcn.00403853
add ebx, edi
add dword [ebp - 0x58], edx
lea edi, [ebp - 0x24]
or dword [ebp - 0x78], 0x8f7
xor dword [ebp - 0x2c], edi
push edi
push dword [ebp - 0x44]
call fcn.00403968
or dword [ebp - 0x6c], eax
add dword [ebp - 0x28], esi
and dword [ebp - 0x2c], 0x1e
mov ecx, dword [ebp - 0x5c]
or edx, dword [ebp - 0x54]
cmp dword [ebp - 0x38], 0x59
jne 0x4179cf
cmp eax, 0xfffffffe
je 0x4179c5
push edi
push esi
call fcn.00416fec
sar eax, 5
add ecx, dword [ebp - 0x3c]
add edi, 0xa26a
mov esi, dword [ebp - 0x44]
xor dword [ebp - 0x7c], edi
lea esi, [ecx]
mov dword [ebp - 0x44], esi
lea edi, [ebp - 0x24]
or eax, dword [ebp - 0x84]
cmp dword [ebp - 0x38], 0x400002
jne 0x4179ff
mov eax, dword [0x4193c2]
xor eax, ebp
push edi
and dword [ebp - 0x58], edx
push dword [ebp - 0x44]
cmp dword [ebp - 0x48], 0
je 0x417a1b
movzx edx, byte [ecx - 4]
sub esi, edx
je 0x417a30
xor edx, edx
test esi, esi
call fcn.00403968
lea edi, [ebp - 0x80]
cmp dword [ebp - 0x38], 0x25
jne 0x417a36
cmp dword [ebp - 0xe], 0xffffffff
jne 0x417a32
and dword [ebp - 0xe], 0
push edi
cmp dword [ebp - 0x48], 0xfffffff1
jne 0x417a44
pop edi
pop esi
pop ebp
int3
push dword [ebp - 0x24]
call fcn.00403911
add dword [ebp - 0x5c], 0x61c88647
pop dword [ebp - 0x40]
cmp dword [ebp - 0x38], 0x400002
jne 0x417a6d
mov edi, edi
push ebp
mov ebp, esp
cmp dword [ebp + 0x18], 0
je 0x417a32
sub dword [ebp - 0x40], 1
jne 0x417715
mov dword [ebp - 0x4c], edi
and eax, dword [ebp - 0x7c]
lea ebx, [ebp - 0x40]
mov dword [ebp - 0x2c], 0xdbc
and ecx, edx
push ebx
push dword [ebp - 0x3c]
call fcn.00403812
pop dword [ebp - 0x5c]
lea ecx, [edi + edx*8 + 0xdf]
mov ecx, 0x2dd4190a
mov ecx, ebx
pop dword [ebp - 0x44]
and edi, edx
pop dword [ebp - 0x3c]
and ecx, edi
cmp dword [ebp - 0x38], 1
je 0x417aba
pop dword [ebp - 0x24]
mov ebx, dword [ebp - 0x64]
and dword [ebp - 0x34], ebx
mov esp, ebx
and edi, dword [ebp - 0x30]
xor ebx, edx
and edx, dword [ebp - 0x34]
pop dword [ebp - 0x64]
ret 0x18
mov byte [ebp - 0x34], 0xe2
cmp dword [ebp - 0x48], 0x400002
jne 0x417c62
call 0x405289
and dword [ebp - 4], 0
dec dword [ebp + 0x10]
js fcn.00417c14
mov ecx, dword [ebp + 8]
or eax, dword [ebp - 0x4c]
or dword [ebp - 0x6c], edi
ret 0xc
add eax, dword [ebp - 0x50]
sub ecx, dword [ebp - 0x6c]
push dword [ebp - 0x24]
and dword [ebp - 0x60], 0xe
xor word [ebp - 0x84], 0x74a
and dword [ebp - 0x7c], 0x6c
push dword [ebp - 0x3c]
cmp dword [ebp - 0x48], 0xffffffd4
jne 0x417cbd
cmp esi, ebx
je 0x417c41
cmp edi, ebx
ja 0x417c88
call 0x40899d
push 0x22
xor eax, dword [ebp - 0x54]
and ebx, dword [ebp - 0x50]
push dword [ebp - 0x44]
lea esi, [ecx + ebx*8 + 0x17ab]
mov eax, dword [ebp - 0x64]
add ebx, dword [ebp - 0x84]
sub edi, dword [ebp - 0x6c]
push dword [eax + 0x10]
add ebx, 0x7b97
cmp dword [ebp - 0x38], 0x6c
jne 0x417cef
int3
int3
mov ecx, dword [ebp - 0x64]
push dword [ecx + 0xc]
add ebx, 0x4f1d
mov edx, dword [ebp - 0x64]
sub edi, ecx
push dword [edx + 8]
lea edi, [ebx + edi*4 + 0x7c]
cmp dword [ebp - 0x38], 1
je 0x417d1a
movzx ecx, al
movzx eax, byte [ebx]
cmp ecx, eax
ja 0x417cfe
call fcn.00417ad3
add eax, ecx
lea ebx, [ebp - 0x5c]
push ebx
mov ebx, dword [ebp - 0x64]
push dword [ebx + 0xc]
call fcn.00403812
lea eax, [ebp - 0x3c]
push eax
mov eax, dword [ebp - 0x64]
push dword [eax + 8]
call fcn.00403812
lea ebx, [ebp - 0x24]
cmp dword [ebp - 0x48], 0x400002
jne 0x417d5a
mov dword [ebp - 4], ebx
cmp dword [esi], ebx
jne 0x417cec
push 0x419561
push ebx
xor word [ebp - 0x60], 0x4f2
add ebx, dword [ebp - 0x84]
push dword [ebp - 0x3c]
call fcn.00403812
mov eax, dword [ebp - 0x64]
cmp dword [ebp - 0x38], 0xffffffc9
jne 0x417d7f
mov eax, dword [ebp + 8]
push esi
push dword [eax + 0x10]
add dword [ebp - 0x28], esi
mov esi, dword [ebp - 0x64]
xor dword [ebp - 0x60], esi
cmp dword [ebp - 0x48], 0x400002
jne 0x417d9b
mov esp, ebp
pop ebp
push ebp
push dword [esi + 0x10]
add dword [ebp - 0x48], 0
je 0x417daa
mov eax, dword [esi + 0x40]
mov esi, dword [ebp - 0x64]
xor dword [ebp - 0x78], ecx
and dword [ebp - 0x58], edx
push dword [esi + 0x10]
lea ecx, [edx - 0xe]
mov esi, dword [ebp - 0x64]
sub eax, dword [ebp - 0x30]
cmp dword [ebp - 0x38], 0xffffffd7
jne 0x417dd4
mov dword [eax], ecx
mov eax, dword [esi + 0x24]
mov dword [eax], ecx
mov edx, dword [esi + 0x34]
mov dword [edx], ecx
push dword [esi + 0x10]
cmp dword [ebp - 0x48], 0xffffffb1
jne 0x417df0
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
add edx, eax
mov ecx, dword [edx + 0x14]
and ecx, 0x41970f
lea edx, [ebp - 0x44]
add ecx, 0x1c27
cmp dword [ebp - 0x38], 0xfffffffc
jne 0x417e0a
push esi
test cl, 0x40
je 0x417e5f
or ecx, eax
push edx
test dword [ebp - 0x48], 0
je 0x417e1e
mov esi, dword [ebp + 0xc]
push edi
mov dword [ebp - 4], ecx
push dword [ebp - 0x3c]
call fcn.00403812
or ebx, dword [ebp - 0x34]
or dword [ebp - 0x60], edi
lea ebx, [ebp - 0x44]
push ebx
sub edi, dword [ebp - 0x6c]
push dword [ebp - 0x5c]
call fcn.00403853
sub edx, dword [ebp - 0x78]
mov eax, 8
and esi, ecx
add ecx, esi
sub dword [ebp - 0x44], eax
add eax, dword [ebp - 0x30]
cmp dword [ebp - 0x38], 1
je 0x417e5f
push edi
call 0x405d50
pop ecx
test eax, eax
and ebx, eax
and dword [ebp - 0x7c], 0x40f
mov edx, dword [ebp - 0x44]
push dword [edx]
cmp dword [ebp - 0x38], 0x1d
jne 0x417e93
jl fcn.0040502b
mov eax, ebx
sub eax, dword [ebp - 0x1acc]
cmp eax, dword [ebp + 0x10]
jb 0x40da32
mov eax, dword [ebp - 0x1acc]
add dword [ebp - 0x44], 4
or ecx, edi
mov edi, dword [ebp - 0x44]
push dword [edi]
or dword [ebp - 0x58], esi
cmp dword [ebp - 0x48], 0x400002
jne 0x417eb9
jne 0x417e45
push 0x20
call fcn.00413237
call fcn.00417646
cmp dword [ebp - 0x48], 0xffffffd3
jne 0x417ed2
mov dword [ebp - 8], esi
mov dword [ebp - 4], esi
call fcn.00405fe1
lea eax, [ebp - 0x44]
push eax
mov dword [ebp - 0x50], 0xf7
xor dword [ebp - 0x78], edx
push dword [ebp - 0x24]
call fcn.00403812
xor ebx, dword [ebp - 0x84]
cmp dword [ebp - 0x48], 0xffffffc9
jne 0x417f01
add eax, 0x10
or dword [esi + 0xc], eax
and dword [esi + 4], 0
lea edi, [ebp - 0x44]
or eax, dword [ebp - 0x30]
push edi
push dword [ebp - 0x5c]
and dword [ebp - 0x68], esi
add dword [ebp - 0x78], 0x462
call fcn.00403853
mov esi, 4
mov ebx, eax
sub dword [ebp - 0x44], esi
push dword [ebp - 0x44]
push dword [ebp - 0x80]
call fcn.00403812
and ecx, eax
add ecx, dword [ebp - 0x28]
sub dword [ebp - 0x44], 4
or dword [ebp - 0x68], eax
push dword [ebp - 0x44]
push dword [ebp - 0x40]
call fcn.00403812
and ecx, dword [ebp - 0x54]
mov ebx, 8
sub dword [ebp - 0x5c], ebx
jne 0x417d6f
or dword [ebp - 0x84], edi
add edx, dword [ebp - 0x2c]
cmp dword [ebp - 0x38], 0x400002
jne 0x417f7d
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
movzx edx, bl
push edx
call eax
mov ecx, dword [ebp + 0x14]
pop dword [ebp - 0x44]
pop dword [ebp - 0x3c]
xor dword [ebp - 0x30], ecx
xor edx, dword [ebp - 0x4c]
pop dword [ebp - 0x24]
add eax, dword [ebp - 0x28]
cmp dword [ebp - 0x38], 1
je 0x417fa5
mov eax, dword [esi + 0x10]
mov dword [eax], edi
mov edx, dword [esi + 0x20]
mov dword [edx], edi
mov eax, dword [esi + 0x30]
mov edi, dword [ebp - 0x64]
mov esp, edi
xor word [ebp - 0x84], 0xf94
pop dword [ebp - 0x64]
cmp dword [ebp - 0x38], 1
je 0x417fcb
push eax
push ecx
call fcn.004106ed
mov edx, dword [eax]
mov dword [ebp + 0x10], edx
ret 0xc