Function at 0x40887a
Capabilities:
Authenticate hmac
Check os version
Encrypt data using speck
Get number of processors
Inspect section memory permissions
Parse credit card information
Parse pe header
Resolve function by parsing pe exports

Disassembly:
xor ebx, edx
push 0
lea ebx, [esi]
mov edx, dword [ebp - 0x60]
mov ebx, dword [ebp - 0x14]
add edi, 0xc19b
call ebx
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x60], edx
lea ecx, [ebx]
and dword [ebp - 0x44], 0x22
push dword [ebp - 0xc]
lea edx, [ebx + 0x6e]
and edi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x6c]
cmp dword [ebp - 0x40], 0x400002
jne 0x405367
add eax, 0x10
push eax
mov edx, dword [ebp - 0xc]
lea ecx, [edx + 0xa4]
mov dword [ebp - 0x6c], ecx
and eax, edi
push dword [ebp - 0x6c]
mov edx, esi
or eax, dword [ebp - 0x64]
call fcn.00414637
add dword [ebp - 0x48], esi
or ecx, edx
sub ecx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x6c]
or dword [ebp - 0x6c], ebx
je 0x4053c8
cmp dword [ebp - 0x40], 0xffffffa5
jne 0x4053a0
push ebx
cmp dword [ebp - 0x40], 1
je 0x4053b9
push dword [ebp - 0xc]
cmp dword [ebp - 0x40], 1
je 0x4053e8
test bl, 8
je 0x40541e
call fcn.0040dec0
and eax, esi
and dword [ebp - 0x20], esi
cmp dword [ebp - 0x6c], 1
jne 0x40540a
lea esi, [ebp - 0x60]
push esi
mov esi, dword [ebp - 0x14]
push dword [esi + 0xc]
call fcn.00403e4e
lea edx, [ebp - 0x60]
push edx
mov edx, dword [ebp - 0x5c]
push dword [edx + 0xc]
call fcn.00403ed7
add dword [ebp - 0x50], 0x4f
mov byte [ebp - 0x48], 0xe6
mov esi, dword [ebp - 0x70]
or eax, dword [ebp - 0x44]
sub ecx, eax
mov edi, dword [ebp - 0xc]
and dword [ebp - 0x28], 0xde8
lea esi, [edi + 0x54]
mov dword [ebp - 0x70], esi
jmp 0x406b28
mov ecx, dword [ebp - 0x60]
mov dl, byte [ebp - 0x6c]
mov dl, byte [ecx]
mov byte [ebp - 0x6c], dl
or ebx, dword [ebp - 0x44]
mov dword [ebp - 0x4c], eax
mov esi, 0xff
add ebx, dword [ebp - 0x4c]
and dword [ebp - 0x6c], esi
and eax, edx
or eax, dword [ebp - 0x58]
and edi, dword [ebp - 0x18]
cmp dword [ebp - 0x6c], 0x61
jb 0x406ae5
lea edi, [ebx]
add ecx, 0xb81
cmp dword [ebp - 0x40], 0x400002
jne 0x406aaa
inc edi
mov dword [esi + ebx*4 + 0xc4], edi
mov al, byte [esi + 0x43]
mov cl, al
cmp dword [ebp - 0x6c], 0x7a
ja 0x406ae5
or dword [ebp - 0x50], eax
add edi, dword [ebp - 0x44]
cmp dword [ebp - 0x40], 0x400002
jne 0x406ada
call fcn.0040b0f8
push eax
push esi
call fcn.00412b68
pop ecx
pop ecx
mov ebx, 0x20
add edi, dword [ebp - 0x34]
sub dword [ebp - 0x6c], ebx
push dword [ebp - 0x70]
push dword [ebp - 0x6c]
call fcn.00403e4e
cmp dword [ebp - 0x54], 0
je 0x406b09
push dword [ebp - 4]
call ebx
test eax, eax
add dword [ebp - 0x70], 1
add dword [ebp - 0x60], 1
cmp dword [ebp - 0x40], 1
je 0x406b28
push dword [eax + 0x60]
mov ecx, esi
push dword [eax + 0x5c]
call dword [edx + 0x110]
mov edi, dword [ebp - 0x60]
mov dword [ebp - 0x18], 0x2c3
xor ecx, dword [ebp - 0x48]
cmp byte [edi], 0
jne 0x406a4f
or esi, dword [ebp - 0x28]
or dword [ebp - 0x34], 0x57
mov esi, dword [ebp - 0x6c]
mov edx, dword [ebp - 0xc]
lea esi, [edx + 0x54]
mov dword [ebp - 0x6c], esi
cmp dword [ebp - 0x40], 0xffffffe3
jne 0x406b60
int3
push dword [ebp - 0x6c]
xor edx, dword [ebp - 0x24]
call fcn.00406775
cmp dword [ebp - 0x40], 0x1d
jne 0x406b8a
mov edi, dword [ebp - 0x6c]
test dword [ebp - 0x54], 0
je 0x406bac
mov esi, dword [ebp - 0x5c]
and edx, edi
or ebx, dword [ebp - 0x48]
cmp edi, dword [esi + 0x10]
mov dword [ebp - 0x6c], edi
jne 0x406c04
cmp dword [ebp - 0x54], 0
je 0x406bd9
push 0xd
call fcn.0040fe12
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax + 4]
mov edi, dword [ebp - 0x5c]
lea edi, [edi - 0xc]
push edi
push dword [ebp - 0x14]
call fcn.00403e4e
add dword [ebp - 0x54], 0
je 0x406bf7
je 0x408095
mov edx, dword [ebp - 0x5c]
mov dword [edx - 4], 1
and word [ebp - 0x34], 0x3f5
add ebx, dword [ebp - 0x24]
mov edi, 0x14
add dword [ebp - 0x14], edi
cmp dword [ebp - 0x40], 0x400002
jne 0x406c2e
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
sub esi, edi
mov esi, ebx
and esi, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x14]
cmp dword [ecx], 0
jne 0x406a06
mov esi, dword [ebp - 0x5c]
cmp dword [esi - 4], 1
jne 0x406de0
cmp dword [ebp - 0x40], 1
je 0x406c5c
test esi, esi
lea ebx, [ebp - 0x14]
push ebx
mov ebx, dword [ebp - 0x5c]
push dword [ebx - 0xc]
call fcn.00403e4e
lea edi, [ebx + ecx - 0x40]
mov esi, dword [ebp - 0x14]
or ecx, edi
sub ecx, ebx
cmp dword [esi], 0
je 0x406de0
cmp dword [ebp - 0x40], 0xffffffb0
jne 0x406c9b
call dword [0x41a010]
test eax, eax
je 0x405328
cmp dword [ebp + 0x18], edi
je 0x406c23
lea ebx, [ebp - 0x70]
push ebx
mov ebx, dword [ebp - 0x14]
push dword [ebx]
call fcn.00403e4e
add word [ebp - 0x18], 0xcdf
lea eax, [ebp - 0x70]
push eax
mov eax, dword [ebp - 0x5c]
push dword [eax + 0xc]
call fcn.00403ed7
jmp 0x406dc4
lea ebx, [ebp - 0x60]
push ebx
mov ebx, dword [ebp - 0x70]
push dword [ebx]
call fcn.00403e4e
xor esi, edi
cmp dword [ebp - 0x40], 0x400002
jne 0x406d06
mov dword [ebp - 0x32c], 1
or dword [ebp - 4], 0xffffffff
mov edi, dword [ebp - 0x330]
mov ebx, dword [ebp - 0x2f0]
push 0x41a2ff
push 0
test dword [ebp - 0x60], 0x80000000
jne 0x406da2
sub eax, edi
mov eax, dword [ebp - 0x70]
cmp dword [ebp - 0x54], 0
je 0x406dd7
jg 0x406dd4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
cmp dword [eax], 0
jne 0x406cc9
lea esi, [ebp - 0x6c]
push esi
mov esi, dword [ebp - 0x5c]
push dword [esi - 4]
call fcn.00403e4e
lea edi, [ebp - 0x60]
push edi
mov edi, dword [ebp - 0x5c]
push dword [edi - 8]
call fcn.00403e4e
cmp dword [ebp - 0x40], 1
je 0x406e14
shl ecx, 4
mov dword [ebp - 0x1c], ebx
stosb byte es:[edi], al
lea ebx, [ecx + 0x42b2e8]
pop dword [ebp - 0x38]
xor dword [ebp - 0x10], ecx
pop dword [ebp - 0x60]
and dword [ebp - 0x48], edi
or esi, dword [ebp - 0x58]
pop dword [ebp - 0x70]
xor eax, dword [ebp - 0x44]
add word [ebp - 0x18], 0x75b
pop dword [ebp - 0x14]
add dword [ebp - 0x2c], edx
add ecx, dword [ebp - 0x48]
pop dword [ebp - 0xc]
add dword [ebp - 0x74], eax
add edi, dword [ebp - 0x58]
mov ebx, dword [ebp - 0x5c]
mov esp, ebx
or edx, dword [ebp - 0x24]
sub eax, dword [ebp - 0x2c]
mov dword [ebp - 0x68], edi
or ecx, dword [ebp - 0x68]
pop dword [ebp - 0x5c]
or dword [ebp - 0x24], 0x421
ret 0x10
lea ebx, [edx + edi*2 + 0x6d]
cmp dword [ebp - 0x40], 0x56
jne 0x407c4b
jne 0x409d9b
inc dword [ebp - 0x2e0]
push dword [ebp + 8]
call fcn.00412c83
pop ecx
mov ebx, eax
mov ecx, dword [ebp - 0x6c]
mov edi, dword [ebp - 0x5c]
add dword [ebp - 0x54], 0
je 0x407c63
push eax
lea edx, [esp + 0x20]
or ebx, 0x10
push edx
lea ecx, [edi - 0x10]
mov dword [ebp - 0x6c], ecx
cmp dword [ebp - 0x40], 0xffffffbb
jne 0x407c82
mov dword [ebp - 0x14], eax
call fcn.00414555
mov eax, 0x41a2fa
push ebp
mov ebp, esp
add ecx, dword [ebp - 0x10]
push dword [ebp - 0x6c]
lea ecx, [esi + 0x70]
cmp dword [ebp - 0x40], 0x400002
jne 0x407c9f
and edx, edi
add edx, dword [ebp - 0x74]
mov edx, dword [ebp - 0x6c]
mov edi, dword [ebp - 0x5c]
cmp dword [ebp - 0x40], 1
je 0x407cc5
test eax, eax
jne 0x407c9f
cmp dword [0x41a4a2], 1
jne 0x407c62
push 0x41a4d2
lea edx, [edi - 8]
mov dword [ebp - 0x6c], edx
mov dword [ebp - 0x64], 0x9cc
push dword [ebp - 0x6c]
cmp dword [ebp - 0x40], 1
je 0x407ce3
mov dword [ecx], eax
cmp eax, dword [edi + 0xc]
mov dword [ebp - 0x68], 0x38b
push 0
add ebx, eax
cmp dword [ebp - 0x40], 1
je 0x407d05
call dword [0x41a16c]
call fcn.00407f53
mov edx, dword [ebp - 0x60]
cmp dword [ebp - 0x40], 1
je 0x407d33
mov eax, dword [ebp - 0x133c]
and eax, 4
je 0x4131aa
and dword [ebp - 0x133c], 0xfffffffb
lea ecx, [ebp - 0x136c]
mov eax, dword [ebp - 0x133c]
mov esi, dword [ebp - 0xc]
add esi, 0x61c
call dword [esi]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x60], edx
add edx, dword [ebp - 0x58]
lea ecx, [edx + eax*2 + 0xae4]
add ecx, 0xc2dc
and ecx, dword [ebp - 0x58]
mov edx, dword [ebp - 0x6c]
sub ebx, eax
mov esi, edi
or dword [ebp - 0x6c], edx
je 0x407e78
cmp dword [ebp - 0x54], 0
je 0x407d81
push esi
push 0x41a552
mov dword [ebp - 8], edx
call fcn.0040e516
cmp dword [edi], esi
pop edi
mov ecx, dword [ebp - 0x70]
xor edi, dword [ebp - 0x34]
add eax, ebx
or dword [ebp - 0x70], ecx
jne 0x407e78
cmp dword [ebp - 0x40], 1
je 0x407dae
call dword [0x41a0ac]
push esi
mov esi, ecx
call fcn.0040d0f1
test byte [esp + 8], 1
mov ebx, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0xc]
and edx, dword [ebp - 0x74]
lea ebx, [ecx + 0xefc]
mov dword [ebp - 0x6c], ebx
cmp dword [ebp - 0x54], 0
je 0x407dd0
pop ebx
add esp, 0x41a527
add edi, dword [ebp - 0x34]
push dword [ebp - 0x6c]
mov eax, esi
or ecx, dword [ebp - 0x44]
add dword [ebp - 0x4c], edi
mov esi, dword [ebp - 0x6c]
xor dword [ebp - 0x48], edi
mov ecx, dword [ebp - 0x5c]
add dword [ebp - 0x54], 0
je 0x407dfc
and edi, esi
or ecx, edi
jne 0x407d79
mov edx, dword [eax + 0xc4]
lea esi, [ecx - 8]
mov dword [ebp - 0x6c], esi
add eax, 0x68d6
lea edi, [esi + ecx*8 + 0x15ce]
push dword [ebp - 0x6c]
lea edx, [edi + ecx*8 + 0x1a44]
xor esi, dword [ebp - 0x4c]
and eax, edi
mov edx, dword [ebp - 0x60]
cmp dword [ebp - 0x40], 0x400002
jne 0x407e34
mov esi, dword [ebp - 0xc]
add esi, 0x5ac
call dword [esi]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x60], edx
cmp dword [ebp - 0x40], 0x44
jne 0x407e5d
jl 0x412e75
cmp dword [ebp + 0xc], ebx
je 0x417fb4
add dword [ebp - 0x70], 1
xor edx, dword [ebp - 0x18]
jmp 0x407c27
mov edi, dword [ebp - 0x6c]
cmp dword [ebp - 0x40], 1
je 0x407e94
or dword [ebp - 0x6c], edi
jne 0x408020
push 0
mov ebx, dword [ebp - 0x5c]
xor edx, dword [ebp - 0x4c]
push dword [ebx - 0x1c]
mov dword [ebp - 0x4c], eax
add edi, eax
mov ebx, edx
push 0x800
mov edi, dword [ebp - 0x5c]
add esi, dword [ebp - 0x44]
cmp dword [ebp - 0x40], 1
je 0x407ec8
push dword [edi - 0xc]
xor dword [ebp - 0x1c], esi
test dword [ebp - 0x54], 0
je 0x407ee7
mov dword [esp + 0x137c], 0xffffffff
je 0x407f32
mov edx, dword [ebp - 0x60]
or dword [ebp - 0x20], esi
mov esi, dword [ebp - 0xc]
add esi, 0x620
call dword [esi]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x60], edx
lea edi, [ebp - 0x60]
push edi
mov edi, dword [ebp - 0x5c]
push dword [edi - 0x1c]
call fcn.00403e4e
lea ecx, [edx + edi + 0x360]
lea ebx, [ebp - 0x60]
mov dword [ebp - 0x1c], 0x84d
push ebx
push dword [ebp - 0x6c]
cmp dword [ebp - 0x54], 0x400002
jne 0x407f3a
test edi, edi
je 0x407f79
mov ecx, dword [esi + 0x24]
mov eax, dword [ecx]
mov dword [ebp + 8], eax
call fcn.00403ed7
mov edi, 2
add ebx, dword [ebp - 0x58]
sub dword [ebp - 0x60], edi
cmp dword [ebp - 0x54], 0xffffffd1
jne 0x407f58
cmp dword [ebp - 0x54], 0xffffffc4
jne 0x407f6d
mov ebx, dword [ebp - 0x60]
cmp dword [ebp - 0x40], 1
je 0x407f82
mov edx, ebx
lock xadd dword [ecx], edx
dec edx
test edx, edx
cmp dword [ebx], 0x5c
je 0x407fbd
lea eax, [ebx + eax*4 - 0xd]
or edi, dword [ebp - 0x68]
add dword [ebp - 0x60], 2
cmp dword [ebp - 0x40], 1
je 0x407fa8
mov dword [ebp - 0x30c], eax
mov dword [ebp - 0x6c], 0x5c
and eax, dword [ebp - 0x50]
push dword [ebp - 0x60]
push dword [ebp - 0x6c]
call fcn.00403e4e
mov eax, dword [ebp - 0x5c]
cmp dword [eax - 0x24], 1
jne 0x408020
mov edx, dword [ebp - 0x6c]
xor eax, dword [ebp - 0x18]
mov edi, dword [ebp - 0xc]
mov dword [ebp - 0x44], edx
add ebx, 0xe436
lea edx, [edi + 0xf20]
mov dword [ebp - 0x6c], edx
push dword [ebp - 0x6c]
add edi, dword [ebp - 0x48]
cmp dword [ebp - 0x54], 0x56
jne 0x408003
add esp, 0xc
mov eax, dword [eax]
lea ecx, [esp + 0x1c]
push ecx
push edi
push eax
mov edx, dword [ebp - 0x5c]
xor ebx, esi
push dword [edx - 0x1c]
xor dword [ebp - 0x50], ebx
call fcn.004124ee
cmp dword [ebp - 0x54], 0
je 0x408020
mov eax, ecx
xor ecx, ecx
lea ebx, [ebp - 0x70]
cmp dword [ebp - 0x40], 0xffffff86
jne 0x40803b
call 0x40893b
xor eax, eax
or dword [ebp - 4], 0xffffffff
push ebx
mov dword [esi + 0x20], eax
push ebx
or ecx, eax
cmp dword [ebp - 0x40], 1
je 0x408056
mov dword [ebx + 8], ecx
mov ebx, dword [ecx + 4]
cmp ebx, dword [ecx + 8]
jne 0x40803c
mov cl, byte [edi + eax + 4]
push dword [ebp - 0x6c]
call fcn.00403e4e
and esi, ebx
cmp dword [ebp - 0x54], 0x7c
jne 0x40807e
push 0x41a279
mov ecx, 0x41a52c
call fcn.0040e795
mov eax, dword [eax + 0x13c]
mov eax, dword [ebp - 0x5c]
or dword [ebp - 0x10], esi
xor esi, edi
mov dword [eax - 0x18], 0
push 0x8000
sub ecx, dword [ebp - 0x48]
lea ebx, [eax - 0x22]
add dword [ebp - 0x50], 1
mov edx, esi
mov edx, dword [ebp - 0x6c]
mov ebx, dword [ebp - 0x5c]
or dword [ebp - 0x4c], edx
cmp dword [ebp - 0x40], 1
je 0x4080bf
lea ecx, [eax + 0xc]
mov edx, edi
lock xadd dword [ecx], edx
dec edx
test edx, edx
lea edx, [ebx - 0x18]
mov dword [ebp - 0x6c], edx
add eax, 0x38a8
mov eax, 0xa8541fb0
mov eax, edi
cmp dword [ebp - 0x54], 0x400002
jne 0x4080e0
mov al, byte [esi]
push dword [ebp - 0x6c]
xor word [ebp - 0x10], 0xbe1
mov ebx, dword [ebp - 0x6c]
sub ecx, dword [ebp - 0x20]
lea eax, [edi + eax*8 + 0x13fe]
mov edi, dword [ebp - 0x5c]
cmp dword [ebp - 0x40], 1
je 0x408109
je 0x408084
inc esi
movzx ecx, byte [esi]
inc esi
lea ebx, [edi - 0x14]
mov dword [ebp - 0x6c], ebx
and esi, edi
add word [ebp - 0x18], 0x8c6
push dword [ebp - 0x6c]
push 0xffffffff
mov edx, dword [ebp - 0x60]
cmp dword [ebp - 0x40], 0x400002
jne 0x40813a
push esi
push ebx
push edi
push dword [ebp + 0xc]
call dword [0x41a02c]
mov ecx, dword [ebp - 0xc]
add ecx, 0x5a0
call dword [ecx]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x60], edx
lea ecx, [ebp - 0x6c]
sub esi, dword [ebp - 0x48]
push ecx
or dword [ebp - 0x58], 0x2f
add dword [ebp - 0x54], 0
je 0x408166
push dword [ebp - 0x70]
cmp dword [ebp - 0x54], 0
je 0x408175
add dh, dh
xchg esi, eax
call fcn.00403e4e
cmp dword [ebp - 0x40], 1
je 0x40818b
jb 0x408174
pop ebx
pop edi
pop esi
push ebp
mov ebp, esp
lea ecx, [ebp - 0x60]
push ecx
mov ecx, dword [ebp - 0x5c]
push dword [ecx - 0x1c]
call fcn.00403e4e
or ebx, dword [ebp - 0x28]
cmp dword [ebp - 0x40], 0x400002
jne 0x4081ae
pop dword [ebp - 0x14]
cmp dword [ebp - 0x40], 0x400002
jne 0x4081be
push edi
add ecx, dword [ebp - 0x68]
pop dword [ebp - 0xc]
or eax, ecx
xor dword [ebp - 0x10], esi
add eax, ebx
pop dword [ebp - 0x70]
xor eax, ecx
mov eax, 0xcb864344
mov eax, esi
mov dword [ebp - 0x44], ecx
mov edi, dword [ebp - 0x5c]
or ebx, eax
mov esp, edi
or dword [ebp - 0x1c], 0xd3d
cmp dword [ebp - 0x40], 0x400002
jne 0x4081fd
mov byte [edi], dl
mov eax, dword [esp + 8]
pop edi
int3
add ecx, 0x7bc0
sub esi, dword [ebp - 0x10]
pop dword [ebp - 0x5c]
or dword [ebp - 0x20], 0xc63
cmp dword [ebp - 0x40], 0x400002
jne 0x40823e
je 0x406b02
and dword [ebp - 0x133c], 0xfffffff7
lea ecx, [ebp - 0x1368]
mov eax, dword [ebp - 0x133c]
and eax, 0x10
je 0x409ac1
ret 4
lea edi, [edi + ebx + 0x1e8e]
mov edx, dword [ebp - 0x60]
mov edi, dword [ebp - 0xc]
add edi, 0x59c
call dword [edi]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x60], edx
lea ebx, [ebp - 0x14]
push ebx
mov ebx, dword [ebp - 0x5c]
push dword [ebx + 0xc]
call fcn.00403e4e
cmp dword [ebp - 0x40], 0x400002
jne 0x40843f
add dword [ebp - 0x70], 0xff
xor dword [ebp - 0x64], edx
lea edx, [ebp - 0x60]
add dword [ebp - 0x18], edi
mov word [ebp - 0x48], 0xe7d
push edx
cmp dword [ebp - 0x54], 0x25
jne 0x408471
test esi, esi
je 0x4083f2
push 0x41a3e5
lea ecx, [esp + 0x18]
call fcn.004064d2
push dword [ebp - 0x14]
and ecx, dword [ebp - 0x44]
call fcn.00403e4e
add eax, 0x73ff
sub esi, dword [ebp - 0x44]
add dword [ebp - 0x60], 0x14
lea esi, [ebp - 0x38]
push esi
mov esi, dword [ebp - 0x14]
push dword [esi + 8]
call fcn.00403e4e
lea edi, [edi + ebx*2 + 0x60]
mov dword [ebp - 0x58], ebx
mov esi, dword [ebp - 0x38]
shr esi, 2
mov dword [ebp - 0x38], esi
and edi, dword [ebp - 0x58]
cmp dword [ebp - 0x54], 0x2f
jne 0x4084c3
push edx
mov dword [esp + 0x1388], 0x63
lea edi, [ebp - 0x6c]
xor ecx, eax
push edi
sub ebx, dword [ebp - 0x34]
push dword [ebp - 0x6c]
call fcn.00403f5c
cmp dword [ebp - 0x40], 0xffffffbb
jne 0x4084f2
push 4
push 0x41a212
push 0x41a356
push edi
call dword [0x41a0f4]
cmp eax, edi
lea ecx, [ebp - 0x6c]
push ecx
mov ecx, dword [ebp - 0x60]
push dword [ecx]
call fcn.00403ed7
or word [ebp - 0x34], 0xca3
or eax, dword [ebp - 0x28]
and dword [ebp - 0x10], 0xffffff86
cmp dword [ebp - 0x40], 0x13
jne 0x40851b
mov eax, dword [esi + 8]
cmp edi, eax
mov eax, 4
or ebx, dword [ebp - 0x1c]
add dword [ebp - 0x60], eax
cmp dword [ebp - 0x54], 0x400002
jne 0x40853a
push 0
mov dword [esi + 0xc], eax
mov eax, dword [ebp + 8]
sub dword [ebp - 0x38], 1
jne 0x4084f2
cmp dword [ebp - 0x40], 0x400002
jne 0x408553
mov cl, byte [edi + 4]
mov ecx, dword [ebp - 0x6c]
cmp dword [ebp - 0x40], 1
je 0x408567
pop edi
call 0x405206
push esi
push edi
mov esi, dword [ebp - 0x14]
cmp ecx, dword [esi + 4]
mov dword [ebp - 0x6c], ecx
jne 0x409c75
or esi, dword [ebp - 0x74]
mov edi, dword [ebp - 0x5c]
cmp dword [ebp - 0x54], 0x49
jne 0x408590
call fcn.00416e49
mov dword [edi + 4], eax
mov dword [edi + 8], esi
mov dword [edi - 0x44], 0
lea edi, [ebp - 0x60]
push edi
or edx, ecx
mov byte [ebp - 0x24], 0xc6
push dword [ebp - 0x14]
call fcn.00403e4e
mov edx, ecx
add eax, ecx
add dword [ebp - 0x60], 0x14
lea edx, [eax + 0x3bf]
lea esi, [ebp - 0x60]
push esi
mov esi, dword [ebp - 0x60]
push dword [esi + 0x3c]
call fcn.00403ed7
or dword [ebp - 0x50], ebx
xor eax, edx
and dword [ebp - 0x20], esi
mov esi, dword [ebp - 0x60]
test word [esi + 0x16], 0x2000
je 0x4085fd
xor ecx, dword [ebp - 0x44]
mov esi, dword [ebp - 0x5c]
and ecx, dword [ebp - 0x34]
or dword [ebp - 0x18], 0x2f
mov dword [esi - 0x44], 1
add dword [ebp - 0x34], edi
or edx, ebx
mov esi, 1
add ebx, dword [ebp - 0x58]
add ecx, esi
xor dword [ebp - 0x70], esi
or dword [ebp - 0x68], ebx
lea edx, [ebx]
push 0x1000
or edx, dword [ebp - 0x18]
cmp dword [ebp - 0x40], 0x400002
jne 0x40862a
add byte [eax], al
mov eax, dword [ebp - 0x5c]
cmp dword [ebp - 0x40], 0x26
jne 0x408643
je 0x40869b
cmp eax, 0x118
je 0x4085d1
xor eax, eax
inc eax
pop esi
push dword [eax - 8]
add dword [ebp - 0x50], ecx
add dword [ebp - 0x54], 0
je 0x40865c
push edi
push 1
call fcn.0041616b
mov edi, eax
mov edx, dword [ebp - 0x60]
sub esi, dword [ebp - 0x1c]
sub ecx, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0xc]
add ecx, 0x5bc
call dword [ecx]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x60], edx
sub ebx, dword [ebp - 0x74]
or esi, edx
and dword [ebp - 0x28], 0x63
or eax, dword [ebp - 0x1c]
mov edx, dword [0x7ffe0008]
xor esi, edx
add dword [ebp - 0x54], 0
je 0x40869d
push 4
mov dword [ebp - 0x60], edx
sub eax, edx
mov ebx, dword [0x7ffe0014]
and edi, dword [ebp - 0x74]
xor edx, dword [ebp - 0x28]
mov dword [ebp - 0x38], ebx
add ecx, dword [ebp - 0x64]
cmp dword [ebp - 0x54], 0xffffffdd
jne 0x4086be
push ebp
sub edi, dword [ebp - 0x1c]
cmp dword [ebp - 0x54], 0xffffffa7
jne 0x4086d7
add esp, 0xc
test eax, eax
jge 0x40867b
mov dword [ebp - 0x5c], esi
sub eax, 0x5a
mov ecx, dword [ebp - 0x5c]
and dword [ebp - 0x18], eax
cmp dword [ecx - 0x44], 1
jne 0x40879a
xor esi, dword [ebp - 0x48]
add ecx, edi
mov word [ebp - 0x4c], 0x62a
push dword [ebp - 0x38]
sub ecx, dword [ebp - 0x34]
add ebx, eax
and dword [ebp - 0x50], 0x2af
push dword [ebp - 0x60]
mov ecx, dword [ebp - 0x5c]
cmp dword [ebp - 0x40], 0xffffffb9
jne 0x40872e
push dword [ecx - 4]
add dword [ebp - 0x24], 0xac0
add edx, ecx
lea edi, [edi + 0xfb7]
mov edi, 0x80c6f19b
mov edi, edx
add ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0xc]
lea edx, [edi + 0xf20]
sub esi, dword [ebp - 0x34]
lea eax, [ecx + 0xf44]
mov dword [ebp - 0x6c], eax
and edi, ecx
sub ecx, dword [ebp - 0x74]
or ecx, ebx
push dword [ebp - 0x6c]
mov edx, dword [ebp - 0x5c]
cmp dword [ebp - 0x40], 1
je 0x408779
pop ebp
push dword [edx - 8]
add ecx, dword [ebp - 0x34]
lea eax, [ebx]
mov edx, dword [ebp - 0x60]
mov esi, dword [ebp - 0xc]
add esi, 0x60c
call dword [esi]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x60], edx
jmp 0x408859
push dword [ebp - 0x38]
and dword [ebp - 0x64], 0x70
push dword [ebp - 0x60]
mov esi, dword [ebp - 0x5c]
sub ecx, dword [ebp - 0x58]
cmp dword [ebp - 0x40], 0xffffff97
jne 0x4087b7
jne 0x4087b5
test esi, esi
push dword [esi - 4]
cmp dword [ebp - 0x40], 0x400002
jne 0x4087cc
push esi
push esi
push ebx
push dword [ebp - 0x24]
cmp dword [ebp - 0x40], 0x46
jne 0x4087d7
xor ecx, ecx
mov ebx, dword [ebp - 0x6c]
mov edx, dword [ebp - 0xc]
or esi, dword [ebp - 0x2c]
or word [ebp - 0x2c], 0x3c2
lea ebx, [edx + 0xf6c]
mov dword [ebp - 0x6c], ebx
push dword [ebp - 0x6c]
add eax, ecx
mov ecx, dword [ebp - 0x5c]
add dword [ebp - 0x10], ecx
add dword [ebp - 0x1c], 0x2c
push dword [ecx - 8]
cmp dword [ebp - 0x54], 0x400002
jne 0x40882f
test ebx, 0x1000000
mov dword [esp + 0x137c], 0xffffffff
je 0x40881e
lea ecx, [esp + 0x14]
and ebx, 0x41a574
call fcn.00417952
and ebx, edx
cmp dword [ebp - 0x40], 1
je 0x408845
mov eax, dword [esp + 0x54]
test eax, eax
je 0x40883a
mov ecx, dword [esi - 0xc]
mov edx, dword [ebp - 0x60]
mov ebx, dword [ebp - 0xc]
add ebx, 0x60c
call dword [ebx]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x60], edx
add esp, 0x14
cmp dword [ebp - 0x54], 0x35
jne 0x408871
call 0x416dc9
pop ecx
push esi
mov esi, ecx
cmp dword [ebp - 0x40], 1
je 0x408886
mov dword [ecx + 8], ebx
mov dword [ebx + 4], ecx
mov ebx, dword [ecx + 4]
mov dword [ebx + 8], ecx
push 0
add dword [ebp - 0x54], 0
je 0x4088a3
jne 0x40889d
mov eax, esi
and eax, 0xff
push eax
call fcn.0040e688
push 0
add word [ebp - 0x4c], 0xa91
lea ecx, [ecx]
mov eax, dword [ebp - 0x6c]
mov edi, dword [ebp - 0x5c]
add ebx, 0x8714
add dword [ebp - 0x34], 0x11
lea eax, [edi - 0x14]
mov dword [ebp - 0x6c], eax
test dword [ebp - 0x54], 0
je 0x4088ea
push dword [ebp - 0x6c]
add esi, 0x1b39
mov edi, dword [ebp - 0x5c]
push dword [edi - 8]
add esi, dword [ebp - 0x28]
mov byte [ebp - 0x18], 0xde
sub ecx, dword [ebp - 0x24]
add dword [ebp - 0x18], edx
mov edx, dword [ebp - 0x60]
add edi, 0x96e5
cmp dword [ebp - 0x54], 0x400002
jne 0x408921
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
mov edx, dword [ebp - 0xc]
add edx, 0x598
call dword [edx]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x60], edx
cmp dword [ebp - 0x40], 0x2a
jne 0x408941
int3
cmp dword [ebp - 0x6c], 1
jne 0x409c75
lea eax, [esi]
mov ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x58], 0x9aa
mov edx, dword [ebp - 0x5c]
and edi, dword [ebp - 0x28]
cmp dword [ebp - 0x40], 0x400002
jne 0x40897a
lea ecx, [ebp + 0x10]
mov eax, 0x41a258
mov ecx, dword [ebp - 0x10]
lea ecx, [edx - 0x14]
mov dword [ebp - 0x6c], ecx
push dword [ebp - 0x6c]
or edx, dword [ebp - 0x64]
cmp dword [ebp - 0x40], 1
je 0x4089a0
pop ecx
and eax, 0xfffffffc
call 0x406541
mov ebx, esp
push 0x41a25a
push ebx
mov esi, dword [ebp - 0x6c]
xor edx, esi
cmp dword [ebp - 0x40], 1
je 0x4089b3
call 0x41162d
mov edi, dword [ebp - 0x5c]
lea esi, [edi - 0x2c]
mov dword [ebp - 0x6c], esi
add edi, edx
sub edi, edx
push dword [ebp - 0x6c]
or dword [ebp - 0x44], edi
and eax, dword [ebp - 0x74]
call fcn.004131e8
mov dword [ebp - 0x20], 0x32
lea edx, [edx - 0x4e]
push 0
xor ecx, dword [ebp - 0x68]
sub ecx, dword [ebp - 0x1c]
and ebx, esi
push 0
xor edi, dword [ebp - 0x1c]
mov dword [ebp - 0x10], eax
push 0x60
add dword [ebp - 0x54], 0
je 0x408a10
mov eax, dword [ebp - 0x10]
dec dword [eax]
jne 0x406dc2
mov eax, dword [0x41a3fa]
test eax, eax
add ebx, dword [ebp - 0x34]
or esi, eax
push 5
xor dword [ebp - 0x18], edi
and edi, edx
mov edi, 0x5068c01
mov edi, ebx
mov edi, 0xc31a97eb
mov edi, eax
push 1
push 0x80
add eax, dword [ebp - 0x18]
cmp dword [ebp - 0x40], 0x32
jne 0x408a4c
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push 0
xor edx, ebx
add edi, ebx
mov edi, 0x50057b8f
mov edi, eax
xor eax, dword [ebp - 0x4c]
add esi, dword [ebp - 0x44]
mov eax, dword [ebp - 0x6c]
xor edi, dword [ebp - 0x34]
mov edx, dword [ebp - 0x5c]
and edi, esi
cmp dword [ebp - 0x54], 0x400002
jne 0x408a7e
call fcn.00414bf5
lea eax, [edx - 0x38]
mov dword [ebp - 0x6c], eax
or ebx, dword [ebp - 0x20]
cmp dword [ebp - 0x54], 0x400002
jne 0x408aa7
mov esi, ecx
call 0x408183
test byte [esp + 8], 1
je 0x408acd
push esi
call 0x408069
push dword [ebp - 0x6c]
mov eax, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x5c]
lea ecx, [ecx + 0x660]
lea eax, [edx - 0x2c]
mov dword [ebp - 0x6c], eax
cmp dword [ebp - 0x40], 0x19
jne 0x408ac7
mov eax, ecx
sub edx, dword [ebp - 0x48]
push dword [ebp - 0x6c]
and edi, dword [ebp - 0x4c]
push 0x40100000
and word [ebp - 0x18], 0x4e3
xor word [ebp - 0x34], 0xc8f
add eax, ecx
mov eax, dword [ebp - 0x6c]
xor ebx, dword [ebp - 0x44]
mov edi, dword [ebp - 0x5c]
mov ebx, edi
lea eax, [edi - 0x30]
mov dword [ebp - 0x6c], eax
lea edx, [eax - 0x2d]
add eax, 0x255a
push dword [ebp - 0x6c]
add dword [ebp - 0x54], 0
je 0x408b0f
xor eax, edx
add ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x60]
mov ecx, dword [ebp - 0xc]
add ecx, 0x624
call dword [ecx]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x60], edx
mov edi, ecx
xor eax, ecx
mov esi, dword [ebp - 0x6c]
cmp dword [ebp - 0x40], 0x400002
jne 0x408b3e
mov dword [ebp - 0x5c], eax
or dword [ebp - 0x6c], esi
jne 0x409c75
add dword [ebp - 0x54], 0
je 0x408b64
push esi
mov esi, ecx
call 0x40968c
and dword [esi + 0x10], 0
mov dword [esi], 0x42473c
mov eax, esi
and word [ebp - 0x34], 0x743
mov ebx, 2
or ecx, dword [ebp - 0x44]
xor edx, dword [ebp - 0x4c]
xor dword [ebp - 0x70], ebx
lea ebx, [ebp - 0x60]
or dword [ebp - 0x18], eax
cmp dword [ebp - 0x40], 0x400002
jne 0x408b8e
mov al, byte [esp + 0x13]
push ebx
push dword [ebp - 0x14]
or dword [ebp - 0x64], 0xffffffa5
and edx, dword [ebp - 0x58]
call fcn.00403e4e
or dword [ebp - 0x28], eax
mov ecx, 0x14
sub edx, dword [ebp - 0x28]
add dword [ebp - 0x60], ecx
add esi, dword [ebp - 0x64]
cmp dword [ebp - 0x40], 1
je 0x408bcb
push 0x41a5b7
push ebx
push 0x41a471
push 0x41a321
mov dword [ebp - 0x2c], ebx
or eax, dword [ebp - 0x64]
add ecx, dword [ebp - 0x44]
push 0
mov eax, edx
push 0
mov edx, dword [ebp - 0x14]
xor ecx, dword [ebp - 0x18]
push dword [edx + 8]
or dword [ebp - 0x2c], edx
and eax, dword [ebp - 0x44]
push dword [ebp - 0x60]
sub ecx, dword [ebp - 0x2c]
and word [ebp - 0x74], 0x9ca
mov esi, dword [ebp - 0x6c]
and edx, dword [ebp - 0x44]
cmp dword [ebp - 0x40], 1
je 0x408c0c
sbb eax, eax
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x5c]
add edi, dword [ebp - 0x68]
add ecx, edx
lea esi, [eax - 0x38]
mov dword [ebp - 0x6c], esi
sub ecx, dword [ebp - 0x34]
and edx, eax
sub eax, dword [ebp - 0x28]
push dword [ebp - 0x6c]
lea edi, [esi + ecx*2 + 0x5d]
add eax, dword [ebp - 0x2c]
add edx, 0x6309
push 0
add esi, 0x693c
push 0
or dword [ebp - 0x34], esi
or dword [ebp - 0x64], 0xc8f
or word [ebp - 0x24], 0x857
push 0
mov edx, dword [ebp - 0x5c]
push dword [edx - 0x30]
mov edx, dword [ebp - 0x60]
cmp dword [ebp - 0x40], 1
je 0x408c70
cmp esi, edi
jb 0x408ce5
xor eax, eax
pop edi
mov ecx, dword [ebp - 0xc]
add ecx, 0x628
call dword [ecx]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x60], edx
mov eax, dword [ebp - 0x6c]
mov word [ebp - 0x18], 0x8f7
cmp dword [ebp - 0x40], 0x51
jne 0x408c9d
or dword [ebp - 0x34], 0xffffffff
mov eax, dword [ebp - 0x34]
movzx ecx, bx
or dword [ebp - 0x6c], eax
jne 0x409c75
mov ecx, 4
xor dword [ebp - 0x70], ecx
mov ebx, dword [ebp - 0x5c]
lea ebx, [ebx - 0xac]
push ebx
push dword [ebp - 0x70]
call fcn.00403e4e
cmp dword [ebp - 0x40], 0x400002
jne 0x408cdb
lea eax, [ebp + 0xa0]
push eax
lea edx, [esp + 0x20]
or ebx, 0x40
push edx
mov esi, dword [ebp - 0x5c]
lea eax, [ecx + esi*4 - 0x5d]
push dword [esi - 0x30]
or edi, ecx
mov edi, 0x1e700125
mov edi, esi
cmp dword [ebp - 0x40], 1
je 0x408cf9
push 0
mov edx, dword [ebp - 0x60]
mov esi, dword [ebp - 0xc]
add esi, 0x594
call dword [esi]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x60], edx
add ebx, dword [ebp - 0x34]
cmp dword [ebp - 0x40], 1
je 0x408d1a
push eax
mov edx, dword [ebp - 0x5c]
cmp dword [edx - 0x44], 1
jne 0x409972
mov edi, dword [ebp - 0x5c]
lea edi, [edi - 0xb0]
push edi
push dword [ebp - 0x14]
call fcn.00403e4e
and edx, dword [ebp - 0x50]
push ebp
sub ebx, dword [ebp - 0x64]
pop dword [ebp - 0x6c]
cmp dword [ebp - 0x54], 0x13
jne 0x408d6a
or ebx, 0x41a43b
push 0
mov dword [esp + 0x1390], 0x90
mov dword [esp + 0x40], ebx
call esi
test eax, eax
push dword [ebp - 0x6c]
xor edi, dword [ebp - 0x4c]
mov edi, ecx
push 0
add edx, eax
add dword [ebp - 0x34], 0xb09
cmp dword [ebp - 0x40], 1
je 0x408d8f
lea ecx, [ecx + esi - 4]
jbe 0x408d94
push 0
sub ecx, edx
cmp dword [ebp - 0x54], 0
je 0x408da7
push ecx
push ebx
push esi
push edi
mov esi, ecx
xor edi, edi
jmp 0x4098f3
call fcn.00408db4
cmp dword [ebp - 0x40], 1
je 0x409913
mov ecx, dword [esp + 0x10]
push 0xffffffffffffffff
call 0x40d098
pop edi
pop esi
mov eax, 0x41a516
pop dword [ebp - 0x6c]
mov eax, dword [ebp - 0x6c]
mov dword fs:[0], eax
add eax, dword [ebp - 0x74]
add esp, 0x14
add edx, eax
or edx, dword [ebp - 0x68]
lea eax, [ebp - 0x70]
push eax
mov eax, dword [ebp - 0x5c]
push dword [eax - 0xac]
call fcn.00403e4e
and ecx, dword [ebp - 0x58]
lea edx, [ebp - 0x14]
push edx
mov edx, dword [ebp - 0x5c]
push dword [edx - 0xb0]
call fcn.00403e4e
lea esi, [ebp - 0xc]
push esi
mov esi, dword [ebp - 0x5c]
push dword [esi + 8]
call fcn.00403e4e
xor ebx, dword [ebp - 0x50]
jmp 0x409bf9
cmp dword [ebp - 0x40], 1
je 0x40997c
pop ecx
mov edi, 0x70
add edx, esi
xor dword [ebp - 0x70], edi
mov dword [ebp - 0x20], 0x766
push 0x44
mov dword [ebp - 0x48], 0xa61
mov ebx, dword [ebp - 0x6c]
and eax, dword [ebp - 0x18]
and ecx, esi
mov esi, dword [ebp - 0x5c]
lea ebx, [esi - 0x98]
mov dword [ebp - 0x6c], ebx
sub edi, dword [ebp - 0x44]
add word [ebp - 0x28], 0x3cb
xor ebx, dword [ebp - 0x58]
push dword [ebp - 0x6c]
xor ecx, dword [ebp - 0x50]
mov ecx, ebx
add ebx, esi
mov edx, dword [ebp - 0x60]
or ecx, dword [ebp - 0x1c]
add dword [ebp - 0x4c], edi
mov eax, dword [ebp - 0xc]
add eax, 0x5bc
call dword [eax]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x60], edx
and dword [ebp - 0x20], 0xb52
add ebx, ecx
xor esi, eax
cmp dword [ebp - 0x40], 0x400002
jne 0x4099fd
test eax, eax
pop ecx
je 0x4099f4
mov edx, dword [ebp - 0x5c]
xor ebx, dword [ebp - 0x10]
mov dword [edx - 0x98], 0x44
push 0x2cd38ae7
mov ecx, dword [ebp - 0xc]
push dword [ecx + 0x98]
mov dword [ebp - 0x20], 0xfb2
call fcn.00416fa5
mov edx, dword [ebp - 0xc]
lea edx, [edx + 0x63c]
push edx
push dword [ebp - 0x6c]
call fcn.00403e4e
cmp dword [ebp - 0x40], 0xfffffffa
jne 0x409a4f
lea esi, [esi*8 + 0x42add8]
xor ebx, ebx
cmp dword [esi], ebx
jne 0x4099f7
push 0
add dword [ebp - 0x20], ecx
sub edx, ebx
mov eax, dword [ebp - 0x6c]
cmp dword [ebp - 0x54], 0
je 0x409a80
cmp dword [0x41a36f], 0
jne 0x409ad7
push 0xfffffffffffffffd
call fcn.0040a51f
pop ecx
mov dword [0x41a3af], 1
mov esi, dword [ebp - 0x5c]
cmp dword [ebp - 0x40], 0x400002
jne 0x409aa8
lea eax, [esi - 0xa8]
mov dword [ebp - 0x6c], eax
add dword [ebp - 0x64], 0x554
add dword [ebp - 0x54], 0
je 0x409ac4
je 0x409a6e
push eax
push dword [ebp - 0x6c]
mov eax, dword [ebp - 0x6c]
cmp dword [ebp - 0x40], 1
je 0x409add
push esi
push esi
call edi
push eax
call fcn.00406279
mov esi, dword [ebp - 0x5c]
lea eax, [esi - 0x98]
mov dword [ebp - 0x6c], eax
cmp dword [ebp - 0x54], 0xffffff95
jne 0x409aff
mov ecx, dword [esi + 4]
mov dword [eax + 4], ecx
pop esi
push ebp
mov ebp, esp
sub esp, 0x18
mov byte [ebp - 0x2c], 0xc5
xor dword [ebp - 0x68], edx
push dword [ebp - 0x6c]
lea edx, [ecx]
xor edi, dword [ebp - 0x74]
and edi, ebx
push 0
add dword [ebp - 0x18], ecx
cmp dword [ebp - 0x54], 0x400002
jne 0x409b2d
push 0
push 0
xor esi, dword [ebp - 0x68]
xor esi, ebx
mov esi, 0xc86cbdab
mov esi, ecx
or ebx, dword [ebp - 0x74]
push 0
add esi, dword [ebp - 0x64]
push 0
or dword [ebp - 0x44], eax
push 0
or edi, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x5c]
push dword [esi - 8]
or edx, ebx
add ebx, ecx
or dword [ebp - 0x48], edx
push 0
sub ebx, eax
push 0
and dword [ebp - 0x4c], 0x26
and word [ebp - 0x4c], 0x518
mov edx, dword [ebp - 0x60]
add ecx, dword [ebp - 0x50]
mov edx, dword [ebp - 0xc]
add edx, 0x63c
call dword [edx]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x60], edx
cmp dword [ebp - 0x40], 1
je 0x409bad
mov dword [esi + 4], eax
mov eax, esi
pop esi
push ebp
mov ebp, esp
sub esp, 0x20
cmp dword [ebp - 0x54], 0x15
jne 0x409bc9
mov eax, dword [ebp + 0x3a8]
push ebx
mov ebx, dword [ebp + 0x3a8]
and eax, 0x1f
sar ebx, 5
mov ecx, dword [ebp - 0x6c]
or dword [ebp - 0x6c], ecx
je 0x409bf9
cmp dword [ebp - 0x40], 1
je 0x409be9
mov eax, dword fs:[0]
push eax
mov eax, dword [esp + 0xc]
mov edi, 8
sub ebx, eax
xor dword [ebp - 0x70], edi
add ebx, dword [ebp - 0x44]
sub ecx, dword [ebp - 0x18]
push dword [ebp - 0xc]
cmp dword [ebp - 0x54], 0x400002
jne 0x409c0d
cmp word [eax], bx
je 0x409bee
mov edi, dword [ebp - 0x5c]
push dword [edi - 8]
cmp dword [ebp - 0x54], 0x400002
jne 0x409c25
cmp dword [ebp - 0x1c], ecx
je 0x409bc6
push ecx
call fcn.00414637
xor esi, dword [ebp - 0x58]
cmp dword [ebp - 0x40], 0xffffffee
jne 0x409c39
or dword [esi + 0xc], eax
mov esi, dword [ebp - 0x6c]
xor ebx, eax
or edx, dword [ebp - 0x10]
or dword [ebp - 0x6c], esi
jne 0x409c75
xor dword [ebp - 0x28], ecx
xor dword [ebp - 0x18], edi
cmp dword [ebp - 0x54], 0xffffffc8
jne 0x409c5f
mov edx, 0x80
add eax, 0xe81b
mov eax, ebx
xor dword [ebp - 0x70], edx
add eax, dword [ebp - 0x1c]
xor edx, dword [ebp - 0x4c]
and edx, esi
mov eax, dword [ebp - 0x5c]
and dword [ebp - 0x68], 0x473
xor dword [ebp - 0x28], edx
add dword [eax - 0x54], 1
or dword [ebp - 0x28], 0xfffffff9
lea eax, [ecx + edx*2 - 0x50]
mov esi, dword [ebp - 0x70]
ror esi, 8
mov dword [ebp - 0x70], esi
lea edi, [ebp - 0x6c]
push edi
mov edi, dword [ebp - 0x5c]
push dword [edi + 0xc]
call fcn.00403e4e
sub eax, edi
cmp dword [ebp - 0x40], 0x6a
jne 0x409cc1
cmp cl, 0x35
lea ecx, [ebx + 4]
jl 0x409d27
cmp byte [eax], 0x39
lea ebx, [ebp - 0x6c]
push ebx
mov ebx, dword [ebp - 0x14]
push dword [ebx + 0x10]
call fcn.00403ed7
lea eax, [ebp - 0x14]
cmp dword [ebp - 0x40], 1
je 0x409ce0
lea eax, [ebp - 0xc]
push eax
push eax
push dword [ebp - 0x6c]
cmp dword [ebp - 0x54], 0
je 0x409cf5
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
call fcn.00403e4e
cmp dword [ebp - 0x54], 0x45
jne 0x409d14
ja 0x409cab
mov eax, dword [ebp - 0x10]
and eax, 0x1ffff
cmp eax, 0x18000
jne 0x409cf3
mov edx, dword [ebp - 0x14]
cmp dword [ebp - 0x40], 0x400002
jne 0x409d2e
pop ebx
mov eax, ecx
mov ecx, dword [esp + 4]
cmp dword [edx + 0x10], 0
jne 0x40843f
lea edx, [ebx + edx*2 + 0x11e]
and dword [ebp - 0x50], edi
and dword [ebp - 0x28], 0x71
mov esi, dword [ebp - 0x5c]
cmp dword [esi - 0x54], 1
jne 0x409d6a
movsx ecx, si
push ecx
mov ecx, dword [ebp - 0xc]
cmp dword [ebp - 0x40], 0x400002
jne 0x409dc5
lea edx, [esp + 0x948]
push edx
lea ecx, [esp + 0x40]
mov edi, eax
call 0x405e49
mov edx, dword [esp + 0x3c]
mov dword [ecx + 4], 0
sub ecx, dword [ebp - 0x68]
push dword [ebp - 0xc]
add ecx, dword [ebp - 0x68]
call fcn.0040c96b
mov dword [ebp - 0x4c], eax
test dword [ebp - 0x54], 0
je 0x409df8
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
lea edx, [ebp - 0x38]
push edx
xor eax, dword [ebp - 0x68]
mov dword [ebp - 0x18], eax
push dword [ebp - 0x38]
call fcn.00403f5c
and esi, edx
add ecx, edi
mov edx, dword [ebp - 0xc]
test dword [edx + 4], 0x10
je 0x409e50
cmp dword [ebp - 0x40], 0x7e
jne 0x409e35
mov edx, 1
cmp dword [ebp - 0x40], 0x50
jne 0x409e4d
push esi
mov esi, ecx
test esi, esi
je 0x409e0c
mov eax, dword [esi + 0x44]
or dword [ebp - 0x38], edx
mov eax, dword [ebp - 0xc]
test dword [ebp - 0x54], 0
je 0x409e64
mov esi, 0x41a212
test dword [eax + 4], 0x20
je 0x409e7f
mov esi, 2
xor edx, dword [ebp - 0x68]
or dword [ebp - 0x38], esi
mov eax, dword [ebp - 0xc]
test dword [eax + 4], 0x40
je 0x409ea6
sub edx, dword [ebp - 0x48]
mov ecx, 4
add esi, dword [ebp - 0x58]
or dword [ebp - 0x38], ecx
add edx, dword [ebp - 0x64]
and ecx, dword [ebp - 0x24]
and dword [ebp - 0x24], edx
mov edi, dword [0x7ffe0014]
mov dword [ebp - 0x60], edi
cmp dword [ebp - 0x40], 0x5e
jne 0x409ebd
add byte [eax], al
mov esi, 0xf
and dword [ebp - 0x60], esi
test dword [ebp - 0x54], 0
je 0x409ed6
lea ecx, [ebp - 0x70]
push ecx
sub ebx, dword [ebp - 0x1c]
push dword [ebp - 0x60]
and dword [ebp - 0x20], ecx
lea edx, [esi + edi + 0xcb0]
call fcn.00403ed7
and dword [ebp - 0x18], edi
and word [ebp - 0x64], 0x7a5
mov edi, dword [ebp - 0x38]
rol edi, 4
mov dword [ebp - 0x38], edi
lea ecx, [ebp - 0x70]
push ecx
add ecx, esi
push dword [ebp - 0x38]
cmp dword [ebp - 0x40], 0x72
jne 0x409f1b
test byte [esi + 0x18], 1
mov eax, dword [esi + 0x28]
push edi
call fcn.00403ed7
sub edx, dword [ebp - 0x28]
cmp dword [ebp - 0x54], 0x6a
jne 0x409f39
add edi, 2
push edi
push eax
call fcn.0041493d
add esp, 0xc
mov edi, dword [ebp - 0xc]
lea edi, [edi + 8]
push edi
push dword [ebp - 0x70]
call fcn.00403e4e
or dword [ebp - 0x18], 0x506
cmp dword [ebp - 0x54], 0x400002
jne 0x409f61
je 0x409f64
push 1
push 0x1c
mov edi, dword [ebp - 0x5c]
sub ebx, dword [ebp - 0x18]
cmp dword [ebp - 0x40], 0xffffffaf
jne 0x409f73
sub esp, eax
push ebx
mov dword [edi - 0xc], 0
sub edx, ecx
add dword [ebp - 0x68], edi
push 0x8000
or dword [ebp - 0x2c], 0x49
cmp dword [ebp - 0x54], 0
je 0x409f9c
push eax
call 0x411c36
pop ecx
pop ecx
add ebx, edx
and dword [ebp - 0x10], 0x76f
mov esi, dword [ebp - 0x6c]
or dword [ebp - 0x24], edx
lea ebx, [edx + 0x26]
mov ecx, dword [ebp - 0x5c]
add dword [ebp - 0x68], eax
lea esi, [ecx - 0xc]
mov dword [ebp - 0x6c], esi
xor eax, dword [ebp - 0x68]
push dword [ebp - 0x6c]
mov ebx, dword [ebp - 0x6c]
add esi, dword [ebp - 0x74]
add dword [ebp - 0x54], 0
je 0x409fd7
mov dword [ebp - 4], eax
je 0x409fe2
push dword [ebp + 0x10]
mov edx, dword [ebp - 0x5c]
or ecx, esi
lea ebx, [edx - 8]
mov dword [ebp - 0x6c], ebx
mov ecx, edi
mov ecx, 0xe4ce4840
mov ecx, eax
xor dword [ebp - 0x68], ebx
push dword [ebp - 0x6c]
cmp dword [ebp - 0x54], 0x400002
jne 0x40a007
push 0xffffffff
cmp dword [ebp - 0x40], 1
je 0x40a026
jne 0x409fda
call dword [0x41a140]
mov ebp, eax
cmp ebp, ebx
je 0x409fa8
cmp byte [ebp], bl
mov edx, dword [ebp - 0x60]
mov ebx, dword [ebp - 0xc]
add ebx, 0x5a0
call dword [ebx]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x60], edx
sub eax, dword [ebp - 0x64]
and dword [ebp - 0x20], edi
pop dword [ebp - 0xc]
add ebx, 0x387b
pop dword [ebp - 0x70]
and dword [ebp - 0x1c], ebx
add dword [ebp - 0x54], 0
je 0x40a065
pop dword [ebp - 0x14]
add dword [ebp - 0x54], 0
je 0x40a078
mov eax, dword [edi]
test byte [eax + esi + 4], 0x40
mov esi, dword [ebp - 0x5c]
cmp dword [ebp - 0x54], 0
je 0x40a098
mov word [esi], bx
or dword [ebp - 4], 0xffffffff
call 0x41536b
mov eax, dword [ebp - 0x20]
call fcn.004180a8
mov esp, esi
cmp dword [ebp - 0x54], 0x5b
jne 0x40a0ac
mov edx, edi
lock xadd dword [ecx], edx
dec edx
test edx, edx
mov dword [ebp - 0x68], ecx
mov word [ebp - 0x68], 0x5f3
pop dword [ebp - 0x5c]
cmp dword [ebp - 0x54], 0xffffffec
jne 0x40a0c4
mov dword [ebp - 8], esi
and ecx, dword [ebp - 0x44]
ret 0xc
mov eax, dword [ebp - 0x135c]
and eax, 0x80000000
je 0x411903
and word [ebp - 0x10], 4
mov dword [ebp - 0x5c], esp
xor eax, dword [ebp - 0x18]
add esp, 0xffffffe8
add ecx, dword [ebp - 0x1c]
and dword [ebp - 0x58], 0x192
xor edx, dword [ebp - 0x74]
push dword [ebp - 0x14]
add edx, 0xf84b
add esi, dword [ebp - 0x2c]
push dword [ebp - 0x70]
xor ecx, dword [ebp - 0x58]
and dword [ebp - 0x50], edi
add ecx, dword [ebp - 0x74]
push dword [ebp - 0xc]
lea ecx, [ebp - 0xc]
push ecx
mov ecx, dword [ebp - 0x5c]
push dword [ecx + 8]
call fcn.00403e4e
add edx, dword [ebp - 0x2c]
mov ebx, dword [ebp - 0x5c]
mov dword [ebx - 0xc], 0
add dword [ebp - 0x64], 0xdf9
mov ebx, dword [ebp - 0x6c]
or dword [ebp - 0x58], eax
sub eax, edi
mov edi, dword [ebp - 0xc]
lea ebx, [edi + 0xc74]
mov dword [ebp - 0x6c], ebx
xor ecx, ebx
push dword [ebp - 0x6c]
or ecx, dword [ebp - 0x4c]
and edi, ecx
mov edi, edx
mov edi, eax
xor word [ebp - 0x34], 0x52e
push dword [ebp - 0xc]
cmp dword [ebp - 0x54], 0
je 0x40c015
call 0x405278
push dword [ebp + 0xc]
push dword [ebp - 0x14]
push dword [ebp + 8]
call dword [str.L__bRPQj]
call fcn.00412e09
and ecx, esi
and dword [ebp - 0x24], edx
mov esi, dword [ebp - 0x6c]
or dword [ebp - 0x6c], esi
je 0x40c75f
sub edi, eax
mov ecx, dword [ebp - 0x5c]
lea ecx, [ecx - 4]
push ecx
push dword [ebp - 0x6c]
call fcn.00403e4e
or ebx, eax
or eax, dword [ebp - 0x48]
mov esi, dword [ebp - 0x5c]
lea esi, [esi - 8]
push esi
push dword [ebp - 0x60]
call fcn.00403e4e
cmp dword [ebp - 0x54], 0x3b
jne 0x40c05f
setne al
pop edi
pop esi
push ebx
lea edi, [ebp - 0x60]
push edi
mov edi, dword [ebp - 0x5c]
push dword [edi + 0xc]
call fcn.00403e4e
lea edx, [ebp - 0x6c]
push edx
mov edx, dword [ebp - 0x5c]
push dword [edx - 8]
call fcn.00403e4e
or ebx, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x6c]
and edi, dword [ebp - 0x24]
xor dword [ebp - 0x2c], 0xfc7
mov edi, dword [ebp - 0x6c]
lea ebx, [edi + 0x24]
mov dword [ebp - 0x6c], ebx
mov edx, dword [ebp - 0x60]
lea edx, [edx + 4]
push edx
push dword [ebp - 0x6c]
call fcn.00403e4e
add dword [ebp - 0x54], 0
je 0x40c0be
mov dword [ebp - 0x2f0], ebx
mov ecx, dword [ebp - 0x318]
test ecx, ecx
je 0x40c0e6
lea eax, [ebp - 0x6c]
push eax
mov eax, dword [ebp - 0x5c]
push dword [eax - 4]
call fcn.00403e4e
mov edi, dword [ebp - 0x60]
lea edi, [edi + 8]
push edi
push dword [ebp - 0x6c]
call fcn.00403e4e
xor ebx, dword [ebp - 0x64]
mov dword [ebp - 0x28], 0x855
and dword [ebp - 0x4c], ecx
xor ecx, edi
mov ebx, dword [ebp - 0x60]
add dword [ebp - 0x48], 0xfffffff9
mov dword [ebx + 0xc], 8
mov dword [ebp - 0x50], edx
and edi, dword [ebp - 0x34]
sub ebx, dword [ebp - 0x50]
xor word [ebp - 0x64], 0x969
mov edi, dword [ebp - 0x38]
or edx, dword [ebp - 0x28]
and edx, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x60]
lea edi, [ebx + 0x10]
mov dword [ebp - 0x38], edi
mov eax, dword [ebp - 0x38]
mov dword [eax], 0x3f577699
cmp dword [ebp - 0x54], 0x400002
jne 0x40c13c
jg 0x40c136
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov edx, dword [ebp - 0x38]
mov dword [edx + 4], 0xdd979864
xor edx, ebx
sub esi, dword [ebp - 0x18]
add dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x38]
mov dword [ecx + 8], 0xc7979076
xor edx, dword [ebp - 0x44]
and eax, edx
mov ebx, dword [ebp - 0x38]
mov dword [ebx + 0xc], 0xc88bbb88
add ecx, 0xed25
mov ecx, esi
mov edi, dword [ebp - 0x38]
cmp dword [ebp - 0x40], 1
je 0x40c191
call fcn.00417d6b
push eax
lea eax, [ebp + 0xa0]
push eax
mov dword [edi + 0x10], 0x5590e828
mov edi, dword [ebp - 0x38]
mov dword [edi + 0x14], 0x3777a537
mov word [ebp - 0x10], 0x1ac
or edx, dword [ebp - 0x64]
add eax, dword [ebp - 0x64]
mov eax, dword [ebp - 0x38]
mov dword [eax + 0x18], 0xb256946c
cmp dword [ebp - 0x40], 1
je 0x40c1db
mov eax, dword [ebp - 0x38]
mov dword [eax + 0x1c], 0xa8569c7e
xor dword [ebp - 0x64], 0xc81
cmp dword [ebp - 0x54], 0xffffffec
jne 0x40c1fc
mov esi, eax
test esi, esi
mov edx, dword [ebp - 0x38]
xor eax, dword [ebp - 0x34]
and eax, dword [ebp - 0x48]
mov dword [edx + 0x20], 0
xor edx, dword [ebp - 0x20]
add edi, dword [ebp - 0x2c]
mov dword [ebp - 0x18], 0x44e
or eax, esi
mov esi, dword [ebp - 0x38]
mov edx, dword [ebp - 0x60]
xor word [ebp - 0x4c], 0x776
cmp dword [ebp - 0x40], 0xffffffb3
jne 0x40c236
sub eax, 1
lea esi, [edx + 0x38]
mov dword [ebp - 0x38], esi
and edx, ecx
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x1c], esi
mov dword [eax], 0x80009
and ecx, dword [ebp - 0x34]
cmp dword [ebp - 0x40], 0x400002
jne 0x40c270
lea ecx, [esp + 0x14]
and ebx, 0x41a4c2
call 0x412f83
mov al, byte [esp + 0x13]
test al, al
je 0x40c26c
mov edx, dword [ebp - 0x38]
xor ebx, dword [ebp - 0x64]
mov dword [edx + 4], 0x60007
and esi, dword [ebp - 0x58]
mov edx, dword [ebp - 0x38]
test dword [ebp - 0x54], 0
je 0x40c2a7
mov eax, 0x41a3c0
lea ecx, [ebp - 0x10]
mov eax, 0x41a22b
push dword [ebp + 8]
call fcn.00413fae
mov dword [edx + 8], 0x50006
cmp dword [ebp - 0x40], 1
je 0x40c2be
sub edi, esi
mov ecx, dword [ebp - 0x38]
sub esi, dword [ebp - 0x10]
mov dword [ecx + 0xc], 0x70008
cmp dword [ebp - 0x54], 0x64
jne 0x40c2ec
add ecx, 0x41a512
mov eax, 0x41a544
mov eax, 0x41a2d5
push dword [ebp - 0x10]
add eax, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x38]
mov dword [ebx + 0x10], 0x50009
or esi, eax
sub ebx, dword [ebp - 0x44]
mov esi, dword [ebp - 0x38]
mov dword [esi + 0x14], 0x40005
add edx, eax
sub esi, dword [ebp - 0x28]
mov edi, dword [ebp - 0x38]
mov dword [edi + 0x18], 0x50006
mov ebx, dword [ebp - 0x38]
and edx, dword [ebp - 0x64]
mov dword [ebx + 0x1c], 0x50006
xor edi, dword [ebp - 0x2c]
and esi, dword [ebp - 0x2c]
and esi, eax
mov esi, dword [ebp - 0x38]
mov dword [esi + 0x20], 0
add edx, 0x7f7d
mov ebx, dword [ebp - 0x6c]
mov edi, dword [ebp - 0xc]
cmp dword [ebp - 0x54], 0xffffff91
jne 0x40c363
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [ebp + 8]
lea ebx, [edi + 0x664]
mov dword [ebp - 0x6c], ebx
cmp dword [ebp - 0x40], 1
je 0x40c37a
cmp esi, 0x49
je 0x40c35a
mov ecx, dword [ebp - 0x60]
lea ecx, [ecx + 0x60]
push ecx
push dword [ebp - 0x6c]
call fcn.00403e4e
mov ecx, dword [ebp - 0x60]
lea ecx, [ecx + 0x68]
push ecx
push dword [ebp - 0xc]
call fcn.00403e4e
sub eax, dword [ebp - 0x58]
cmp dword [ebp - 0x40], 0x400002
jne 0x40c3b1
push esi
call edi
mov esi, eax
test esi, esi
jne 0x40c3fd
pop edi
or ebx, edi
and dword [ebp - 0x44], 0x38
push dword [ebp - 0x60]
cmp dword [ebp - 0x40], 1
je 0x40c3ce
call fcn.00413323
add dword [ebp - 0x28], esi
lea ebx, [ebp - 0x60]
push ebx
mov ebx, dword [ebp - 0xc]
push dword [ebx + 0xa0]
call fcn.00403e4e
and dword [ebp - 0x58], 0x4b
and edi, edx
lea ebx, [ebp - 0x60]
push ebx
mov ebx, dword [ebp - 0x60]
push dword [ebx + 0x3c]
call fcn.00403ed7
and dword [ebp - 0x48], 0x32
lea edi, [ebp - 0x6c]
push edi
mov edi, dword [ebp - 0x60]
push dword [edi + 0x38]
call fcn.00403e4e
cmp dword [ebp - 0x40], 1
je 0x40c41b
test dl, dl
mov ebx, dword [ebp - 0x5c]
lea ebx, [ebx - 0x18]
push ebx
push dword [ebp - 0x6c]
call fcn.00403e4e
lea eax, [ebp - 0x38]
push eax
mov eax, dword [ebp - 0x60]
push dword [eax + 6]
call fcn.00403e4e
xor eax, dword [ebp - 0x44]
add ebx, 0x1de3
mov ebx, 0xffff
cmp dword [ebp - 0x54], 0
je 0x40c456
push ecx
push ebx
push esi
mov esi, dword [ebp + 8]
and dword [ebp - 0x38], ebx
and dword [ebp - 0x2c], 0x321
xor edi, dword [ebp - 0x4c]
lea ebx, [ebp - 0x6c]
push ebx
mov ebx, dword [ebp - 0x60]
push dword [ebx + 0x14]
call fcn.00403e4e
cmp dword [ebp - 0x40], 0x400002
jne 0x40c492
lea ecx, [ebp - 0x240]
call fcn.00405760
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x240]
sub edx, ecx
add edx, dword [ebp - 0x2c]
mov edi, 0xffff
lea eax, [edi + esi*2 + 0x1ab5]
and dword [ebp - 0x6c], edi
cmp dword [ebp - 0x40], 1
je 0x40c4bc
push 0x41a2c8
push 0
call dword [0x41a134]
lea edx, [ebp - 0x60]
push edx
cmp dword [ebp - 0x54], 0xffffffa5
jne 0x40c4ce
push eax
push dword [ebp + 0x18]
push esi
push dword [ebp - 0x6c]
call fcn.00403ed7
and ebx, eax
cmp dword [ebp - 0x54], 0
je 0x40c4e6
cmp byte [edx], 0
je 0x40c4d6
add dword [ebp - 0x60], 0x18
jmp 0x40c72a
add esi, dword [ebp - 0x1c]
sub esi, edi
mov edx, dword [ebp - 0x60]
cmp dword [edx], 0x7461642e
jne 0x40c707
mov esi, dword [ebp - 0x60]
add eax, edi
test dword [esi + 0x24], 0xc0000040
je 0x40c707
or eax, edx
lea ebx, [ebp - 0x6c]
push ebx
mov ebx, dword [ebp - 0xc]
push dword [ebx + 0xa0]
call fcn.00403e4e
add eax, ebx
lea eax, [ebp - 0x6c]
push eax
mov eax, dword [ebp - 0x60]
push dword [eax + 0xc]
call fcn.00403ed7
cmp dword [ebp - 0x54], 0
je 0x40c557
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp + 0xc]
lea eax, [ebp - 0x2c]
push eax
lea eax, [esi + 1]
push eax
mov edx, dword [ebp - 0x5c]
lea edx, [edx - 0x10]
push edx
push dword [ebp - 0x6c]
call fcn.00403e4e
and ecx, edi
mov ecx, dword [ebp - 0x5c]
cmp dword [ebp - 0x40], 0x400002
jne 0x40c579
mov eax, ecx
push dword [ecx - 0x18]
mov ebx, dword [ebp - 0x60]
cmp dword [ebp - 0x54], 7
jne 0x40c594
mov dword [esi + 4], ebx
mov dword [ecx + 4], esi
mov ecx, dword [esi + 4]
mov dword [ecx + 8], esi
push dword [ebx + 8]
and edi, dword [ebp - 0x1c]
call fcn.00416380
and dword [ebp - 0x18], 0xfffffff4
mov eax, dword [ebp - 0x5c]
lea eax, [eax - 0x14]
push eax
push dword [ebp - 0x6c]
call fcn.00403e4e
lea edi, [ebp - 0x70]
push edi
mov edi, dword [ebp - 0x5c]
push dword [edi + 0xc]
call fcn.00403e4e
and dword [ebp - 0x50], edx
cmp dword [ebp - 0x54], 0x51
jne 0x40c5d4
mov esi, ecx
call 0x409ac1
mov edx, dword [ebp - 0x60]
mov ecx, dword [ebp - 0xc]
xor ebx, ecx
lea edx, [ecx + 0x664]
mov dword [ebp - 0x60], edx
and word [ebp - 0x2c], 0xb4d
add esi, dword [ebp - 0x58]
xor ebx, dword [ebp - 0x58]
mov esi, dword [ebp - 0x14]
cmp dword [ebp - 0x40], 1
je 0x40c5ff
jl 0x40c5e5
mov ecx, dword [ebp - 0x70]
add dword [ebp - 0x20], eax
lea esi, [ecx + 0x10]
mov dword [ebp - 0x14], esi
jmp 0x40c6ce
xor esi, edx
mov eax, dword [ebp - 0x60]
push dword [eax]
cmp dword [ebp - 0x40], 0x400002
jne 0x40c625
test esi, esi
mov ecx, dword [ebp - 0x5c]
push dword [ecx - 0x14]
add dword [ebp - 0x44], eax
mov edx, dword [ebp - 0x5c]
cmp dword [ebp - 0x54], 0
je 0x40c64f
push dword [esp + 0x14]
call fcn.00406e77
add esp, 0x10
cmp eax, dword [esp + 0xc]
je 0x40c5fd
push dword [edx - 0x10]
mov edx, dword [ebp - 0x14]
push dword [edx]
mov edi, dword [ebp - 0x5c]
or ebx, edx
mov ebx, 0x30ed0c33
mov ebx, edi
push dword [edi - 4]
lea eax, [ebx + edx + 0x1a0]
call fcn.0040c7ab
and esi, eax
or edi, eax
mov edi, 0x7842b485
mov edi, esi
cmp dword [ebp - 0x40], 1
je 0x40c688
and ebx, edx
cmp dword [ebp - 0x54], 0xffffff9c
jne 0x40c6e4
call fcn.00407997
mov dword [eax], 9
mov ecx, dword [ebp - 0x14]
add dword [ebp - 0x54], 0
je 0x40c6f6
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
cmp dword [ecx], 0
jne 0x40c610
jmp 0x40c75f
add ecx, dword [ebp - 0x2c]
mov eax, 1
or ebx, ecx
and ebx, eax
mov ebx, 0x5397af6e
mov ebx, eax
sub dword [ebp - 0x38], eax
add dword [ebp - 0x60], 0x28
or dword [ebp - 0x64], esi
sub edi, dword [ebp - 0x28]
or dword [ebp - 0x34], ecx
lea ecx, [ebx + 0x135e]
mov eax, dword [ebp - 0x38]
or dword [ebp - 0x38], eax
jne 0x40c4f2
add edx, dword [ebp - 0x74]
cmp dword [ebp - 0x40], 0x400002
jne 0x40c75f
je 0x40c78e
mov eax, dword [eax + 0x1c]
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
lea eax, [ebp - 0x6c]
push eax
mov eax, dword [ebp - 0x5c]
push dword [eax - 0xc]
call fcn.00403e4e
mov eax, edi
pop dword [ebp - 0xc]
or dword [ebp - 0x4c], ebx
pop dword [ebp - 0x70]
pop dword [ebp - 0x14]
and ecx, edi
mov esi, dword [ebp - 0x5c]
cmp dword [ebp - 0x40], 0x400002
jne 0x40c794
push eax
call esi
push ebx
mov dword [ebp - 0x40], eax
mov esp, esi
and ecx, dword [ebp - 0x4c]
pop dword [ebp - 0x5c]
xor edi, dword [ebp - 0x18]
xor dword [ebp - 0x28], ecx
ret 8
sub esi, dword [ebp - 0x10]
xor dword [ebp - 0x34], eax
mov edi, dword [ebp - 0x14]
and dword [ebp - 0x18], edx
xor esi, eax
or dword [ebp - 0x14], edi
jne 0x411534
add ecx, dword [ebp - 0x24]
lea eax, [eax]
push dword [ebp - 0xc]
call fcn.00412974
add dword [ebp - 0x68], 0x1f3
cmp dword [ebp - 0x54], 0x3b
jne 0x4114da
cmp dword [ebp - 4], 0
jne 0x4114d3
mov eax, dword [ebp - 8]
test cl, cl
js 0x411531
call 0x414e68
mov edi, dword [ebp - 0x5c]
lea edi, [edi - 0x4c]
push edi
push dword [ebp - 0x60]
call fcn.00403e4e
cmp dword [ebp - 0x54], 0x400002
jne 0x4114fb
push esi
mov ecx, dword [eax]
cmp dword [ebp - 0x60], 0x60
jb 0x411599
add esi, dword [ebp - 0x2c]
or dword [ebp - 0x10], ecx
mov esi, edx
mov ecx, dword [ebp - 0x5c]
add edx, 0xe882
mov dword [ecx - 0x14], 0x19
and edi, dword [ebp - 0x48]
sub eax, dword [ebp - 0x64]
jmp 0x411599
add edx, dword [ebp - 0x74]
cmp dword [ebp - 0x14], 1
jne 0x411567
cmp dword [ebp - 0x40], 1
je 0x411555
je 0x4114f8
push dword [ebp + 0x10]
mov esi, dword [ebp + 8]
mov eax, dword [ebp - 0x5c]
mov dword [eax - 0x14], 2
jmp 0x411599
mov byte [ebp - 0x18], 0xf1
mov edx, dword [ebp - 0x5c]
or dword [ebp - 0x50], eax
cmp dword [ebp - 0x40], 1
je 0x41158f
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
add esp, 8
inc ecx
add eax, 0x208
mov dword [esp + 0x10], ecx
mov dword [edx - 0x14], 0xa
add esi, edi
mov ecx, dword [ebp - 0x5c]
cmp dword [ecx - 0x14], 0
je 0x4121ed
xor eax, dword [ebp - 0x50]
cmp dword [ebp - 0x54], 0x6b
jne 0x4115c3
sub eax, edi
mov edx, dword [ebp - 0x6c]
or ecx, eax
mov edi, dword [ebp - 0x5c]
and eax, dword [ebp - 0x28]
cmp dword [ebp - 0x40], 1
je 0x4115de
pop ecx
pop ecx
je 0x411582
inc esi
lea edx, [edi - 0x18]
mov dword [ebp - 0x6c], edx
push dword [ebp - 0x6c]
add edi, dword [ebp - 0x10]
push 0
push 0
mov esi, edi
mov esi, ebx
mov edi, dword [ebp - 0x5c]
push dword [edi - 0x14]
add edi, dword [ebp - 0x50]
mov ebx, dword [ebp - 0x5c]
and dword [ebp - 0x44], ebx
cmp dword [ebp - 0x40], 1
je 0x41161e
push dword [0x41a230]
call dword [0x41a19c]
test eax, eax
push dword [ebx - 0x10]
cmp dword [ebp - 0x54], 0x400002
jne 0x41163c
call fcn.00404033
mov eax, esi
shr eax, 0x10
push eax
movzx eax, si
push eax
mov edx, dword [ebp - 0x60]
cmp dword [ebp - 0x54], 0
je 0x41165c
push eax
call dword [0x41a0a4]
lea eax, [ebp + 0x38c]
push eax
call fcn.0041301d
pop ecx
mov esi, dword [ebp - 0xc]
add esi, 0x5d8
call dword [esi]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x60], edx
add eax, dword [ebp - 0x18]
cmp dword [ebp - 0x40], 1
je 0x41167f
push ebx
push esi
push edi
mov edi, dword [ebp + 0x10]
cmp dword [ebp - 0x6c], 0xc0000023
jne 0x4121ed
xor dword [ebp - 0x24], 0x63
and ecx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x5c]
cmp dword [ebp - 0x40], 0xffffff9e
jne 0x4116a8
movzx ecx, byte [edx]
movzx eax, al
mov dword [eax - 0x1c], 0
and dword [ebp - 0x68], 0xc80
push 4
sub edi, dword [ebp - 0x18]
add edx, ebx
mov edx, 0x61abc314
mov edx, edi
mov edx, 0xf85ad39c
mov edx, eax
cmp dword [ebp - 0x40], 1
je 0x4116ee
mov ecx, dword [ebp - 0x240]
add ecx, 0xfffffff0
call fcn.0040c9f4
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp + 8]
push 0x3000
mov ecx, dword [ebp - 0x6c]
mov esi, dword [ebp - 0x5c]
or dword [ebp - 0x58], 0x8b2
cmp dword [ebp - 0x40], 0x63
jne 0x41171b
call dword [edx + 4]
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0x137c], 0x1d
lea ecx, [esi - 0x18]
mov dword [ebp - 0x6c], ecx
xor eax, dword [ebp - 0x1c]
sub ecx, eax
add dword [ebp - 0x24], edi
add dword [ebp - 0x48], 0x14e
push dword [ebp - 0x6c]
cmp dword [ebp - 0x40], 1
je 0x41174f
call 0x40cf24
pop ecx
mov esi, dword [esi + 0x24]
mov eax, dword [0x41a555]
cmp esi, dword [eax + 0x24]
je 0x4117ad
push 0
cmp dword [ebp - 0x40], 1
je 0x411765
mov edi, dword [ebp - 0x6c]
and ebx, ecx
mov edx, dword [ebp - 0x5c]
and ecx, dword [ebp - 0x48]
or word [ebp - 0x44], 0x9e
lea edi, [edx - 0x1c]
mov dword [ebp - 0x6c], edi
cmp dword [ebp - 0x40], 1
je 0x411790
lea eax, [ebp + 0xa0]
push eax
lea edx, [esp + 0x20]
or dword [ebp - 0x24], esi
sub ecx, edi
push dword [ebp - 0x6c]
cmp dword [ebp - 0x40], 1
je 0x4117a8
push 0
call 0x40d27e
push 0xffffffff
xor ebx, ecx
mov ebx, edx
add edx, 0x60f7
cmp dword [ebp - 0x54], 0xffffffb9
jne 0x4117c3
push dword [edi + 0x1c]
mov edx, dword [ebp - 0x60]
or ebx, ecx
mov eax, dword [ebp - 0xc]
add eax, 0x59c
call dword [eax]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x60], edx
or dword [ebp - 0x24], 0x4c
mov dword [ebp - 0x34], 0x1c6
mov edx, dword [ebp - 0x6c]
xor dword [ebp - 0x58], ecx
add ecx, 0x76ab
mov ecx, 0x1defce5f
mov ecx, ebx
mov ecx, dword [ebp - 0x5c]
sub edi, dword [ebp - 0x64]
xor edi, esi
lea edx, [ecx - 0x18]
mov dword [ebp - 0x6c], edx
and eax, dword [ebp - 0x24]
cmp dword [ebp - 0x40], 1
je 0x411819
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
push dword [ebp - 0x6c]
cmp dword [ebp - 0x54], 0x63
jne 0x41183d
and byte [ebp - 0x1359], 0xef
lea ecx, [ebp - 0x136c]
mov eax, dword [ebp - 0x135c]
and eax, 0x20000000
mov ebx, dword [ebp - 0x5c]
and edi, ebx
push dword [ebx - 0x18]
mov esi, dword [ebp - 0x5c]
push dword [esi - 0x1c]
lea eax, [ecx + edx + 0xc3d]
xor ecx, edi
mov ecx, dword [ebp - 0x5c]
add edi, dword [ebp - 0x74]
and dword [ebp - 0x10], 0xc14
push dword [ecx - 0x14]
xor word [ebp - 0x10], 0xc2e
cmp dword [ebp - 0x40], 0x400002
jne 0x41187d
pop dword fs:[0]
mov edi, dword [ebp - 0x5c]
push dword [edi - 0x10]
add dword [ebp - 0x20], esi
and ecx, dword [ebp - 0x68]
mov edx, dword [ebp - 0x60]
lea ebx, [esi + 0x111d]
add word [ebp - 0x20], 0xe7
mov edi, dword [ebp - 0xc]
add edi, 0x5d8
call dword [edi]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x60], edx
or edx, dword [ebp - 0x2c]
and word [ebp - 0x1c], 0x8c9
mov edx, dword [ebp - 0x6c]
or dword [ebp - 0x6c], edx
jne 0x4120ec
or word [ebp - 0x68], 0xa48
cmp dword [ebp - 0x54], 0
je 0x4118d3
push ebx
mov ebx, eax
shl eax, 8
mov edi, dword [ebp - 0x14]
or dword [ebp - 0x14], edi
jne 0x411a13
mov byte [ebp - 0x20], 0x4f
cmp dword [ebp - 0x40], 1
je 0x4118f9
mov edx, 0xffff0fff
lea ebx, [ebx]
and dword [ebp - 0x70], edx
and eax, esi
lea esi, [ebp - 0x60]
push esi
mov esi, dword [ebp - 0x5c]
push dword [esi - 0x1c]
call fcn.00403e4e
add edi, dword [ebp - 0x20]
lea eax, [edx + edi*8 + 0x21]
mov edx, dword [ebp - 0x60]
push dword [edx]
or edx, ebx
sub edi, dword [ebp - 0x48]
mov edx, dword [ebp - 0x60]
cmp dword [ebp - 0x40], 0x400002
jne 0x411939
lea edx, [esp + 0x54]
push edx
mov esi, dword [ebp - 0xc]
add esi, 0x5d0
call dword [esi]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x60], edx
or ecx, eax
mov ecx, dword [ebp - 0x6c]
mov bl, byte [ebp - 0x6c]
mov bl, byte [ecx]
mov byte [ebp - 0x6c], bl
add esi, dword [ebp - 0x2c]
xor ebx, dword [ebp - 0x2c]
xor eax, dword [ebp - 0x64]
and esi, dword [ebp - 0x34]
mov ecx, 0xff
and dword [ebp - 0x6c], ecx
sub dword [ebp - 0x6c], 1
add edx, edi
add dword [ebp - 0x50], 0x46
lea esi, [ebp - 0x60]
push esi
mov esi, dword [ebp - 0x5c]
push dword [esi - 0x1c]
call fcn.00403e4e
or edi, dword [ebp - 0x4c]
or ecx, dword [ebp - 0x58]
mov word [ebp - 0x18], 0x32e
and eax, dword [ebp - 0x74]
push dword [ebp - 0x6c]
xor edi, edx
cmp dword [ebp - 0x40], 8
jne 0x4119b7
lea eax, [edi + 0x76c]
cdq
mov ebx, 0x41a58f
idiv ebx
test edx, edx
xor eax, dword [ebp - 0x50]
mov edi, dword [ebp - 0x60]
push dword [edi]
mov edx, dword [ebp - 0x60]
xor esi, dword [ebp - 0x58]
add eax, edx
mov edi, dword [ebp - 0xc]
add edi, 0x5cc
call dword [edi]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x60], edx
add word [ebp - 0x64], 0x73f
add ebx, esi
lea edi, [ebp - 0x70]
push edi
mov edi, dword [ebp - 0x6c]
push dword [edi]
call fcn.00403ed7
add dword [ebp - 0x54], 0
je 0x411a05
mov byte [ebp + 0xa], 0
pop eax
mov byte [ebp + 8], bl
mov byte [ebp + 9], 0
mov eax, edi
jmp 0x4120ec
or ecx, eax
cmp dword [ebp - 0x14], 1
jne 0x411f62
add eax, dword [ebp - 0x24]
add ebx, dword [ebp - 0x24]
push 6
lea esi, [esi + edx*4 - 0x6c]
sub edi, eax
mov eax, dword [ebp - 0x6c]
test dword [ebp - 0x54], 0
je 0x411a46
dec edi
mov edx, dword [ebp - 0x5c]
lea esi, [ecx]
lea eax, [edx - 6]
mov dword [ebp - 0x6c], eax
cmp dword [ebp - 0x40], 1
je 0x411a5e
add byte [eax], al
add byte [eax], al
push dword [ebp - 0x6c]
sub ebx, edx
mov edx, dword [ebp - 0x60]
and ebx, dword [ebp - 0x18]
and ebx, dword [ebp - 0x18]
mov edi, dword [ebp - 0xc]
add edi, 0x5bc
call dword [edi]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x60], edx
mov byte [ebp - 0x24], 0xe0
mov edi, dword [ebp - 0x5c]
mov byte [edi - 1], 5
add dword [ebp - 0x54], 0
je 0x411a98
mov esi, ecx
jne 0x411a5c
add eax, edx
mov byte [ebp - 0x1c], 0xac
mov esi, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x5c]
lea esi, [edx - 0xc]
mov dword [ebp - 0x6c], esi
mov word [ebp - 0x24], 0x1d9
and edi, esi
push dword [ebp - 0x6c]
add edx, 0xe7dc
cmp dword [ebp - 0x40], 0x19
jne 0x411acc
je 0x411a96
cmp dword [ebp - 0x38], 0x19
jae 0x411aaa
push 0
cmp dword [ebp - 0x40], 1
je 0x411ae4
add edi, 1
cmp ecx, 8
jb fcn.00411b5c
rep movsd dword es:[edi], dword [esi]
xor esi, dword [ebp - 0x4c]
cmp dword [ebp - 0x40], 0x400002
jne 0x411af6
mov esi, dword [ebp + 0x10]
push 0
xor dword [ebp - 0x50], eax
and dword [ebp - 0x10], edi
push 0
xor ecx, dword [ebp - 0x48]
xor dword [ebp - 0x2c], ecx
xor dword [ebp - 0x64], ecx
push 0
add dword [ebp - 0x54], 0
je 0x411b20
push edi
jae 0x411b67
or dword [ebp - 0x20], esi
xor edi, dword [ebp - 0x28]
push 0
sub ebx, dword [ebp - 0x28]
and edi, dword [ebp - 0x28]
push 0
cmp dword [ebp - 0x40], 0xffffffd3
jne 0x411b43
push 0x220
add dword [ebp - 0x4c], esi
push 0x20
cmp dword [ebp - 0x40], 0x400002
jne 0x411b67
xor dword [ebp - 0x28], 0xf13
mov dword [ebp - 0x28], edx
push 2
lea ecx, [esi + edi*2 + 0x67f]
mov ecx, edi
mov edx, dword [ebp - 0x6c]
or eax, dword [ebp - 0x24]
mov edi, dword [ebp - 0x5c]
lea edx, [edi - 6]
mov dword [ebp - 0x6c], edx
cmp dword [ebp - 0x54], 0
je 0x411ba5
pop esi
neg eax
sbb eax, eax
and eax, 0x10
add eax, 0x10
or dword [esi + 0xc], eax
sub ecx, dword [ebp - 0x68]
xor dword [ebp - 0x10], 0xa
push dword [ebp - 0x6c]
and esi, dword [ebp - 0x50]
or edi, esi
cmp dword [ebp - 0x54], 0
je 0x411bd3
mov ecx, dword [ebp - 0x10]
mov eax, 0x41a5b3
mov ecx, dword [ebp - 0x10]
add ecx, 0x10
mov eax, 0x41a56d
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x60]
add edi, dword [ebp - 0x34]
mov esi, dword [ebp - 0xc]
add esi, 0x5dc
call dword [esi]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x60], edx
sub edi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x6c]
sub ebx, edx
or dword [ebp - 0x6c], edi
jne 0x411ea8
xor ecx, edi
cmp dword [ebp - 0x54], 0
je 0x411c17
mov eax, dword [ebp - 0x1354]
and eax, 0x400
je 0x407d4e
cmp dword [ebp - 0x40], 1
je 0x411c25
mov edi, 0x41a552
mov ecx, 0xf00fffff
test dword [ebp - 0x54], 0
je 0x411c39
mov ecx, dword [edi + 8]
and dword [ebp - 0x70], ecx
add word [ebp - 0x48], 0x9bb
add edx, ebx
push dword [ebp - 0x14]
lea esi, [ebp - 0x60]
push esi
mov esi, dword [ebp - 0x5c]
push dword [esi - 0x1c]
call fcn.00403e4e
cmp dword [ebp - 0x54], 0
je 0x411c6e
mov eax, dword [0x41a565]
mov dword [0x41a3f7], eax
mov eax, dword [0x41a2a2]
lea esi, [ebp - 0x6c]
push esi
mov esi, dword [ebp - 0x60]
push dword [esi]
call fcn.00403e4e
mov esi, dword [ebp - 0x5c]
lea esi, [esi - 0x20]
push esi
push dword [ebp - 0x6c]
call fcn.00403e4e
cmp dword [ebp - 0x40], 0x400002
jne 0x411ca4
call fcn.0040a058
test byte [esp + 8], 1
je 0x411cca
push esi
xor dword [ebp - 0x2c], esi
mov edx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x60]
test dword [ebp - 0x54], 0
je 0x411ccd
jb 0x411cc0
mov ecx, dword [ebp + 8]
mov dword [ebx], ecx
mov dword [ebx + 8], eax
cmp dword [ebp - 0x1f], 0x41a3
mov eax, dword [ebp - 0x14]
lea edx, [esi + 4]
mov dword [ebp - 0x14], edx
add dword [ebp - 0x54], 0
je 0x411ce4
push eax
lea eax, [esp + 0xac]
jmp 0x411e71
lea ecx, [ecx - 0x2d]
mov edi, dword [ebp - 0x14]
push dword [edi]
add ebx, dword [ebp - 0x50]
mov edi, dword [ebp - 0x5c]
add eax, dword [ebp - 0x50]
push dword [edi - 0xc]
cmp dword [ebp - 0x40], 0x13
jne 0x411d11
pop ebp
clc
fld qword [0x83a0558b]
mov ebp, 0xffffffac
add byte [ecx + edx + 9], dh
mov byte [eax + eax - 0x2e090000], bl
mov edx, dword [ebp - 0x60]
cmp dword [ebp - 0x54], 0
je 0x411d2e
or dword [eax + 0x9c], ecx
not ecx
and dword [eax + 0x9c], ecx
mov dword [ebp - 8], edi
mov ecx, dword [ebp - 0xc]
add ecx, 0x5e0
call dword [ecx]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x60], edx
or dword [ebp - 0x58], esi
xor dword [ebp - 0x48], 0x2c4
cmp dword [ebp - 0x6c], 1
jne 0x411e21
mov ebx, 0x100000
add dword [ebp - 0x48], edx
and dword [ebp - 0x24], 0x1c
add dword [ebp - 0x70], ebx
or dword [ebp - 0x24], 0xfb0
cmp dword [ebp - 0x54], 0xffffff8b
jne 0x411d87
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
test dword [ebp - 0x54], 0
je 0x411d96
mov esi, dword [ebp - 0x14]
cmp dword [ebp - 0x40], 1
je 0x411dc0
mov eax, dword [ebp - 0x1354]
and eax, 0x400
je 0x417b94
and byte [ebp - 0x1353], 0xfb
lea ecx, [ebp - 0x136c]
test dword [esi + 4], 4
je 0x411e03
xor edx, eax
or edi, dword [ebp - 0x24]
cmp dword [ebp - 0x40], 0x400002
jne 0x411df2
mov eax, dword [ebp - 0x1354]
and eax, 0x2000
je 0x415a99
mov esi, 0x100000
add eax, 0x5d6e
add dword [ebp - 0x70], esi
or edi, dword [ebp - 0x1c]
jmp 0x411e98
add dword [ebp - 0x14], 8
mov eax, dword [ebp - 0x5c]
cmp dword [ebp - 0x54], 0
je 0x411e55
push 0x41a55d
push ecx
mov dword [esp + 0x30], 1
mov dword [esp + 0x8c], 0x208
call dword [0x41a0ec]
test eax, eax
sub dword [eax - 0x20], 1
or edi, dword [ebp - 0x20]
cmp dword [ebp - 0x40], 0x400002
jne 0x411e71
sub esp, 0x30
mov eax, dword [ebp + 8]
cmp dword [ebp - 0x54], 0xfffffffb
jne 0x411e80
call fcn.0041694d
pop ecx
mov edx, dword [ebp - 0x5c]
sub ebx, edi
cmp dword [edx - 0x20], 0
jne 0x411cf0
xor eax, dword [ebp - 0x34]
or dword [ebp - 0x50], ecx
add eax, dword [ebp - 0x4c]
pop dword [ebp - 0x14]
add eax, dword [ebp - 0x10]
or dword [ebp - 0x58], 0x254
xor edi, dword [ebp - 0x58]
and dword [ebp - 0x64], ebx
mov ebx, dword [ebp - 0x5c]
cmp dword [ebx - 0x4c], 0x60
jb 0x4120ec
and word [ebp - 0x28], 0x592
sub eax, esi
mov edx, 0x1000000
test dword [ebp - 0x54], 0
je 0x411ee1
lea esi, [esp + 0x14]
sub esp, 0x10
mov edi, esp
movsd dword es:[edi], dword [esi]
add dword [ebp - 0x70], edx
and esi, edx
mov esi, 0xf7e452cc
mov esi, ebx
add eax, 0xda39
xor edi, dword [ebp - 0x10]
mov ecx, dword [0x7ffe02f0]
mov dword [ebp - 0x6c], ecx
add dword [ebp - 0x74], ebx
and ecx, dword [ebp - 0x64]
mov esi, 0xff
add edx, dword [ebp - 0x74]
and dword [ebp - 0x6c], esi
xor ecx, ebx
test dword [ebp - 0x6c], 2
jne 0x411f4b
cmp dword [ebp - 0x40], 1
je 0x411f36
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
add ecx, 0xffffffd4
mov eax, dword [ecx]
movsd dword es:[edi], dword [esi]
call dword [eax + 0xa0]
xor dword [ebp - 0x58], ecx
mov eax, 0xf0ffffff
or esi, dword [ebp - 0x48]
and dword [ebp - 0x70], eax
mov dword [ebp - 0x34], 0x96
jmp 0x4120ec
add ecx, dword [ebp - 0x28]
cmp dword [ebp - 0x14], 2
jne 0x4120ec
sub edi, dword [ebp - 0x24]
sub edx, dword [ebp - 0x1c]
cmp dword [ebp - 0x40], 0x400002
jne 0x411f94
pop esi
xor edx, edx
mov ecx, 0x41a57b
mov eax, dword [0x41a554]
mov eax, 0xfff0ffff
sub edx, edi
lea edx, [ebx + 0x57]
and dword [ebp - 0x70], eax
cmp dword [ebp - 0x54], 0x5f
jne 0x411fb4
mov ebx, 0x41a570
push 0x1c
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0x60]
push ecx
mov ecx, dword [ebp - 0x5c]
push dword [ecx - 0x1c]
call fcn.00403e4e
cmp dword [ebp - 0x40], 0x400002
jne 0x411fd1
je 0x411fcf
lea ecx, [ebp - 0x6c]
push ecx
mov ecx, dword [ebp - 0x60]
push dword [ecx + 8]
call fcn.00403e4e
or word [ebp - 0x68], 0x7bd
mov ebx, dword [ebp - 0x60]
cmp dword [ebx + 0xc], 0
jne 0x4120ec
add ecx, eax
add eax, ebx
mov edi, dword [ebp - 0x60]
cmp dword [ebp - 0x40], 0x13
jne 0x412022
lea ecx, [ebp - 0x224]
call fcn.004090f5
lea eax, [ebp - 0x224]
push eax
push dword [ebp - 0x228]
mov byte [ebp - 4], 1
cmp dword [edi + 8], 0x3e7
jne 0x412046
or ecx, dword [ebp - 0x58]
or eax, dword [ebp - 0x1c]
add dword [ebp - 0x70], 0x10000
mov edi, eax
jmp 0x4120ec
mov byte [ebp - 0x44], 0xd4
mov eax, dword [ebp - 0x60]
cmp dword [eax + 8], 0x3e5
jne 0x41209a
add edx, 0x1d3b
add dword [ebp - 0x70], 0x20000
test dword [ebp - 0x54], 0
je 0x41207b
test eax, eax
jne 0x412011
push esi
jmp 0x4120ec
je 0x40bf6d
test dword [ebp - 0x54], 0
je 0x4120a8
mov esi, dword [ebp - 0x60]
sub edi, dword [ebp - 0x34]
cmp dword [esi + 8], 0x3e4
jne 0x4120ec
cmp dword [ebp - 0x40], 1
je 0x4120c9
jmp eax
mov eax, 0x30000
mov dword [ebp - 0x10], ecx
add dword [ebp - 0x70], eax
cmp dword [ebp - 0x54], 0x400002
jne 0x4120e8
test edx, edx
jg 0x412094
mov ecx, dword [eax]
mov edx, dword [ecx]
add dword [ebp - 0x4c], 0xffffffff
mov esi, dword [ebp - 0x5c]
cmp dword [ebp - 0x40], 0x73
jne 0x412108
call fcn.004105e9
push 0xffffffffffffffff
mov dword [esi + 8], eax
cdq
push 0x41a4a2
mov dword [esi - 0x18], 0
or edx, dword [ebp - 0x58]
cmp dword [ebp - 0x40], 1
je 0x412126
mov eax, dword [eax]
lea ecx, [esp + 0x1c]
push ecx
push edi
sub esi, dword [ebp - 0x1c]
push 0x8000
or esi, dword [ebp - 0x4c]
or esi, dword [ebp - 0x48]
or ecx, dword [ebp - 0x44]
and dword [ebp - 0x18], 0xa90
mov ecx, dword [ebp - 0x6c]
and esi, dword [ebp - 0x24]
and dword [ebp - 0x68], 0x28
mov edx, dword [ebp - 0x5c]
lea ecx, [edx - 0x18]
mov dword [ebp - 0x6c], ecx
lea eax, [edi + ecx + 0x543]
and dword [ebp - 0x50], edi
push dword [ebp - 0x6c]
add edi, 0x528c
and word [ebp - 0x48], 0xa5e
mov esi, dword [ebp - 0x6c]
sub edx, ebx
and edi, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x5c]
lea esi, [eax - 0x1c]
mov dword [ebp - 0x6c], esi
mov dword [ebp - 0x18], eax
and edx, dword [ebp - 0x28]
cmp dword [ebp - 0x40], 1
je 0x412197
call 0x40a0a3
lea ecx, [esi - 0x10]
call 0x405096
push dword [ebp - 0x6c]
push 0xffffffff
or ebx, dword [ebp - 0x24]
or ebx, dword [ebp - 0x68]
cmp dword [ebp - 0x40], 1
je 0x4121d0
mov edx, dword [ebp - 0x60]
xor ecx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0xc]
add esi, 0x5a0
call dword [esi]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x60], edx
xor dword [ebp - 0x10], 0x52
sub ebx, edx
add dword [ebp - 0x14], 1
sub ecx, dword [ebp - 0x10]
and dword [ebp - 0x44], esi
and ebx, ecx
and edi, dword [ebp - 0x28]
cmp dword [ebp - 0x14], 3
jne 0x411494
mov edx, dword [ebp - 0x5c]
push dword [edx - 0x10]
cmp dword [ebp - 0x40], 1
je 0x41222e
push dword [esp + 0xc]
mov ecx, esi
call dword [edx + 0x78]
push dword [esp + 0xc]
mov eax, dword [esi]
push dword [esp + 0xc]
mov edx, dword [ebp - 0x60]
add eax, 0x26d4
and ecx, eax
mov eax, dword [ebp - 0xc]
add eax, 0x594
call dword [eax]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x60], edx
and ecx, dword [ebp - 0x10]
add edx, 0xa4a2
mov eax, dword [ebp - 0x5c]
xor edi, dword [ebp - 0x64]
add ecx, 0xadc9
cmp dword [eax + 0xc], 0xffffffff
jne 0x4122cc
or esi, dword [ebp - 0x4c]
cmp dword [ebp - 0x54], 0x400002
jne 0x412292
mov ebx, dword [ebp - 0x5c]
or dword [ebp - 0x68], 0x56
push dword [ebx - 0x24]
xor ecx, ebx
or dword [ebp - 0x68], 0x438
mov edx, dword [ebp - 0x60]
xor ecx, edi
cmp dword [ebp - 0x40], 1
je 0x4122bb
push ebp
lea ebp, [esp - 0x598]
mov eax, dword [ebp - 0xc]
add eax, 0x594
call dword [eax]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x60], edx
lea edi, [ebp - 0x6c]
cmp dword [ebp - 0x40], 1
je 0x4122e6
xor eax, eax
mov eax, dword [esp + 4]
test eax, eax
je 0x412352
and dword [eax + 4], 0
push edi
push dword [ebp - 0x70]
or eax, edi
cmp dword [ebp - 0x40], 1
je 0x4122fd
mov dword [ecx + edx], eax
pop edi
add eax, 8
pop esi
call fcn.00403e4e
sub esi, edx
pop dword [ebp - 0x70]
add dword [ebp - 0x54], 0
je 0x412320
push edi
push dword [ebp + 0xc]
call dword [section..rdata]
mov esi, eax
cmp esi, edi
je 0x4122f8
and eax, edi
pop dword [ebp - 0x14]
or dword [ebp - 0x24], 0xffffffb6
cmp dword [ebp - 0x54], 0x6b
jne 0x412336
int3
pop dword [ebp - 0xc]
and ebx, dword [ebp - 0x28]
or edx, dword [ebp - 0x64]
mov ebx, dword [ebp - 0x5c]
add edi, dword [ebp - 0x28]
mov esp, ebx
or edx, dword [ebp - 0x28]
sub edi, edx
add edi, dword [ebp - 0x74]
pop dword [ebp - 0x5c]
add edx, dword [ebp - 0x2c]
add esi, dword [ebp - 0x50]
add edx, dword [ebp - 0x74]
ret 8
sub esi, edi
add eax, dword [ebp - 0x10]
cmp dword [ebp - 0x40], 1
je 0x412e8f
cmp dword [esi + 0x1c], 0
je 0x412edc
cmp esi, 0x41a258
push dword [ebp - 0x6c]
cmp dword [ebp - 0x40], 1
je 0x412ea5
mov eax, dword [ecx + 0x38]
test al, 0x10
je 0x412f07
and eax, 0xffffffef
sub esi, eax
lea edi, [eax + edx + 0x34]
mov edx, dword [ebp - 0x60]
mov edx, dword [ebp - 0x70]
add edx, 0x5ac
call dword [edx]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x60], edx
add ebx, esi
or edi, dword [ebp - 0x18]
mov eax, dword fs:[0x30]
mov dword [ebp - 0x6c], eax
lea ebx, [ebp - 0xc]
push ebx
mov ebx, dword [ebp - 0x6c]
push dword [ebx + 0xc]
call fcn.00403e4e
mov dword [ebp - 0x34], ebx
mov edi, dword [ebp - 0xc]
cmp dword [ebp - 0x40], 1
je 0x412ef2
test byte [eax + 0xc], 0x83
je 0x412f60
push eax
mov ecx, dword [ebp - 0xc]
lea edi, [ecx + 0x1c]
mov dword [ebp - 0xc], edi
or ecx, dword [ebp - 0x44]
cmp dword [ebp - 0x40], 1
je 0x412f0e
push eax
call fcn.0041069f
pop ecx
mov esi, dword [ebp - 0x5c]
lea esi, [esi - 4]
push esi
push dword [ebp - 0xc]
call fcn.00403e4e
add ebx, dword [ebp - 0x48]
xor dword [ebp - 0x28], 0x411
lea ebx, [ebp - 0xc]
push ebx
mov ebx, dword [ebp - 0xc]
push dword [ebx]
call fcn.00403e4e
or edi, dword [ebp - 0x48]
mov byte [ebp - 0x74], 0xa3
mov edi, dword [ebp - 0xc]
mov ecx, dword [ebp - 0xc]
add ebx, 0xb462
lea edi, [ecx - 0x10]
mov dword [ebp - 0xc], edi
cmp dword [ebp - 0x40], 0x400002
jne 0x412f6b
call dword [0x41a0f0]
mov esi, dword [0x41a236]
mov ebx, eax
lea eax, [ebp - 0x18]
push 1
add dword [ebp - 0x2c], 0x4ed
cmp dword [ebp - 0x54], 0x400002
jne 0x412f91
pop ecx
test eax, eax
je 0x409bde
mov eax, dword [0x41a1ea]
cmp dword [ebp - 0x54], 0x400002
jne 0x412fa2
lea esi, [ebp + 0x10]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0x6c]
mov edi, eax
mov ebx, dword [ebp - 0xc]
test dword [ebp - 0x54], 0
je 0x412fc6
lea esi, [ebx + 0x2c]
mov dword [ebp - 0x6c], esi
sub edi, esi
push dword [ebp - 0x6c]
sub ecx, dword [ebp - 0x28]
or dword [ebp - 0x28], eax
cmp dword [ebp - 0x54], 0xffffffaf
jne 0x412fef
push 0x41a54b
call fcn.00411218
mov ecx, eax
mov dword [ebp - 0x10], ecx
mov ebx, dword [ebp - 0x6c]
sub eax, esi
mov edi, dword [ebp - 0x5c]
or ecx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x18]
lea ebx, [edi - 0xc]
mov dword [ebp - 0x6c], ebx
xor edi, eax
xor dword [ebp - 0x48], ebx
push dword [ebp - 0x6c]
add dword [ebp - 0x58], ecx
sub edx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x60]
cmp dword [ebp - 0x54], 0x64
jne 0x41302c
mov ebx, 0x41a3d8
push 0
mov edx, dword [ebp - 0x70]
add edx, 0x5f0
call dword [edx]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x60], edx
add edx, dword [ebp - 0x44]
xor dword [ebp - 0x58], ebx
mov eax, dword [ebp - 0x6c]
and esi, dword [ebp - 0x1c]
xor dword [ebp - 0x20], 0x2d
or dword [ebp - 0x6c], eax
jne 0x41307a
cmp dword [ebp - 0x40], 0x400002
jne 0x413075
cmp dword [ebp + 7], 0x41a2
mov eax, dword [ebp - 0x14]
push 0
push 0
jae 0x413025
push dword [ebp + 8]
jmp 0x413113
lea edx, [ebp - 0xc]
push edx
mov edx, dword [ebp - 0xc]
push dword [edx + 0x10]
call fcn.00403e4e
mov ecx, dword [ebp - 0x5c]
add dword [ebp - 0x64], 0x853
mov esi, dword [ebp - 0xc]
cmp dword [ecx - 4], esi
jne 0x412f3c
cmp dword [ebp - 0x40], 0x400002
jne 0x4130b9
lea edx, [eax + 0xc]
mov ecx, edi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4130f0
lea eax, [ebp - 0x6c]
add dword [ebp - 0x54], 0
je 0x4130cc
je 0x4130b5
cmp dword [esp + 0xc], 0
push eax
mov dword [ebp - 0x18], 0xb3d
push dword [ebp - 0x6c]
cmp dword [ebp - 0x40], 0x1b
jne 0x4130eb
mov esi, eax
mov dword [ebp - 0x34], edi
mov eax, dword [ebp + 0x3e8]
call fcn.00403f5c
add edi, 0xca86
lea edi, [ebp - 0x60]
push edi
push dword [ebp - 0x60]
add dword [ebp - 0x58], eax
call fcn.00403f5c
lea ecx, [ecx + ebx*4 + 0x622]
jmp 0x413168
lea edi, [ebp - 0x6c]
push edi
mov edi, dword [ebp - 0xc]
push dword [edi + 0x18]
call fcn.00403e4e
lea edx, [ebp - 0x60]
cmp dword [ebp - 0x40], 0x400002
jne 0x413137
push edx
cmp dword [ebp - 0x40], 0xffffffbd
jne 0x413151
jne 0x4130c7
mov eax, 0x41a29a
push dword [esp + 0x20]
mov eax, dword [eax + 8]
mov ecx, dword [eax]
push dword [ebp - 0xc]
mov edi, ebx
or word [ebp - 0x24], 0x7f9
call fcn.00403e4e
and dword [ebp - 0x28], edx
mov ebx, edx
mov ebx, edi
and edi, dword [ebp - 0x4c]
and esi, ecx
pop dword [ebp - 0x70]
and esi, dword [ebp - 0x44]
cmp dword [ebp - 0x40], 0x400002
jne 0x41318a
push ecx
push edx
call fcn.00404b0d
test eax, eax
pop ecx
pop ecx
cmp dword [ebp - 0x40], 1
je 0x413199
mov al, byte [esi + 2]
mov byte [edi + 2], al
pop dword [ebp - 0xc]
mov esi, dword [ebp - 0x5c]
cmp dword [ebp - 0x54], 0
je 0x4131b9
mov ebx, eax
mov dword [ebp - 0x2f0], ebx
cmp bx, 0x2d
jne 0x4131b0
mov word [esi], bx
mov esp, esi
cmp dword [ebp - 0x54], 0x400002
jne 0x4131d6
test byte [eax + 0x4f], 0x40
jne 0x413189
push 1
call fcn.00408298
xor eax, eax
pop dword [ebp - 0x5c]
and dword [ebp - 0x28], eax
and dword [ebp - 0x50], edx
ret 8
add esi, 0xc
mov eax, dword [esi + 4]
test eax, eax
jne 0x415aea
or dword [ebp - 0x74], edi
mov edx, dword [ebp - 0x60]
and dword [ebp - 0x48], eax
mov byte [edx], 0xe9
add dword [ebp - 0x50], edi
cmp dword [ebp - 0x54], 0xffffffcd
jne 0x415ac7
jle 0x415aa1
push 0x41a2e1
push dword [esp + 8]
push eax
lea edi, [ebp - 0x38]
push edi
mov edi, dword [ebp - 0x5c]
push dword [edi - 0x68]
call fcn.00403e4e
xor edi, dword [ebp - 0x28]
lea edi, [ebp - 0x38]
push edi
mov edi, dword [ebp - 0x5c]
push dword [edi - 0x64]
call fcn.00403ed7
add ecx, eax
and edi, dword [ebp - 0x20]
lea eax, [ebp - 0x6c]
push eax
mov eax, dword [ebp - 0x5c]
push dword [eax + 0xc]
call fcn.00403e4e
lea edi, [ecx + 0x58]
lea ebx, [ebp - 0x6c]
push ebx
mov ebx, dword [ebp - 0x6c]
push dword [ebx + 0x3c]
call fcn.00403ed7
sub eax, dword [ebp - 0x68]
or dword [ebp - 0x74], 0x436
lea ecx, [ebp - 0x6c]
push ecx
mov ecx, dword [ebp - 0x6c]
push dword [ecx + 0x28]
call fcn.00403e4e
lea ebx, [ebp - 0x6c]
push ebx
mov ebx, dword [ebp - 0x5c]
push dword [ebx - 0x5c]
call fcn.00403ed7
or edi, dword [ebp - 0x1c]
test dword [ebp - 0x54], 0
je 0x415b58
call fcn.00409861
push eax
lea eax, [esp + 0x334]
push eax
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [ebp - 0x6c]
xor edx, dword [ebp - 0x2c]
and dword [ebp - 0x34], edi
push ecx
add ecx, 0x601a
mov ecx, eax
xor dword [ebp - 0x20], esi
push dword [ebp - 0x38]
add eax, edx
add edi, 0x8a96
call fcn.00403f27
mov byte [ebp - 0x64], 0x56
mov eax, 6
sub dword [ebp - 0x6c], eax
add dword [ebp - 0x54], 0
je 0x415ba2
add esp, 0xc
push esi
push dword [esp + 0x10]
push edi
call dword [0x41a014]
push edi
mov ecx, dword [ebp - 0x60]
lea ecx, [ecx + 1]
push ecx
push dword [ebp - 0x6c]
call fcn.00403e4e
sub ecx, esi
mov eax, dword [ebp - 0x5c]
sub edx, dword [ebp - 0x20]
mov edi, ebx
push dword [eax - 0x68]
or edi, dword [ebp - 0x48]
cmp dword [ebp - 0x54], 0x400002
jne 0x415bd6
call fcn.00410a50
lea eax, [esp + 0x20]
mov esi, dword [ebp - 0x5c]
cmp dword [ebp - 0x54], 0
je 0x415be3
push esi
push dword [esi - 0xbc]
mov edx, dword [ebp - 0x60]
add eax, 0x78dc
mov edi, dword [ebp - 0x14]
add edi, 0x5a4
call dword [edi]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x60], edx
cmp dword [ebp - 0x40], 1
je 0x415c0d
push eax
mov ebx, dword [ebp - 0x6c]
or dword [ebp - 0x6c], ebx
jne 0x415e03
or eax, dword [ebp - 0x58]
push 0x40
sub edi, edx
cmp dword [ebp - 0x40], 0x400002
jne 0x415c33
push 0x10
mov ecx, esi
sub ecx, dword [ebp - 0x64]
push 0
push 1
or ecx, edx
mov ecx, eax
mov ecx, dword [ebp - 0x6c]
cmp dword [ebp - 0x54], 0
je 0x415c5d
sub ebx, 0x41a337
mov dword [ebp - 4], ebx
pop ebx
mov eax, dword [ebp - 0x5c]
add edi, esi
lea ecx, [eax - 0x4c]
mov dword [ebp - 0x6c], ecx
sub esi, dword [ebp - 0x24]
and edi, dword [ebp - 0x24]
test dword [ebp - 0x54], 0
je 0x415c7f
lea edi, [ebp - 0xc]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push dword [ebp - 0x6c]
cmp dword [ebp - 0x40], 1
je 0x415c93
mov eax, dword [esi + 0x2c]
cmp eax, edi
je 0x415c53
push eax
and dword [ebp - 0x48], 0xffffffb7
lea eax, [edx + eax*8 - 3]
push 0
and ebx, edi
cmp dword [ebp - 0x40], 1
je 0x415cc6
call 0x4089fe
mov eax, dword [eax + 0x80]
mov dword [ebp - 0x44], eax
call fcn.0040aedc
mov dword [eax + 0x7c], esi
call 0x408636
push 0
sub edx, dword [ebp - 0x4c]
add esi, dword [ebp - 0x28]
push 0
or dword [ebp - 0x44], ecx
mov ecx, dword [ebp - 0x6c]
mov edi, dword [ebp - 0x5c]
and dword [ebp - 0x44], esi
xor ebx, esi
lea ecx, [edi - 0x68]
mov dword [ebp - 0x6c], ecx
sub esi, dword [ebp - 0x68]
and edx, dword [ebp - 0x44]
push dword [ebp - 0x6c]
or esi, dword [ebp - 0x44]
mov edi, dword [ebp - 0x5c]
push dword [edi - 0xbc]
or dword [ebp - 0x34], edi
or word [ebp - 0x24], 0x43e
mov edi, dword [ebp - 0x5c]
sub edx, ebx
add dword [ebp - 0x50], eax
push dword [edi - 0x3c]
xor dword [ebp - 0x10], 0x5ac
mov word [ebp - 0x2c], 0xcbc
mov edx, dword [ebp - 0x60]
mov dword [ebp - 0x34], 0x659
mov eax, dword [ebp - 0x14]
add eax, 0x590
call dword [eax]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x60], edx
add eax, edi
add ecx, 0xb5c5
or word [ebp - 0x4c], 0x735
and word [ebp - 0x2c], 0x183
mov eax, dword [ebp - 0x6c]
cmp dword [ebp - 0x40], 1
je 0x415d73
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
mov byte [esp + 0x137c], 0x14
lea ecx, [eax + 0xc]
mov edx, edi
lock xadd dword [ecx], edx
or dword [ebp - 0x6c], eax
jne 0x415db3
and edi, dword [ebp - 0x74]
lea eax, [eax + ebx*4 + 0x42]
sub edi, ecx
push 0
and edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x5c]
push dword [eax - 0xb8]
mov edx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x14]
add eax, 0x5c0
call dword [eax]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x60], edx
or edx, edi
jmp 0x415e03
test dword [ebp - 0x54], 0
je 0x415dc6
dec dword [esi + 4]
js 0x415e31
mov ecx, dword [esi]
push 0
add word [ebp - 0x68], 0xfa4
mov esi, dword [ebp - 0x5c]
add dword [ebp - 0x18], ebx
push dword [esi - 0xbc]
sub ecx, esi
mov ecx, 0x172d76de
mov ecx, ebx
mov edx, dword [ebp - 0x60]
sub eax, edi
mov ecx, dword [ebp - 0x14]
add ecx, 0x5c8
call dword [ecx]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x60], edx
add dword [ebp - 0x10], 0x179
mov eax, dword [ebp - 0x5c]
or ebx, dword [ebp - 0x1c]
push dword [eax - 0xbc]
add word [ebp - 0x44], 0x385
and esi, dword [ebp - 0x64]
mov edx, dword [ebp - 0x60]
sub ebx, edx
or ecx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x14]
add ecx, 0x594
call dword [ecx]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x60], edx
sub edx, esi
mov esi, dword [ebp - 0x5c]
push dword [esi - 0xb8]
test dword [ebp - 0x54], 0
je 0x415e52
cmp dword [ecx], eax
jne 0x415ddd
mov eax, dword [ecx + 4]
cmp eax, dword [esi + 4]
mov edx, dword [ebp - 0x60]
mov edi, dword [ebp - 0x14]
add edi, 0x594
call dword [edi]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x60], edx
sub esi, dword [ebp - 0x74]
mov esi, dword [ebp - 0x5c]
add dword [ebp - 0x54], 0
je 0x415e7b
int3
push dword [esi - 0x54]
xor edx, dword [ebp - 0x10]
xor eax, ebx
lea edx, [ebx + eax*4 - 0x27]
push 0xffffffff
and eax, ecx
sub eax, dword [ebp - 0x2c]
xor eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x60]
and dword [ebp - 0x74], esi
mov ebx, dword [ebp - 0x14]
add ebx, 0x5a4
call dword [ebx]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x60], edx
mov ecx, dword [ebp - 0x5c]
push dword [ecx - 0x50]
cmp dword [ebp - 0x40], 1
je 0x415ebf
mov ebx, dword [ebp - 0x28]
xor esi, esi
mov edx, dword [ebp - 0x60]
mov edi, ecx
sub ecx, edx
mov edx, dword [ebp - 0x14]
add edx, 0x594
call dword [edx]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x60], edx
cmp dword [ebp - 0x40], 1
je 0x415ee8
push dword [ebp + 0xc]
call fcn.00416759
add ecx, dword [ebp - 0x64]
cmp dword [ebp - 0x40], 0x40
jne 0x417bb1
mov edx, dword [ebp - 0x60]
and ecx, dword [ebp - 0x20]
xor edi, dword [ebp - 0x20]
mov eax, dword [ebp - 0x60]
add eax, 0x608
call dword [eax]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x60], edx
and dword [ebp - 0x48], ebx
sub edi, esi
mov dword [ebp - 0x1c], 0xb63
pop dword [ebp - 0x60]
xor eax, esi
cmp dword [ebp - 0x40], 1
je 0x417be7
sub edi, dword [ebp - 0x64]
pop dword [ebp - 0x38]
add dword [ebp - 0x54], 0
je 0x417c02
mov ecx, dword [ecx*4 + 0x42f580]
test byte [ecx + eax*4 + 4], 1
mov esi, dword [ebp - 0x5c]
and ebx, edi
mov ebx, edi
mov esp, esi
xor esi, eax
cmp dword [ebp - 0x40], 1
je 0x417c35
mov word [ebp - 0x2d8], bx
lea esi, [ebp - 0x2d6]
cmp bx, 0x2b
jne 0x417c3b
dec dword [ebp - 0x2e4]
inc dword [ebp - 0x2e0]
pop dword [ebp - 0x5c]
lea ecx, [ebx - 0x1d]
xor esi, ecx
ret 4
or esi, dword [ebp - 0x28]
push dword [ebp - 0x60]
add dword [ebp - 0x64], 0xd6
mov byte [ebp - 0x28], 0x5f
lea edi, [ebp - 0x70]
sub ebx, dword [ebp - 0x64]
or dword [ebp - 0x64], 0x55d
push edi
push dword [ebp - 0x6c]
lea ebx, [edx + esi*2 + 0x4c]
call fcn.00403e4e
mov esi, dword [ebp - 0x70]
shr esi, 5
mov dword [ebp - 0x70], esi
lea edx, [ebp - 0xc]
push edx
mov edx, dword [ebp - 0x5c]
push dword [edx + 0x1c]
call fcn.00403e4e
lea edi, [ebp - 0x70]
push edi
and esi, edx
cmp dword [ebp - 0x40], 0xffffff94
jne 0x417d4e
push dword [ebp - 0xc]
call fcn.00403ed7
sub eax, edi
and dword [ebp - 0x68], 0x902
lea ebx, [ebp - 0xc]
cmp dword [ebp - 0x54], 0xffffffd8
jne 0x417d7f
push ebx
push dword [ebp - 0x6c]
call fcn.00403e4e
mov esi, dword [ebp - 0xc]
shl esi, 4
mov dword [ebp - 0xc], esi
cmp dword [ebp - 0x40], 1
je 0x417d9e
lea ebx, [ebp - 0x60]
push ebx
mov ebx, dword [ebp - 0x5c]
push dword [ebx + 0x18]
call fcn.00403e4e
lea esi, [ebp - 0xc]
xor ebx, dword [ebp - 0x24]
or word [ebp - 0x58], 0x22f
push esi
cmp dword [ebp - 0x54], 0
je 0x417dc6
pop ecx
push ebx
push esi
push dword [ebp - 0x60]
or dword [ebp - 0x50], ecx
call fcn.00403ed7
lea ecx, [ebp - 0x70]
test dword [ebp - 0x54], 0
je 0x417dea
mov ecx, edi
call fcn.0040c7c4
pop edi
pop esi
push ebp
push ecx
push dword [ebp - 0xc]
xor dword [ebp - 0x2c], esi
call fcn.00403f5c
cmp dword [ebp - 0x40], 1
je 0x417e03
mov edi, dword [esp + 0xc]
xor eax, dword [ebp - 0x68]
mov edx, dword [ebp - 0x38]
add ebx, dword [ebp - 0x20]
cmp dword [ebp - 0x40], 0x1e
jne 0x417e20
mov eax, dword [ebp - 0x1354]
and eax, 0x400
add edx, dword [ebp - 0x6c]
or edi, esi
cmp dword [ebp - 0x54], 0x64
jne 0x417e45
call esi
mov ecx, dword [0x41a41f]
mov eax, dword [0x41a4d9]
mov edx, 0x41a416
shr edx, cl
or dword [eax + 8], edx
mov ebx, dword [ebp - 0xc]
xor esi, edx
or dword [ebp - 0x34], 0xcd8
lea ebx, [edx]
mov dword [ebp - 0xc], ebx
lea esi, [ebp - 0x70]
mov byte [ebp - 0x48], 0xca
push esi
or edx, edi
xor eax, dword [ebp - 0x10]
push dword [ebp - 0xc]
call fcn.00403f5c
sub eax, dword [ebp - 0x24]
add edx, ecx
lea ecx, [ebp - 0x14]
push ecx
cmp dword [ebp - 0x54], 0
je 0x417e7e
push edi
push dword [ebp - 0x70]
call fcn.00403f27
xor dword [ebp - 0x64], ecx
and edx, dword [ebp - 0x4c]
lea ebx, [ebp - 0x70]
cmp dword [ebp - 0x54], 0x400002
jne 0x417eab
jae 0x417e7d
mov eax, ebx
sar eax, 5
lea edi, [eax*4 + 0x42f580]
mov eax, ebx
push ebx
or eax, edi
push dword [ebp - 0x14]
call fcn.00403e4e
and edx, dword [ebp - 0x44]
sub ecx, ebx
mov edx, dword [ebp - 0x70]
shr edx, 5
mov dword [ebp - 0x70], edx
and esi, ecx
and esi, dword [ebp - 0x1c]
lea eax, [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x5c]
push dword [eax + 0x14]
call fcn.00403e4e
lea edx, [ebp - 0x70]
and edi, esi
push edx
cmp dword [ebp - 0x40], 1
je 0x417ef0
xor eax, eax
mov edi, 0x41a48e
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push dword [ebp - 0xc]
call fcn.00403ed7
and eax, dword [ebp - 0x58]
lea edi, [ebp - 0xc]
push edi
and ecx, edi
push dword [ebp - 0x14]
or ecx, edx
call fcn.00403e4e
xor esi, dword [ebp - 0x74]
mov esi, dword [ebp - 0xc]
shl esi, 4
mov dword [ebp - 0xc], esi
lea edi, [ebp - 0x60]
push edi
mov edi, dword [ebp - 0x5c]
push dword [edi + 0x10]
call fcn.00403e4e
lea ebx, [ebp - 0xc]
lea ecx, [ecx + 0x9a]
push ebx
push dword [ebp - 0x60]
call fcn.00403ed7
sub ecx, esi
add dword [ebp - 0x24], ebx
lea ecx, [ebp - 0x70]
push ecx
lea edi, [edx + 0xa4a]
push dword [ebp - 0xc]
and edi, edx
sub ecx, esi
call fcn.00403f5c
cmp dword [ebp - 0x54], 0
je 0x417f65
lea ecx, [esp + 0x18]
call fcn.004173b9
and dword [ebp - 0x44], eax
add dword [ebp - 0x54], 0
je 0x417f7b
mov edi, dword [ebp - 0x38]
add edi, dword [ebp - 0x14]
mov eax, dword [ebp - 0xc]
lea eax, [edi]
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0x40], 0x400002
jne 0x417f97
push esi
push edi
lea eax, [ebp - 0x70]
add esi, dword [ebp - 0x1c]
and dword [ebp - 0x24], 0xf16
push eax
cmp dword [ebp - 0x40], 1
je 0x417fba
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push esi
call fcn.00412509
push dword [ebp - 0xc]
and esi, ecx
call fcn.00403f5c
mov word [ebp - 0x64], 0x4bb
xor ecx, dword [ebp - 0x20]
lea ebx, [ebp - 0x6c]
and dword [ebp - 0x18], edx
or dword [ebp - 0x50], edi
push ebx
cmp dword [ebp - 0x54], 0x400002
jne 0x417fea
cmp dword [esi + 8], 0
je 0x417fe3
push eax
push dword [ebp - 0x70]
cmp dword [ebp - 0x54], 0x35
jne 0x417ffb
call fcn.004154bc
call fcn.00403f27
add edi, 0x5200
xor edx, ecx
mov esi, 0x61c88647
add dword [ebp - 0x38], esi
add ecx, dword [ebp - 0x1c]
lea edi, [eax - 0x5d]
and dword [ebp - 0x28], 0x502
test dword [ebp - 0x54], 0
je 0x418039
push esi
mov esi, ecx
call 0x408d9f
test byte [esp + 8], 1
je 0x418048
push esi
cmp dword [ebp - 0x54], 0x400002
jne 0x418050
add eax, dword [ebp - 0x3c]
cmp dword [ebp - 0x5c], ecx
jne 0x41802c
add eax, dword [ebp + 0x18]
pop dword [ebp - 0x60]
sub dword [ebp - 0x60], 1
jne 0x417ce5
cmp dword [ebp - 0x40], 0x34
jne 0x418075
push eax
push dword [ecx + 4]
call dword [0x41a1a4]
pop ebp
push dword [esp + 0x10]
lea ecx, [ebp - 0x60]
lea esi, [ebx]
mov esi, 0x7ed8b489
mov esi, edx
push ecx
add eax, edx
push dword [ebp - 0x14]
add ebx, dword [ebp - 0x58]
xor esi, dword [ebp - 0x20]
call fcn.00403e4e
mov dword [ebp - 0x1c], 0x7c8
pop dword [ebp - 0x38]
pop dword [ebp - 0xc]
cmp dword [ebp - 0x54], 0x68
jne 0x4180ae