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

Disassembly:
sub esp, 0x30
push ebx
push ebp
push esi
mov esi, ecx
push edi
or ebx, 0xffffffff
mov eax, dword [esi + 4]
xor edi, edi
xor ebp, ebp
mov dword [esp + 0x1c], edi
mov ecx, dword [eax + 0x78]
mov dword [esp + 0x10], ebp
cmp ecx, ebx
je 0x417a98
mov eax, dword [eax + 0xc]
push ecx
mov ecx, dword [eax + 0x8c]
call fcn.005ec820
mov ebp, eax
cmp ebp, edi
mov dword [esp + 0x10], ebp
je 0x417a98
push edi
mov ecx, ebp
call fcn.0046ea30
test eax, eax
je 0x417a90
cmp dword [ebp + 0xf4], 1
jne 0x417a98
mov dword [esp + 0x1c], 1
mov eax, dword [esi + 0x34]
mov dword [esp + 0x14], edi
cmp eax, ebx
jle 0x417ab9
mov ecx, dword [esi + 4]
push eax
mov edx, dword [ecx + 0xc]
mov ecx, dword [edx + 0x8c]
call fcn.005ebae0
mov dword [esp + 0x14], eax
mov edi, dword [esp + 0x44]
mov eax, dword [edi + 8]
add eax, 0xfffffe0c
cmp eax, 0xc7
ja case.0x417ad8.510
xor ecx, ecx
mov cl, byte [eax + 0x4187b0]
jmp dword [ecx*4 + 0x418784]
mov ecx, dword [esi + 0xa0]
xor eax, eax
test ecx, ecx
jle 0x417b0b
mov edx, dword [esi + 0xa8]
cmp eax, edx
jge 0x417b0b
mov ebx, dword [esi + 0x9c]
mov ebx, dword [ebx + eax*4]
cmp ebx, dword [edi]
je 0x417c14
inc eax
cmp eax, ecx
jl 0x417af1
mov dword [esp + 0x18], 0
mov edx, dword [esi]
push edi
mov ecx, esi
call dword [edx + 0x1c]
push edi
mov ecx, esi
call fcn.00413570
mov eax, dword [esi + 4]
mov ebx, dword [edi]
push 0
push 0
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 4]
push ebx
push 0x201
mov edx, dword [ecx]
push eax
push eax
call dword [edx + 0x11c]
mov ecx, dword [esi + 0xa0]
mov ebx, dword [edi]
xor eax, eax
mov dword [esp + 0x44], ebx
test ecx, ecx
jle 0x417b77
mov edx, dword [esi + 0xa8]
cmp eax, edx
jge 0x417b77
mov ebp, dword [esi + 0x9c]
cmp dword [ebp + eax*4], ebx
je 0x417c21
mov ebp, dword [esp + 0x10]
inc eax
cmp eax, ecx
jl 0x417b5a
mov edx, dword [esi + 0xa8]
lea eax, [edx - 1]
cmp ecx, eax
jle 0x417bf6
lea eax, [ecx + 1]
cmp eax, edx
jl 0x417b92
lea ebx, [edx + 0x20]
cmp ebx, eax
jg 0x417b94
mov ebx, eax
lea ecx, [ebx*4]
push ecx
call fcn.005faa3d
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x417bee
mov ecx, dword [esi + 0xa8]
xor eax, eax
test ecx, ecx
jle 0x417bd3
cmp eax, ebx
jge 0x417bd3
mov edx, dword [esi + 0x9c]
inc eax
mov ecx, dword [edx + eax*4 - 4]
mov dword [ebp + eax*4 - 4], ecx
mov ecx, dword [esi + 0xa8]
cmp eax, ecx
jl 0x417bb6
mov edx, dword [esi + 0x9c]
push edx
call fcn.005faa32
add esp, 4
mov dword [esi + 0x9c], ebp
mov dword [esi + 0xa8], ebx
mov ebx, dword [esp + 0x44]
mov ebp, dword [esp + 0x10]
mov eax, dword [esi + 0xa0]
mov ecx, dword [esi + 0x9c]
mov dword [ecx + eax*4], ebx
mov eax, dword [esi + 0xa0]
inc eax
mov dword [esi + 0xa0], eax
jmp 0x417c25
mov dword [esp + 0x18], 1
jmp 0x417b13
mov ebp, dword [esp + 0x10]
mov ecx, dword [esi + 4]
push 1
mov edx, dword [ecx]
call dword [edx + 0x108]
mov eax, dword [edi + 0x10]
test eax, eax
jg 0x417c73
mov eax, dword [esi + 4]
mov edi, dword [edi]
push 0
push 0
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 4]
push edi
push 0x209
mov edx, dword [ecx]
push eax
push eax
call dword [edx + 0x11c]
mov eax, dword [esp + 0x48]
mov ecx, esi
push eax
call fcn.00419700
mov eax, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret 8
mov ecx, dword [edi]
push ecx
mov ecx, esi
call fcn.00419790
mov ebx, eax
test ebx, ebx
mov dword [esp + 0x44], ebx
je case.0x417ad8.501
mov edx, dword [esi + 4]
mov ecx, dword [edx + 0xc]
mov edx, dword [ebx + 0xc]
mov edx, dword [edx + 0x9c]
mov eax, dword [ecx]
push edx
call dword [eax + 0x1c]
cmp eax, 1
je case.0x417ad8.501
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x417cd9
mov eax, dword [esi + 4]
mov ecx, dword [eax + 0xc]
call fcn.004ab260
test eax, eax
jne 0x417cd9
mov eax, dword [edi]
mov ecx, dword [esi + 0x34]
cmp ecx, eax
je 0x417cd9
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x417cd9
push eax
mov ecx, esi
call fcn.00417250
cmp dword [esi + 0x30], 0x258
jne 0x417cef
mov ecx, dword [esi + 0x34]
mov eax, dword [edi]
cmp ecx, eax
je case.0x417ad8.501
mov eax, dword [esi + 0x28]
cmp eax, 0xffffffff
je 0x417d11
cmp eax, 0x2c7
je 0x417d11
mov edx, dword [esi + 4]
mov ecx, dword [edx + 0xc]
call fcn.004ab260
test eax, eax
je case.0x417ad8.501
test ebp, ebp
je 0x417d35
mov eax, dword [esi + 4]
mov ecx, dword [eax + 0xc]
call fcn.004ab260
test eax, eax
jne 0x417d35
push 1
mov ecx, ebp
call fcn.0046ea30
test eax, eax
je case.0x417ad8.501
mov ecx, dword [esi + 4]
mov ecx, dword [ecx + 0xc]
call fcn.004ab260
cmp eax, 1
jne 0x417d5f
cmp dword [esi + 0x28], 0x2c1
jne 0x417d5f
mov edx, dword [ebx + 0xc]
mov eax, dword [edx + 0x9c]
test eax, eax
jne case.0x417ad8.501
mov eax, dword [edi]
or ebx, 0xffffffff
mov dword [esp + 0x20], eax
mov eax, dword [esi + 0x18c]
cmp eax, ebx
jne 0x417dd6
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x417d93
mov eax, dword [ecx]
push 0
push 1
lea edx, [esp + 0x28]
push 1
push edx
push 0
push 0
push 0
lea edx, [esp + 0x44]
jmp 0x417dad
mov ecx, dword [esi + 4]
push 0
push 1
lea edx, [esp + 0x28]
mov eax, dword [ecx]
push 1
push edx
push 0
push 0
push 0
lea edx, [esp + 0x50]
push edx
call dword [eax + 0x23c]
mov edx, dword [eax]
sub esp, 0xc
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
mov dword [ecx + 8], eax
mov ecx, esi
call fcn.00413800
mov dword [esi + 0x18c], eax
mov eax, dword [esi + 0x18c]
cmp eax, ebx
jne 0x417e2a
cmp dword [esi + 0x34], ebx
jne 0x417e2a
cmp dword [esi + 0x28], ebx
jne 0x417e2a
cmp dword [esi + 0x30], ebx
jne 0x417e2a
mov ecx, dword [esi + 4]
mov edx, dword [ecx]
call dword [edx + 0x118]
fcomp dword [0x61c9a0]
fnstsw ax
test ah, 1
jne case.0x417ad8.501
mov eax, dword [esi]
push ebx
push 1
mov ecx, esi
call dword [eax + 0xa0]
dec eax
neg eax
sbb eax, eax
add eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret 8
cmp eax, dword [edi]
jne case.0x417ad8.501
mov ecx, dword [esi + 4]
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
mov ebp, dword [ecx]
push 0
call dword [ebp + 0x128]
push ecx
mov ecx, dword [edi]
fstp dword [esp]
push ecx
mov ecx, dword [esi + 4]
call dword [ebp + 0x1bc]
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x18], eax
test ebp, ebp
jne 0x417e97
cmp eax, 1
jne 0x417e71
cmp dword [esi + 0x28], 0x2c7
jne 0x417edb
jmp 0x417ed4
cmp dword [esi + 0x30], 0x262
je 0x417e88
mov edx, dword [esi]
push 0xffffffffffffffff
push 1
mov ecx, esi
call dword [edx + 0xa0]
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret 8
test eax, eax
je case.0x417ad8.501
mov eax, dword [ebp + 8]
mov ebx, 0x34
mov ax, word [eax + 0x16]
cmp ax, 3
je 0x417ebc
cmp ax, 0x1b
je 0x417ebc
cmp ax, bx
jne 0x417f02
mov ecx, dword [esi + 4]
mov ecx, dword [ecx + 0xc]
call fcn.004ab260
test eax, eax
jne 0x417f02
cmp dword [esi + 0x28], 0x2c7
jne 0x417edb
mov ecx, esi
call fcn.00419820
mov eax, dword [edi]
mov edx, dword [esi]
push 1
push eax
mov ecx, esi
call dword [edx + 0x58]
cmp eax, 1
jne 0x417ef3
mov dword [esi + 0x28], 0xffffffff
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret 8
mov ecx, dword [esi + 4]
mov ecx, dword [ecx + 0xc]
call fcn.004ab260
cmp eax, 1
jne case.0x417ad8.501
mov eax, dword [ebp + 8]
cmp word [eax + 0x10], 0x114
je case.0x417ad8.501
cmp word [eax + 0x16], bx
jne 0x417f3c
mov edx, dword [esp + 0x44]
mov eax, dword [edx + 8]
cmp word [eax + 0x16], bx
je case.0x417ad8.501
mov ecx, dword [esp + 0x44]
mov eax, dword [ecx + 8]
cmp byte [eax + 4], 0x3c
je case.0x417ad8.501
cmp word [eax + 0x16], bx
jne 0x417f73
mov edx, dword [esi + 4]
mov eax, dword [edx + 8]
mov ax, word [eax + 0x16]
cmp ax, 0xd
je 0x417f73
cmp ax, 0x36
je 0x417f73
cmp ax, 0x16
jne case.0x417ad8.501
mov ecx, ebp
call fcn.0052c570
test eax, eax
je 0x417fa1
mov ecx, ebp
call fcn.0052c570
mov ecx, dword [esi + 4]
mov edx, dword [eax]
push 1
mov ecx, dword [ecx + 4]
push ecx
mov ecx, eax
call dword [edx + 0xc0]
test eax, eax
mov byte [esp + 0x48], 1
jne 0x417fa6
mov byte [esp + 0x48], 0
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 0x124]
fcomp dword [0x61b584]
fnstsw ax
test ah, 0x40
jne 0x417fd7
mov ecx, dword [esi + 4]
push ebp
mov eax, dword [ecx]
call dword [eax + 0x120]
fcomp dword [0x61b584]
fnstsw ax
test ah, 0x40
je 0x41800e
mov al, byte [esp + 0x48]
test al, al
jne 0x41800e
cmp dword [esp + 0x18], 1
jne 0x41800e
cmp dword [esi + 0x28], 0x2c7
jne 0x417ff6
mov ecx, esi
call fcn.00419820
mov eax, dword [edi]
mov edx, dword [esi]
push 1
push eax
mov ecx, esi
call dword [edx + 0x58]
cmp eax, 1
jne 0x41800e
mov dword [esi + 0x28], 0xffffffff
mov eax, dword [esi + 4]
mov edx, dword [ebp]
push eax
mov ecx, ebp
call dword [edx + 0x120]
fcom dword [0x61b584]
fnstsw ax
test ah, 0x41
jne 0x418037
fld dword [ebp + 0x30]
fdiv st(1)
fstp dword [esp + 0x1c]
fstp st(0)
jmp 0x418041
fstp st(0)
mov dword [esp + 0x1c], 0x46c35000
mov ebx, dword [esp + 0x44]
mov ecx, ebx
call fcn.0052c570
test eax, eax
je 0x418072
mov ecx, ebx
call fcn.0052c570
mov ecx, dword [esi + 4]
mov edx, dword [eax]
push 1
mov ecx, dword [ecx + 4]
push ecx
mov ecx, eax
call dword [edx + 0xc0]
test eax, eax
je 0x418072
mov bl, 1
jmp 0x418074
xor bl, bl
mov ebp, dword [esp + 0x44]
mov eax, dword [esi + 4]
push eax
mov ecx, ebp
mov edx, dword [ebp]
call dword [edx + 0x120]
fcom dword [0x61b584]
fnstsw ax
test ah, 0x41
jne 0x418099
fdivr dword [ebp + 0x30]
jmp 0x4180a1
fstp st(0)
fld dword [0x61c9b4]
mov al, byte [esp + 0x48]
test al, al
jne 0x418770
fcomp dword [esp + 0x1c]
fnstsw ax
test ah, 1
jne 0x4180c0
test bl, bl
je case.0x417ad8.501
cmp dword [esp + 0x18], 1
jne case.0x417ad8.501
cmp dword [esi + 0x28], 0x2c7
jne 0x4180db
mov ecx, esi
call fcn.00419820
mov eax, dword [edi]
mov edx, dword [esi]
push 1
push eax
mov ecx, esi
call dword [edx + 0x58]
cmp eax, 1
jne case.0x417ad8.501
mov dword [esi + 0x28], 0xffffffff
mov eax, 2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret 8
mov eax, dword [esi + 0x28]
cmp eax, ebx
jne 0x418119
test ebp, ebp
je 0x41812e
cmp dword [ebp + 0x33c], ebx
je 0x41812e
mov ecx, dword [esi + 4]
mov edx, dword [ecx + 0x38]
mov dword [esi + 0x16c], edx
mov ecx, dword [ecx + 0x3c]
mov dword [esi + 0x170], ecx
cmp eax, 0x2bc
mov edx, 0x258
jne 0x418187
cmp dword [edi + 0xc], edx
jne 0x418187
mov edx, dword [esi]
push 0
mov ecx, esi
call dword [edx + 0xd8]
cmp eax, 6
jne 0x41815f
mov eax, 0xd
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret 8
cmp eax, 5
jne case.0x417ad8.501
mov ecx, esi
call fcn.00416d20
mov eax, dword [esi]
push 0
mov ecx, esi
call dword [eax + 0x54]
mov eax, 2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret 8
cmp eax, ebx
je 0x4181a0
mov ecx, dword [esi + 0x30]
mov ebp, dword [edi + 0xc]
cmp ecx, ebp
jne 0x41819c
add ecx, 0x64
cmp ecx, eax
je 0x4181e7
cmp eax, ebx
jne 0x4181aa
mov ecx, dword [esi + 0x30]
mov ebp, dword [edi + 0xc]
cmp ecx, ebp
je 0x4181e7
cmp eax, 0x2d4
mov ecx, 0x262
jne 0x4181bb
cmp dword [edi + 0xc], ecx
je 0x418168
cmp eax, 0x2bd
jne 0x4181de
cmp dword [edi + 0xc], ecx
jne 0x4181de
push ebx
mov ecx, esi
call fcn.00412be0
mov eax, 2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret 8
cmp dword [edi + 0xc], edx
jne case.0x417ad8.501
mov ecx, esi
call fcn.00416d20
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx + 0x54]
mov eax, 2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret 8
cmp dword [esi + 0x28], 0x2da
jne 0x41822d
mov eax, dword [esi + 4]
push 0
push 0
push 0
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 4]
push 0x211
push eax
mov edx, dword [ecx]
push eax
call dword [edx + 0x11c]
mov eax, dword [esi + 0x28]
cmp eax, ebx
jne 0x418240
test ebp, ebp
je 0x418255
cmp dword [ebp + 0x33c], ebx
je 0x418255
mov ecx, dword [esi + 4]
mov edx, dword [ecx + 0x38]
mov dword [esi + 0x16c], edx
mov ecx, dword [ecx + 0x3c]
mov dword [esi + 0x170], ecx
cmp eax, 0x2bc
mov edx, 0x258
je 0x41826a
cmp dword [esi + 0x30], edx
jne 0x4182f9
cmp dword [edi + 0xc], edx
jne 0x4182f9
mov edx, dword [esi]
push 0
mov ecx, esi
call dword [edx + 0xd8]
cmp eax, 5
jne 0x4182e1
mov eax, dword [esi + 4]
mov ecx, dword [eax + 0xc]
call fcn.004ab260
test eax, eax
je 0x4181e7
fld dword [esi + 0x48]
fadd dword [0x61c244]
mov edx, dword [esi + 0x40]
push 0
mov eax, dword [esi]
push 1
push ecx
mov ecx, dword [esi + 0x44]
fstp dword [esp]
push ecx
mov ecx, dword [esi + 0x3c]
push edx
push ecx
mov ecx, esi
call dword [eax + 0x8c]
test eax, eax
je 0x4181e7
mov eax, dword [esi + 0x28]
mov dword [esi + 0x28], ebx
mov dword [esi + 0x50], eax
mov dword [esi + 0x2c], ebx
mov eax, 2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret 8
cmp eax, 6
jne case.0x417ad8.501
mov eax, 0xd
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret 8
cmp eax, ebx
je 0x418332
mov ecx, dword [esi + 0x30]
add ecx, 0x64
cmp ecx, eax
jne 0x41832e
mov ecx, esi
call fcn.00416d20
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx + 0x54]
mov eax, dword [esi]
push edi
mov ecx, esi
call dword [eax + 0x1c]
mov eax, 2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret 8
cmp eax, ebx
jne 0x41833c
mov ecx, dword [esi + 0x30]
mov ebp, dword [edi + 0xc]
cmp ecx, ebp
je case.0x417ad8.510
cmp eax, 0x2d4
mov ecx, 0x262
jne 0x4183e8
cmp dword [edi + 0xc], ecx
jne 0x4183e8
mov ecx, esi
call fcn.00416d20
mov edx, dword [esi]
push 0
jmp 0x418312
mov eax, dword [esi + 0x28]
mov edx, 0x258
cmp eax, 0x2bc
jne 0x4183a3
cmp dword [edi + 0xc], edx
jne 0x4183a3
mov eax, dword [esi]
push 0
mov ecx, esi
call dword [eax + 0xd8]
cmp eax, 5
jne case.0x417ad8.501
mov ecx, dword [esi + 4]
mov ecx, dword [ecx + 0xc]
call fcn.004ab260
test eax, eax
jne 0x418297
jmp 0x4181e7
cmp eax, ebx
je 0x4183b9
mov ecx, dword [esi + 0x30]
add ecx, 0x64
cmp ecx, eax
je case.0x417ad8.510
cmp eax, ebx
jne 0x4183c7
mov ecx, dword [esi + 0x30]
mov ebp, dword [edi + 0xc]
cmp ecx, ebp
je case.0x417ad8.510
cmp eax, 0x2d4
mov ecx, 0x262
jne 0x4183e8
cmp dword [edi + 0xc], ecx
jne 0x4183e8
mov ecx, esi
call fcn.00416d20
mov edx, dword [esi]
push 0
jmp 0x418312
cmp eax, 0x2bd
jne 0x4181de
cmp dword [edi + 0xc], ecx
jne 0x4181de
jmp 0x4181c7
mov ebp, dword [esi + 0x30]
cmp ebp, 0x25d
je 0x418490
cmp ebp, 0x26f
je 0x418490
cmp ebp, 0x276
je 0x418490
cmp ebp, 0x261
jne case.0x417ad8.501
mov ebp, dword [esi + 0x38]
cmp ebp, 0xffffffff
jne 0x418437
mov ebp, dword [esi + 0x5c]
mov eax, dword [esi]
push ebp
mov ecx, esi
call dword [eax + 0xbc]
mov edx, dword [esi]
cmp eax, 0xffffffff
push 0
push 0xffffffffffffffff
je 0x418459
mov ecx, dword [edi + 0x14]
push ecx
push eax
mov ecx, esi
call dword [edx + 0x40]
jmp 0x418465
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xffffffffffffffff
push ebp
mov ecx, esi
call dword [edx + 0x3c]
cmp eax, 0xffffffff
je 0x41855a
mov edx, dword [esi]
push 1
push eax
mov ecx, esi
call dword [edx + 0x64]
cmp eax, 1
jne 0x41855a
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret 8
mov eax, dword [esi]
lea ecx, [esp + 0x48]
push 1
lea edx, [esp + 0x48]
push ecx
push edx
mov ecx, esi
call dword [eax + 0x44]
cmp eax, 1
jne 0x41851e
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
push eax
push ecx
mov ecx, esi
call fcn.004156b0
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 0x3c]
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x48]
push 1
mov dword [esp + 0x20], edx
mov edx, dword [esi]
push eax
push ecx
mov ecx, esi
call dword [edx + 0x7c]
test eax, eax
jne 0x4184f6
mov ecx, esi
call fcn.00416d20
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx + 0x54]
mov eax, dword [esi]
push edi
mov ecx, esi
call dword [eax + 0x1c]
cmp ebp, 0x276
mov dword [esi + 0x30], ebp
jne 0x41850f
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x40], edx
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret 8
cmp dword [esi + 0x28], 0x2da
jne 0x41855a
mov eax, dword [esi + 4]
push 0
push 0
push 0
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 4]
push 0x211
push eax
mov edx, dword [ecx]
push eax
call dword [edx + 0x11c]
mov eax, dword [esi + 4]
mov ecx, dword [eax + 0x38]
mov dword [esi + 0x16c], ecx
mov edx, dword [eax + 0x3c]
mov dword [esi + 0x170], edx
mov ecx, esi
call fcn.00416d20
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax + 0x54]
mov edx, dword [esi]
push edi
mov ecx, esi
call dword [edx + 0x1c]
mov eax, 2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret 8
mov ecx, dword [esi + 4]
mov eax, dword [ecx]
call dword [eax + 0x1b4]
mov ecx, esi
call fcn.00416d20
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx + 0x54]
mov eax, dword [esp + 0x48]
mov ecx, esi
push eax
call fcn.00419700
mov dword [esi + 0x10], 0
mov eax, 2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret 8
mov ecx, dword [esi + 4]
mov edx, dword [ecx]
call dword [edx + 0x1b4]
mov ecx, esi
call fcn.00416d20
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax + 0x54]
mov eax, 2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret 8
mov ecx, dword [esi + 0xa0]
mov ebx, dword [edi]
xor eax, eax
test ecx, ecx
jle 0x418614
mov edx, dword [esi + 0xa8]
cmp eax, edx
jge 0x418614
mov edi, dword [esi + 0x9c]
cmp dword [edi + eax*4], ebx
je 0x4186a7
inc eax
cmp eax, ecx
jl 0x4185fc
mov edx, dword [esi + 0xa8]
lea eax, [edx - 1]
cmp ecx, eax
jle 0x41868b
lea eax, [ecx + 1]
cmp eax, edx
jl 0x41862f
lea edi, [edx + 0x20]
cmp edi, eax
jg 0x418631
mov edi, eax
lea ecx, [edi*4]
push ecx
call fcn.005faa3d
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x41868b
mov ecx, dword [esi + 0xa8]
xor eax, eax
test ecx, ecx
jle 0x418670
cmp eax, edi
jge 0x418670
mov edx, dword [esi + 0x9c]
inc eax
mov ecx, dword [edx + eax*4 - 4]
mov dword [ebp + eax*4 - 4], ecx
mov ecx, dword [esi + 0xa8]
cmp eax, ecx
jl 0x418653
mov edx, dword [esi + 0x9c]
push edx
call fcn.005faa32
add esp, 4
mov dword [esi + 0x9c], ebp
mov dword [esi + 0xa8], edi
mov eax, dword [esi + 0xa0]
mov ecx, dword [esi + 0x9c]
mov dword [ecx + eax*4], ebx
mov eax, dword [esi + 0xa0]
inc eax
mov dword [esi + 0xa0], eax
mov esi, dword [esi + 4]
push 1
mov ecx, esi
mov edx, dword [esi]
call dword [edx + 0x108]
mov eax, 2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret 8
mov ecx, dword [esi + 0xa0]
xor eax, eax
test ecx, ecx
jle case.0x417ad8.501
mov edx, dword [esi + 0xa8]
cmp eax, edx
jge case.0x417ad8.501
mov ebx, dword [esi + 0x9c]
mov ebp, dword [edi]
mov ebx, dword [ebx + eax*4]
cmp ebx, ebp
je 0x418706
inc eax
cmp eax, ecx
jl 0x4186db
mov eax, 2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret 8
mov ecx, dword [esi + 0xa8]
mov edi, dword [edi]
xor eax, eax
test ecx, ecx
jle 0x418726
mov edx, dword [esi + 0x9c]
cmp dword [edx], edi
je 0x418726
inc eax
add edx, 4
cmp eax, ecx
jl 0x41871a
cmp eax, ecx
jge case.0x417ad8.501
dec ecx
cmp eax, ecx
jge 0x418748
mov ecx, dword [esi + 0x9c]
inc eax
mov edx, dword [ecx + eax*4]
mov dword [ecx + eax*4 - 4], edx
mov ecx, dword [esi + 0xa8]
dec ecx
cmp eax, ecx
jl 0x41872f
mov eax, dword [esi + 0xa0]
dec eax
mov dword [esi + 0xa0], eax
jns case.0x417ad8.501
mov dword [esi + 0xa0], 0
mov eax, 2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret 8
fstp st(0)
pop edi
pop esi
pop ebp
mov eax, 2
pop ebx
add esp, 0x30
ret 8