Function at 0x401480
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x590]
cmp eax, dword [ecx + 8]
jbe 0x40376a
sub esp, 0x610
xor eax, eax
mov ecx, 0xc8
lea edi, [esp + 0x2f0]
rep stosd dword es:[edi], eax
lea edi, [esp + 0x2d4]
call fcn.00454329
mov ebx, dword [0x6dbd0c]
cmp ebx, 1
jl 0x402f22
mov ebx, 0x5f7312
mov dword [esp], ebx
mov dword [esp + 4], 3
mov ebx, 0x5fb4d9
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 0x13
call fcn.004daed0
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x154], ebx
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x158], ebx
call fcn.004a8e80
mov esi, dword [esp]
mov ebp, dword [esp + 4]
mov ebx, dword [esp + 8]
mov dword [esp + 0x2bc], ebx
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x2c0], ebx
mov edx, 0x65a0bc00
mov ecx, 1
xor ebx, ebx
mov dword [esp + 0x264], ebx
mov dword [esp + 0x268], ebx
mov dword [esp + 0x26c], ebx
mov dword [esp + 0x270], ebx
mov dword [esp + 0x2b4], esi
mov dword [esp + 0xa0], esi
mov dword [esp + 0x2b8], ebp
mov dword [esp + 0xa4], ebp
mov dword [esp + 0x90], edx
mov dword [esp], edx
mov dword [esp + 0x94], ecx
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x3b9aca00
mov dword [esp + 0xc], 0
call fcn.0044c840
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xa0]
mov edx, dword [esp + 0xa4]
add eax, ebx
adc edx, ecx
mov dword [esp + 0x2b4], eax
mov dword [esp + 0x2b8], edx
mov eax, dword [esp + 0x90]
mov dword [esp], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x3b9aca00
mov dword [esp + 0xc], 0
call fcn.0044c840
mov edi, dword [esp + 0x2b8]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov esi, 0x3b9aca00
xor ebx, ebx
mov ebp, edx
or ebp, ebx
jne 0x403755
mul esi
mov ebx, eax
mov ecx, edx
mov eax, dword [esp + 0x90]
mov edx, dword [esp + 0x94]
sub eax, ebx
sbb edx, ecx
mov ecx, eax
mov ebx, dword [esp + 0x2bc]
add ecx, ebx
cmp ecx, 0x3b9aca00
jl 0x40370f
mov eax, dword [esp + 0x2b4]
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], edi
mov eax, dword [esp + 0xa0]
mov edi, dword [esp + 0xa4]
add eax, 1
adc edi, 0
mov dword [esp + 0x2b4], eax
sub ecx, 0x3b9aca00
mov ebp, dword [esp + 0x2b4]
mov eax, dword [esp + 0x2c0]
mov dword [esp + 0x264], ebp
mov dword [esp + 4], ebp
mov dword [esp + 0x268], edi
mov dword [esp + 8], edi
mov dword [esp + 0x26c], ecx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x270], eax
mov dword [esp + 0x10], eax
mov ebx, dword [esp + 0x158]
mov dword [esp], ebx
mov ebx, dword [esp + 0x154]
mov ebx, dword [ebx + 0x24]
call ebx
mov ebx, dword [esp + 0x158]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x154]
cmp ebx, 0
je 0x403708
lea ebx, [ebx + 0x14]
mov dword [esp], 0xc
mov dword [esp + 4], ebx
call fcn.00429df0
cmp eax, 0
jne 0x4036fb
mov dword [esp], 0x5e9940
call fcn.0040fc90
mov ecx, dword [esp + 4]
mov eax, 0x1b
mov byte [ecx], al
mov dword [esp + 0xd4], ecx
mov dword [esp + 0x108], ecx
mov dword [esp], 0x5cbcc0
mov ebx, dword [esp + 0x154]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x158]
mov dword [esp + 8], ebx
call fcn.0040d600
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x1cc], ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x1d0], ebx
mov dword [esp], 0x6b5700
mov ebx, 0x6dbc20
mov dword [esp + 4], ebx
mov dword [esp + 8], 0
call fcn.0040ce40
lea ebx, [esp + 0xc]
lea edi, [esp + 8]
cld
mov ecx, dword [ebx]
mov dword [edi], ecx
mov ecx, dword [ebx + 4]
mov dword [edi + 4], ecx
mov ebx, dword [esp + 0x1cc]
mov dword [esp], ebx
mov ebx, dword [esp + 0x1d0]
mov dword [esp + 4], ebx
mov ecx, dword [esp + 0x108]
mov eax, 0x5b2820
mov dword [esp + 0x1ec], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x1f0], ecx
mov dword [esp + 0x14], ecx
call fcn.004f66f0
mov ebx, dword [esp + 0xd4]
mov dword [esp + 0x108], ebx
mov dword [esp], 0x5cbc00
mov ebx, dword [esp + 0x154]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x158]
mov dword [esp + 8], ebx
call fcn.0040d600
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x1c4], ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x1c8], ebx
mov dword [esp], 0x6b5700
mov ebx, 0x6dbc20
mov dword [esp + 4], ebx
mov dword [esp + 8], 0
call fcn.0040ce40
lea ebx, [esp + 0xc]
lea edi, [esp + 8]
cld
mov ecx, dword [ebx]
mov dword [edi], ecx
mov ecx, dword [ebx + 4]
mov dword [edi + 4], ecx
mov ebx, dword [esp + 0x1c4]
mov dword [esp], ebx
mov ebx, dword [esp + 0x1c8]
mov dword [esp + 4], ebx
mov ecx, dword [esp + 0x108]
mov eax, 0x5b2820
mov dword [esp + 0x1ec], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x1f0], ecx
mov dword [esp + 0x14], ecx
call fcn.004f55c0
mov dword [esp], 0x76c
mov dword [esp + 4], 1
mov dword [esp + 8], 1
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov ebx, dword [0x6c6870]
mov dword [esp + 0x1c], ebx
call fcn.004a9030
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x294], ebx
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x29c], ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x2a0], ebx
mov ebx, dword [esp + 0xd4]
mov eax, dword [ebx + 0x20]
mov eax, dword [ebx + 0x24]
xor edx, edx
mov esi, 0x3b9aca00
xor ebx, ebx
mov ebp, edx
or ebp, ebx
jne 0x4036e6
mul esi
mov ecx, edx
mov edx, eax
xor ebx, ebx
mov dword [esp + 0x274], ebx
mov dword [esp + 0x278], ebx
mov dword [esp + 0x27c], ebx
mov dword [esp + 0x280], ebx
mov eax, dword [esp + 0x294]
mov dword [esp + 0xa0], eax
mov dword [esp + 0x298], edi
mov dword [esp + 0xa4], edi
mov dword [esp + 0x88], edx
mov dword [esp], edx
mov dword [esp + 0x8c], ecx
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x3b9aca00
mov dword [esp + 0xc], 0
call fcn.0044c840
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xa0]
mov edx, dword [esp + 0xa4]
add eax, ebx
adc edx, ecx
mov dword [esp + 0x294], eax
mov dword [esp + 0x298], edx
mov eax, dword [esp + 0x88]
mov dword [esp], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x3b9aca00
mov dword [esp + 0xc], 0
call fcn.0044c840
mov edi, dword [esp + 0x298]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov esi, 0x3b9aca00
xor ebx, ebx
mov ebp, edx
or ebp, ebx
jne 0x4036d1
mul esi
mov ebx, eax
mov ecx, edx
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x8c]
sub eax, ebx
sbb edx, ecx
mov ecx, eax
mov ebx, dword [esp + 0x29c]
add ecx, ebx
cmp ecx, 0x3b9aca00
jl 0x40368d
mov eax, dword [esp + 0x294]
mov edx, edi
add eax, 1
adc edx, 0
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], edx
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x294], eax
mov edi, dword [esp + 0xa4]
sub ecx, 0x3b9aca00
mov ebp, dword [esp + 0x294]
mov eax, dword [esp + 0x2a0]
mov dword [esp + 0x274], ebp
mov dword [esp + 0x284], ebp
mov dword [esp + 0x278], edi
mov dword [esp + 0x288], edi
mov dword [esp + 0x27c], ecx
mov dword [esp + 0x28c], ecx
mov dword [esp + 0x280], eax
mov dword [esp + 0x290], eax
mov dword [esp], 0x77359400
mov dword [esp + 4], 0
call fcn.00444770
mov ebx, 0x5f7312
mov dword [esp], ebx
mov dword [esp + 4], 3
mov ebx, 0x5fb4d9
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 0x13
call fcn.004daed0
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x15c], ebx
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x160], ebx
call fcn.004a8e80
mov esi, dword [esp]
mov ebp, dword [esp + 4]
mov ebx, dword [esp + 8]
mov dword [esp + 0x2cc], ebx
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x2d0], ebx
mov edx, 0x65a0bc00
mov ecx, 1
xor ebx, ebx
mov dword [esp + 0x244], ebx
mov dword [esp + 0x248], ebx
mov dword [esp + 0x24c], ebx
mov dword [esp + 0x250], ebx
mov dword [esp + 0x2c4], esi
mov dword [esp + 0xb8], esi
mov dword [esp + 0x2c8], ebp
mov dword [esp + 0xbc], ebp
mov dword [esp + 0x78], edx
mov dword [esp], edx
mov dword [esp + 0x7c], ecx
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x3b9aca00
mov dword [esp + 0xc], 0
call fcn.0044c840
mov eax, dword [esp + 0x10]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0xb8]
mov edx, dword [esp + 0xbc]
add eax, dword [esp + 0xa0]
adc edx, dword [esp + 0xa4]
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], edx
mov edx, dword [esp + 0xa0]
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0x2c4], edx
mov dword [esp + 0x2c8], ecx
mov eax, dword [esp + 0x78]
mov dword [esp], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x3b9aca00
mov dword [esp + 0xc], 0
call fcn.0044c840
mov edi, dword [esp + 0x2c8]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov esi, 0x3b9aca00
xor ebx, ebx
mov ebp, edx
or ebp, ebx
jne 0x403678
mul esi
mov ecx, edx
mov ebp, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
sub ebp, eax
sbb edx, ecx
mov ebx, dword [esp + 0x2cc]
add ebp, ebx
mov ecx, ebp
cmp ebp, 0x3b9aca00
jl 0x403632
mov eax, dword [esp + 0x2c4]
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], edi
mov eax, dword [esp + 0xa0]
mov edi, dword [esp + 0xa4]
add eax, 1
adc edi, 0
mov dword [esp + 0x2c4], eax
sub ecx, 0x3b9aca00
mov ebp, dword [esp + 0x2c4]
mov eax, dword [esp + 0x2d0]
mov dword [esp + 0x244], ebp
mov dword [esp + 4], ebp
mov dword [esp + 0x248], edi
mov dword [esp + 8], edi
mov dword [esp + 0x24c], ecx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x250], eax
mov dword [esp + 0x10], eax
mov ebx, dword [esp + 0x160]
mov dword [esp], ebx
mov ebx, dword [esp + 0x15c]
mov ebx, dword [ebx + 0x24]
call ebx
mov ebx, dword [esp + 0x160]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x15c]
cmp ebx, 0
je 0x40362b
lea ebx, [ebx + 0x14]
mov dword [esp], 0xc
mov dword [esp + 4], ebx
call fcn.00429df0
cmp eax, 0
jne 0x40361e
mov dword [esp], 0x5e9940
call fcn.0040fc90
mov eax, dword [esp + 4]
mov ecx, 0x1b
mov byte [eax], cl
mov dword [esp + 0xc8], eax
mov dword [esp + 0x108], eax
mov dword [esp], 0x5cbcc0
mov ebx, dword [esp + 0x15c]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x160]
mov dword [esp + 8], ebx
call fcn.0040d600
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x1cc], ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x1d0], ebx
mov dword [esp], 0x6b5700
mov ebx, 0x6dbc20
mov dword [esp + 4], ebx
mov dword [esp + 8], 0
call fcn.0040ce40
lea ebx, [esp + 0xc]
lea edi, [esp + 8]
cld
mov ecx, dword [ebx]
mov dword [edi], ecx
mov ecx, dword [ebx + 4]
mov dword [edi + 4], ecx
mov ebx, dword [esp + 0x1cc]
mov dword [esp], ebx
mov ebx, dword [esp + 0x1d0]
mov dword [esp + 4], ebx
mov ecx, dword [esp + 0x108]
mov eax, 0x5b2820
mov dword [esp + 0x1ec], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x1f0], ecx
mov dword [esp + 0x14], ecx
call fcn.004f66f0
mov ebx, dword [esp + 0xc8]
mov dword [esp + 0x108], ebx
mov dword [esp], 0x5cbc00
mov ebx, dword [esp + 0x15c]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x160]
mov dword [esp + 8], ebx
call fcn.0040d600
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x1c4], ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x1c8], ebx
mov dword [esp], 0x6b5700
mov ebx, 0x6dbc20
mov dword [esp + 4], ebx
mov dword [esp + 8], 0
call fcn.0040ce40
lea ebx, [esp + 0xc]
lea edi, [esp + 8]
cld
mov ecx, dword [ebx]
mov dword [edi], ecx
mov ecx, dword [ebx + 4]
mov dword [edi + 4], ecx
mov ebx, dword [esp + 0x1c4]
mov dword [esp], ebx
mov ebx, dword [esp + 0x1c8]
mov dword [esp + 4], ebx
mov ecx, dword [esp + 0x108]
mov eax, 0x5b2820
mov dword [esp + 0x1ec], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x1f0], ecx
mov dword [esp + 0x14], ecx
call fcn.004f55c0
mov dword [esp], 0x76c
mov dword [esp + 4], 1
mov dword [esp + 8], 1
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov ebx, dword [0x6c6870]
mov dword [esp + 0x1c], ebx
call fcn.004a9030
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x2a4], ebx
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x2ac], ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x2b0], ebx
mov ebx, dword [esp + 0xc8]
mov eax, dword [ebx + 0x20]
mov eax, dword [ebx + 0x24]
xor edx, edx
mov esi, 0x3b9aca00
xor ebx, ebx
mov ebp, edx
or ebp, ebx
jne 0x403609
mul esi
mov ecx, edx
mov edx, eax
xor ebx, ebx
mov dword [esp + 0x254], ebx
mov dword [esp + 0x258], ebx
mov dword [esp + 0x25c], ebx
mov dword [esp + 0x260], ebx
mov eax, dword [esp + 0x2a4]
mov dword [esp + 0xb8], eax
mov dword [esp + 0x2a8], edi
mov dword [esp + 0xbc], edi
mov dword [esp + 0x80], edx
mov dword [esp], edx
mov dword [esp + 0x84], ecx
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x3b9aca00
mov dword [esp + 0xc], 0
call fcn.0044c840
mov eax, dword [esp + 0x10]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0xb8]
mov edx, dword [esp + 0xbc]
add eax, dword [esp + 0xa0]
adc edx, dword [esp + 0xa4]
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], edx
mov edx, dword [esp + 0xa0]
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0x2a4], edx
mov dword [esp + 0x2a8], ecx
mov eax, dword [esp + 0x80]
mov dword [esp], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x3b9aca00
mov dword [esp + 0xc], 0
call fcn.0044c840
mov edi, dword [esp + 0x2a8]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov esi, 0x3b9aca00
xor ebx, ebx
mov ebp, edx
or ebp, ebx
jne 0x4035f4
mul esi
mov ebx, eax
mov ecx, edx
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x84]
sub eax, ebx
sbb edx, ecx
mov ecx, eax
mov ebx, dword [esp + 0x2ac]
add ecx, ebx
cmp ecx, 0x3b9aca00
jl 0x4035ae
mov eax, dword [esp + 0x2a4]
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], edi
mov eax, dword [esp + 0xa0]
mov edi, dword [esp + 0xa4]
add eax, 1
adc edi, 0
mov dword [esp + 0x2a4], eax
sub ecx, 0x3b9aca00
mov ebp, dword [esp + 0x2a4]
mov eax, dword [esp + 0x2b0]
mov dword [esp + 0x254], ebp
mov dword [esp], ebp
mov dword [esp + 0x258], edi
mov dword [esp + 4], edi
mov dword [esp + 0x25c], ecx
mov dword [esp + 8], ecx
mov dword [esp + 0x260], eax
mov dword [esp + 0xc], eax
mov ebx, dword [esp + 0x284]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x288]
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x28c]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x290]
mov dword [esp + 0x1c], ebx
call fcn.004a8510
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
xorps xmm0, xmm0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x98], edx
mov dword [esp], edx
mov dword [esp + 0x9c], ecx
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x3b9aca00
mov dword [esp + 0xc], 0
call fcn.0044c840
mov eax, dword [esp + 0x10]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov eax, dword [esp + 0x98]
mov dword [esp], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x3b9aca00
mov dword [esp + 0xc], 0
call fcn.0044c840
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov esi, 0x3b9aca00
xor ebx, ebx
mov ebp, edx
or ebp, ebx
jne 0x403599
mul esi
mov ebx, eax
mov ecx, edx
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x9c]
sub eax, ebx
sbb edx, ecx
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], edx
fild qword [esp + 0x68]
fstp qword [esp + 0xb0]
movsd xmm0, qword [esp + 0xb0]
movsd qword [esp + 0xb0], xmm0
fild qword [esp + 0x70]
fstp qword [esp + 0xa8]
movsd xmm0, qword [esp + 0xa8]
movsd qword [esp + 0xa8], xmm0
movsd xmm0, qword [esp + 0xa8]
mulsd xmm0, qword [0x61bd18]
movsd qword [esp + 0xa8], xmm0
movsd xmm0, qword [esp + 0xa8]
movsd xmm1, qword [esp + 0xb0]
addsd xmm1, xmm0
movsd qword [esp + 0xb0], xmm1
movsd xmm0, qword [esp + 0xb0]
movsd qword [esp + 0xb0], xmm0
movsd xmm0, qword [esp + 0xb0]
cvttsd2si ebx, xmm0
cmp ebx, 2
jl 0x402f22
mov ebx, 0x5f91fe
mov dword [esp + 0x19c], ebx
mov dword [esp + 0x1a0], 0xc
mov dword [esp], 0x5da5a0
call fcn.0040fc90
mov eax, dword [esp + 4]
xor ebp, ebp
mov dword [eax], ebp
mov dword [eax + 4], ebp
mov dword [eax + 8], ebp
mov dword [eax + 0xc], ebp
mov dword [eax + 0x10], ebp
mov dword [esp + 0x100], eax
mov ebp, dword [esp + 0x1a0]
mov dword [eax + 0x10], ebp
mov ebp, dword [esp + 0x19c]
cmp byte [0x6dbe18], 0
jne 0x40357e
mov dword [eax + 0xc], ebp
mov dword [esp + 0xe8], eax
mov ebx, 0x5fb629
mov dword [esp + 0x184], ebx
mov dword [esp + 0x188], 0x14
mov dword [esp], 0x5dd120
call fcn.0040fc90
mov eax, dword [esp + 4]
xor ebp, ebp
mov dword [eax], ebp
mov dword [eax + 4], ebp
mov dword [eax + 8], ebp
mov dword [eax + 0xc], ebp
mov dword [eax + 0x10], ebp
mov dword [eax + 0x14], ebp
mov ecx, dword [esp + 0xe8]
mov dword [esp + 0xfc], eax
cmp byte [0x6dbe18], 0
jne 0x403563
mov dword [eax + 0x10], ecx
mov ebp, dword [esp + 0x188]
mov dword [eax + 0xc], ebp
mov ebp, dword [esp + 0x184]
cmp byte [0x6dbe18], 0
jne 0x403548
mov dword [eax + 8], ebp
mov dword [esp + 0x128], eax
mov dword [esp], 0x5e7860
call fcn.0040fc90
mov ecx, dword [esp + 4]
mov edi, ecx
cmp ecx, 0
je 0x403541
xor eax, eax
call fcn.00454320
mov eax, 0x40
mov dword [esp + 0x150], ecx
mov dword [ecx], eax
mov dword [esp], 0x5be9a0
call fcn.0040fc90
mov ebx, dword [esp + 4]
mov eax, dword [esp + 0x150]
cmp eax, 0
je 0x40353a
mov dword [ebx], eax
mov edx, 1
mov ecx, 1
mov eax, ebx
mov ebx, dword [esp + 0x128]
mov dword [esp], ebx
mov dword [esp + 0x208], eax
mov dword [esp + 4], eax
mov dword [esp + 0x20c], edx
mov dword [esp + 8], edx
mov dword [esp + 0x210], ecx
mov dword [esp + 0xc], ecx
call fcn.004570f0
mov ecx, dword [esp + 0x150]
mov eax, dword [ecx + 8]
mov eax, dword [ecx + 0xc]
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
shrd eax, edx, 0x1e
shr edx, 0x1e
cmp edx, 0
jb 0x402f22
ja 0x4023cf
cmp eax, 3
jb 0x402f22
mov ebx, 0x5f91fe
mov dword [esp + 0x1ac], ebx
mov dword [esp + 0x1b0], 0xc
mov dword [esp], 0x5da5a0
call fcn.0040fc90
mov eax, dword [esp + 4]
xor ebp, ebp
mov dword [eax], ebp
mov dword [eax + 4], ebp
mov dword [eax + 8], ebp
mov dword [eax + 0xc], ebp
mov dword [eax + 0x10], ebp
mov dword [esp + 0x100], eax
mov ebp, dword [esp + 0x1b0]
mov dword [eax + 0x10], ebp
mov ebp, dword [esp + 0x1ac]
cmp byte [0x6dbe18], 0
jne 0x40351f
mov dword [eax + 0xc], ebp
mov dword [esp + 0x138], eax
mov dword [esp + 0xec], eax
mov ebx, 0x5fcd3f
mov dword [esp + 0x17c], ebx
mov dword [esp + 0x180], 0x18
mov dword [esp], 0x5dd120
call fcn.0040fc90
mov eax, dword [esp + 4]
xor ebp, ebp
mov dword [eax], ebp
mov dword [eax + 4], ebp
mov dword [eax + 8], ebp
mov dword [eax + 0xc], ebp
mov dword [eax + 0x10], ebp
mov dword [eax + 0x14], ebp
mov ecx, dword [esp + 0xec]
mov dword [esp + 0xfc], eax
cmp byte [0x6dbe18], 0
jne 0x403504
mov dword [eax + 0x10], ecx
mov ebp, dword [esp + 0x180]
mov dword [eax + 0xc], ebp
mov ebp, dword [esp + 0x17c]
cmp byte [0x6dbe18], 0
jne 0x4034e9
mov dword [eax + 8], ebp
mov dword [esp + 0x13c], eax
mov ebx, dword [esp + 0x138]
mov dword [esp + 0xf0], ebx
mov ebx, 0x5f9d09
mov dword [esp + 0x174], ebx
mov dword [esp + 0x178], 0xf
mov dword [esp], 0x5dd120
call fcn.0040fc90
mov eax, dword [esp + 4]
xor ebp, ebp
mov dword [eax], ebp
mov dword [eax + 4], ebp
mov dword [eax + 8], ebp
mov dword [eax + 0xc], ebp
mov dword [eax + 0x10], ebp
mov dword [eax + 0x14], ebp
mov ecx, dword [esp + 0xf0]
mov dword [esp + 0xfc], eax
cmp byte [0x6dbe18], 0
jne 0x4034ce
mov dword [eax + 0x10], ecx
mov ebp, dword [esp + 0x178]
mov dword [eax + 0xc], ebp
mov ebp, dword [esp + 0x174]
cmp byte [0x6dbe18], 0
jne 0x4034b3
mov dword [eax + 8], ebp
mov dword [esp + 0x12c], eax
mov ebx, dword [esp + 0x138]
mov dword [esp + 0xf8], ebx
mov ebx, 0x5f988e
mov dword [esp + 0x164], ebx
mov dword [esp + 0x168], 0xe
mov dword [esp], 0x5dd120
call fcn.0040fc90
mov eax, dword [esp + 4]
xor ebp, ebp
mov dword [eax], ebp
mov dword [eax + 4], ebp
mov dword [eax + 8], ebp
mov dword [eax + 0xc], ebp
mov dword [eax + 0x10], ebp
mov dword [eax + 0x14], ebp
mov ecx, dword [esp + 0xf8]
mov dword [esp + 0xfc], eax
cmp byte [0x6dbe18], 0
jne 0x403498
mov dword [eax + 0x10], ecx
mov ebp, dword [esp + 0x168]
mov dword [eax + 0xc], ebp
mov ebp, dword [esp + 0x164]
cmp byte [0x6dbe18], 0
jne 0x40347d
mov dword [eax + 8], ebp
mov dword [esp + 0xdc], eax
mov ebx, dword [esp + 0x138]
mov dword [esp + 0xe0], ebx
mov ebx, 0x5f8a7a
mov dword [esp + 0x18c], ebx
mov dword [esp + 0x190], 0xb
mov dword [esp], 0x5dd120
call fcn.0040fc90
mov eax, dword [esp + 4]
xor ebp, ebp
mov dword [eax], ebp
mov dword [eax + 4], ebp
mov dword [eax + 8], ebp
mov dword [eax + 0xc], ebp
mov dword [eax + 0x10], ebp
mov dword [eax + 0x14], ebp
mov ecx, dword [esp + 0xe0]
mov dword [esp + 0xfc], eax
cmp byte [0x6dbe18], 0
jne 0x403462
mov dword [eax + 0x10], ecx
mov ebp, dword [esp + 0x190]
mov dword [eax + 0xc], ebp
mov ebp, dword [esp + 0x18c]
cmp byte [0x6dbe18], 0
jne 0x403447
mov dword [eax + 8], ebp
mov dword [esp + 0xcc], eax
mov dword [esp + 0x64], 1
mov dword [esp], 0x5bf760
call fcn.0040fc90
mov eax, dword [esp + 4]
mov ebp, dword [0x61bd90]
mov dword [eax], ebp
mov ebp, dword [0x61bd94]
mov dword [eax + 4], ebp
mov edx, 2
mov ecx, 2
mov ebx, dword [esp + 0x13c]
mov dword [esp], ebx
mov dword [esp + 0x208], eax
mov dword [esp + 4], eax
mov dword [esp + 0x20c], edx
mov dword [esp + 8], edx
mov dword [esp + 0x210], ecx
mov dword [esp + 0xc], ecx
call fcn.004570f0
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x5c], ebx
mov dword [esp], 0x5be9a0
call fcn.0040fc90
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x5c]
mov dword [eax], ecx
mov edx, 1
mov ecx, 1
mov ebx, dword [esp + 0xcc]
mov dword [esp + 8], ebx
mov dword [esp + 0x208], eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x20c], edx
mov dword [esp + 0x10], edx
mov dword [esp + 0x210], ecx
mov dword [esp + 0x14], ecx
mov dword [esp], 0x20
mov eax, 0x61bcac
mov dword [esp + 4], eax
call fcn.00429df0
cmp eax, 0
jne 0x40343a
lea edi, [esp + 0x2f0]
xor eax, eax
mov ecx, 0xc8
rep stosd dword es:[edi], eax
lea ebx, [esp + 0x2f0]
cmp ebx, 0
je 0x403433
mov dword [esp + 0x23c], 0
mov dword [esp + 0x240], 0x64
mov dword [esp + 0x238], ebx
mov dword [esp], 0x5e8460
call fcn.0040fc90
mov edx, dword [esp + 4]
mov edi, edx
cmp edx, 0
je 0x40342c
xor eax, eax
mov ecx, 0x8b
rep stosd dword es:[edi], eax
mov eax, 0x22c
mov dword [esp + 0x148], edx
mov dword [edx], eax
mov dword [esp], 0x5bf760
call fcn.0040fc90
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x5c]
mov dword [eax], ecx
mov ecx, dword [esp + 0x148]
cmp ecx, 0
je 0x403425
mov dword [eax + 4], ecx
mov edx, 2
mov ecx, 2
mov ebx, dword [esp + 0x12c]
mov dword [esp], ebx
mov dword [esp + 0x208], eax
mov dword [esp + 4], eax
mov dword [esp + 0x20c], edx
mov dword [esp + 8], edx
mov dword [esp + 0x210], ecx
mov dword [esp + 0xc], ecx
call fcn.004570f0
mov eax, dword [esp + 0x148]
cmp eax, 0
je 0x40341e
add eax, 0x24
cmp eax, 0
je 0x403417
mov edx, 0x104
mov ecx, 0x104
mov dword [esp + 0x22c], eax
mov dword [esp], eax
mov dword [esp + 0x230], edx
mov dword [esp + 4], edx
mov dword [esp + 0x234], ecx
mov dword [esp + 8], ecx
call fcn.004579a0
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x1d4], ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x1d8], ebx
mov ecx, dword [esp + 0x238]
mov eax, dword [esp + 0x23c]
mov edx, dword [esp + 0x240]
mov ebx, eax
inc ebx
cmp ebx, edx
ja 0x4033d2
mov dword [esp + 0x23c], ebx
mov ebx, ecx
mov ebp, eax
imul ebp, ebp, 8
add ebx, ebp
mov ebp, dword [esp + 0x1d8]
mov dword [ebx + 4], ebp
mov ebp, dword [esp + 0x1d4]
cmp byte [0x6dbe18], 0
jne 0x4033c1
mov dword [ebx], ebp
mov dword [esp], 0x5bf760
call fcn.0040fc90
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x5c]
mov dword [eax], ecx
mov ecx, dword [esp + 0x148]
cmp ecx, 0
je 0x4033ba
mov dword [eax + 4], ecx
mov edx, 2
mov ecx, 2
mov ebx, dword [esp + 0xdc]
mov dword [esp], ebx
mov dword [esp + 0x208], eax
mov dword [esp + 4], eax
mov dword [esp + 0x20c], edx
mov dword [esp + 8], edx
mov dword [esp + 0x210], ecx
mov dword [esp + 0xc], ecx
call fcn.004570f0
mov ebx, dword [esp + 0x10]
cmp ebx, 0
jne 0x40280d
mov dword [esp + 0x44], 0
mov edx, dword [esp + 0x238]
mov ecx, dword [esp + 0x23c]
mov ebx, dword [esp + 0x240]
mov dword [esp + 0x228], ebx
xor esi, esi
mov dword [esp + 0x224], ecx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x220], edx
mov ebp, dword [esp + 0x50]
cmp esi, ebp
jge 0x4029d4
mov dword [esp + 0x124], edx
cmp edx, 0
je 0x4033b3
mov edi, dword [edx]
mov ebp, dword [edx + 4]
mov dword [esp + 0x48], esi
mov dword [esp + 0x1d4], edi
mov dword [esp + 0x1f4], edi
mov dword [esp + 0x1d8], ebp
mov dword [esp + 0x1f8], ebp
cmp ebp, 0
jne 0x4029bf
mov dword [esp], 1
call fcn.004d86e0
mov esi, dword [esp + 0x48]
mov edx, dword [esp + 0x124]
mov ebx, dword [esp + 0x44]
inc ebx
mov dword [esp + 0x44], ebx
add edx, 8
inc esi
mov ebp, dword [esp + 0x50]
cmp esi, ebp
jl 0x40296e
mov ebx, dword [esp + 0x44]
mov ebp, dword [esp + 0x64]
cmp ebx, ebp
jl 0x402f22
mov ebx, 0x5f8934
mov dword [esp + 0x1b4], ebx
mov dword [esp + 0x1b8], 0xa
mov dword [esp], 0x5da5a0
call fcn.0040fc90
mov eax, dword [esp + 4]
xor ebp, ebp
mov dword [eax], ebp
mov dword [eax + 4], ebp
mov dword [eax + 8], ebp
mov dword [eax + 0xc], ebp
mov dword [eax + 0x10], ebp
mov dword [esp + 0x100], eax
mov ebp, dword [esp + 0x1b8]
mov dword [eax + 0x10], ebp
mov ebp, dword [esp + 0x1b4]
cmp byte [0x6dbe18], 0
jne 0x403398
mov dword [eax + 0xc], ebp
mov dword [esp + 0xf4], eax
mov ebx, 0x5fa0cf
mov dword [esp + 0x194], ebx
mov dword [esp + 0x198], 0x10
mov dword [esp], 0x5dd120
call fcn.0040fc90
mov eax, dword [esp + 4]
xor ebp, ebp
mov dword [eax], ebp
mov dword [eax + 4], ebp
mov dword [eax + 8], ebp
mov dword [eax + 0xc], ebp
mov dword [eax + 0x10], ebp
mov dword [eax + 0x14], ebp
mov ecx, dword [esp + 0xf4]
mov dword [esp + 0xfc], eax
cmp byte [0x6dbe18], 0
jne 0x40337d
mov dword [eax + 0x10], ecx
mov ebp, dword [esp + 0x198]
mov dword [eax + 0xc], ebp
mov ebp, dword [esp + 0x194]
cmp byte [0x6dbe18], 0
jne 0x403362
mov dword [eax + 8], ebp
mov dword [esp + 0x134], eax
xor eax, eax
mov dword [esp + 0x60], 3
mov dword [esp + 0x58], eax
mov ebp, dword [esp + 0x60]
cmp eax, ebp
jge 0x402bc4
mov dword [esp], 0x5be9a0
call fcn.0040fc90
mov eax, dword [esp + 4]
mov ebp, dword [0x61b914]
mov dword [eax], ebp
mov edx, 1
mov ecx, 1
mov ebx, dword [esp + 0x134]
mov dword [esp], ebx
mov dword [esp + 0x208], eax
mov dword [esp + 4], eax
mov dword [esp + 0x20c], edx
mov dword [esp + 8], edx
mov dword [esp + 0x210], ecx
mov dword [esp + 0xc], ecx
call fcn.004570f0
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x40], ebx
mov dword [esp], 0x5be9a0
call fcn.0040fc90
mov eax, dword [esp + 4]
mov ebp, dword [0x61b918]
mov dword [eax], ebp
mov edx, 1
mov ecx, 1
mov ebx, dword [esp + 0x134]
mov dword [esp], ebx
mov dword [esp + 0x208], eax
mov dword [esp + 4], eax
mov dword [esp + 0x20c], edx
mov dword [esp + 8], edx
mov dword [esp + 0x210], ecx
mov dword [esp + 0xc], ecx
call fcn.004570f0
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x40]
and ebx, 1
cmp ebx, 1
jne 0x402ba5
inc eax
mov ebx, ecx
and ebx, 1
cmp ebx, 1
jne 0x402ad4
inc eax
mov dword [esp + 0x58], eax
mov ebp, dword [esp + 0x60]
cmp eax, ebp
jl 0x402ae4
movss xmm0, dword [0x61b864]
movss dword [esp + 0x38], xmm0
mov ebx, 0x5f91fe
mov dword [esp + 0x1a4], ebx
mov dword [esp + 0x1a8], 0xc
mov dword [esp], 0x5da5a0
call fcn.0040fc90
mov eax, dword [esp + 4]
xor ebp, ebp
mov dword [eax], ebp
mov dword [eax + 4], ebp
mov dword [eax + 8], ebp
mov dword [eax + 0xc], ebp
mov dword [eax + 0x10], ebp
mov dword [esp + 0x100], eax
mov ebp, dword [esp + 0x1a8]
mov dword [eax + 0x10], ebp
mov ebp, dword [esp + 0x1a4]
cmp byte [0x6dbe18], 0
jne 0x403347
mov dword [eax + 0xc], ebp
mov dword [esp + 0xe4], eax
mov ebx, 0x5fafa7
mov dword [esp + 0x16c], ebx
mov dword [esp + 0x170], 0x13
mov dword [esp + 0xc0], 0
mov dword [esp], 0x5dd120
call fcn.0040fc90
mov eax, dword [esp + 4]
xor ebp, ebp
mov dword [eax], ebp
mov dword [eax + 4], ebp
mov dword [eax + 8], ebp
mov dword [eax + 0xc], ebp
mov dword [eax + 0x10], ebp
mov dword [eax + 0x14], ebp
mov ecx, dword [esp + 0xe4]
mov dword [esp + 0xfc], eax
cmp byte [0x6dbe18], 0
jne 0x40332c
mov dword [eax + 0x10], ecx
mov ebp, dword [esp + 0x170]
mov dword [eax + 0xc], ebp
mov ebp, dword [esp + 0x16c]
cmp byte [0x6dbe18], 0
jne 0x403311
mov dword [eax + 8], ebp
mov dword [esp + 0xc0], eax
mov ebx, dword [esp + 0xc0]
mov dword [esp + 0xc4], ebx
mov dword [esp], 0x5c5220
call fcn.0040fc90
mov ebx, dword [esp + 4]
mov dword [esp + 0x144], ebx
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
mov ebx, dword [esp + 0x144]
mov eax, dword [esp + 0xa0]
mov dword [ebx], eax
mov eax, dword [esp + 0xa4]
mov dword [ebx + 4], eax
mov dword [esp], 0x5c5220
call fcn.0040fc90
mov ebx, dword [esp + 4]
mov dword [esp + 0x140], ebx
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
mov ebx, dword [esp + 0x140]
mov eax, dword [esp + 0xa0]
mov dword [ebx], eax
mov eax, dword [esp + 0xa4]
mov dword [ebx + 4], eax
mov dword [esp], 0x5c5220
call fcn.0040fc90
mov ebx, dword [esp + 4]
mov dword [esp + 0x14c], ebx
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
mov ebx, dword [esp + 0x14c]
mov eax, dword [esp + 0xa0]
mov dword [ebx], eax
mov eax, dword [esp + 0xa4]
mov dword [ebx + 4], eax
mov ebx, 0x5f70a9
mov dword [esp], ebx
mov dword [esp + 4], 2
call fcn.00457a60
mov ebx, dword [esp + 8]
mov dword [esp + 0x104], ebx
mov dword [esp], 0x5c0820
call fcn.0040fc90
mov ebx, dword [esp + 4]
mov dword [esp + 0x120], ebx
mov ebx, dword [esp + 0x104]
mov dword [esp + 0x110], ebx
mov ebx, dword [esp + 0x120]
mov ebp, dword [esp + 0x110]
mov dword [ebx], ebp
mov ebx, dword [esp + 0x144]
mov dword [esp + 0x10c], ebx
cmp dword [esp + 0x10c], 0
je 0x403306
mov ebx, dword [esp + 0x120]
mov ebp, dword [esp + 0x10c]
mov dword [ebx + 4], ebp
mov ebx, dword [esp + 0x140]
mov dword [esp + 0x10c], ebx
cmp dword [esp + 0x10c], 0
je 0x4032fb
mov ebx, dword [esp + 0x120]
mov ebp, dword [esp + 0x10c]
mov dword [ebx + 8], ebp
mov ebx, dword [esp + 0x14c]
mov dword [esp + 0x10c], ebx
cmp dword [esp + 0x10c], 0
je 0x4032f0
mov ebx, dword [esp + 0x120]
mov ebp, dword [esp + 0x10c]
mov dword [ebx + 0xc], ebp
mov eax, dword [esp + 0x120]
cmp eax, 0
je 0x4032e9
mov edx, 4
mov ecx, 4
mov ebx, dword [esp + 0xc4]
mov dword [esp], ebx
mov dword [esp + 0x208], eax
mov dword [esp + 4], eax
mov dword [esp + 0x20c], edx
mov dword [esp + 8], edx
mov dword [esp + 0x210], ecx
mov dword [esp + 0xc], ecx
call fcn.004570f0
mov ebx, dword [esp + 0x140]
mov eax, dword [ebx]
mov dword [esp + 0xa0], eax
mov eax, dword [ebx + 4]
mov dword [esp + 0xa4], eax
fild qword [esp + 0xa0]
fstp dword [esp + 0x4c]
movss xmm0, dword [esp + 0x4c]
movss dword [esp + 0x4c], xmm0
movss xmm0, dword [esp + 0x4c]
divss xmm0, dword [0x61b86c]
movss dword [esp + 0x34], xmm0
movss xmm0, dword [esp + 0x38]
movss xmm1, dword [esp + 0x34]
ucomiss xmm1, xmm0
ja 0x402f2f
nop
call fcn.0042acc0
add esp, 0x610
ret
mov dword [esp], 0x5ef9e0
call fcn.0040fc90
mov ebx, dword [esp + 4]
mov dword [esp + 0x11c], ebx
mov edi, dword [esp + 0x11c]
cmp edi, 0
je 0x4032e2
xor eax, eax
call fcn.00454308
mov dword [esp], 0x5eec80
call fcn.0040fc90
mov ebx, dword [esp + 4]
mov dword [esp + 0x118], ebx
mov edi, dword [esp + 0x118]
cmp edi, 0
je 0x4032db
xor eax, eax
call fcn.004542ff
mov byte [esp + 0x33], 1
mov ebx, dword [esp + 0x118]
movzx ebp, byte [esp + 0x33]
xchg ebp, eax
mov byte [ebx + 0x40], al
xchg ebp, eax
mov ebx, dword [esp + 0x118]
mov dword [esp + 0x118], ebx
mov ebx, dword [esp + 0x11c]
cmp ebx, 0
je 0x4032d4
mov ebp, dword [esp + 0x118]
cmp byte [0x6dbe18], 0
jne 0x4032c0
mov dword [ebx + 0x54], ebp
mov ebx, dword [esp + 0x11c]
mov dword [esp + 0x130], ebx
mov ebx, dword [esp + 0x130]
mov dword [esp + 0x11c], ebx
xor ebx, ebx
mov dword [esp + 0x2d4], ebx
mov dword [esp + 0x2d8], ebx
mov dword [esp + 0x2dc], ebx
mov dword [esp + 0x2e0], ebx
mov dword [esp + 0x2e4], ebx
mov dword [esp + 0x2e8], ebx
mov dword [esp + 0x2ec], ebx
mov ebx, dword [esp + 0x11c]
mov dword [esp + 0x1e8], ebx
mov dword [esp + 0x1e4], 0x6b2ad0
mov ebx, dword [esp + 0x1e4]
mov dword [esp + 0x2d4], ebx
mov ebx, dword [esp + 0x1e8]
mov dword [esp + 0x2d8], ebx
mov ebx, 0x5fbe0e
mov dword [esp + 0x1bc], ebx
mov dword [esp + 0x1c0], 0x15
mov dword [esp], 0x5c
mov dword [esp + 4], 0x6b
call fcn.00401390
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0xc]
mov dword [esp], 0
mov ebx, dword [esp + 0x1bc]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x1c0]
mov dword [esp + 8], ebx
mov dword [esp + 0x1d4], ecx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x1d8], eax
mov dword [esp + 0x10], eax
call fcn.004411a0
lea ebx, [esp + 0x14]
lea edi, [esp + 4]
cld
mov ecx, dword [ebx]
mov dword [edi], ecx
mov ecx, dword [ebx + 4]
mov dword [edi + 4], ecx
lea ebx, [esp + 0x2d4]
mov dword [esp], ebx
call fcn.00463370
mov ebx, dword [esp + 0xc]
mov dword [esp + 0xd0], ebx
mov ebx, dword [esp + 0xd0]
cmp ebx, 0
je 0x4032b9
mov ebp, dword [ebx + 0x20]
mov dword [esp + 0x1dc], ebp
mov ebp, dword [ebx + 0x24]
mov dword [esp + 0x1e0], ebp
mov ebx, dword [esp + 0x1e0]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x1dc]
cmp ebx, 0
je 0x4032b2
lea ebx, [ebx + 0x14]
mov dword [esp], 0xc
mov dword [esp + 4], ebx
call fcn.00429df0
cmp eax, 0
jne 0x4032a5
mov dword [esp], 0x5cbc00
mov eax, dword [esp + 0xd0]
cmp eax, 0
je 0x40329e
add eax, 0x20
lea edi, [esp + 4]
cld
mov ecx, dword [eax]
mov dword [edi], ecx
mov ecx, dword [eax + 4]
mov dword [edi + 4], ecx
call fcn.0040d600
lea ebx, [esp + 0xc]
cld
mov ecx, dword [ebx]
mov dword [esp], ecx
mov ecx, dword [ebx + 4]
mov dword [esp + 4], ecx
call fcn.004602c0
mov ebx, dword [esp + 8]
mov dword [esp + 0x1fc], ebx
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x200], ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x204], ebx
mov ebx, dword [esp + 0x200]
mov dword [esp], ebx
call fcn.00401040
mov ebx, dword [esp + 4]
mov dword [esp + 0x54], ebx
mov ebx, dword [esp + 0x54]
mov dword [esp + 0xd8], ebx
mov ebx, dword [esp + 0x1fc]
mov dword [esp + 0x214], ebx
mov ebx, dword [esp + 0x200]
mov dword [esp + 0x218], ebx
mov ebx, dword [esp + 0x204]
mov dword [esp + 0x21c], ebx
xor eax, eax
mov edi, dword [esp + 0x218]
mov ebx, dword [esp + 0x214]
mov dword [esp + 0x114], ebx
cmp eax, edi
jge 0x403262
mov edx, dword [esp + 0x114]
movzx ebp, byte [edx]
mov dword [esp + 0x3c], eax
xchg ebp, eax
mov byte [esp + 0x32], al
xchg ebp, eax
movzx edx, byte [esp + 0x32]
mov esi, dword [esp + 0xd8]
cmp esi, 0
je 0x40329a
mov ebp, dword [esp + 0x3c]
cmp ebp, 0xf1b30
jae 0x403293
add esi, ebp
mov byte [esi], dl
mov ebx, dword [esp + 0x114]
inc ebx
mov dword [esp + 0x114], ebx
inc eax
cmp eax, edi
jl 0x403219
mov ebx, dword [esp + 0x54]
mov dword [esp], ebx
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
call fcn.00444540
jmp 0x402f22
call fcn.00429b10
ud2
mov dword [esi], eax
jmp 0x40323e
mov dword [eax], eax
jmp 0x403164
nop
call fcn.0042acc0
add esp, 0x610
ret
mov dword [ebx], eax
jmp 0x403131
mov dword [ebx], eax
jmp 0x403102
lea esi, [ebx + 0x54]
mov dword [esp], esi
mov dword [esp + 4], ebp
call fcn.00410660
jmp 0x402fd6
mov dword [ebx], eax
jmp 0x402fbf
mov dword [edi], eax
jmp 0x402f84
mov dword [edi], eax
jmp 0x402f56
mov dword [eax], eax
jmp 0x402e92
mov dword [0], eax
jmp 0x402e71
mov dword [0], eax
jmp 0x402e44
mov dword [0], eax
jmp 0x402e17
lea esi, [eax + 8]
mov dword [esp], esi
mov dword [esp + 4], ebp
call fcn.00410660
mov eax, dword [esp + 0xfc]
jmp 0x402cbc
lea esi, [eax + 0x10]
mov dword [esp], esi
mov dword [esp + 4], ecx
call fcn.00410660
mov eax, dword [esp + 0xfc]
jmp 0x402c9b
lea esi, [eax + 0xc]
mov dword [esp], esi
mov dword [esp + 4], ebp
call fcn.00410660
mov eax, dword [esp + 0x100]
jmp 0x402c31
lea esi, [eax + 8]
mov dword [esp], esi
mov dword [esp + 4], ebp
call fcn.00410660
mov eax, dword [esp + 0xfc]
jmp 0x402ac3
lea esi, [eax + 0x10]
mov dword [esp], esi
mov dword [esp + 4], ecx
call fcn.00410660
mov eax, dword [esp + 0xfc]
jmp 0x402aa2
lea esi, [eax + 0xc]
mov dword [esp], esi
mov dword [esp + 4], ebp
call fcn.00410660
mov eax, dword [esp + 0x100]
jmp 0x402a43
mov dword [edx], eax
jmp 0x40297e
mov dword [ecx], eax
jmp 0x4028e4
mov dword [esp], ebx
mov dword [esp + 4], ebp
call fcn.00410660
jmp 0x4028be
mov dword [esp], 0x5c5720
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ebx
call fcn.0043d700
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, eax
inc ebx
mov dword [esp + 0x23c], ebx
mov dword [esp + 0x240], edx
mov dword [esp + 0x238], ecx
jmp 0x402895
mov dword [eax], eax
jmp 0x402829
mov dword [eax], eax
jmp 0x40281d
mov dword [ecx], eax
jmp 0x4027d0
mov dword [edx], eax
jmp 0x402793
mov dword [ebx], eax
jmp 0x40275b
nop
call fcn.0042acc0
add esp, 0x610
ret
lea esi, [eax + 8]
mov dword [esp], esi
mov dword [esp + 4], ebp
call fcn.00410660
mov eax, dword [esp + 0xfc]
jmp 0x40265f
lea esi, [eax + 0x10]
mov dword [esp], esi
mov dword [esp + 4], ecx
call fcn.00410660
mov eax, dword [esp + 0xfc]
jmp 0x40263e
lea esi, [eax + 8]
mov dword [esp], esi
mov dword [esp + 4], ebp
call fcn.00410660
mov eax, dword [esp + 0xfc]
jmp 0x4025d1
lea esi, [eax + 0x10]
mov dword [esp], esi
mov dword [esp + 4], ecx
call fcn.00410660
mov eax, dword [esp + 0xfc]
jmp 0x4025b0
lea esi, [eax + 8]
mov dword [esp], esi
mov dword [esp + 4], ebp
call fcn.00410660
mov eax, dword [esp + 0xfc]
jmp 0x402543
lea esi, [eax + 0x10]
mov dword [esp], esi
mov dword [esp + 4], ecx
call fcn.00410660
mov eax, dword [esp + 0xfc]
jmp 0x402522
lea esi, [eax + 8]
mov dword [esp], esi
mov dword [esp + 4], ebp
call fcn.00410660
mov eax, dword [esp + 0xfc]
jmp 0x4024b5
lea esi, [eax + 0x10]
mov dword [esp], esi
mov dword [esp + 4], ecx
call fcn.00410660
mov eax, dword [esp + 0xfc]
jmp 0x402494
lea esi, [eax + 0xc]
mov dword [esp], esi
mov dword [esp + 4], ebp
call fcn.00410660
mov eax, dword [esp + 0x100]
jmp 0x40242e
mov dword [eax], eax
jmp 0x402363
mov dword [ecx], eax
jmp 0x40232e
lea esi, [eax + 8]
mov dword [esp], esi
mov dword [esp + 4], ebp
call fcn.00410660
mov eax, dword [esp + 0xfc]
jmp 0x40230c
lea esi, [eax + 0x10]
mov dword [esp], esi
mov dword [esp + 4], ecx
call fcn.00410660
mov eax, dword [esp + 0xfc]
jmp 0x4022eb
lea esi, [eax + 0xc]
mov dword [esp], esi
mov dword [esp + 4], ebp
call fcn.00410660
mov eax, dword [esp + 0x100]
jmp 0x40228c
imul edx, esi
mov ebp, eax
imul ebp, ebx
add ebp, edx
mov edx, esi
mul edx
add edx, ebp
jmp 0x402174
cmp ecx, 0
jge 0x402060
mov eax, dword [esp + 0x2a4]
mov edx, edi
sub eax, 1
sbb edx, 0
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], edx
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x2a4], eax
mov edi, dword [esp + 0xa4]
add ecx, 0x3b9aca00
jmp 0x402060
imul edx, esi
mov ebp, eax
imul ebp, ebx
add ebp, edx
mov edx, esi
mul edx
add edx, ebp
jmp 0x401ffd
imul edx, esi
mov ebp, eax
imul ebp, ebx
add ebp, edx
mov edx, esi
mul edx
add edx, ebp
jmp 0x401eed
nop
call fcn.0042acc0
add esp, 0x610
ret
mov dword [ebx], eax
jmp 0x401cc9
cmp ebp, 0
jge 0x401c5e
mov eax, dword [esp + 0x2c4]
mov edx, edi
sub eax, 1
sbb edx, 0
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], edx
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x2c4], eax
mov edi, dword [esp + 0xa4]
add ecx, 0x3b9aca00
jmp 0x401c5e
imul edx, esi
mov ebp, eax
imul ebp, ebx
add ebp, edx
mov edx, esi
mul edx
add edx, ebp
jmp 0x401c03
cmp ecx, 0
jge 0x401a41
mov eax, dword [esp + 0x294]
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], edi
mov eax, dword [esp + 0xa0]
mov edi, dword [esp + 0xa4]
sub eax, 1
sbb edi, 0
mov dword [esp + 0x294], eax
add ecx, 0x3b9aca00
jmp 0x401a41
imul edx, esi
mov ebp, eax
imul ebp, ebx
add ebp, edx
mov edx, esi
mul edx
add edx, ebp
jmp 0x4019dc
imul edx, esi
mov ebp, eax
imul ebp, ebx
add ebp, edx
mov edx, esi
mul edx
add edx, ebp
jmp 0x401900
nop
call fcn.0042acc0
add esp, 0x610
ret
mov dword [ebx], eax
jmp 0x4016dc
cmp ecx, 0
jge 0x401671
mov eax, dword [esp + 0x2b4]
mov edx, edi
sub eax, 1
sbb edx, 0
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], edx
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x2b4], eax
mov edi, dword [esp + 0xa4]
add ecx, 0x3b9aca00
jmp 0x401671
imul edx, esi
mov ebp, eax
imul ebp, ebx
add ebp, edx
mov edx, esi
mul edx
add edx, ebp
jmp 0x40160e
call fcn.00452240
jmp fcn.00401480