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

Disassembly:
sub esp, 0x90
push ebx
push ebp
push esi
push edi
xor ebp, ebp
lea eax, [esp + 0x94]
mov ebx, ecx
push eax
mov dword [esp + 0x18], ebx
mov dword [esp + 0x70], ebp
mov dword [esp + 0x30], ebp
mov dword [esp + 0x6c], ebp
call dword [0x48b2f0]
mov edx, dword [0x4c086c]
lea ecx, [esp + 0x94]
push ecx
push edx
call dword [0x48b2ec]
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x94]
push 0xffffffffffffffff
push eax
push ecx
mov ecx, dword [0x4c087c]
call fcn.00442b50
mov ecx, dword [0x4c087c]
lea edx, [esp + 0x84]
push edx
call fcn.004430b0
mov esi, dword [esp + 0x84]
mov edi, dword [esp + 0x88]
mov ecx, dword [ebx + 0x3d8]
or eax, 0xffffffff
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x70], ebp
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
call fcn.00448f00
mov dword [ebx + 0x3f0], eax
cmp eax, ebp
jne 0x41630e
cmp dword [ebx + 0x43c], ebp
je 0x414f07
mov ecx, dword [0x4c087c]
push 1
call fcn.00442ac0
test eax, eax
je 0x414e4a
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x88]
mov dword [ebx + 0x3f4], eax
mov dword [ebx + 0x3f8], ecx
mov dword [ebx + 0x394], 0xffffffff
jmp 0x414e73
mov ecx, dword [0x4c087c]
push 1
call fcn.00442b00
test eax, eax
je 0x414e73
cmp dword [ebx + 0x3f4], ebp
je 0x414f07
mov dword [ebx + 0x3f8], ebp
mov dword [ebx + 0x3f4], ebp
cmp dword [ebx + 0x3f4], ebp
je 0x414f07
mov ecx, dword [0x4c087c]
lea edx, [esp + 0x40]
push edx
call fcn.004430b0
mov ecx, dword [0x4c087c]
push 1
call fcn.00442ae0
test eax, eax
jne 0x414eb1
mov ecx, dword [0x4c087c]
push 1
call fcn.00442b20
test eax, eax
je 0x414f07
mov edx, dword [esp + 0x40]
mov ecx, dword [ebx + 0x3f4]
mov eax, edx
sub eax, ecx
cmp eax, 0x64
jle 0x414ee2
pop edi
pop esi
mov dword [ebx + 0x3f4], ebp
mov dword [ebx + 0xd0], eax
pop ebp
mov eax, 0x64
pop ebx
add esp, 0x90
ret 4
sub ecx, edx
cmp ecx, 0x64
jle 0x414f07
pop edi
pop esi
mov dword [ebx + 0x3f4], ebp
mov dword [ebx + 0xd0], eax
pop ebp
mov eax, 0xffffff9c
pop ebx
add esp, 0x90
ret 4
cmp dword [ebx + 0x3b8], ebp
jne 0x414f46
cmp esi, dword [ebx + 0x38c]
jne 0x414f30
cmp edi, dword [ebx + 0x390]
jne 0x414f30
mov ecx, dword [0x4c087c]
push 1
call fcn.00442b00
test eax, eax
je 0x414f46
mov dword [ebx + 0x38c], esi
mov dword [ebx + 0x390], edi
mov dword [ebx + 0x394], 0xffffffff
cmp dword [ebx + 0x37c], ebp
je 0x4150fc
fld dword [ebx + 0x3b0]
mov ecx, dword [0x4c08ec]
fstp dword [esp + 0x10]
call fcn.0040e1b0
test eax, eax
je 0x414f75
fld dword [esp + 0x10]
fadd st(0), st(0)
fstp dword [esp + 0x10]
fld dword [ebx + 0x3a0]
fld dword [esp + 0x10]
fld st(0)
faddp st(2)
fxch st(1)
fstp dword [ebx + 0x3a0]
fabs
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fstp dword [esp + 0x10]
fld dword [ebx + 0x3a8]
fld dword [esp + 0x10]
fld st(0)
fsubp st(2)
fld dword [ebx + 0x3a0]
fcomp st(2)
fnstsw ax
fstp st(1)
test ah, 1
jne 0x414fdd
fld dword [ebx + 0x3a0]
fld dword [ebx + 0x3a8]
faddp st(2)
fcompp
fnstsw ax
test ah, 0x41
jp 0x414fdf
fld dword [ebx + 0x3a8]
fstp dword [ebx + 0x3a0]
jmp 0x414fdf
fstp st(0)
fld dword [ebx + 0x3b4]
mov ecx, dword [0x4c08ec]
fstp dword [esp + 0x10]
call fcn.0040e1b0
test eax, eax
je 0x415002
fld dword [esp + 0x10]
fadd st(0), st(0)
fstp dword [esp + 0x10]
fld dword [ebx + 0x3a4]
fld dword [esp + 0x10]
fld st(0)
faddp st(2)
fxch st(1)
fstp dword [ebx + 0x3a4]
fabs
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fstp dword [esp + 0x10]
fld dword [ebx + 0x3ac]
fld dword [esp + 0x10]
fld st(0)
fsubp st(2)
fld dword [ebx + 0x3a4]
fcomp st(2)
fnstsw ax
fstp st(1)
test ah, 1
jne 0x41506a
fld dword [ebx + 0x3a4]
fld dword [ebx + 0x3ac]
faddp st(2)
fcompp
fnstsw ax
test ah, 0x41
jp 0x41506c
fld dword [ebx + 0x3ac]
fstp dword [ebx + 0x3a4]
jmp 0x41506c
fstp st(0)
fld dword [ebx + 0x3a0]
fld dword [ebx + 0x3a8]
fucompp
fnstsw ax
test ah, 0x44
jp 0x41509c
fld dword [ebx + 0x3a4]
fld dword [ebx + 0x3ac]
fucompp
fnstsw ax
test ah, 0x44
jp 0x41509c
mov dword [ebx + 0x37c], ebp
cmp dword [ebx + 0x37c], ebp
jne 0x4150fc
mov eax, dword [ebx + 0x380]
cmp eax, 1
jne 0x4150d3
lea eax, [ebx + 0x3fc]
sub ebx, eax
mov cl, byte [eax]
mov byte [ebx + eax], cl
inc eax
test cl, cl
jne 0x4150b7
pop edi
pop esi
pop ebp
mov eax, 0x65
pop ebx
add esp, 0x90
ret 4
cmp eax, 2
jne 0x4150fc
lea eax, [ebx + 0x41c]
sub ebx, eax
mov cl, byte [eax]
mov byte [ebx + eax], cl
inc eax
test cl, cl
jne 0x4150e0
pop edi
pop esi
pop ebp
mov eax, 0x65
pop ebx
add esp, 0x90
ret 4
mov dword [ebx + 0x2c], ebp
cmp dword [ebx + 0x4c], ebp
je 0x416002
mov ecx, ebx
call fcn.00413b40
cmp eax, 0xff
jne 0x416311
mov eax, dword [ebx + 0x48]
mov edi, dword [eax]
mov esi, dword [ebx + 0x30]
mov dword [esp + 0x44], edi
mov dword [esp + 0x40], esi
mov dword [esp + 0x10], ebp
mov dword [ebx + 0x398], 0xffffffff
mov ebp, dword [ebx + 0x48]
mov eax, dword [ebx + 0x30]
test esi, esi
je 0x415146
cmp esi, eax
je 0x41514b
call fcn.0045b262
cmp edi, ebp
je 0x415fa0
test esi, esi
jne 0x415290
call fcn.0045b262
xor eax, eax
cmp edi, dword [eax + 0x18]
jne 0x41516c
call fcn.0045b262
mov ecx, dword [edi + 0xc]
mov dword [esp + 0x20], ecx
test esi, esi
jne 0x415297
call fcn.0045b262
cmp edi, dword [esi + 0x18]
jne 0x41518a
call fcn.0045b262
mov esi, dword [edi + 0x10]
cmp byte [esi + 0x10], 0
mov edx, dword [esp + 0xa4]
mov dword [esp + 0x34], edx
jne 0x4151a6
mov dword [esp + 0x34], 1
mov eax, dword [esi + 0x240]
mov ebx, dword [esi]
mov dword [esp + 0x58], ebx
mov ebp, dword [esi + 4]
mov dword [esp + 0x5c], ebp
mov ecx, dword [esi + 8]
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x14]
fld dword [eax + 0x3a0]
mov dword [esp + 0x60], ecx
mov edx, dword [esi + 0xc]
mov dword [esp + 0x64], edx
call fcn.0045b7b0
mov ecx, dword [esp + 0x14]
fld dword [ecx + 0x3a4]
mov edi, eax
add ebx, edi
mov dword [esp + 0x58], ebx
call fcn.0045b7b0
add dword [esp + 0x60], edi
add dword [esp + 0x64], eax
add ebp, eax
cmp dword [esp + 0x48], 0xffffffff
mov dword [esp + 0x5c], ebp
je 0x41520f
cmp dword [esp + 0x48], ebx
jle 0x415213
mov dword [esp + 0x48], ebx
mov eax, dword [esp + 0x4c]
cmp eax, 0xffffffff
je 0x415220
cmp eax, ebp
jle 0x415224
mov dword [esp + 0x4c], ebp
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x60]
cmp eax, 0xffffffff
je 0x415235
cmp eax, edx
jge 0x415239
mov dword [esp + 0x50], edx
mov eax, dword [esp + 0x54]
mov edi, dword [esp + 0x64]
cmp eax, 0xffffffff
je 0x41524a
cmp eax, edi
jge 0x41524e
mov dword [esp + 0x54], edi
cmp dword [esi + 0x294], 0
mov dword [esp + 0x30], 0
je 0x415267
mov dword [esp + 0x70], 1
mov ecx, dword [esp + 0x38]
cmp ebx, ecx
jge 0x41529e
cmp ecx, edx
jge 0x41529e
mov edx, dword [esp + 0x3c]
cmp ebp, edx
jge 0x4152a2
cmp edx, edi
jge 0x4152a2
mov edi, dword [esp + 0x14]
mov eax, dword [edi + 0x394]
cmp eax, 0xffffffff
je 0x4152b6
jmp 0x4152a6
mov eax, dword [esi]
jmp 0x415162
mov esi, dword [esi]
jmp 0x415180
mov edx, dword [esp + 0x3c]
mov edi, dword [esp + 0x14]
mov eax, dword [edi + 0x394]
cmp eax, dword [esp + 0x10]
jne 0x415504
cmp ebx, ecx
mov edx, dword [esp + 0x10]
mov dword [edi + 0x398], edx
jge 0x4152e6
cmp ecx, dword [esp + 0x60]
jge 0x4152e6
mov edx, dword [esp + 0x3c]
cmp ebp, edx
jge 0x4152ea
cmp edx, dword [esp + 0x64]
mov edi, dword [esp + 0x14]
jge 0x4152ea
mov dword [esp + 0x30], 1
jmp 0x4152ea
mov edx, dword [esp + 0x3c]
cmp dword [esi + 0x27c], 0
je 0x41532d
cmp eax, dword [esp + 0x10]
je 0x41532d
mov eax, dword [esp + 0x20]
sub edx, ebp
push edx
sub ecx, ebx
push ecx
push eax
mov ecx, edi
call fcn.00413190
test eax, eax
jne 0x41532d
mov ecx, dword [edi + 0x394]
lea ebp, [eax + 1]
cmp ecx, dword [esp + 0x10]
je 0x415332
mov dword [esi + 0x240], 0x63
jmp 0x4154e2
mov ebp, 1
cmp dword [esi + 0x240], 0x63
jne 0x4153be
cmp dword [esp + 0x34], 0
jne 0x4153be
cmp dword [esp + 0x6c], 0
jne 0x4153be
cmp dword [esi + 0x34], 0
je 0x415398
mov ecx, dword [0x4c08f4]
call fcn.0043b9a0
test eax, eax
je 0x41537a
mov ecx, dword [0x4c08ec]
push 0xf5
push 0x63
call fcn.0040ccd0
cmp eax, dword [esp + 0x10]
je 0x415398
mov edx, dword [esi + 0x34]
mov ecx, dword [0x4c08ec]
push 0
push ebp
push edx
call fcn.0040ca20
mov ecx, dword [0x4c08f4]
push eax
call fcn.0043d070
cmp byte [esi + 0x38], 0
lea ebx, [esi + 0x38]
je 0x4153be
mov ecx, dword [0x4c08f4]
push 2
call fcn.0043ce50
mov ecx, dword [0x4c08f4]
push 0
push 2
push ebx
call fcn.0043d070
mov ecx, dword [0x4c087c]
push ebp
call fcn.00442fd0
test eax, eax
je 0x4153dd
cmp dword [esi + 0x270], 0
je 0x4153dd
mov dword [esi + 0x278], ebp
cmp dword [esi + 0x290], 0
jne 0x41542c
mov ecx, dword [0x4c087c]
push ebp
call fcn.00442ab0
cmp eax, ebp
jge 0x41542c
mov ecx, dword [0x4c087c]
push 7
call fcn.00442fd0
test eax, eax
jne 0x415418
mov ecx, dword [0x4c087c]
push 7
call fcn.00442b00
test eax, eax
je 0x415421
cmp dword [esi + 0x270], 0
je 0x41542c
mov dword [esi + 0x240], ebp
jmp 0x4154c4
cmp dword [esi + 0x290], 0
mov dword [esi + 0x240], 2
jne 0x41544e
mov ecx, dword [0x4c087c]
call fcn.00442f80
test eax, eax
je 0x4154c4
cmp dword [esp + 0x34], 0
jne 0x4154ac
cmp dword [edi + 0x3b8], 0
jne 0x4154ac
mov eax, dword [esi + 0x30]
test eax, eax
je 0x415480
mov ecx, dword [0x4c08ec]
push 0
push ebp
push eax
call fcn.0040ca20
mov ecx, dword [0x4c08f4]
push eax
call fcn.0043d070
cmp byte [esi + 0x13c], 0
lea ebx, [esi + 0x13c]
je 0x4154ac
mov ecx, dword [0x4c08f4]
push 2
call fcn.0043ce50
mov ecx, dword [0x4c08f4]
push 0
push 2
push ebx
call fcn.0043d070
mov al, byte [esi + 0x10]
test al, al
je 0x4154c4
cmp al, 0x2d
je 0x4154c4
cmp dword [edi + 0x3b8], 0
je 0x415de3
cmp dword [esi + 0x298], 0
jne 0x4154de
cmp dword [esp + 0x68], 0
je 0x4154de
mov dword [esi + 0x240], 0x63
mov dword [esp + 0x68], ebp
cmp dword [esi + 0x288], 0
mov dword [esp + 0x6c], ebp
je 0x415542
cmp dword [esi + 0x240], 1
jne 0x415542
mov dword [esi + 0x288], 0
jmp 0x415542
cmp ecx, 0xffffffff
jne 0x41550d
cmp edx, ecx
je 0x415517
mov dword [esi + 0x240], 0x63
cmp dword [esi + 0x288], 0
je 0x415542
mov al, byte [esi + 0x10]
mov dword [esi + 0x288], 0
test al, al
je 0x415542
cmp al, 0x2d
je 0x415542
cmp dword [edi + 0x3b8], 0
je 0x415e5c
cmp dword [edi + 0x6c], 0
je 0x415d3e
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x68]
mov ebp, dword [ecx]
mov edi, dword [eax + 0x50]
mov dword [esp + 0x80], ebp
mov dword [esp + 0x7c], edi
mov ebx, dword [eax + 0x68]
mov eax, dword [eax + 0x50]
mov edx, 0x63
test edi, edi
je 0x415576
cmp edi, eax
je 0x415580
call fcn.0045b262
mov edx, 0x63
cmp ebp, ebx
je 0x415d3e
xor ecx, ecx
cmp edi, ecx
jne 0x4155eb
call fcn.0045b262
xor edi, edi
xor ecx, ecx
lea edx, [edi + 0x63]
cmp ebp, dword [edi + 0x18]
jne 0x4155a9
call fcn.0045b262
xor ecx, ecx
lea edx, [ecx + 0x63]
mov edi, dword [ebp + 0x10]
mov eax, dword [esp + 0x20]
cmp dword [edi + 0x28], eax
jne 0x415d21
cmp dword [esi + 0x298], ecx
je 0x4155c8
mov dword [edi + 0x38], 1
mov dword [edi + 0x3c], ecx
mov ebx, 1
cmp dword [esi + 0x278], ecx
je 0x4155db
mov dword [edi + 0x3c], ebx
mov eax, dword [edi + 0x2c]
cmp dword [esi + 0x240], eax
jne 0x4155ef
mov dword [edi + 0x34], ebx
jmp 0x4155f2
mov edi, dword [edi]
jmp 0x41559a
mov dword [edi + 0x34], ecx
cmp dword [esi + 0x280], ecx
je 0x415631
cmp eax, 2
jne 0x41561d
mov edx, dword [esi + 0x284]
mov ebp, dword [0x4c08ec]
xor ebx, ebx
cmp dword [ebp + edx*4 + 0x44e8], ecx
lea edx, [eax + 0x61]
setne bl
mov dword [edi + 0x34], ebx
mov ebx, 1
cmp eax, ebx
jne 0x415631
cmp dword [esi + 0x240], edx
je 0x415631
mov dword [edi + 0x34], ebx
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x3c8], ecx
je 0x4156c3
cmp dword [esp + 0x90], edx
jne 0x41567f
mov eax, dword [esi + 0x240]
cmp eax, ebx
je 0x415659
cmp eax, 2
jne 0x4156c3
mov ecx, dword [edi]
call fcn.00445c70
fld dword [0x48c5d8]
mov ecx, dword [edi]
sub esp, 8
fst dword [esp + 4]
fstp dword [esp]
call fcn.004443c0
fld dword [0x48c5dc]
jmp 0x4156ab
cmp dword [esi + 0x240], edx
jne 0x4156c3
mov ecx, dword [edi]
call fcn.00445c70
fld dword [0x48c5dc]
mov ecx, dword [edi]
sub esp, 8
fst dword [esp + 4]
fstp dword [esp]
call fcn.004443c0
fld dword [0x48c5d8]
push 0xffffffffffffffff
push 0
push 0xf
push ecx
mov ecx, dword [edi]
fstp dword [esp]
call fcn.004478e0
mov edx, 0x63
xor ecx, ecx
mov eax, dword [edi + 0x2c]
cmp eax, 0x64
jl 0x4156e3
mov dword [edi + 0x34], ebx
jne 0x4156d3
mov dword [edi + 0x34], ebx
cmp eax, 0x64
jne 0x4156e3
cmp dword [esi + 0x240], edx
je 0x4156e3
mov dword [edi + 0x34], ecx
cmp eax, 0x65
jne 0x4156f3
cmp dword [esi + 0x240], edx
jne 0x4156f3
mov dword [edi + 0x34], ecx
cmp eax, 0x66
jne 0x415703
cmp dword [esi + 0x240], edx
jne 0x415703
mov dword [edi + 0x34], ecx
cmp eax, 0x68
jne 0x415713
cmp dword [esi + 0x240], edx
jne 0x415713
mov dword [edi + 0x34], ecx
cmp eax, 3
jne 0x415727
xor ecx, ecx
cmp dword [esi + 0x240], 2
sete cl
mov dword [edi + 0x34], ecx
cmp dword [esi + 0x240], edx
je 0x415a28
cmp eax, 0x69
jl 0x415a28
mov ecx, dword [0x4c087c]
push 5
call fcn.00442b00
test eax, eax
jne 0x415762
mov ecx, dword [0x4c087c]
push 5
call fcn.00442ae0
test eax, eax
je 0x41586b
mov ecx, dword [0x4c087c]
push 5
call fcn.00442e40
mov eax, dword [esi + 0x248]
cdq
mov ecx, 0x3e8
idiv ecx
mov ecx, dword [0x4c08ec]
push edx
push eax
call fcn.0040ccd0
test eax, eax
je 0x4157d4
mov eax, dword [esi + 0x248]
cdq
mov ecx, 0x3e8
idiv ecx
mov ebp, 0x3e8
mov ebx, eax
mov eax, dword [esi + 0x248]
mov ecx, edx
cdq
idiv ebp
push ecx
mov ecx, dword [0x4c08ec]
push ebx
mov ebp, edx
mov dword [esp + 0x34], eax
call fcn.0040ccd0
mov edx, dword [esp + 0x2c]
mov ecx, dword [0x4c08ec]
dec eax
push eax
push ebp
push edx
call fcn.0040d2c0
cmp dword [esp + 0x34], 0
mov ebp, dword [esp + 0x14]
jne 0x415837
cmp dword [ebp + 0x3b8], 0
jne 0x415837
mov eax, dword [esi + 0x30]
test eax, eax
je 0x41580b
mov ecx, dword [0x4c08ec]
push 0
push 1
push eax
call fcn.0040ca20
mov ecx, dword [0x4c08f4]
push eax
call fcn.0043d070
cmp byte [esi + 0x13c], 0
lea ebx, [esi + 0x13c]
je 0x415837
mov ecx, dword [0x4c08f4]
push 2
call fcn.0043ce50
mov ecx, dword [0x4c08f4]
push 0
push 2
push ebx
call fcn.0043d070
mov al, byte [esi + 0x10]
test al, al
je 0x415860
cmp al, 0x2d
je 0x415860
cmp dword [ebp + 0x3b8], 0
jne 0x415860
mov ecx, dword [0x4c087c]
push 5
call fcn.00442ae0
test eax, eax
je 0x415ebc
mov ebx, 1
mov dword [esp + 0x2c], ebx
jmp 0x41586f
mov ebp, dword [esp + 0x14]
mov ecx, dword [0x4c087c]
push 6
call fcn.00442b00
test eax, eax
jne 0x415895
mov ecx, dword [0x4c087c]
push 6
call fcn.00442ae0
test eax, eax
je 0x4159a3
mov ecx, dword [0x4c087c]
push 6
call fcn.00442e40
mov eax, dword [esi + 0x248]
cdq
mov ecx, 0x3e8
idiv ecx
mov ecx, dword [0x4c08ec]
push edx
push eax
call fcn.0040ccd0
mov edx, dword [esi + 0x258]
sub edx, ebx
cmp eax, edx
je 0x415913
mov eax, dword [esi + 0x248]
cdq
mov ecx, 0x3e8
idiv ecx
mov ebx, 0x3e8
mov ebp, eax
mov eax, dword [esi + 0x248]
mov ecx, edx
cdq
idiv ebx
push ecx
mov ecx, dword [0x4c08ec]
push ebp
mov ebx, edx
mov dword [esp + 0x34], eax
call fcn.0040ccd0
mov edx, dword [esp + 0x2c]
mov ecx, dword [0x4c08ec]
inc eax
push eax
push ebx
push edx
call fcn.0040d2c0
mov ebp, dword [esp + 0x14]
cmp dword [esp + 0x34], 0
jne 0x415972
cmp dword [ebp + 0x3b8], 0
jne 0x415972
mov eax, dword [esi + 0x30]
test eax, eax
je 0x415946
mov ecx, dword [0x4c08ec]
push 0
push 1
push eax
call fcn.0040ca20
mov ecx, dword [0x4c08f4]
push eax
call fcn.0043d070
cmp byte [esi + 0x13c], 0
lea ebx, [esi + 0x13c]
je 0x415972
mov ecx, dword [0x4c08f4]
push 2
call fcn.0043ce50
mov ecx, dword [0x4c08f4]
push 0
push 2
push ebx
call fcn.0043d070
mov al, byte [esi + 0x10]
test al, al
je 0x41599b
cmp al, 0x2d
je 0x41599b
cmp dword [ebp + 0x3b8], 0
jne 0x41599b
mov ecx, dword [0x4c087c]
push 6
call fcn.00442ae0
test eax, eax
je 0x415f53
mov dword [esp + 0x2c], 1
mov eax, dword [esi + 0x248]
cdq
mov ecx, 0x3e8
idiv ecx
mov ecx, dword [esi + 0x258]
lea ebx, [ecx - 1]
mov ecx, dword [0x4c08ec]
mov dword [esp + 0x24], ebx
push edx
push eax
call fcn.0040ccd0
cmp eax, ebx
mov ebx, dword [edi + 0xc]
mov dword [esp + 0x28], ebx
jl 0x4159e2
fld dword [esi + 0x244]
fimul dword [esp + 0x24]
jmp 0x415a0b
mov eax, dword [esi + 0x248]
cdq
mov ecx, 0x3e8
idiv ecx
mov ecx, dword [0x4c08ec]
push edx
push eax
call fcn.0040ccd0
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fmul dword [esi + 0x244]
fiadd dword [esp + 0x28]
call fcn.0045b7b0
mov edx, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
push edx
push eax
push ecx
mov ecx, dword [edi]
push ebx
mov dword [edi + 0x14], eax
call fcn.00444340
cmp dword [esi + 0x240], 2
jne 0x415bee
cmp dword [edi + 0x2c], 0x69
jl 0x415bee
mov ecx, dword [0x4c087c]
push 7
call fcn.00442b00
test eax, eax
jne 0x415bee
mov ecx, dword [0x4c087c]
push 7
call fcn.00442fd0
test eax, eax
jne 0x415bee
mov eax, dword [esi + 0x264]
mov ecx, dword [esi + 0x24c]
lea edx, [ecx + eax]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x38]
cmp edx, eax
mov dword [esp + 0x28], ecx
jl 0x415a9c
mov eax, dword [esi + 0x248]
cdq
mov ecx, 0x3e8
idiv ecx
push 0
push edx
push eax
jmp 0x415b16
cmp dword [esi + 0x250], eax
jg 0x415abe
mov eax, dword [esi + 0x248]
cdq
mov ecx, 0x3e8
idiv ecx
mov ecx, dword [esi + 0x258]
dec ecx
push ecx
push edx
push eax
jmp 0x415b16
mov edx, dword [esi + 0x258]
fild dword [esp + 0x38]
dec edx
mov dword [esp + 0x24], edx
fild dword [esp + 0x24]
fmul dword [esi + 0x244]
fiadd dword [esp + 0x28]
fiadd dword [esp + 0x18]
fcompp
fnstsw ax
test ah, 0x41
jne 0x415b21
mov eax, dword [esi + 0x248]
cdq
mov ebx, 0x3e8
idiv ebx
mov ebp, eax
mov eax, dword [esp + 0x38]
sub eax, ecx
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
mov ebx, edx
fdiv dword [esi + 0x244]
call fcn.0045b7b0
push eax
push ebx
push ebp
mov ecx, dword [0x4c08ec]
call fcn.0040d2c0
cmp dword [esi + 0x28c], 0
je 0x415b58
mov eax, dword [esi + 0x248]
cdq
mov ecx, 0x3e8
idiv ecx
mov ecx, dword [0x4c08ec]
push edx
push eax
call fcn.0040ccd0
mov ecx, dword [0x4c08ec]
push eax
push 0xbb
push 0x63
call fcn.0040d2c0
mov eax, dword [esi + 0x248]
cdq
mov ecx, 0x3e8
idiv ecx
mov ecx, dword [esi + 0x258]
lea ebx, [ecx - 1]
mov ecx, dword [0x4c08ec]
mov dword [esp + 0x24], ebx
push edx
push eax
call fcn.0040ccd0
cmp eax, ebx
mov ebx, dword [edi + 0xc]
mov dword [esp + 0x28], ebx
jl 0x415b97
fld dword [esi + 0x244]
fimul dword [esp + 0x24]
jmp 0x415bc0
mov eax, dword [esi + 0x248]
cdq
mov ecx, 0x3e8
idiv ecx
mov ecx, dword [0x4c08ec]
push edx
push eax
call fcn.0040ccd0
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fmul dword [esi + 0x244]
fiadd dword [esp + 0x28]
call fcn.0045b7b0
mov edx, dword [edi + 0x18]
mov ecx, dword [edi + 0x10]
push edx
push eax
push ecx
mov ecx, dword [edi]
push ebx
mov dword [edi + 0x14], eax
call fcn.00444340
cmp dword [esp + 0x30], 0
je 0x415bee
mov dword [esi + 0x288], 1
mov eax, dword [edi + 0x2c]
cmp eax, 0x64
je 0x415bff
cmp eax, 0x65
jne 0x415d21
cmp dword [esi + 0x28c], 0
je 0x415c39
mov ecx, dword [0x4c08f4]
push 0
call fcn.0043b920
test eax, eax
je 0x415c39
mov ecx, dword [0x4c08f4]
push 0
call fcn.0043b9b0
mov ecx, dword [0x4c08ec]
push eax
push 0xbd
push 0x63
call fcn.0040d2c0
mov eax, dword [esi + 0x248]
cdq
mov ecx, 0x3e8
idiv ecx
mov ecx, dword [esi + 0x258]
lea ebx, [ecx - 1]
mov ecx, dword [0x4c08ec]
mov dword [esp + 0x24], ebx
push edx
push eax
call fcn.0040ccd0
cmp eax, ebx
jl 0x415c7e
fld dword [esi + 0x244]
fimul dword [esp + 0x24]
fiadd dword [esi + 0x24c]
call fcn.0045b7b0
mov ebx, eax
jmp 0x415ccf
mov eax, dword [esi + 0x248]
cdq
mov ecx, 0x3e8
idiv ecx
mov ecx, dword [0x4c08ec]
push edx
push eax
call fcn.0040ccd0
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fmul dword [esi + 0x244]
fiadd dword [esi + 0x24c]
call fcn.0045b7b0
mov ebx, eax
mov eax, dword [esi + 0x248]
cdq
mov ecx, 0x3e8
idiv ecx
mov ecx, dword [0x4c08ec]
push edx
push eax
call fcn.0040ccd0
mov ecx, dword [edi]
lea edx, [esp + 0x8c]
push edx
lea eax, [esp + 0xa0]
push eax
call fcn.004442c0
lea ecx, [esp + 0x58]
push ecx
mov ecx, dword [edi]
call fcn.00444360
fld dword [esp + 0x8c]
mov eax, dword [esp + 0x60]
sub eax, dword [esp + 0x58]
mov ecx, dword [edi]
cdq
sub eax, edx
sar eax, 1
sub esp, 8
sub ebx, eax
fstp dword [esp + 4]
mov dword [esp + 0x20], ebx
fild dword [esp + 0x20]
fstp dword [esp]
call fcn.00444260
lea ecx, [esp + 0x7c]
call fcn.00409780
mov ebp, dword [esp + 0x80]
mov edi, dword [esp + 0x7c]
mov eax, dword [esp + 0x14]
jmp 0x415563
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x8c], 0
je 0x415dc5
mov edx, dword [eax + 0x88]
mov ebp, dword [edx]
mov edi, dword [eax + 0x70]
mov dword [esp + 0x78], ebp
mov dword [esp + 0x74], edi
mov edi, edi
mov ebx, dword [eax + 0x88]
mov eax, dword [eax + 0x70]
test edi, edi
je 0x415d71
cmp edi, eax
je 0x415d76
call fcn.0045b262
cmp ebp, ebx
je 0x415dc5
test edi, edi
jne 0x415dc1
call fcn.0045b262
cmp ebp, dword [edi + 0x18]
jne 0x415d8d
call fcn.0045b262
mov eax, dword [ebp + 0x10]
mov ecx, dword [esp + 0x20]
cmp dword [eax + 0xc], ecx
jne 0x415daa
mov edx, dword [esi + 0x240]
xor ecx, ecx
cmp edx, dword [eax + 0x10]
sete cl
mov dword [eax + 0x14], ecx
lea ecx, [esp + 0x74]
call fcn.00409780
mov ebp, dword [esp + 0x78]
mov edi, dword [esp + 0x74]
mov eax, dword [esp + 0x14]
jmp 0x415d60
mov edi, dword [edi]
jmp 0x415d83
inc dword [esp + 0x10]
lea ecx, [esp + 0x40]
call fcn.00409780
mov edi, dword [esp + 0x44]
mov esi, dword [esp + 0x40]
mov ebx, dword [esp + 0x14]
jmp 0x415138
cmp dword [esi + 0x26c], 0
je 0x415def
mov dword [edi + 0x2c], ebp
lea eax, [esi + 0x10]
mov edx, edi
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, ebp
test cl, cl
jne 0x415df6
mov ebx, dword [esp + 0x10]
mov ecx, dword [0x4c08ec]
push ebx
push 0xf5
push 0x63
call fcn.0040d2c0
mov dword [edi + 0x39c], 0
mov ecx, dword [0x4c087c]
push ebp
call fcn.00442ab0
cmp eax, ebp
jl 0x415e38
mov dword [edi + 0x39c], ebp
fldz
fcomp dword [esi + 0x244]
fnstsw ax
test ah, 0x44
jnp 0x415e4d
mov dword [edi + 0x3d0], ebp
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0x90
ret 4
cmp dword [esi + 0x26c], 0
je 0x415e6c
mov dword [edi + 0x2c], 1
lea eax, [esi + 0x10]
mov edx, edi
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x415e73
mov ebx, dword [esp + 0x10]
mov ecx, dword [0x4c08ec]
push ebx
push 0xf5
push 0x63
call fcn.0040d2c0
fldz
fcomp dword [esi + 0x244]
fnstsw ax
test ah, 0x44
jnp 0x415ead
mov dword [edi + 0x3d0], 1
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0x90
ret 4
cmp dword [esi + 0x28c], 0
je 0x415ef3
mov eax, dword [esi + 0x248]
cdq
mov ecx, 0x3e8
idiv ecx
mov ecx, dword [0x4c08ec]
push edx
push eax
call fcn.0040ccd0
mov ecx, dword [0x4c08ec]
push eax
push 0xbb
push 0x63
call fcn.0040d2c0
lea eax, [esi + 0x10]
mov edx, ebp
sub edx, eax
lea ebx, [ebx]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x415f00
mov edi, dword [esp + 0x10]
push edi
push 0xf5
mov dword [ebp + 0x39c], 0
mov ecx, dword [0x4c08ec]
push 0x63
call fcn.0040d2c0
fldz
fcomp dword [esi + 0x244]
fnstsw ax
test ah, 0x44
jnp 0x415f44
mov dword [ebp + 0x3d0], 1
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x90
ret 4
cmp dword [esi + 0x28c], 0
je 0x415f8a
mov eax, dword [esi + 0x248]
cdq
mov ecx, 0x3e8
idiv ecx
mov ecx, dword [0x4c08ec]
push edx
push eax
call fcn.0040ccd0
mov ecx, dword [0x4c08ec]
push eax
push 0xbb
push 0x63
call fcn.0040d2c0
lea eax, [esi + 0x10]
mov edx, ebp
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x415f91
jmp 0x415f0a
cmp dword [esp + 0x70], 0
je 0x416002
mov eax, dword [esp + 0x38]
test eax, eax
jle 0x416002
mov ecx, dword [esp + 0x3c]
test ecx, ecx
jle 0x416002
cmp dword [esp + 0x48], eax
jge 0x415fcf
cmp eax, dword [esp + 0x50]
jge 0x415fcf
cmp dword [esp + 0x4c], ecx
jge 0x415fcf
cmp ecx, dword [esp + 0x54]
jl 0x416002
push 0x63
push 0xf5
mov byte [ebx], 0
mov ecx, dword [0x4c08ec]
push 0x63
call fcn.0040d2c0
pop edi
pop esi
pop ebp
mov dword [ebx + 0x39c], 0
mov eax, 0x63
pop ebx
add esp, 0x90
ret 4
cmp dword [ebx + 0xcc], 0
je 0x416085
cmp dword [ebx + 0x3cc], 0
jne 0x416085
mov edx, dword [ebx + 0xc8]
mov ebp, dword [edx]
mov esi, dword [ebx + 0xb0]
mov dword [esp + 0x44], ebp
mov dword [esp + 0x40], esi
lea ebx, [ebx]
mov edi, dword [ebx + 0xc8]
mov eax, dword [ebx + 0xb0]
test esi, esi
je 0x416044
cmp esi, eax
je 0x416049
call fcn.0045b262
cmp ebp, edi
je 0x416085
test esi, esi
jne 0x416081
call fcn.0045b262
cmp ebp, dword [esi + 0x18]
jne 0x416060
call fcn.0045b262
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 0x11c]
call fcn.00441b30
lea ecx, [esp + 0x40]
call fcn.00409780
mov ebp, dword [esp + 0x44]
mov esi, dword [esp + 0x40]
jmp 0x416030
mov esi, dword [esi]
jmp 0x416056
cmp dword [ebx + 0x3b8], 0
jne 0x41630e
mov ecx, dword [0x4c087c]
push 3
call fcn.00443000
test eax, eax
jne 0x4160c3
mov ecx, dword [0x4c087c]
push 5
call fcn.00443000
test eax, eax
je 0x4161c9
cmp dword [esp + 0x2c], 0
jne 0x4161c9
add dword [ebx + 0x394], 0xffffffff
jns 0x4160d6
mov ecx, dword [ebx + 0x4c]
dec ecx
mov dword [ebx + 0x394], ecx
cmp dword [ebx + 0x4c], 0
mov edx, dword [ebx + 0x394]
mov dword [esp + 0x10], edx
je 0x4161b1
mov eax, dword [ebx + 0x48]
mov edi, dword [eax]
mov esi, dword [ebx + 0x30]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], esi
mov dword [esp + 0x20], 0
mov ebp, dword [ebx + 0x48]
mov eax, dword [ebx + 0x30]
test esi, esi
je 0x416110
cmp esi, eax
je 0x416115
call fcn.0045b262
cmp edi, ebp
je 0x4161b1
cmp dword [esp + 0x20], 0
je 0x41613c
mov ecx, dword [ebx + 0x48]
mov edi, dword [ecx]
mov esi, dword [ebx + 0x30]
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], 0
test esi, esi
jne 0x4161a9
call fcn.0045b262
xor eax, eax
cmp edi, dword [eax + 0x18]
jne 0x416151
call fcn.0045b262
mov ebp, dword [edi + 0xc]
test esi, esi
jne 0x4161ad
call fcn.0045b262
cmp edi, dword [esi + 0x18]
jne 0x416167
call fcn.0045b262
mov edi, dword [edi + 0x10]
cmp ebp, dword [esp + 0x10]
jne 0x416193
mov al, byte [edi + 0x10]
test al, al
je 0x41617b
cmp al, 0x2d
jne 0x4161b1
mov ecx, 1
sub dword [esp + 0x10], ecx
jns 0x41618f
mov eax, dword [ebx + 0x4c]
sub eax, ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0x18]
call fcn.00409780
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
jmp 0x416102
mov eax, dword [esi]
jmp 0x416147
mov esi, dword [esi]
jmp 0x41615d
mov eax, dword [esp + 0x10]
mov dword [ebx + 0x394], eax
test eax, eax
jge 0x4161c9
mov edx, dword [ebx + 0x4c]
dec edx
mov dword [ebx + 0x394], edx
mov ecx, dword [0x4c087c]
push 4
call fcn.00443000
test eax, eax
jne 0x4161fa
mov ecx, dword [0x4c087c]
push 6
call fcn.00443000
test eax, eax
je 0x41630e
cmp dword [esp + 0x2c], 0
jne 0x41630e
inc dword [ebx + 0x394]
mov ecx, dword [ebx + 0x394]
mov eax, dword [ebx + 0x4c]
cmp ecx, eax
jl 0x416217
mov dword [ebx + 0x394], 0
mov ecx, dword [ebx + 0x394]
mov dword [esp + 0x10], ecx
test eax, eax
je 0x416304
mov edx, dword [ebx + 0x48]
mov edi, dword [edx]
mov esi, dword [ebx + 0x30]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], esi
mov dword [esp + 0x20], 0
mov ebp, dword [ebx + 0x48]
mov eax, dword [ebx + 0x30]
test esi, esi
je 0x41624f
cmp esi, eax
je 0x416254
call fcn.0045b262
cmp edi, ebp
je 0x416304
cmp dword [esp + 0x20], 0
je 0x41627b
mov eax, dword [ebx + 0x48]
mov edi, dword [eax]
mov esi, dword [ebx + 0x30]
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], 0
test esi, esi
jne 0x4162fc
call fcn.0045b262
xor eax, eax
cmp edi, dword [eax + 0x18]
jne 0x416290
call fcn.0045b262
mov ebp, dword [edi + 0xc]
test esi, esi
jne 0x416300
call fcn.0045b262
cmp edi, dword [esi + 0x18]
jne 0x4162a6
call fcn.0045b262
mov ecx, dword [esp + 0x10]
mov edi, dword [edi + 0x10]
cmp ebp, ecx
jne 0x4162e6
mov al, byte [edi + 0x10]
test al, al
je 0x4162bc
cmp al, 0x2d
jne 0x416304
inc ecx
cmp ecx, dword [ebx + 0x4c]
mov dword [esp + 0x10], ecx
jl 0x4162e6
mov ecx, dword [ebx + 0x48]
mov eax, dword [ecx]
mov ecx, dword [ebx + 0x30]
mov dword [esp + 0x10], 0
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], 1
lea ecx, [esp + 0x18]
call fcn.00409780
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
jmp 0x416241
mov eax, dword [esi]
jmp 0x416286
mov esi, dword [esi]
jmp 0x41629c
mov edx, dword [esp + 0x10]
mov dword [ebx + 0x394], edx
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x90
ret 4