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

Disassembly:
mov eax, 0x4f9584
call fcn.004c13fc
sub esp, 0x44
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, ecx
test esi, esi
mov dword [ebp - 0x14], edi
je 0x410133
mov eax, dword [edi + 0x27]
mov dword [ebp + 8], eax
mov eax, dword [eax + 0x1c]
mov dword [ebp - 0x30], eax
call fcn.00401a32
mov ebx, dword [eax + 0x9d9]
mov dword [ebp - 0x1c], eax
mov ax, word [esi + 0x2a]
mov dword [ebp - 0x24], ebx
cmp ax, 0x500
jne 0x40dd8e
push esi
mov ecx, edi
push dword [edi + 0x2b]
call fcn.0040dc98
push esi
mov ecx, edi
push dword [edi + 0x2b]
call fcn.004125b5
mov eax, dword [edi + 0x2b]
jmp 0x41013d
mov ecx, dword [ebp - 0x30]
test ecx, ecx
je 0x40ddae
mov edx, dword [esi + 0x26]
sar edx, 0x14
and edx, 0x3f
cmp word [ecx + 2], dx
jne 0x40ddae
movzx ecx, word [ecx]
movsx eax, ax
cmp ecx, eax
je 0x40ddcb
mov ecx, edi
call fcn.0040dbd3
push esi
mov ecx, edi
push dword [edi + 0x27]
call fcn.0040dc98
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x1c]
mov dword [ebp - 0x30], ecx
jmp 0x40ddce
mov eax, dword [ebp + 8]
mov cx, word [esi + 0x2a]
cmp cx, 0x80a
je 0x40df5d
mov edx, ecx
and dx, 0xff00
cmp dx, 0x800
jne 0x40df5d
mov edi, dword [eax + 0x1c]
push 5
mov ecx, esi
call fcn.004a1660
mov ebx, dword [eax + 0x1c]
push 0x31
mov ecx, esi
mov dword [ebp - 0x30], ebx
call fcn.004a1660
cmp dword [eax + 0x14], 0
jle 0x410133
test ebx, ebx
je 0x410133
push 0x31
mov ecx, esi
call fcn.004a1660
mov ax, word [eax + 0x14]
mov word [edi + 0x1e], ax
movsx eax, ax
imul eax, eax, 7
push eax
call fcn.004db3f6
pop ecx
mov dword [ebp - 0x2c], eax
push eax
mov ecx, esi
movsx eax, word [edi + 0x1e]
push eax
call fcn.004a1927
and dword [ebp - 0x10], 0
cmp word [edi + 0x1e], 0
jle 0x40df14
and dword [ebp - 0x28], 0
lea ebx, [edi + 0x27]
push 0x31
mov ecx, esi
call fcn.004a1660
cmp dword [ebp - 0x10], 0
mov eax, dword [eax + 0x1c]
jl 0x40de82
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [eax + 8]
jge 0x40de82
mov eax, dword [eax + 4]
fld qword [eax + ecx*8]
jmp 0x40de84
fldz
call fcn.004c1dc4
cmp dword [ebp - 0x10], 0
mov dword [ebx], eax
jl 0x40dea4
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [eax + 8]
jge 0x40dea7
mov eax, dword [eax + 4]
lea eax, [eax + ecx*4]
jmp 0x40deaa
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 4]
mov ecx, dword [eax]
push 7
call fcn.0041d1c5
push eax
lea eax, [ebx - 7]
push eax
call fcn.004c14d0
lea eax, [ebx - 7]
push 7
push eax
mov eax, dword [ebp - 0x28]
add eax, dword [esi + 0x34]
push eax
call fcn.004c14d0
mov ecx, dword [ebp - 0x14]
add esp, 0x18
lea eax, [ebx + 4]
push dword [ebp - 0x10]
push esi
push eax
call fcn.00411a26
cmp dword [ebx], 0x7fffffff
jne 0x40deed
and dword [ebx], 0
cmp dword [ebx + 0x14], 0x7fffffff
jne 0x40defa
and dword [ebx + 0x14], 0
movsx eax, word [edi + 0x1e]
inc dword [ebp - 0x10]
add dword [ebp - 0x28], 7
add ebx, 0x85
cmp dword [ebp - 0x10], eax
jl 0x40de60
cmp dword [ebp - 0x2c], 0
je 0x40df23
push dword [ebp - 0x2c]
call fcn.004db41f
pop ecx
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x14]
push 0
push 0
mov ebx, dword [eax + 0x9d9]
push esi
call fcn.0040dc02
push eax
mov ecx, ebx
call fcn.00499f77
mov word [edi + 0x1c], ax
movsx eax, word [edi + 0x1e]
imul eax, eax, 0x85
add eax, 0x20
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x14], eax
jmp 0x40fc78
cmp cx, 0x1400
jne 0x40e0d6
mov edi, dword [eax + 0x1c]
and dword [ebp - 0x28], 0
push 0x50
mov word [edi], cx
mov ecx, esi
call fcn.004a1660
mov eax, dword [eax + 0x14]
push 0x50
mov ecx, esi
mov dword [ebp - 0x30], eax
call fcn.004a1660
mov eax, dword [eax + 0x1c]
push 5
mov ecx, esi
mov dword [ebp - 0x38], eax
call fcn.004a1660
mov ebx, dword [eax + 0x1c]
and dword [ebp - 0x10], 0
cmp dword [ebp - 0x30], 0
lea eax, [edi + 0x22]
mov dword [ebp - 0x24], eax
mov word [edi + 0x1c], 0x14
jle 0x40e068
mov ecx, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x20], eax
test ecx, ecx
jl 0x40dfd1
mov eax, dword [ebp - 0x38]
cmp ecx, dword [eax + 8]
jge 0x40dfd1
mov eax, dword [eax + 4]
fld qword [eax + ecx*8]
jmp 0x40dfd3
fldz
fcom qword [0x508760]
fnstsw ax
sahf
jbe 0x40e059
fmul qword [0x509560]
call fcn.004c1dc4
mov ecx, dword [ebp - 0x20]
cmp dword [ebp - 0x10], 0
mov dword [ecx + 0xf], eax
jl 0x40e005
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebx + 8]
jge 0x40e005
mov ecx, dword [ebx + 4]
lea eax, [ecx + eax*4]
jmp 0x40e008
mov eax, dword [ebx + 4]
mov ecx, dword [eax]
push 7
call fcn.0041d1c5
push eax
push dword [ebp - 0x24]
call fcn.004c14d0
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x1c]
add esp, 0xc
mov al, byte [eax]
push 1
push eax
push dword [ebp - 0x20]
call fcn.00449cc1
test eax, eax
je 0x40e049
add eax, 7
push 8
push eax
mov eax, dword [ebp - 0x20]
add eax, 6
push eax
call fcn.004c14d0
add esp, 0xc
add dword [ebp - 0x24], 0x14
add dword [ebp - 0x20], 0x14
inc dword [ebp - 0x28]
mov ecx, dword [ebp - 0x10]
jmp 0x40e05b
fstp st(0)
inc ecx
cmp ecx, dword [ebp - 0x30]
mov dword [ebp - 0x10], ecx
jl 0x40dfbd
mov ebx, dword [ebp - 0x28]
mov eax, ebx
mov dword [edi + 0x1e], ebx
imul eax, eax, 7
push eax
call fcn.004db3f6
test ebx, ebx
pop ecx
mov dword [ebp - 0x24], eax
jle 0x40e0aa
mov dword [ebp - 0x20], eax
lea eax, [edi + 0x22]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x30], ebx
push 7
push dword [ebp - 0x28]
push dword [ebp - 0x20]
call fcn.004c14d0
add dword [ebp - 0x28], 0x14
add dword [ebp - 0x20], 7
add esp, 0xc
dec dword [ebp - 0x30]
jne 0x40e08d
push dword [ebp - 0x24]
mov ecx, esi
push ebx
call fcn.004a1927
cmp dword [ebp - 0x24], 0
je 0x40e0c4
push dword [ebp - 0x24]
call fcn.004db41f
pop ecx
mov edi, dword [edi + 0x1e]
lea eax, [edi + edi*4]
lea eax, [eax*4 + 0x22]
jmp 0x40df52
lea eax, [ebp - 0x34]
push eax
call fcn.004d2882
push 0
lea ecx, [ebp - 0x34]
call fcn.004d28c1
mov edi, dword [eax + 8]
push 0
lea ecx, [ebp - 0x34]
call fcn.004d28c1
imul edi, edi, 0x64
mov eax, dword [eax + 4]
movsx ecx, word [esi + 0x2a]
add edi, eax
mov eax, 0x601
cmp ecx, eax
mov dword [ebp - 0x28], edi
jg 0x40ea97
je 0x40e905
sub ecx, 0x201
je 0x40e8d1
dec ecx
je 0x40e89e
sub ecx, 0xfe
je 0x40e764
sub ecx, 0x101
je 0x40e58b
dec ecx
je 0x40e480
dec ecx
je 0x40e278
sub ecx, 0x1fd
jne 0x40eada
mov eax, dword [ebp + 8]
mov edi, dword [eax + 0x1c]
mov eax, dword [esi + 0x26]
and eax, 0xfc000000
cmp eax, 0x4000000
jne 0x40e214
push 0xa
mov ecx, esi
call fcn.004a1660
mov eax, dword [eax + 0x1c]
push 0xd
mov ecx, esi
mov dword [ebp - 0x38], eax
call fcn.004a1660
mov eax, dword [eax + 0x1c]
push 0xa
mov ecx, esi
mov dword [ebp - 0x30], eax
call fcn.004a1660
mov ax, word [eax + 0x14]
and dword [ebp - 0x10], 0
test ax, ax
mov word [edi + 0x6e], ax
jle 0x40e214
lea eax, [edi + 0x74]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x10]
test eax, eax
jl 0x40e1cb
mov ecx, dword [ebp - 0x38]
cmp eax, dword [ecx + 8]
jge 0x40e1cb
mov ecx, dword [ecx + 4]
fld qword [ecx + eax*8]
jmp 0x40e1cd
fldz
fmul qword [0x509560]
call fcn.004c1dc4
mov ecx, dword [ebp - 0x24]
cmp dword [ebp - 0x10], 0
mov dword [ecx - 4], eax
jl 0x40e1f7
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [eax + 8]
jge 0x40e1f7
mov eax, dword [eax + 4]
fld qword [eax + ecx*8]
jmp 0x40e1f9
fldz
fmul qword [0x508e98]
mov eax, dword [ebp - 0x24]
inc dword [ebp - 0x10]
add dword [ebp - 0x24], 0xc
fstp qword [eax]
movsx eax, word [edi + 0x6e]
cmp dword [ebp - 0x10], eax
jl 0x40e1b4
mov ecx, dword [ebp - 0x14]
lea eax, [edi + 0x20]
push eax
lea eax, [edi + 0x1c]
push eax
push esi
call fcn.004129f3
mov ecx, dword [ebp - 0x14]
lea eax, [edi + 0x24]
push esi
push eax
call fcn.004129cf
mov eax, dword [esi + 0x26]
shr eax, 0x1a
sub eax, 0xf
cmp eax, dword [ebx + 0xb4]
jge 0x40e265
test eax, eax
jl 0x40e265
mov ecx, dword [ebx + 0xb0]
push dword [ecx + eax*4]
mov ecx, dword [ebp - 0x14]
lea eax, [ebp + 8]
push esi
push eax
call fcn.00412d74
test eax, eax
jne 0x410129
movsx eax, word [edi + 0x6e]
lea eax, [eax + eax*2]
lea eax, [eax*4 + 0x70]
jmp 0x40ed35
mov eax, dword [ebp + 8]
mov edi, dword [eax + 0x1c]
mov eax, dword [esi + 0x26]
and eax, 0xfc000000
cmp eax, 0x28000000
jne 0x40e3f2
push 0xa
mov ecx, esi
call fcn.004a1660
mov eax, dword [eax + 0x1c]
push 0xd
mov ecx, esi
mov dword [ebp - 0x38], eax
call fcn.004a1660
mov eax, dword [eax + 0x1c]
push 0x16
mov ecx, esi
mov dword [ebp - 0x30], eax
call fcn.004a1660
mov eax, dword [eax + 0x1c]
push 0x17
mov ecx, esi
mov dword [ebp - 0x2c], eax
call fcn.004a1660
mov eax, dword [eax + 0x1c]
push 1
mov ecx, esi
mov dword [ebp - 0x3c], eax
call fcn.004a1660
mov ecx, dword [eax + 0x1c]
xor ebx, ebx
mov dword [ebp - 0x28], ebx
mov eax, dword [ecx + 8]
test eax, eax
jle 0x40e315
test ebx, ebx
jl 0x40e2f5
cmp ebx, eax
jge 0x40e2f5
mov eax, dword [ecx + 4]
mov eax, dword [eax + ebx*4]
jmp 0x40e2f7
xor eax, eax
cdq
mov ebx, 0x3e8
idiv ebx
mov ebx, dword [ebp - 0x28]
cmp edx, 0x3a2
jge 0x40e315
mov eax, dword [ecx + 8]
inc ebx
cmp ebx, eax
mov dword [ebp - 0x28], ebx
jl 0x40e2e5
push 0xa
mov ecx, esi
call fcn.004a1660
mov ax, word [eax + 0x14]
and dword [ebp - 0x10], 0
sub ax, bx
test ax, ax
mov word [edi + 0x1c], ax
jle 0x40e3f2
mov eax, ebx
mov dword [ebp - 0x18], ebx
shl eax, 3
mov dword [ebp - 0x20], eax
lea ebx, [edi + 0x170]
mov ecx, dword [ebp - 0x18]
test ecx, ecx
jl 0x40e361
mov eax, dword [ebp - 0x38]
cmp ecx, dword [eax + 8]
jge 0x40e361
mov eax, dword [eax + 4]
mov ecx, dword [ebp - 0x20]
fld qword [eax + ecx]
jmp 0x40e363
fldz
fmul qword [0x509560]
call fcn.004c1dc4
cmp dword [ebp - 0x18], 0
mov ecx, dword [ebp - 0x18]
mov dword [ebx - 4], eax
jl 0x40e38d
mov eax, dword [ebp - 0x30]
cmp ecx, dword [eax + 8]
jge 0x40e38d
mov eax, dword [eax + 4]
mov edx, dword [ebp - 0x20]
fld qword [eax + edx]
jmp 0x40e38f
fldz
fstp qword [ebx]
test ecx, ecx
jl 0x40e3a8
mov eax, dword [ebp - 0x2c]
cmp ecx, dword [eax + 8]
jge 0x40e3a8
mov eax, dword [eax + 4]
mov ecx, dword [ebp - 0x20]
fld qword [eax + ecx]
jmp 0x40e3aa
fldz
call fcn.004c1dc4
cmp dword [ebp - 0x18], 0
mov dword [ebx + 8], eax
jl 0x40e3ce
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [eax + 8]
jge 0x40e3ce
mov eax, dword [eax + 4]
mov ecx, dword [ebp - 0x20]
fld qword [eax + ecx]
jmp 0x40e3d0
fldz
call fcn.004c1dc4
inc dword [ebp - 0x10]
add dword [ebp - 0x20], 8
mov dword [ebx + 0xc], eax
add ebx, 0x14
movsx eax, word [edi + 0x1c]
inc dword [ebp - 0x18]
cmp dword [ebp - 0x10], eax
jl 0x40e347
mov ecx, dword [ebp - 0x14]
lea eax, [edi + 0xe4]
push esi
push eax
lea eax, [edi + 0xf2]
push eax
call fcn.004128ac
mov ecx, dword [ebp - 0x14]
lea eax, [edi + 0x1e]
push esi
push eax
call fcn.00412ba0
cmp word [edi + 0x13a], 0
lea ebx, [edi + 0x13a]
jne 0x40e437
mov eax, dword [esi + 0x34]
mov ecx, dword [ebp - 0x1c]
mov al, byte [eax]
push eax
call fcn.0044ed71
mov word [ebx], ax
mov eax, dword [esi + 0x26]
mov ecx, dword [ebp - 0x24]
shr eax, 0x1a
sub eax, 0xf
cmp eax, dword [ecx + 0xb4]
jge 0x40e46d
test eax, eax
jl 0x40e46d
mov ecx, dword [ecx + 0xb0]
push dword [ecx + eax*4]
mov ecx, dword [ebp - 0x14]
lea eax, [ebp + 8]
push esi
push eax
call fcn.00412d74
test eax, eax
jne 0x410129
movsx eax, word [edi + 0x1c]
lea eax, [eax + eax*4]
lea eax, [eax*4 + 0x16c]
jmp 0x40ed35
mov eax, dword [ebp + 8]
mov ebx, dword [eax + 0x1c]
mov eax, dword [esi + 0x26]
and eax, 0xfc000000
mov dword [ebp - 0x3c], ebx
cmp eax, 0x28000000
jne 0x40e57b
push 0x16
mov ecx, esi
call fcn.004a1660
mov eax, dword [eax + 0x1c]
push 0x17
mov ecx, esi
mov dword [ebp - 0x38], eax
call fcn.004a1660
mov eax, dword [eax + 0x1c]
push 1
mov ecx, esi
mov dword [ebp - 0x30], eax
call fcn.004a1660
mov ecx, dword [eax + 0x1c]
xor edi, edi
mov eax, dword [ecx + 8]
test eax, eax
jle 0x40e4fc
test edi, edi
jl 0x40e4df
cmp edi, eax
jge 0x40e4df
mov eax, dword [ecx + 4]
mov eax, dword [eax + edi*4]
jmp 0x40e4e1
xor eax, eax
cdq
mov ebx, 0x3e8
idiv ebx
cmp edx, 0x3a2
jge 0x40e4f9
mov eax, dword [ecx + 8]
inc edi
cmp edi, eax
jl 0x40e4cf
mov ebx, dword [ebp - 0x3c]
push 0x16
mov ecx, esi
call fcn.004a1660
mov ax, word [eax + 0x14]
and dword [ebp - 0x10], 0
sub ax, di
test ax, ax
mov word [ebx + 0x1c], ax
jle 0x40e57b
mov eax, edi
mov esi, edi
shl eax, 3
mov dword [ebp - 0x24], eax
lea edi, [ebx + 0x22]
test esi, esi
jl 0x40e53d
mov eax, dword [ebp - 0x38]
cmp esi, dword [eax + 8]
jge 0x40e53d
mov eax, dword [eax + 4]
mov ecx, dword [ebp - 0x24]
fld qword [eax + ecx]
jmp 0x40e53f
fldz
call fcn.004c1dc4
test esi, esi
mov dword [edi - 4], eax
jl 0x40e55e
mov eax, dword [ebp - 0x30]
cmp esi, dword [eax + 8]
jge 0x40e55e
mov eax, dword [eax + 4]
mov ecx, dword [ebp - 0x24]
fld qword [eax + ecx]
jmp 0x40e560
fldz
call fcn.004c1dc4
inc dword [ebp - 0x10]
add dword [ebp - 0x24], 8
mov dword [edi], eax
inc esi
movsx eax, word [ebx + 0x1c]
add edi, 8
cmp dword [ebp - 0x10], eax
jl 0x40e526
movsx eax, word [ebx + 0x1c]
lea eax, [eax*8 + 0x1e]
jmp 0x40ed35
mov eax, dword [ebp + 8]
mov edi, dword [eax + 0x1c]
mov eax, dword [esi + 0x26]
and eax, 0xfc000000
cmp eax, 0x28000000
jne 0x40e71a
push 0xa
mov ecx, esi
call fcn.004a1660
cmp dword [eax + 0x1c], 0
je 0x40e71a
push 0xa
mov ecx, esi
call fcn.004a1660
mov eax, dword [eax + 0x1c]
push 0xd
mov ecx, esi
mov dword [ebp - 0x3c], eax
call fcn.004a1660
mov eax, dword [eax + 0x1c]
push 1
mov ecx, esi
mov dword [ebp - 0x38], eax
call fcn.004a1660
mov eax, dword [eax + 0x1c]
xor ebx, ebx
mov dword [ebp - 0x2c], eax
mov eax, dword [eax + 8]
test eax, eax
jle 0x40e61d
test ebx, ebx
jl 0x40e600
cmp ebx, eax
jge 0x40e600
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + 4]
mov eax, dword [eax + ebx*4]
jmp 0x40e602
xor eax, eax
cdq
mov ecx, 0x3e8
idiv ecx
cmp edx, 0x3a2
jge 0x40e61d
mov eax, dword [ebp - 0x2c]
inc ebx
mov eax, dword [eax + 8]
cmp ebx, eax
jl 0x40e5ed
push 0xa
mov ecx, esi
call fcn.004a1660
mov ax, word [eax + 0x14]
and dword [ebp - 0x10], 0
sub ax, bx
test ax, ax
mov word [edi + 0x1c], ax
jle 0x40e703
mov eax, ebx
mov dword [ebp - 0x20], ebx
shl eax, 3
mov dword [ebp - 0x18], eax
mov eax, ebx
shl eax, 2
mov dword [ebp - 0x30], eax
lea ebx, [edi + 0x170]
mov ecx, dword [ebp - 0x20]
test ecx, ecx
jl 0x40e671
mov eax, dword [ebp - 0x2c]
cmp ecx, dword [eax + 8]
jge 0x40e671
mov eax, dword [eax + 4]
mov ecx, dword [ebp - 0x30]
mov eax, dword [eax + ecx]
jmp 0x40e673
xor eax, eax
cmp dword [ebp - 0x28], 0x3a2
jle 0x40e691
cdq
mov ecx, 0x2710
idiv ecx
cmp dword [ebp - 0x28], edx
jge 0x40e691
cmp word [edi + 0x1c], 0xf1
jle 0x40e6fb
mov ecx, dword [ebp - 0x20]
test ecx, ecx
jl 0x40e6ab
mov eax, dword [ebp - 0x3c]
cmp ecx, dword [eax + 8]
jge 0x40e6ab
mov eax, dword [eax + 4]
mov ecx, dword [ebp - 0x18]
fld qword [eax + ecx]
jmp 0x40e6ad
fldz
fmul qword [0x509560]
call fcn.004c1dc4
cmp dword [ebp - 0x20], 0
mov dword [ebx - 4], eax
jl 0x40e6d7
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x20]
cmp ecx, dword [eax + 8]
jge 0x40e6d7
mov eax, dword [eax + 4]
mov ecx, dword [ebp - 0x18]
fld qword [eax + ecx]
jmp 0x40e6d9
fldz
inc dword [ebp - 0x10]
add dword [ebp - 0x30], 4
add dword [ebp - 0x18], 8
inc dword [ebp - 0x20]
fstp qword [ebx]
movsx eax, word [edi + 0x1c]
add ebx, 0xc
cmp dword [ebp - 0x10], eax
jl 0x40e657
jmp 0x40e703
mov ax, word [ebp - 0x10]
mov word [edi + 0x1c], ax
movsx eax, word [edi + 0x1c]
mov ecx, dword [ebp + 8]
mov ebx, dword [ebp - 0x24]
lea eax, [eax + eax*2]
lea eax, [eax*4 + 0x16c]
mov dword [ecx + 0x14], eax
mov ecx, dword [ebp - 0x14]
lea eax, [edi + 0x1e]
push esi
push eax
call fcn.00412ba0
mov ecx, dword [ebp - 0x14]
lea eax, [edi + 0xe4]
push esi
push eax
lea eax, [edi + 0xf2]
push eax
call fcn.004128ac
add edi, 0x13a
cmp word [edi], 0
jne 0x40fdf8
mov eax, dword [esi + 0x34]
mov ecx, dword [ebp - 0x1c]
mov al, byte [eax]
push eax
call fcn.0044ed71
mov word [edi], ax
jmp 0x40fdf8
mov eax, dword [esi + 0x26]
and eax, 0xfc000000
cmp eax, 0x50000000
jne 0x410133
push 5
mov ecx, esi
call fcn.004a1660
mov eax, dword [eax + 0x1c]
xor ebx, ebx
cmp eax, ebx
mov dword [ebp - 0x28], eax
je 0x410133
mov eax, dword [ebp + 8]
push 0x31
mov ecx, esi
mov edi, dword [eax + 0x1c]
mov dword [ebp - 0x2c], edi
call fcn.004a1660
mov ax, word [eax + 0x14]
mov word [edi + 0x1c], ax
movsx eax, ax
cmp dword [esi + 0x30], eax
jne 0x410133
test eax, eax
mov dword [ebp - 0x24], ebx
jle 0x40e895
xor edi, edi
cmp dword [esi + 0x30], edi
jle 0x40e80e
mov dword [ebp - 0x30], edi
mov eax, dword [ebp - 0x28]
test ebx, ebx
jl 0x40e7df
cmp ebx, dword [eax + 8]
jge 0x40e7df
mov eax, dword [eax + 4]
lea eax, [eax + ebx*4]
jmp 0x40e7e2
mov eax, dword [eax + 4]
mov ecx, dword [eax]
push 7
call fcn.0041d1c5
push eax
mov eax, dword [ebp - 0x30]
add eax, dword [esi + 0x34]
push eax
call fcn.004c1b80
add esp, 0xc
test eax, eax
je 0x40e80b
add dword [ebp - 0x30], 7
inc edi
cmp edi, dword [esi + 0x30]
jl 0x40e7cb
jmp 0x40e80e
mov dword [ebp - 0x24], edi
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x2c]
push 0x31
lea eax, [eax + eax*4]
shl eax, 4
lea edi, [eax + ecx + 0x1e]
mov ecx, esi
call fcn.004a1660
mov eax, dword [eax + 0x1c]
test ebx, ebx
jl 0x40e83b
cmp ebx, dword [eax + 8]
jge 0x40e83b
mov eax, dword [eax + 4]
fld qword [eax + ebx*8]
jmp 0x40e83d
fldz
call fcn.004c1dc4
mov dword [edi + 2], eax
mov ax, word [esi + 0x2c]
add ax, word [ebp - 0x24]
push ebx
push esi
mov word [edi], ax
mov eax, dword [ebp - 0x24]
imul eax, eax, 7
mov ecx, dword [esi + 0x34]
test byte [eax + ecx], 0xf
mov ecx, dword [ebp - 0x14]
lea eax, [edi + 6]
push eax
call fcn.004116bf
mov eax, SysReAllocString
cmp dword [edi + 2], eax
jne 0x40e879
and dword [edi + 2], 0
cmp dword [edi + 0x16], eax
jne 0x40e882
and dword [edi + 0x16], 0
mov eax, dword [ebp - 0x2c]
inc ebx
movsx eax, word [eax + 0x1c]
cmp ebx, eax
jl 0x40e7c1
mov edi, dword [ebp - 0x2c]
movsx eax, word [edi + 0x1c]
lea eax, [eax + eax*4]
jmp 0x40e8c6
mov eax, dword [ebp + 8]
push 0xd
mov ecx, esi
mov edi, dword [eax + 0x1c]
call fcn.004a1660
mov ax, word [eax + 0x14]
mov ecx, dword [ebp - 0x14]
mov word [edi + 0x1c], ax
lea eax, [edi + 0x1e]
push esi
push eax
call fcn.00412a57
movsx eax, word [edi + 0x1c]
shl eax, 4
add eax, 0x1e
jmp 0x40ed35
mov eax, dword [ebp + 8]
push 0xd
mov ecx, esi
mov edi, dword [eax + 0x1c]
call fcn.004a1660
mov ax, word [eax + 0x14]
mov ecx, dword [ebp - 0x14]
mov word [edi + 0x1c], ax
lea eax, [edi + 0x1e]
push esi
push eax
call fcn.00412ba0
movsx eax, word [edi + 0x1c]
lea eax, [eax + eax*8]
lea eax, [eax + eax + 0x1e]
jmp 0x40ed35
mov eax, dword [esi + 0x26]
and eax, 0xfc000000
cmp eax, 0x10000000
jne 0x40ea21
mov eax, dword [ebp + 8]
push 0xa
mov ecx, esi
mov edi, dword [eax + 0x1c]
add edi, 0x70
call fcn.004a1660
mov ecx, dword [ebp + 8]
mov ax, word [eax + 0x14]
push 0xa
mov ecx, dword [ecx + 0x1c]
mov word [ecx + 0x6e], ax
mov eax, dword [ebp + 8]
mov ecx, esi
mov eax, dword [eax + 0x1c]
movsx eax, word [eax + 0x6e]
mov dword [ebp - 0x30], eax
call fcn.004a1660
mov eax, dword [eax + 0x1c]
push 0xd
mov ecx, esi
mov dword [ebp - 0x3c], eax
call fcn.004a1660
mov eax, dword [eax + 0x1c]
push 0x29
mov ecx, esi
mov dword [ebp - 0x38], eax
call fcn.004a1660
mov eax, dword [eax + 0x1c]
push 0x2a
mov ecx, esi
mov dword [ebp - 0x2c], eax
call fcn.004a1660
mov eax, dword [eax + 0x1c]
xor ebx, ebx
cmp dword [ebp - 0x30], ebx
mov dword [ebp - 0x28], eax
jle 0x40ea21
test ebx, ebx
jl 0x40e9a0
mov eax, dword [ebp - 0x3c]
cmp ebx, dword [eax + 8]
jge 0x40e9a0
mov eax, dword [eax + 4]
fld qword [eax + ebx*8]
jmp 0x40e9a2
fldz
fmul qword [0x509560]
call fcn.004c1dc4
test ebx, ebx
mov dword [edi], eax
jl 0x40e9c3
mov eax, dword [ebp - 0x38]
cmp ebx, dword [eax + 8]
jge 0x40e9c3
mov eax, dword [eax + 4]
fld qword [eax + ebx*8]
jmp 0x40e9c5
fldz
fmul qword [0x508e98]
test ebx, ebx
fstp qword [edi + 4]
jl 0x40e9e2
mov eax, dword [ebp - 0x2c]
cmp ebx, dword [eax + 8]
jge 0x40e9e2
mov eax, dword [eax + 4]
mov eax, dword [eax + ebx*4]
jmp 0x40e9e4
xor eax, eax
movsx eax, ax
push 0x64
cdq
pop ecx
idiv ecx
test ebx, ebx
mov word [edi + 0xe], ax
jl 0x40ea05
mov eax, dword [ebp - 0x28]
cmp ebx, dword [eax + 8]
jge 0x40ea05
mov eax, dword [eax + 4]
mov eax, dword [eax + ebx*4]
jmp 0x40ea07
xor eax, eax
movsx eax, ax
push 0x64
add edi, 0x12
cdq
pop ecx
idiv ecx
inc ebx
cmp ebx, dword [ebp - 0x30]
mov word [edi - 2], ax
jl 0x40e98c
mov eax, dword [esi + 0x26]
mov ecx, dword [ebp - 0x24]
shr eax, 0x1a
sub eax, 0xf
cmp eax, dword [ecx + 0xb4]
jge 0x40ea57
test eax, eax
jl 0x40ea57
mov ecx, dword [ecx + 0xb0]
push dword [ecx + eax*4]
mov ecx, dword [ebp - 0x14]
lea eax, [ebp + 8]
push esi
push eax
call fcn.00412d74
test eax, eax
jne 0x410129
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x1c]
lea ecx, [eax + 0x20]
add eax, 0x1c
push ecx
mov ecx, dword [ebp - 0x14]
push eax
push esi
call fcn.004129f3
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x14]
push esi
mov eax, dword [eax + 0x1c]
add eax, 0x24
push eax
call fcn.004129cf
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x1c]
movsx eax, word [eax + 0x6e]
lea eax, [eax + eax*8]
lea eax, [eax + eax + 0x70]
jmp 0x40ed38
sub ecx, 0x602
je 0x40ffbb
dec ecx
je 0x40fe30
sub ecx, 0xfd
je 0x40fc86
sub ecx, 0x10a
je 0x40f4e1
sub ecx, 0x4f6
je 0x40f29d
sub ecx, 0x200
je 0x40f157
mov eax, dword [ebp - 0x30]
mov ax, word [eax]
mov ecx, eax
and cx, 0xff00
cmp cx, 0x900
jne 0x410129
cmp ax, 0x920
je 0x40eb44
and al, 0xf
cmp al, 3
je 0x40eb44
mov eax, dword [ebp + 8]
mov edi, dword [eax + 0x1c]
mov eax, dword [esi + 0x26]
and eax, 0xfc000000
cmp eax, 0x2c000000
je 0x40eb1a
cmp eax, 0x20000000
jne 0x40eb38
push 7
mov ecx, esi
call fcn.004a1660
mov ax, word [eax + 0x14]
mov ecx, dword [ebp - 0x14]
mov word [edi + 0x1c], ax
lea eax, [edi + 0x1e]
push esi
push eax
call fcn.0041014e
movsx eax, word [edi + 0x1c]
imul eax, eax, 0x1c
jmp 0x40e8c9
mov eax, dword [esi + 0x34]
test byte [eax], 0xf
mov eax, dword [ebp + 8]
mov edi, dword [eax + 0x1c]
mov eax, dword [esi + 0x26]
mov ecx, eax
jne 0x40ed40
and ecx, 0xfc000000
cmp ecx, 0x48000000
jne 0x40ec9b
mov eax, dword [ebp - 0x14]
push 0x3c
mov eax, dword [eax + 0x27]
push eax
lea ecx, [eax + 0x7800]
push ecx
mov dword [ebp + 8], ecx
call fcn.004c14d0
mov eax, dword [ebp + 8]
add esp, 0xc
mov edi, 0x197
lea ecx, [eax + 0x20]
push edi
mov dword [eax + 0x1c], ecx
mov eax, dword [ebp + 8]
mov ecx, esi
mov eax, dword [eax + 0x1c]
mov word [eax], 0x9b0
mov eax, dword [ebp + 8]
mov ebx, dword [eax + 0x1c]
call fcn.004a1660
test eax, eax
je 0x40ebc3
push edi
mov ecx, esi
call fcn.004a1660
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x2c], eax
jmp 0x40ebc7
and dword [ebp - 0x2c], 0
push 1
mov ecx, esi
call fcn.004a1660
test eax, eax
je 0x40ebdd
push 1
mov ecx, esi
call fcn.004a1660
push 1
mov ecx, esi
call fcn.004a1660
test eax, eax
je 0x40ebfb
push 1
mov ecx, esi
call fcn.004a1660
mov eax, dword [eax + 0x1c]
mov dword [ebp - 0x24], eax
jmp 0x40ebff
and dword [ebp - 0x24], 0
push edi
mov ecx, esi
call fcn.004a1660
test eax, eax
je 0x40ec1b
push edi
mov ecx, esi
call fcn.004a1660
mov eax, dword [eax + 0x1c]
mov dword [ebp - 0x30], eax
jmp 0x40ec1f
and dword [ebp - 0x30], 0
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
cmp eax, ecx
jle 0x410133
cmp dword [ebp - 0x24], ecx
je 0x410133
cmp dword [ebp - 0x30], ecx
je 0x410133
mov dword [ebx + 0x42], eax
mov dword [ebx + 0x1c], edi
mov dx, word [esi + 0x20]
mov word [ebx + 0x40], dx
add ebx, 0x46
cmp eax, ecx
jle 0x40ec8c
test ecx, ecx
jl 0x40ec67
mov edx, dword [ebp - 0x24]
cmp ecx, dword [edx + 8]
jge 0x40ec67
mov edx, dword [edx + 4]
mov edx, dword [edx + ecx*4]
jmp 0x40ec69
xor edx, edx
test ecx, ecx
mov dword [ebx], edx
jl 0x40ec7f
mov edx, dword [ebp - 0x30]
cmp ecx, dword [edx + 8]
jge 0x40ec7f
mov edx, dword [edx + 4]
fld qword [edx + ecx*8]
jmp 0x40ec81
fldz
fstp qword [ebx + 4]
add ebx, 0xc
inc ecx
cmp ecx, eax
jl 0x40ec53
lea eax, [eax + eax*2]
lea eax, [eax*4 + 0x5a]
jmp 0x40ed35
shr eax, 0x1a
sub eax, 0xf
cmp eax, dword [ebx + 0xb4]
jge 0x40eccb
test eax, eax
jl 0x40eccb
mov ecx, dword [ebx + 0xb0]
push dword [ecx + eax*4]
mov ecx, dword [ebp - 0x14]
lea eax, [ebp + 8]
push esi
push eax
call fcn.00412d74
test eax, eax
jne 0x410129
mov eax, dword [esi + 0x26]
mov ebx, 0xfc000000
and eax, ebx
cmp eax, 0x20000000
jne 0x40ecfa
push 7
mov ecx, esi
call fcn.004a1660
mov ax, word [eax + 0x14]
mov ecx, dword [ebp - 0x14]
mov word [edi + 0x6e], ax
lea eax, [edi + 0x70]
push esi
push eax
call fcn.0041014e
mov eax, dword [esi + 0x26]
and eax, ebx
cmp eax, 0x18000000
jne 0x40ed2b
mov ecx, dword [ebp - 0x14]
lea eax, [edi + 0x20]
push eax
lea eax, [edi + 0x1c]
push eax
push esi
call fcn.004129f3
mov ecx, dword [ebp - 0x14]
push 0
add edi, 0x24
push esi
push edi
call fcn.004123ad
jmp 0x410133
movsx eax, word [edi + 0x6e]
add eax, 4
imul eax, eax, 0x1c
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x14], eax
jmp 0x410129
and ecx, 0xfc000000
cmp ecx, 0x48000000
jne 0x40ee7a
mov eax, dword [ebp - 0x14]
push 0x3c
mov eax, dword [eax + 0x27]
push eax
lea ecx, [eax + 0x5000]
push ecx
mov dword [ebp + 8], ecx
call fcn.004c14d0
mov eax, dword [ebp + 8]
add esp, 0xc
mov edi, 0x197
lea ecx, [eax + 0x20]
push edi
mov dword [eax + 0x1c], ecx
mov eax, dword [ebp + 8]
mov ecx, esi
mov eax, dword [eax + 0x1c]
mov word [eax], 0x9b0
mov eax, dword [ebp + 8]
mov ebx, dword [eax + 0x1c]
call fcn.004a1660
test eax, eax
je 0x40eda8
push edi
mov ecx, esi
call fcn.004a1660
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x2c], eax
jmp 0x40edac
and dword [ebp - 0x2c], 0
push 1
mov ecx, esi
call fcn.004a1660
test eax, eax
je 0x40edc2
push 1
mov ecx, esi
call fcn.004a1660
push 1
mov ecx, esi
call fcn.004a1660
test eax, eax
je 0x40ede0
push 1
mov ecx, esi
call fcn.004a1660
mov eax, dword [eax + 0x1c]
mov dword [ebp - 0x24], eax
jmp 0x40ede4
and dword [ebp - 0x24], 0
push edi
mov ecx, esi
call fcn.004a1660
test eax, eax
je 0x40ee00
push edi
mov ecx, esi
call fcn.004a1660
mov eax, dword [eax + 0x1c]
mov dword [ebp - 0x30], eax
jmp 0x40ee04
and dword [ebp - 0x30], 0
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
cmp eax, ecx
jle 0x410133
cmp dword [ebp - 0x24], ecx
je 0x410133
cmp dword [ebp - 0x30], ecx
je 0x410133
mov dword [ebx + 0x42], eax
mov dword [ebx + 0x1c], edi
mov dx, word [esi + 0x20]
mov word [ebx + 0x40], dx
add ebx, 0x46
cmp eax, ecx
jle 0x40ec8c
test ecx, ecx
jl 0x40ee50
mov edx, dword [ebp - 0x24]
cmp ecx, dword [edx + 8]
jge 0x40ee50
mov edx, dword [edx + 4]
mov edx, dword [edx + ecx*4]
jmp 0x40ee52
xor edx, edx
test ecx, ecx
mov dword [ebx], edx
jl 0x40ee68
mov edx, dword [ebp - 0x30]
cmp ecx, dword [edx + 8]
jge 0x40ee68
mov edx, dword [edx + 4]
fld qword [edx + ecx*8]
jmp 0x40ee6a
fldz
fstp qword [ebx + 4]
add ebx, 0xc
inc ecx
cmp ecx, eax
jl 0x40ee3c
jmp 0x40ec8c
cmp ecx, 0x5c000000
jne 0x40eea1
mov ecx, dword [ebp - 0x14]
push 0x324
lea eax, [ebp + 8]
push esi
push eax
call fcn.00412d74
test eax, eax
jne 0x410129
jmp 0x410133
shr eax, 0x1a
sub eax, 0xf
cmp eax, dword [ebx + 0xb4]
jge 0x40eed1
test eax, eax
jl 0x40eed1
mov ecx, dword [ebx + 0xb0]
push dword [ecx + eax*4]
mov ecx, dword [ebp - 0x14]
lea eax, [ebp + 8]
push esi
push eax
call fcn.00412d74
test eax, eax
jne 0x410129
mov ecx, dword [ebp - 0x14]
push 0x1d7
lea eax, [ebp + 8]
push esi
push eax
call fcn.00412d74
test eax, eax
je 0x410133
mov eax, dword [esi + 0x26]
and eax, 0xfc000000
cmp eax, 0x28000000
jne 0x40f06d
cmp word [edi + 0x162], 0
jle 0x40ef52
movsx ebx, word [edi + 0x160]
push 0xa
mov ecx, esi
call fcn.004a1660
cmp dword [eax + 0x14], ebx
je 0x40ef52
movsx eax, word [edi + 0x162]
imul eax, eax, 0x1c
push eax
lea eax, [ebx + ebx*2]
mov ecx, esi
lea eax, [edi + eax*4 + 0x164]
push eax
push 0xa
call fcn.004a1660
mov eax, dword [eax + 0x14]
lea eax, [eax + eax*2]
lea eax, [edi + eax*4 + 0x164]
push eax
call fcn.004c14d0
add esp, 0xc
push 0xa
mov ecx, esi
call fcn.004a1660
mov eax, dword [eax + 0x1c]
push 0xd
mov ecx, esi
mov dword [ebp - 0x3c], eax
call fcn.004a1660
mov eax, dword [eax + 0x1c]
push 1
mov ecx, esi
mov dword [ebp - 0x38], eax
call fcn.004a1660
mov ecx, dword [eax + 0x1c]
xor ebx, ebx
mov dword [ebp - 0x30], ebx
mov eax, dword [ecx + 8]
test eax, eax
jle 0x40efb8
test ebx, ebx
jl 0x40ef98
cmp ebx, eax
jge 0x40ef98
mov eax, dword [ecx + 4]
mov eax, dword [eax + ebx*4]
jmp 0x40ef9a
xor eax, eax
cdq
mov ebx, 0x3e8
idiv ebx
mov ebx, dword [ebp - 0x30]
cmp edx, 0x3a2
jge 0x40efb8
mov eax, dword [ecx + 8]
inc ebx
cmp ebx, eax
mov dword [ebp - 0x30], ebx
jl 0x40ef88
push 0xa
mov ecx, esi
call fcn.004a1660
mov ax, word [eax + 0x14]
and dword [ebp - 0x10], 0
sub ax, bx
test ax, ax
mov word [edi + 0x160], ax
jle 0x40f04c
mov eax, ebx
mov dword [ebp - 0x24], ebx
shl eax, 3
mov dword [ebp - 0x20], eax
lea ebx, [edi + 0x168]
mov ecx, dword [ebp - 0x24]
test ecx, ecx
jl 0x40f003
mov eax, dword [ebp - 0x3c]
cmp ecx, dword [eax + 8]
jge 0x40f003
mov eax, dword [eax + 4]
mov ecx, dword [ebp - 0x20]
fld qword [eax + ecx]
jmp 0x40f005
fldz
fmul qword [0x509560]
call fcn.004c1dc4
cmp dword [ebp - 0x24], 0
mov dword [ebx - 4], eax
jl 0x40f02f
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x24]
cmp ecx, dword [eax + 8]
jge 0x40f02f
mov eax, dword [eax + 4]
mov ecx, dword [ebp - 0x20]
fld qword [eax + ecx]
jmp 0x40f031
fldz
inc dword [ebp - 0x10]
add dword [ebp - 0x20], 8
fstp qword [ebx]
movsx eax, word [edi + 0x160]
add ebx, 0xc
inc dword [ebp - 0x24]
cmp dword [ebp - 0x10], eax
jl 0x40efe9
movsx ecx, word [edi + 0x162]
movsx eax, word [edi + 0x160]
imul ecx, ecx, 0x1c
lea eax, [eax + eax*2]
lea eax, [ecx + eax*4 + 0x164]
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x14], eax
mov eax, dword [esi + 0x26]
and eax, 0xfc000000
cmp eax, 0x2c000000
jne 0x40f0cf
movsx eax, word [edi + 0x160]
push 7
mov ecx, esi
lea eax, [eax + eax*2]
lea ebx, [edi + 0x162]
lea eax, [edi + eax*4 + 0x164]
mov dword [ebp - 0x3c], eax
call fcn.004a1660
mov ax, word [eax + 0x14]
mov ecx, dword [ebp - 0x14]
push esi
mov word [ebx], ax
push dword [ebp - 0x3c]
call fcn.0041014e
movsx ecx, word [ebx]
movsx eax, word [edi + 0x160]
imul ecx, ecx, 0x1c
lea eax, [eax + eax*2]
lea eax, [ecx + eax*4 + 0x164]
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x14], eax
mov eax, dword [esi + 0x26]
and eax, 0xfc000000
cmp eax, 0x30000000
jne 0x40f130
push 0xd
mov ecx, esi
call fcn.004a1660
xor ebx, ebx
cmp dword [eax + 0x1c], ebx
je 0x40f132
mov ecx, dword [ebp - 0x14]
push ebx
lea eax, [edi + 0xe6]
push esi
push eax
call fcn.00411a26
push 0x31
mov ecx, esi
mov dword [edi + 0x26], ebx
call fcn.004a1660
mov eax, dword [eax + 0x1c]
cmp dword [eax + 8], ebx
jle 0x40f11a
mov eax, dword [eax + 4]
fld qword [eax]
jmp 0x40f11c
fldz
call fcn.004c1dc4
cmp eax, 0x7fffffff
mov dword [edi + 0x38], eax
jne 0x40f132
mov dword [edi + 0x38], ebx
jmp 0x40f132
xor ebx, ebx
add edi, 0x12e
cmp word [edi], bx
jne 0x410129
mov eax, dword [esi + 0x34]
mov ecx, dword [ebp - 0x1c]
mov al, byte [eax]
push eax
call fcn.0044ed71
mov word [edi], ax
jmp 0x410129
mov eax, dword [ebp + 8]
mov ecx, dword [esi + 0x26]
and ecx, 0xfc000000
xor edx, edx
mov edi, dword [eax + 0x1c]
mov eax, 0x4000000
add edi, 0x1c
cmp ecx, eax
setne dl
dec edx
and edx, 0x63
inc edx
cmp ecx, eax
mov dword [ebp - 0x38], edx
je 0x40f18d
cmp ecx, 0x28000000
jne 0x40f28a
push 0xa
mov ecx, esi
call fcn.004a1660
mov eax, dword [eax + 0x1c]
push 0xd
mov ecx, esi
mov dword [ebp - 0x30], eax
call fcn.004a1660
mov eax, dword [eax + 0x1c]
push 1
mov ecx, esi
mov dword [ebp - 0x2c], eax
call fcn.004a1660
mov eax, dword [eax + 0x1c]
xor ebx, ebx
mov dword [ebp - 0x3c], eax
mov ecx, dword [eax + 8]
test ecx, ecx
jle 0x40f1f0
test ebx, ebx
jl 0x40f1d3
cmp ebx, ecx
jge 0x40f1d3
mov eax, dword [eax + 4]
mov eax, dword [eax + ebx*4]
jmp 0x40f1d5
xor eax, eax
cdq
mov ecx, 0x3e8
idiv ecx
cmp edx, 0x3a2
jge 0x40f1f0
mov eax, dword [ebp - 0x3c]
inc ebx
mov ecx, dword [eax + 8]
cmp ebx, ecx
jl 0x40f1c3
push 0xa
mov ecx, esi
call fcn.004a1660
mov ax, word [eax + 0x14]
and dword [ebp - 0x10], 0
sub ax, bx
mov word [edi + 8], ax
mov eax, dword [esi + 0x40]
cmp word [edi + 8], 0
mov dword [edi], eax
mov eax, dword [esi + 0x3c]
mov dword [edi + 4], eax
jle 0x40f28a
fild dword [ebp - 0x38]
mov esi, ebx
mov dword [ebp - 0x24], ebx
shl esi, 3
lea ebx, [edi + 0xe]
mov ecx, dword [ebp - 0x24]
test ecx, ecx
jl 0x40f23f
mov eax, dword [ebp - 0x30]
cmp ecx, dword [eax + 8]
jge 0x40f23f
mov eax, dword [eax + 4]
fld qword [eax + esi]
jmp 0x40f241
fldz
fmul qword [0x509560]
call fcn.004c1dc4
cmp dword [ebp - 0x24], 0
mov dword [ebx - 4], eax
jl 0x40f268
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x24]
cmp ecx, dword [eax + 8]
jge 0x40f268
mov eax, dword [eax + 4]
fld qword [eax + esi]
jmp 0x40f26a
fldz
fdiv st(1)
call fcn.004c1dc4
inc dword [ebp - 0x10]
mov dword [ebx], eax
movsx eax, word [edi + 8]
add esi, 8
inc dword [ebp - 0x24]
add ebx, 0x14
cmp dword [ebp - 0x10], eax
jl 0x40f228
fstp st(0)
movsx eax, word [edi + 8]
lea eax, [eax + eax*4]
lea eax, [eax*4 + 0x26]
jmp 0x40ed35
mov eax, dword [esi + 0x2c]
test eax, eax
jle 0x40f2ca
mov ecx, dword [ebp - 0x14]
lea eax, [eax + eax*2]
shl eax, 0xa
mov ecx, dword [ecx + 0x27]
push 0x3c
add eax, ecx
push ecx
push eax
mov dword [ebp + 8], eax
call fcn.004c14d0
mov eax, dword [ebp + 8]
add esp, 0xc
lea ecx, [eax + 0x20]
mov dword [eax + 0x1c], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [esi + 0x26]
and ecx, 0xfc000000
xor edx, edx
mov edi, dword [eax + 0x1c]
mov eax, 0x4000000
cmp ecx, eax
setne dl
dec edx
and edx, 0x63
inc edx
cmp ecx, 0x28000000
mov dword [ebp - 0x38], edx
je 0x40f2fd
cmp ecx, eax
jne 0x40f4b2
push 0xa
mov ecx, esi
call fcn.004a1660
mov eax, dword [eax + 0x1c]
push 0xd
mov ecx, esi
mov dword [ebp - 0x3c], eax
call fcn.004a1660
test eax, eax
je 0x40f321
mov eax, dword [eax + 0x1c]
mov dword [ebp - 0x14], eax
jmp 0x40f325
and dword [ebp - 0x14], 0
push 1
mov ecx, esi
call fcn.004a1660
mov eax, dword [eax + 0x1c]
xor ebx, ebx
mov dword [ebp - 0x30], eax
mov eax, dword [eax + 8]
test eax, eax
jle 0x40f36d
test ebx, ebx
jl 0x40f350
cmp ebx, eax
jge 0x40f350
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 4]
mov eax, dword [eax + ebx*4]
jmp 0x40f352
xor eax, eax
cdq
mov ecx, 0x3e8
idiv ecx
cmp edx, 0x3a2
jge 0x40f36d
mov eax, dword [ebp - 0x30]
inc ebx
mov eax, dword [eax + 8]
cmp ebx, eax
jl 0x40f33d
push 0xa
mov ecx, esi
call fcn.004a1660
mov ax, word [eax + 0x14]
sub ax, bx
mov word [edi + 0x1e], ax
mov ax, word [esi + 0x2c]
mov word [edi + 0x1c], ax
mov eax, dword [esi + 0x34]
test byte [eax], 0xf
jne 0x40f398
mov dword [ebp - 0x38], 0x64
mov ax, word [edi + 0x1e]
and dword [ebp - 0x10], 0
test ax, ax
jle 0x40f451
mov eax, ebx
mov dword [ebp - 0x24], ebx
shl eax, 3
mov dword [ebp - 0x20], eax
mov eax, ebx
shl eax, 2
mov dword [ebp - 0x2c], eax
lea eax, [edi + 0x78]
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x28], 0x3a2
jle 0x40f3fc
mov ecx, dword [ebp - 0x24]
test ecx, ecx
jl 0x40f3e5
mov eax, dword [ebp - 0x30]
cmp ecx, dword [eax + 8]
jge 0x40f3e5
mov eax, dword [eax + 4]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [eax + ecx]
jmp 0x40f3e7
xor eax, eax
cdq
mov ecx, 0x2710
idiv ecx
cmp dword [ebp - 0x28], edx
jge 0x40f3fc
cmp word [edi + 0x1e], 0xf1
jle 0x40f449
mov ecx, dword [ebp - 0x24]
test ecx, ecx
jl 0x40f416
mov eax, dword [ebp - 0x3c]
cmp ecx, dword [eax + 8]
jge 0x40f416
mov eax, dword [eax + 4]
mov ecx, dword [ebp - 0x20]
fld qword [eax + ecx]
jmp 0x40f418
fldz
fmul qword [0x509560]
call fcn.004c1dc4
mov ecx, dword [ebp - 0x18]
inc dword [ebp - 0x10]
add dword [ebp - 0x2c], 4
add dword [ebp - 0x20], 8
add dword [ebp - 0x18], 0xc
inc dword [ebp - 0x24]
mov dword [ecx], eax
movsx eax, word [edi + 0x1e]
cmp dword [ebp - 0x10], eax
jl 0x40f3c2
jmp 0x40f451
mov ax, word [ebp - 0x10]
mov word [edi + 0x1e], ax
mov edx, dword [ebp - 0x14]
test edx, edx
je 0x40f4b2
movsx eax, word [edi + 0x1e]
lea ecx, [eax + ebx]
cmp dword [edx + 8], ecx
jl 0x40f4b2
and dword [ebp - 0x10], 0
test eax, eax
jle 0x40f4b2
fild dword [ebp - 0x38]
mov ecx, ebx
mov dword [ebp - 0x28], ebx
shl ecx, 3
lea eax, [edi + 0x7c]
jmp 0x40f47f
mov edx, dword [ebp - 0x14]
cmp dword [ebp - 0x28], 0
jl 0x40f495
mov ebx, dword [ebp - 0x28]
cmp ebx, dword [edx + 8]
jge 0x40f495
mov edx, dword [edx + 4]
fld qword [edx + ecx]
jmp 0x40f497
fldz
fdiv st(1)
inc dword [ebp - 0x10]
add ecx, 8
inc dword [ebp - 0x28]
fstp qword [eax]
movsx edx, word [edi + 0x1e]
add eax, 0xc
cmp dword [ebp - 0x10], edx
jl 0x40f47c
fstp st(0)
cmp word [edi + 0x76], 0
jne 0x40f4cb
mov eax, dword [esi + 0x34]
mov ecx, dword [ebp - 0x1c]
mov al, byte [eax]
push eax
call fcn.0044ed71
mov word [edi + 0x76], ax
movsx eax, word [edi + 0x1e]
and dword [edi + 0x22], 0
add eax, 0xa
lea eax, [eax + eax*2]
shl eax, 2
jmp 0x40ed35
mov eax, dword [ebp + 8]
push 0xa
mov ecx, esi
mov ebx, dword [eax + 0x1c]
mov eax, dword [esi + 0x2c]
mov dword [ebp - 0x10], ebx
mov dword [ebx + 0x1c], eax
call fcn.004a1660
mov ax, word [eax + 0x14]
push 0xa
mov ecx, esi
mov word [ebx + 0x22], ax
call fcn.004a1660
mov eax, dword [eax + 0x1c]
push 5
mov ecx, esi
mov dword [ebp - 0x18], eax
call fcn.004a1660
mov eax, dword [eax + 0x1c]
test eax, eax
mov dword [ebp - 0x14], eax
je 0x40f53a
cmp dword [eax + 8], 0
mov eax, dword [eax + 4]
push 0
mov ecx, dword [eax]
call fcn.004a1d4c
mov al, byte [eax]
mov byte [ebp - 0x38], al
jmp 0x40f53e
and byte [ebp - 0x38], 0
mov edi, dword [ebp - 0x1c]
push 0
push dword [ebp - 0x38]
mov ecx, dword [edi + 0x9d9]
call fcn.00499f77
push 0xa
mov ecx, esi
mov word [ebx + 0x20], ax
call fcn.004a1660
cmp dword [eax + 0x14], 0
jle 0x410133
xor edx, edx
cmp dword [ebp - 0x14], edx
je 0x410133
mov eax, dword [ebx + 0x1c]
cmp eax, 0x20
jg 0x40f91a
push 4
pop edi
je 0x40f7ff
cmp eax, edx
jle 0x40fc78
cmp eax, 2
jle 0x40f6cb
cmp eax, edi
je 0x40f5b0
cmp eax, 8
je 0x40f5b0
cmp eax, 0x10
je 0x40f7ff
jmp 0x40fc78
mov ecx, dword [esi + 8]
mov esi, dword [esi + 4]
cmp ecx, edi
lea eax, [esi + 0x10]
jg 0x40f5bf
mov eax, esi
cmp dword [eax], edx
je 0x410133
cmp ecx, edi
lea eax, [esi + 0x10]
jg 0x40f5d0
mov eax, esi
mov eax, dword [eax]
cmp dword [eax + 0x14], edx
jle 0x410133
cmp ecx, edi
jle 0x40f5e2
add esi, 0x10
mov eax, dword [esi]
xor esi, esi
cmp word [ebx + 0x22], dx
mov edi, dword [eax + 0x1c]
jle 0x40fc78
mov eax, dword [ebp - 0x10]
lea ebx, [eax + 0x2f]
mov eax, dword [ebp - 0x14]
test esi, esi
jl 0x40f60d
cmp esi, dword [eax + 8]
jge 0x40f60d
mov eax, dword [eax + 4]
lea eax, [eax + esi*4]
jmp 0x40f610
mov eax, dword [eax + 4]
mov ecx, dword [eax]
push 7
call fcn.0041d1c5
push eax
lea eax, [ebx - 0xb]
push eax
call fcn.004c14d0
add esp, 0xc
test esi, esi
jl 0x40f63a
mov eax, dword [ebp - 0x18]
cmp esi, dword [eax + 8]
jge 0x40f63a
mov eax, dword [eax + 4]
fld qword [eax + esi*8]
jmp 0x40f63c
fldz
fmul qword [0x509560]
call fcn.004c1dc4
test esi, esi
mov dword [ebx - 4], eax
jl 0x40f65b
cmp esi, dword [edi + 8]
jge 0x40f65b
mov eax, dword [edi + 4]
fld qword [eax + esi*8]
jmp 0x40f65d
fldz
fld st(0)
fcomp qword [0x509558]
fnstsw ax
sahf
fstp st(0)
jbe 0x40f693
test esi, esi
jl 0x40f67d
cmp esi, dword [edi + 8]
jge 0x40f67d
mov eax, dword [edi + 4]
fld qword [eax + esi*8]
jmp 0x40f67f
fldz
fld st(0)
fcomp qword [0x509550]
fnstsw ax
sahf
fstp st(0)
jae 0x40f693
and dword [ebx], 0
jmp 0x40f6b3
test esi, esi
jl 0x40f6a4
cmp esi, dword [edi + 8]
jge 0x40f6a4
mov eax, dword [edi + 4]
fld qword [eax + esi*8]
jmp 0x40f6a6
fldz
fmul qword [0x508ea8]
call fcn.004c1dc4
mov dword [ebx], eax
mov eax, dword [ebp - 0x10]
inc esi
add ebx, 0xf
movsx eax, word [eax + 0x22]
cmp esi, eax
jl 0x40f5f9
jmp 0x40fc78
push 6
mov ecx, esi
xor edi, edi
call fcn.004a1660
test eax, eax
je 0x40f6e6
push 6
mov ecx, esi
call fcn.004a1660
mov edi, dword [eax + 0x1c]
xor esi, esi
cmp word [ebx + 0x22], si
jle 0x40fc78
mov eax, dword [ebp - 0x10]
lea ebx, [eax + 0x2f]
mov eax, dword [ebp - 0x14]
test esi, esi
jl 0x40f70c
cmp esi, dword [eax + 8]
jge 0x40f70c
mov eax, dword [eax + 4]
lea eax, [eax + esi*4]
jmp 0x40f70f
mov eax, dword [eax + 4]
mov ecx, dword [eax]
push 7
call fcn.0041d1c5
push eax
lea eax, [ebx - 0xb]
push eax
call fcn.004c14d0
add esp, 0xc
test esi, esi
jl 0x40f739
mov eax, dword [ebp - 0x18]
cmp esi, dword [eax + 8]
jge 0x40f739
mov eax, dword [eax + 4]
fld qword [eax + esi*8]
jmp 0x40f73b
fldz
fmul qword [0x509560]
call fcn.004c1dc4
test esi, esi
mov dword [ebx - 4], eax
jl 0x40f75a
cmp esi, dword [edi + 8]
jge 0x40f75a
mov eax, dword [edi + 4]
fld qword [eax + esi*8]
jmp 0x40f75c
fldz
fld st(0)
fcomp qword [0x509558]
fnstsw ax
sahf
fstp st(0)
jbe 0x40f78d
test esi, esi
jl 0x40f77c
cmp esi, dword [edi + 8]
jge 0x40f77c
mov eax, dword [edi + 4]
fld qword [eax + esi*8]
jmp 0x40f77e
fldz
fld st(0)
fcomp qword [0x509550]
fnstsw ax
sahf
fstp st(0)
jb 0x40f7e4
test esi, esi
jl 0x40f7a1
mov eax, dword [ebp - 0x18]
cmp esi, dword [eax + 8]
jge 0x40f7a1
mov eax, dword [eax + 4]
fld qword [eax + esi*8]
jmp 0x40f7a3
fldz
test esi, esi
jl 0x40f7b4
cmp esi, dword [edi + 8]
jge 0x40f7b4
mov eax, dword [edi + 4]
fld qword [eax + esi*8]
jmp 0x40f7b6
fldz
test esi, esi
jl 0x40f7c7
cmp esi, dword [edi + 8]
jge 0x40f7c7
mov eax, dword [edi + 4]
fld qword [eax + esi*8]
jmp 0x40f7c9
fldz
fld st(2)
fsub st(2)
fdiv st(1)
fmul qword [0x509150]
call fcn.004c1dc4
fstp st(0)
fstp st(0)
fstp st(0)
mov dword [ebx], eax
jmp 0x40f7e7
and dword [ebx], 0
mov eax, dword [ebp - 0x10]
inc esi
add ebx, 0xf
movsx eax, word [eax + 0x22]
cmp esi, eax
jl 0x40f6f8
jmp 0x40fc78
mov ecx, dword [esi + 8]
mov esi, dword [esi + 4]
cmp ecx, edi
lea eax, [esi + 0x10]
jg 0x40f80e
mov eax, esi
cmp dword [eax], edx
je 0x410133
cmp ecx, edi
lea eax, [esi + 0x10]
jg 0x40f81f
mov eax, esi
mov eax, dword [eax]
cmp dword [eax + 0x14], edx
jle 0x410133
cmp ecx, edi
jle 0x40f831
add esi, 0x10
mov eax, dword [esi]
xor esi, esi
cmp word [ebx + 0x22], dx
mov edi, dword [eax + 0x1c]
jle 0x40fc78
mov eax, dword [ebp - 0x10]
lea ebx, [eax + 0x2f]
mov eax, dword [ebp - 0x14]
test esi, esi
jl 0x40f85c
cmp esi, dword [eax + 8]
jge 0x40f85c
mov eax, dword [eax + 4]
lea eax, [eax + esi*4]
jmp 0x40f85f
mov eax, dword [eax + 4]
mov ecx, dword [eax]
push 7
call fcn.0041d1c5
push eax
lea eax, [ebx - 0xb]
push eax
call fcn.004c14d0
add esp, 0xc
test esi, esi
jl 0x40f889
mov eax, dword [ebp - 0x18]
cmp esi, dword [eax + 8]
jge 0x40f889
mov eax, dword [eax + 4]
fld qword [eax + esi*8]
jmp 0x40f88b
fldz
fmul qword [0x509560]
call fcn.004c1dc4
test esi, esi
mov dword [ebx - 4], eax
jl 0x40f8aa
cmp esi, dword [edi + 8]
jge 0x40f8aa
mov eax, dword [edi + 4]
fld qword [eax + esi*8]
jmp 0x40f8ac
fldz
fld st(0)
fcomp qword [0x509558]
fnstsw ax
sahf
fstp st(0)
jbe 0x40f8e2
test esi, esi
jl 0x40f8cc
cmp esi, dword [edi + 8]
jge 0x40f8cc
mov eax, dword [edi + 4]
fld qword [eax + esi*8]
jmp 0x40f8ce
fldz
fld st(0)
fcomp qword [0x509550]
fnstsw ax
sahf
fstp st(0)
jae 0x40f8e2
and dword [ebx], 0
jmp 0x40f902
test esi, esi
jl 0x40f8f3
cmp esi, dword [edi + 8]
jge 0x40f8f3
mov eax, dword [edi + 4]
fld qword [eax + esi*8]
jmp 0x40f8f5
fldz
fmul qword [0x508ea8]
call fcn.004c1dc4
mov dword [ebx], eax
mov eax, dword [ebp - 0x10]
inc esi
add ebx, 0xf
movsx eax, word [eax + 0x22]
cmp esi, eax
jl 0x40f848
jmp 0x40fc78
sub eax, 0x40
je 0x40fb28
sub eax, 0x40
je 0x40f9d4
sub eax, 0x80
jne 0x40fc78
push 0x13
mov ecx, esi
call fcn.004a1660
mov eax, dword [eax + 0x1c]
xor esi, esi
cmp word [ebx + 0x22], si
mov dword [ebp - 0x3c], eax
jle 0x40fc78
lea edi, [ebx + 0x2b]
mov eax, dword [ebp - 0x14]
test esi, esi
jl 0x40f969
cmp esi, dword [eax + 8]
jge 0x40f969
mov eax, dword [eax + 4]
lea eax, [eax + esi*4]
jmp 0x40f96c
mov eax, dword [eax + 4]
mov ecx, dword [eax]
push 7
call fcn.0041d1c5
push eax
lea eax, [edi - 7]
push eax
call fcn.004c14d0
add esp, 0xc
test esi, esi
jl 0x40f996
mov eax, dword [ebp - 0x18]
cmp esi, dword [eax + 8]
jge 0x40f996
mov eax, dword [eax + 4]
fld qword [eax + esi*8]
jmp 0x40f998
fldz
fmul qword [0x509560]
call fcn.004c1dc4
test esi, esi
mov dword [edi], eax
jl 0x40f9b9
mov eax, dword [ebp - 0x3c]
cmp esi, dword [eax + 8]
jge 0x40f9b9
mov eax, dword [eax + 4]
fld qword [eax + esi*8]
jmp 0x40f9bb
fldz
call fcn.004c1dc4
mov dword [edi + 4], eax
inc esi
movsx eax, word [ebx + 0x22]
add edi, 0xf
cmp esi, eax
jl 0x40f955
jmp 0x40fc78
push 0xd
mov ecx, esi
call fcn.004a1660
mov eax, dword [eax + 0x1c]
push 0x2d
mov ecx, esi
mov dword [ebp - 0x30], eax
call fcn.004a1660
mov eax, dword [eax + 0x1c]
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x38], eax
call fcn.004a19e6
mov eax, dword [ebp - 0x14]
and dword [ebp - 4], 0
lea ecx, [ebp - 0x50]
cmp dword [eax + 8], 0
mov eax, dword [eax + 4]
push dword [eax]
mov eax, dword [ebp - 0x50]
call dword [eax + 8]
mov esi, dword [edi + 0x9d9]
xor edi, edi
push edi
push edi
lea ecx, [ebp - 0x50]
call fcn.004a1d4c
mov al, byte [eax]
mov ecx, esi
push eax
call fcn.00499f77
xor esi, esi
cmp word [ebx + 0x22], di
mov dword [ebp - 0x3c], eax
jle 0x40fb17
fild dword [ebp - 0x3c]
lea edi, [ebx + 0x2f]
fadd qword [0x509548]
fstp qword [ebp - 0x40]
mov eax, dword [ebp - 0x14]
test esi, esi
jl 0x40fa61
cmp esi, dword [eax + 8]
jge 0x40fa61
mov eax, dword [eax + 4]
lea eax, [eax + esi*4]
jmp 0x40fa64
mov eax, dword [eax + 4]
mov ecx, dword [eax]
push 7
call fcn.0041d1c5
push eax
lea eax, [edi - 0xb]
push eax
call fcn.004c14d0
add esp, 0xc
test esi, esi
jl 0x40fa8e
mov eax, dword [ebp - 0x18]
cmp esi, dword [eax + 8]
jge 0x40fa8e
mov eax, dword [eax + 4]
fld qword [eax + esi*8]
jmp 0x40fa90
fldz
fmul qword [0x509560]
call fcn.004c1dc4
test esi, esi
mov dword [edi - 4], eax
jl 0x40fab2
mov eax, dword [ebp - 0x38]
cmp esi, dword [eax + 8]
jge 0x40fab2
mov eax, dword [eax + 4]
fld qword [eax + esi*8]
jmp 0x40fab4
fldz
fmul qword [0x509540]
fmul qword [ebp - 0x40]
fcom qword [0x509558]
fnstsw ax
sahf
jbe 0x40fada
fcom qword [0x509550]
fnstsw ax
sahf
jae 0x40fada
and dword [edi], 0
fstp st(0)
jmp 0x40fb07
test esi, esi
jl 0x40faee
mov eax, dword [ebp - 0x30]
cmp esi, dword [eax + 8]
jge 0x40faee
mov eax, dword [eax + 4]
fld qword [eax + esi*8]
jmp 0x40faf0
fldz
fmul qword [0x509538]
fdiv st(1)
fmul qword [0x508ea8]
call fcn.004c1dc4
fstp st(0)
mov dword [edi], eax
movsx eax, word [ebx + 0x22]
inc esi
add edi, 0xf
cmp esi, eax
jl 0x40fa4d
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x50]
call fcn.004a1a73
jmp 0x40fc78
push 8
mov ecx, esi
call fcn.004a1660
mov eax, dword [eax + 0x1c]
push 9
mov ecx, esi
mov dword [ebp - 0x3c], eax
call fcn.004a1660
mov eax, dword [eax + 0x1c]
push 6
mov ecx, esi
mov dword [ebp - 0x38], eax
xor ebx, ebx
call fcn.004a1660
test eax, eax
je 0x40fb61
push 6
mov ecx, esi
call fcn.004a1660
mov ebx, dword [eax + 0x1c]
mov eax, dword [ebp - 0x10]
xor esi, esi
cmp word [eax + 0x22], si
jle 0x40fc78
lea edi, [eax + 0x2f]
mov eax, dword [ebp - 0x14]
test esi, esi
jl 0x40fb87
cmp esi, dword [eax + 8]
jge 0x40fb87
mov eax, dword [eax + 4]
lea eax, [eax + esi*4]
jmp 0x40fb8a
mov eax, dword [eax + 4]
mov ecx, dword [eax]
push 7
call fcn.0041d1c5
push eax
lea eax, [edi - 0xb]
push eax
call fcn.004c14d0
add esp, 0xc
test esi, esi
jl 0x40fbb4
mov eax, dword [ebp - 0x18]
cmp esi, dword [eax + 8]
jge 0x40fbb4
mov eax, dword [eax + 4]
fld qword [eax + esi*8]
jmp 0x40fbb6
fldz
fmul qword [0x509560]
call fcn.004c1dc4
test esi, esi
mov dword [edi - 4], eax
jl 0x40fbd5
cmp esi, dword [ebx + 8]
jge 0x40fbd5
mov eax, dword [ebx + 4]
fld qword [eax + esi*8]
jmp 0x40fbd7
fldz
fld st(0)
fcomp qword [0x509558]
fnstsw ax
sahf
fstp st(0)
jbe 0x40fc08
test esi, esi
jl 0x40fbf7
cmp esi, dword [ebx + 8]
jge 0x40fbf7
mov eax, dword [ebx + 4]
fld qword [eax + esi*8]
jmp 0x40fbf9
fldz
fld st(0)
fcomp qword [0x509550]
fnstsw ax
sahf
fstp st(0)
jb 0x40fc62
test esi, esi
jl 0x40fc1c
mov eax, dword [ebp - 0x3c]
cmp esi, dword [eax + 8]
jge 0x40fc1c
mov eax, dword [eax + 4]
fld qword [eax + esi*8]
jmp 0x40fc1e
fldz
test esi, esi
jl 0x40fc32
mov eax, dword [ebp - 0x38]
cmp esi, dword [eax + 8]
jge 0x40fc32
mov eax, dword [eax + 4]
fld qword [eax + esi*8]
jmp 0x40fc34
fldz
test esi, esi
jl 0x40fc45
cmp esi, dword [ebx + 8]
jge 0x40fc45
mov eax, dword [ebx + 4]
fld qword [eax + esi*8]
jmp 0x40fc47
fldz
fld st(2)
fsub st(2)
fdiv st(1)
fmul qword [0x509150]
call fcn.004c1dc4
fstp st(0)
fstp st(0)
fstp st(0)
mov dword [edi], eax
jmp 0x40fc65
and dword [edi], 0
mov eax, dword [ebp - 0x10]
inc esi
add edi, 0xf
movsx eax, word [eax + 0x22]
cmp esi, eax
jl 0x40fb73
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x14]
mov dword [eax + 0x18], ecx
jmp 0x41013a
mov eax, dword [esi + 0x26]
and eax, 0xfc000000
cmp eax, 0x8000000
jne 0x40fde5
mov eax, dword [ebp + 8]
push 0xa
mov ecx, esi
mov ebx, dword [eax + 0x1c]
call fcn.004a1660
mov ax, word [eax + 0x14]
push 0xa
mov ecx, esi
mov word [ebx + 0x66], ax
call fcn.004a1660
mov eax, dword [eax + 0x1c]
push 0xd
mov ecx, esi
mov dword [ebp - 0x3c], eax
call fcn.004a1660
mov eax, dword [eax + 0x1c]
push 0x29
mov ecx, esi
mov dword [ebp - 0x38], eax
call fcn.004a1660
mov eax, dword [eax + 0x1c]
push 0x2a
mov ecx, esi
mov dword [ebp - 0x30], eax
call fcn.004a1660
mov eax, dword [eax + 0x1c]
push 0x28
mov ecx, esi
mov dword [ebp - 0x2c], eax
call fcn.004a1660
mov eax, dword [eax + 0x1c]
xor edi, edi
cmp word [ebx + 0x66], di
mov dword [ebp - 0x28], eax
jle 0x40fdce
lea eax, [ebx + 0x6c]
mov dword [ebp - 0x20], eax
test edi, edi
jl 0x40fd21
mov eax, dword [ebp - 0x3c]
cmp edi, dword [eax + 8]
jge 0x40fd21
mov eax, dword [eax + 4]
fld qword [eax + edi*8]
jmp 0x40fd23
fldz
fmul qword [0x509560]
call fcn.004c1dc4
mov ecx, dword [ebp - 0x20]
test edi, edi
mov dword [ecx - 4], eax
jl 0x40fd48
mov eax, dword [ebp - 0x38]
cmp edi, dword [eax + 8]
jge 0x40fd48
mov eax, dword [eax + 4]
fld qword [eax + edi*8]
jmp 0x40fd4a
fldz
fmul qword [0x508e98]
mov eax, dword [ebp - 0x20]
test edi, edi
fstp qword [eax]
jl 0x40fd69
mov eax, dword [ebp - 0x30]
cmp edi, dword [eax + 8]
jge 0x40fd69
mov eax, dword [eax + 4]
mov eax, dword [eax + edi*4]
jmp 0x40fd6b
xor eax, eax
movsx eax, ax
push 0x64
cdq
pop ecx
idiv ecx
mov ecx, dword [ebp - 0x20]
test edi, edi
mov word [ecx + 0xa], ax
jl 0x40fd8f
mov eax, dword [ebp - 0x2c]
cmp edi, dword [eax + 8]
jge 0x40fd8f
mov eax, dword [eax + 4]
mov eax, dword [eax + edi*4]
jmp 0x40fd91
xor eax, eax
movsx eax, ax
push 0x64
cdq
pop ecx
idiv ecx
mov ecx, dword [ebp - 0x20]
test edi, edi
mov word [ecx + 0xc], ax
jl 0x40fdb5
mov eax, dword [ebp - 0x28]
cmp edi, dword [eax + 8]
jge 0x40fdb5
mov eax, dword [eax + 4]
mov eax, dword [eax + edi*4]
jmp 0x40fdb7
xor eax, eax
mov word [ecx + 8], ax
inc edi
movsx eax, word [ebx + 0x66]
add ecx, 0x12
cmp edi, eax
mov dword [ebp - 0x20], ecx
jl 0x40fd0d
movsx eax, word [ebx + 0x66]
mov ecx, dword [ebp + 8]
mov ebx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
lea eax, [eax*4 + 0x66]
mov dword [ecx + 0x14], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x14]
push esi
mov eax, dword [eax + 0x1c]
add eax, 0x1c
push eax
call fcn.004129cf
mov eax, dword [esi + 0x26]
shr eax, 0x1a
sub eax, 0xf
cmp eax, dword [ebx + 0xb4]
jge 0x410129
test eax, eax
jl 0x410129
mov ecx, dword [ebx + 0xb0]
push dword [ecx + eax*4]
mov ecx, dword [ebp - 0x14]
lea eax, [ebp + 8]
push esi
push eax
call fcn.00412d74
jmp 0x410129
mov eax, dword [esi + 0x26]
and eax, 0xfc000000
cmp eax, 0x14000000
jne 0x40ff45
mov eax, dword [ebp + 8]
push 0xa
mov ecx, esi
mov edi, dword [eax + 0x1c]
add edi, 0x70
call fcn.004a1660
mov ecx, dword [ebp + 8]
mov ax, word [eax + 0x14]
push 0xa
mov ecx, dword [ecx + 0x1c]
mov word [ecx + 0x6e], ax
mov eax, dword [ebp + 8]
mov ecx, esi
mov eax, dword [eax + 0x1c]
movsx eax, word [eax + 0x6e]
mov dword [ebp - 0x38], eax
call fcn.004a1660
mov eax, dword [eax + 0x1c]
push 0xd
mov ecx, esi
mov dword [ebp - 0x3c], eax
call fcn.004a1660
mov eax, dword [eax + 0x1c]
push 0x16
mov ecx, esi
mov dword [ebp - 0x30], eax
call fcn.004a1660
mov eax, dword [eax + 0x1c]
push 0x17
mov ecx, esi
mov dword [ebp - 0x2c], eax
call fcn.004a1660
mov eax, dword [eax + 0x1c]
xor ebx, ebx
cmp dword [ebp - 0x38], ebx
mov dword [ebp - 0x28], eax
jle 0x40ff42
test ebx, ebx
jl 0x40fecb
mov eax, dword [ebp - 0x3c]
cmp ebx, dword [eax + 8]
jge 0x40fecb
mov eax, dword [eax + 4]
fld qword [eax + ebx*8]
jmp 0x40fecd
fldz
fmul qword [0x509560]
call fcn.004c1dc4
test ebx, ebx
mov dword [edi], eax
jl 0x40feee
mov eax, dword [ebp - 0x30]
cmp ebx, dword [eax + 8]
jge 0x40feee
mov eax, dword [eax + 4]
fld qword [eax + ebx*8]
jmp 0x40fef0
fldz
fmul qword [0x508e98]
test ebx, ebx
fstp qword [edi + 4]
jl 0x40ff0d
mov eax, dword [ebp - 0x2c]
cmp ebx, dword [eax + 8]
jge 0x40ff0d
mov eax, dword [eax + 4]
fld qword [eax + ebx*8]
jmp 0x40ff0f
fldz
call fcn.004c1dc4
test ebx, ebx
mov dword [edi + 0xc], eax
jl 0x40ff2b
mov eax, dword [ebp - 0x28]
cmp ebx, dword [eax + 8]
jge 0x40ff2b
mov eax, dword [eax + 4]
fld qword [eax + ebx*8]
jmp 0x40ff2d
fldz
call fcn.004c1dc4
mov dword [edi + 0x10], eax
add edi, 0x14
inc ebx
cmp ebx, dword [ebp - 0x38]
jl 0x40feb7
mov ebx, dword [ebp - 0x24]
mov eax, dword [esi + 0x26]
shr eax, 0x1a
sub eax, 0xf
cmp eax, dword [ebx + 0xb4]
jge 0x40ff78
test eax, eax
jl 0x40ff78
mov ecx, dword [ebx + 0xb0]
push dword [ecx + eax*4]
mov ecx, dword [ebp - 0x14]
lea eax, [ebp + 8]
push esi
push eax
call fcn.00412d74
test eax, eax
jne 0x410129
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x1c]
lea ecx, [eax + 0x20]
add eax, 0x1c
push ecx
mov ecx, dword [ebp - 0x14]
push eax
push esi
call fcn.004129f3
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x14]
push esi
mov eax, dword [eax + 0x1c]
add eax, 0x24
push eax
call fcn.004129cf
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x1c]
movsx eax, word [eax + 0x6e]
lea eax, [eax + eax*4]
lea eax, [eax*4 + 0x70]
jmp 0x40ed38
mov eax, dword [esi + 0x26]
and eax, 0xfc000000
cmp eax, 0xc000000
jne 0x4100ba
mov eax, dword [ebp + 8]
push 0xa
mov ecx, esi
mov edi, dword [eax + 0x1c]
add edi, 0x70
call fcn.004a1660
mov ecx, dword [ebp + 8]
mov ax, word [eax + 0x14]
push 0xa
mov ecx, dword [ecx + 0x1c]
mov word [ecx + 0x6e], ax
mov eax, dword [ebp + 8]
mov ecx, esi
mov eax, dword [eax + 0x1c]
movsx eax, word [eax + 0x6e]
mov dword [ebp - 0x38], eax
call fcn.004a1660
mov eax, dword [eax + 0x1c]
push 0xd
mov ecx, esi
mov dword [ebp - 0x3c], eax
call fcn.004a1660
mov eax, dword [eax + 0x1c]
push 0x26
mov ecx, esi
mov dword [ebp - 0x30], eax
call fcn.004a1660
mov eax, dword [eax + 0x1c]
push 0x27
mov ecx, esi
mov dword [ebp - 0x2c], eax
call fcn.004a1660
mov eax, dword [eax + 0x1c]
xor ebx, ebx
cmp dword [ebp - 0x38], ebx
mov dword [ebp - 0x28], eax
jle 0x4100ba
test ebx, ebx
jl 0x410052
mov eax, dword [ebp - 0x3c]
cmp ebx, dword [eax + 8]
jge 0x410052
mov eax, dword [eax + 4]
fld qword [eax + ebx*8]
jmp 0x410054
fldz
fmul qword [0x509560]
call fcn.004c1dc4
test ebx, ebx
mov dword [edi], eax
jl 0x410075
mov eax, dword [ebp - 0x30]
cmp ebx, dword [eax + 8]
jge 0x410075
mov eax, dword [eax + 4]
fld qword [eax + ebx*8]
jmp 0x410077
fldz
fmul qword [0x508e98]
test ebx, ebx
fstp qword [edi + 4]
jl 0x410094
mov eax, dword [ebp - 0x2c]
cmp ebx, dword [eax + 8]
jge 0x410094
mov eax, dword [eax + 4]
mov eax, dword [eax + ebx*4]
jmp 0x410096
xor eax, eax
test ebx, ebx
jl 0x4100aa
mov ecx, dword [ebp - 0x28]
cmp ebx, dword [ecx + 8]
jge 0x4100aa
mov ecx, dword [ecx + 4]
mov ecx, dword [ecx + ebx*4]
jmp 0x4100ac
xor ecx, ecx
sub eax, ecx
mov dword [edi + 0xc], eax
add edi, 0x10
inc ebx
cmp ebx, dword [ebp - 0x38]
jl 0x41003e
mov eax, dword [esi + 0x26]
mov ecx, dword [ebp - 0x24]
shr eax, 0x1a
sub eax, 0xf
cmp eax, dword [ecx + 0xb4]
jge 0x4100ec
test eax, eax
jl 0x4100ec
mov ecx, dword [ecx + 0xb0]
push dword [ecx + eax*4]
mov ecx, dword [ebp - 0x14]
lea eax, [ebp + 8]
push esi
push eax
call fcn.00412d74
test eax, eax
jne 0x410129
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x1c]
lea ecx, [eax + 0x20]
add eax, 0x1c
push ecx
mov ecx, dword [ebp - 0x14]
push eax
push esi
call fcn.004129f3
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x14]
push esi
mov eax, dword [eax + 0x1c]
add eax, 0x24
push eax
call fcn.004129cf
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x1c]
movsx ecx, word [ecx + 0x6e]
add ecx, 7
shl ecx, 4
mov dword [eax + 0x14], ecx
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x14]
test eax, eax
jge 0x410137
xor eax, eax
jmp 0x41013d
mov dword [ecx + 0x18], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 4