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

Disassembly:
push ebp
push edi
xor edi, edi
push esi
push ebx
mov ebx, edx
sub esp, 0x21c
mov ebp, dword [edx + 0x50]
mov dword [esp + 0x68], eax
mov eax, dword [edx + 0xc]
fld qword [esp + 0x230]
mov dword [esp + 0x58], ecx
mov eax, dword [eax + 0xb0]
fstp qword [esp + 0x20]
mov dword [esp + 0x5c], eax
mov eax, dword [edx + 0x108]
mov edx, dword [eax]
mov eax, dword [ebx + 8]
test eax, eax
js 0x417936
mov ecx, dword [0x7440bc]
mov edi, dword [ecx + eax*4]
mov dword [esp], edx
call fcn.0042c601
test edx, edx
jle 0x41797c
test eax, eax
jle 0x41797c
fild dword [ebp + 0x50]
mov dword [esp + 0x28], edx
fidivr dword [ebp + 0x4c]
fstp qword [esp + 0x78]
fld qword [esp + 0x78]
fild dword [esp + 0x28]
mov dword [esp + 0x28], eax
fidivr dword [esp + 0x28]
fstp qword [esp + 0x78]
fld qword [esp + 0x78]
fmulp st(1)
fld1
fdivrp st(1)
fstp qword [esp + 0x78]
fld qword [esp + 0x78]
jmp 0x41797e
fldz
test edi, edi
je 0x4179ef
mov eax, dword [edi + 4]
mov ecx, dword [eax + 0x1c]
lea edx, [ecx - 0x80000000]
or edx, dword [eax + 0x18]
je 0x4179ef
mov ecx, dword [eax + 0xc4]
lea edx, [ecx - 0x80000000]
or edx, dword [eax + 0xc0]
je 0x4179ef
mov eax, dword [ebx + 0x84]
test eax, eax
je 0x4179ef
fild dword [ebp + 0x50]
mov dword [esp + 0x28], eax
fidivr dword [ebp + 0x4c]
fstp qword [esp + 0x78]
fld qword [esp + 0x78]
fild dword [ebx + 0x88]
fidivr dword [esp + 0x28]
fstp qword [esp + 0x78]
fld qword [esp + 0x78]
fmulp st(1)
fld1
fdivrp st(1)
fld st(1)
fucompi st(1)
jbe 0x4179ed
fstp st(1)
fstp qword [esp + 0x78]
fld qword [esp + 0x78]
jmp 0x4179ef
fstp st(0)
cmp dword [ebx + 0x114], 0
jne 0x417a61
cmp dword [ebx + 0x110], 0
jne 0x417a61
cmp dword [esp + 0x58], 0
je 0x417a61
test edi, edi
je 0x417a61
mov eax, dword [edi + 4]
fild dword [eax + 0x14]
fidivr dword [eax + 0x10]
mov eax, dword [esp + 0x58]
fstp qword [esp + 0x78]
fld qword [esp + 0x78]
fild qword [eax + 0x150]
fstp qword [esp + 0x78]
fld qword [esp + 0x78]
fmulp st(1)
fild dword [ebp + 0x50]
fidivr dword [ebp + 0x4c]
fstp qword [esp + 0x78]
fld qword [esp + 0x78]
fdivp st(1)
fstp dword [esp + 0x74]
fld dword [esp + 0x74]
fistp dword [esp + 0x70]
mov eax, dword [esp + 0x70]
test eax, eax
jle 0x417a92
fstp st(0)
mov dword [esp + 0x28], eax
fild dword [esp + 0x28]
jmp 0x417a92
cmp dword [esp + 0x58], 0
jne 0x417a92
fstp st(0)
mov esi, dword [ebx + 0x78]
mov edx, dword [ebx + 0x7c]
mov eax, dword [ebx + 0x74]
mov edi, esi
cmp eax, edi
cmovg esi, eax
cmovg eax, edi
cmp eax, edx
cmovl eax, edx
cmp esi, eax
cmovg esi, eax
mov dword [esp + 0x20], esi
mov ecx, esi
jmp 0x417e1e
fild qword [ebx + 0x20]
mov esi, dword [0x6b501c]
cmp esi, 0xffffffff
fstp qword [esp + 0x78]
fld qword [esp + 0x78]
fld qword [esp + 0x20]
fsubrp st(1)
fstp qword [esp + 0x78]
fld qword [esp + 0x78]
fld st(0)
fld st(0)
fadd st(3)
fstp qword [esp + 0x78]
fld qword [esp + 0x78]
jne 0x417b86
fxch st(1)
fstp xword [esp + 0x40]
fxch st(2)
mov eax, dword [esp + 0x68]
mov esi, 2
mov eax, dword [eax]
mov edx, dword [eax + 8]
mov dword [esp + 4], 0x6c0964
fstp qword [esp + 0x50]
mov eax, dword [edx]
fstp qword [esp + 0x38]
mov dword [esp + 0x28], edx
fstp qword [esp + 0x30]
mov dword [esp], eax
call fcn.00697ef7
fld qword [esp + 0x30]
test eax, eax
fld qword [esp + 0x38]
fld qword [esp + 0x50]
fld xword [esp + 0x40]
je 0x417b32
mov edx, dword [esp + 0x28]
mov esi, 1
mov eax, dword [edx + 0x1c]
test ah, 4
je 0x417b32
and eax, 0x80
cmp eax, 1
sbb esi, esi
and esi, 2
test edi, edi
je 0x417b5c
cmp esi, 1
jne 0x417b5c
mov edx, dword [edi]
mov eax, dword [0x7440b4]
mov eax, dword [eax + edx*4]
mov edx, dword [eax]
cmp dword [edx + 0x18], 1
jne 0x417b61
mov edx, dword [eax + 0x2c]
or edx, dword [eax + 0x28]
mov esi, 0xfe
je 0x417b7c
jmp 0x417b61
cmp esi, 1
jne 0x417b82
fxch st(1)
fxch st(3)
cmp dword [0x74403c], 1
sbb esi, esi
and esi, 0xffffff03
add esi, 0xfe
jmp 0x417b86
fxch st(1)
fxch st(3)
jmp 0x417b86
fxch st(1)
fxch st(3)
cmp esi, 1
fldz
sete dl
cmp esi, 0xfe
sete al
or eax, edx
fucomi st(3)
movzx eax, al
mov dword [ebx + 0x8c], eax
jbe 0x417c1b
fxch st(1)
fucomi st(1)
fstp st(1)
jbe 0x417c21
test esi, esi
je 0x417c25
cmp esi, 0xff
je 0x417c29
fstp st(3)
fxch st(1)
fxch st(2)
fld xword [0x6c2350]
fxch st(1)
fstp qword [esp + 0x20]
fucompi st(1)
fstp st(0)
fchs
fstp qword [esp + 0xc]
jbe 0x417bea
mov dword [esp + 8], 0x6c0968
mov dword [esp + 4], 0x28
jmp 0x417bfa
mov dword [esp + 8], 0x6c0984
mov dword [esp + 4], 0x30
mov dword [esp], 0
call fcn.00647705
fld qword [esp + 0x20]
fild qword [ebx + 0x20]
fstp qword [esp + 0x20]
fld st(0)
fldz
fxch st(1)
fxch st(2)
jmp 0x417c2b
fstp st(0)
fstp st(1)
jmp 0x417c2b
fstp st(1)
jmp 0x417c2b
fstp st(1)
jmp 0x417c2b
fstp st(1)
cmp esi, 2
je 0x417d65
jg 0x417c52
fstp st(2)
fxch st(1)
test esi, esi
je 0x417d9c
dec esi
je 0x417cda
fstp st(0)
fstp st(0)
jmp 0x417dc7
cmp esi, 0xfe
je 0x417c71
fstp st(0)
fstp st(0)
fstp st(0)
cmp esi, 0xff
je 0x417da0
jmp 0x417dc7
fxch st(2)
cmp dword [ebx + 0x14], 0
fstp qword [esp + 0x28]
jne 0x417cd4
fld dword [0x6c235c]
fxch st(1)
fucomi st(1)
fstp st(1)
jb 0x417cd8
fstp st(1)
fstp dword [esp + 0x74]
mov dword [esp + 8], 0x6c09ad
mov dword [esp + 4], 0x30
mov dword [esp], 0
fld dword [esp + 0x74]
fistp dword [esp + 0xc]
call fcn.00647705
fld qword [esp + 0x20]
fistp dword [esp + 0x70]
mov eax, dword [esp + 0x70]
fld qword [esp + 0x28]
mov dword [ebx + 0x20], eax
sar eax, 0x1f
mov dword [ebx + 0x24], eax
fldz
fxch st(1)
jmp 0x417cda
fxch st(1)
jmp 0x417cda
fxch st(1)
fld dword [0x744054]
fldz
fxch st(1)
fucomi st(1)
fstp st(1)
jp 0x417cec
je 0x417cfc
fucompi st(1)
jbe 0x417cfe
cmp dword [ebx + 0x14], 0
jne 0x417e00
jmp 0x417cfe
fstp st(0)
fld st(0)
fld xword [0x6c2360]
fucompi st(1)
ja 0x417e06
fld xword [0x6c2370]
fxch st(1)
fucompi st(1)
fstp st(0)
jbe 0x417db7
fstp dword [esp + 0x74]
xor ecx, ecx
fld dword [esp + 0x74]
fistp dword [esp + 0x70]
mov eax, dword [esp + 0x70]
mov dword [esp + 0x20], eax
fld xword [0x6c2370]
fxch st(1)
fucomi st(1)
fstp st(1)
jbe 0x417e1c
fld xword [0x6c2380]
fsubp st(1)
fstp dword [esp + 0x74]
fld dword [esp + 0x74]
fistp dword [esp + 0x70]
mov ecx, dword [esp + 0x70]
jmp 0x417e1e
fstp st(1)
fstp st(1)
fld xword [0x6c2350]
fucompi st(1)
jae 0x417e0e
fld xword [0x6c2380]
fxch st(1)
fucompi st(1)
fstp st(0)
jbe 0x417dbb
fld qword [esp + 0x20]
fistp dword [esp + 0x70]
mov eax, dword [esp + 0x70]
mov dword [ebx + 0x20], eax
sar eax, 0x1f
mov dword [ebx + 0x24], eax
jmp 0x417dbb
fstp st(0)
fstp st(0)
fld qword [esp + 0x20]
fistp dword [esp + 0x70]
mov eax, dword [esp + 0x70]
mov dword [ebx + 0x20], eax
sar eax, 0x1f
mov dword [ebx + 0x24], eax
jmp 0x417dbb
fstp st(0)
fstp st(0)
xor ecx, ecx
mov dword [esp + 0x20], 1
jmp 0x417e1e
mov dword [esp + 0x14], 0x48b
mov dword [esp + 0x10], 0x6c09d0
mov dword [esp + 0xc], 0x6c09e1
mov dword [esp + 8], 0x6c09e3
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.00647705
call fcn.00697e77
fstp st(0)
fstp st(0)
jmp 0x417e10
fstp st(0)
fstp st(0)
fstp st(0)
jmp 0x417e10
fstp st(0)
xor ecx, ecx
mov dword [esp + 0x20], 0
jmp 0x417e1e
fstp st(0)
mov eax, dword [ebx + 0x14]
mov esi, dword [ebx + 0x60]
mov edi, dword [ebx + 0x64]
cdq
sub esi, eax
mov dword [esp + 0x38], eax
mov eax, esi
mov esi, dword [esp + 0x20]
sbb edi, edx
mov edx, edi
mov dword [esp + 0x28], eax
mov edi, esi
sar edi, 0x1f
cmp edx, edi
jl 0x417e51
jg 0x417e4d
cmp dword [esp + 0x28], esi
jbe 0x417e51
mov dword [esp + 0x28], esi
cmp ecx, dword [esp + 0x28]
mov eax, dword [ebx + 0x74]
cmovg ecx, dword [esp + 0x28]
mov edx, dword [ebx + 0x78]
mov dword [ebx + 0x78], eax
mov dword [ebx + 0x7c], edx
test ecx, ecx
mov dword [esp + 0x30], ecx
mov dword [ebx + 0x74], ecx
jne 0x417ebd
cmp dword [ebx + 0x70], 0
je 0x417ec8
mov eax, dword [ebx + 0x6c]
inc dword [0x744200]
mov edx, dword [eax + 0x6c]
mov eax, dword [eax + 0x68]
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 0xc]
mov eax, dword [eax]
mov dword [esp + 8], 0x6c0a01
mov dword [esp + 4], 0x28
mov dword [esp], 0
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0xc], eax
call fcn.00647705
jmp 0x417ec8
cmp dword [ebx + 0x70], 0
mov eax, 1
jne 0x417eca
xor eax, eax
xor edx, edx
mov edi, dword [esp + 0x30]
cmp dword [esp + 0x28], edi
setg dl
add eax, edx
cmp dword [esp + 0x28], eax
jle 0x417fa9
fld dword [0x6c238c]
fmul dword [0x6b5024]
fild dword [esp + 0x28]
fucompi st(1)
fstp st(0)
jbe 0x417f29
mov eax, dword [esp + 0x28]
mov dword [esp + 8], 0x6c0a32
mov dword [esp + 4], 0x10
mov dword [esp], 0
dec eax
mov dword [esp + 0xc], eax
call fcn.00647705
inc dword [0x744200]
jmp 0x4186f5
xor eax, eax
cmp dword [esp + 0x30], 0
je 0x417f3b
xor eax, eax
cmp dword [ebx + 0x70], 0
setne al
mov edi, dword [esp + 0x28]
mov dword [esp + 8], 0x6c0a5c
mov dword [esp + 4], 0x28
mov dword [esp], 0
sub edi, eax
mov eax, edi
sub eax, edx
add dword [0x744204], eax
mov eax, dword [esp + 0x28]
dec eax
mov dword [esp + 0xc], eax
call fcn.00647705
mov eax, dword [0x6b50ac]
cmp dword [0x744204], eax
jbe 0x417fa9
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x6c0a69
mov dword [esp + 4], 0x18
mov dword [esp], 0
call fcn.00647705
imul eax, dword [0x6b50ac], 0xa
mov dword [0x6b50ac], eax
mov esi, dword [esp + 0x30]
cmp dword [esp + 0x28], esi
mov dword [esp + 0x50], 0
mov dword [esp + 0x38], 0
sete al
xor edx, edx
cmp dword [esp + 0x58], 0
setne dl
and eax, edx
mov dword [ebx + 0x70], eax
lea eax, [ebx + 0xd0]
mov dword [esp + 0x6c], eax
mov esi, dword [esp + 0x28]
cmp dword [esp + 0x38], esi
jge 0x418653
lea eax, [esp + 0x1c8]
mov dword [esp], eax
call fcn.0047bd83
mov edi, dword [esp + 0x30]
cmp dword [esp + 0x38], edi
mov dword [esp + 0x1e0], 0
mov dword [esp + 0x1e4], 0
jge 0x418025
mov eax, dword [ebx + 0x6c]
test eax, eax
mov dword [esp + 0x20], eax
jne 0x418038
cmp dword [esp + 0x58], 0
je 0x4186f5
mov eax, dword [esp + 0x58]
mov dword [esp + 0x20], eax
mov eax, dword [ebx + 0x20]
mov edx, dword [ebx + 0x24]
mov edi, dword [esp + 0x20]
mov dword [edi + 0x68], eax
mov dword [edi + 0x6c], edx
mov eax, ebx
call fcn.0041488b
test eax, eax
je 0x4186f5
test dword [ebp + 0x3c], 0x20040000
je 0x418079
cmp dword [ebx + 0x94], 0
js 0x418079
mov ecx, dword [esp + 0x20]
setne al
movzx eax, al
mov dword [ecx + 0xd8], eax
mov eax, dword [esp + 0x20]
cmp dword [eax + 0xd4], 0
je 0x4180c1
mov eax, dword [ebp + 0xc]
cmp dword [eax + 0xc], 7
mov eax, dword [esp + 0x20]
jne 0x4180aa
cmp dword [eax + 0xd8], 1
mov esi, dword [esp + 0x5c]
sbb eax, eax
not eax
add eax, 3
mov dword [esi + 0x40], eax
jmp 0x4180cc
cmp dword [eax + 0xd8], 1
mov ecx, dword [esp + 0x5c]
sbb eax, eax
not eax
add eax, 5
mov dword [ecx + 0x40], eax
jmp 0x4180cc
mov eax, dword [esp + 0x5c]
mov dword [eax + 0x40], 1
mov eax, dword [ebp + 0x34]
mov ecx, dword [esp + 0x20]
mov dword [ecx + 0x88], eax
mov eax, dword [ebx + 0xb4]
mov dword [ecx + 0x58], 0
add eax, 0x80000000
or eax, dword [ebx + 0xb0]
jne 0x41810f
mov eax, dword [ecx + 0x6c]
mov edx, dword [ecx + 0x68]
lea ecx, [eax - 0x80000000]
or ecx, edx
je 0x41810f
mov dword [ebx + 0xb0], edx
mov dword [ebx + 0xb4], eax
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0x6c]
mov edx, dword [eax + 0x68]
lea eax, [ecx - 0x80000000]
or eax, edx
je 0x41815d
fild dword [ebp + 0x50]
mov esi, edx
mov edi, ecx
fidivr dword [ebp + 0x4c]
fstp qword [esp + 0x78]
sub esi, dword [ebx + 0xb0]
sbb edi, dword [ebx + 0xb4]
fld qword [esp + 0x78]
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], edi
fild qword [esp + 0x40]
fstp qword [esp + 0x78]
fld qword [esp + 0x78]
fmulp st(1)
fstp qword [esp + 0x40]
jmp 0x418167
fld dword [0x6c22e4]
fstp qword [esp + 0x40]
mov eax, dword [ebx + 0xc0]
cmp eax, dword [ebx + 0xbc]
jge 0x418194
mov edi, dword [ebx + 0xb8]
cmp ecx, dword [edi + eax*8 + 4]
jl 0x418194
jg 0x418188
cmp edx, dword [edi + eax*8]
jb 0x418194
inc eax
mov dword [ebx + 0xc0], eax
jmp 0x4186c1
mov eax, dword [ebx + 0xc8]
test eax, eax
je 0x418212
fld qword [esp + 0x40]
mov edi, dword [esp + 0x6c]
fstp qword [ebx + 0xf0]
mov dword [esp + 8], 0
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.0064305b
fldz
fxch st(1)
fucompi st(1)
fstp st(0)
fld1
jp 0x4181ce
je 0x4181fb
fld qword [ebx + 0xd0]
mov eax, 1
fstp qword [ebx + 0xe0]
fld qword [ebx + 0xf0]
fstp qword [ebx + 0xe8]
fld st(0)
fadd qword [ebx + 0xd8]
fstp qword [ebx + 0xd8]
jmp 0x4181fd
xor eax, eax
fadd qword [ebx + 0xd0]
test eax, eax
fstp qword [ebx + 0xd0]
je 0x418246
jmp 0x4186c1
mov eax, dword [ebx + 0xc4]
test eax, eax
je 0x418246
mov dword [esp + 8], 6
mov dword [esp + 4], 0x6c0a89
mov dword [esp], eax
call fcn.00697ebf
test eax, eax
jne 0x418246
mov eax, dword [esp + 0x20]
cmp dword [eax + 0x54], 1
je 0x4186c1
mov dword [esp], 0
call fcn.0041539c
cmp dword [0x744034], 0
je 0x418305
mov eax, dword [ebp + 0x50]
lea edi, [esp + 0xa8]
mov ecx, 8
mov esi, eax
mov eax, dword [ebp + 0x4c]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x20]
mov edx, dword [eax + 0x6c]
mov eax, dword [eax + 0x68]
mov dword [esp + 0x60], eax
xor eax, eax
mov dword [esp + 0x64], edx
rep stosd dword es:[edi], eax
lea eax, [ebp + 0x4c]
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x64]
lea edi, [esp + 0x88]
mov dword [esp], eax
lea eax, [esp + 0xa8]
call fcn.00414cef
mov ecx, 8
mov dword [esp + 0x60], eax
xor eax, eax
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x20]
mov edx, dword [eax + 0x68]
mov ecx, dword [eax + 0x6c]
lea eax, [esp + 0x88]
call fcn.004157ca
mov dword [esp + 0x18], esi
mov edi, dword [esp + 0x40]
mov esi, dword [esp + 0x60]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x6c0a90
mov dword [esp + 4], 0x20
mov dword [esp + 0x14], edi
mov dword [esp], 0
mov dword [esp + 0x10], esi
call fcn.00647705
add dword [ebx + 0x168], 1
mov eax, dword [esp + 0x20]
adc dword [ebx + 0x16c], 0
mov dword [esp], ebp
mov dword [esp + 4], eax
call fcn.0048249a
test eax, eax
js 0x418699
lea eax, [ebp + 0x4c]
mov dword [esp + 0x20], eax
lea eax, [esp + 0x1c8]
mov dword [esp], ebp
mov dword [esp + 4], eax
call fcn.0048252c
mov esi, eax
mov eax, dword [ebx + 4]
mov dword [esp + 8], eax
mov eax, dword [ebx]
mov dword [esp], 0x6c0ad6
mov dword [esp + 4], eax
call fcn.0041539c
cmp esi, 0xfffffff5
je 0x418624
test esi, esi
js 0x418699
cmp dword [0x744034], 0
je 0x418472
lea edi, [esp + 0x128]
xor eax, eax
mov ecx, 8
mov edx, dword [esp + 0x1d8]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1dc]
lea edi, [esp + 0x108]
mov dword [esp], eax
lea eax, [esp + 0x128]
call fcn.00414cef
mov ecx, 8
mov dword [esp + 0x50], eax
xor eax, eax
rep stosd dword es:[edi], eax
mov edx, dword [esp + 0x1d8]
mov ecx, dword [esp + 0x1dc]
lea eax, [esp + 0x108]
lea edi, [esp + 0xe8]
call fcn.004157ca
mov ecx, 8
mov dword [esp + 0x40], eax
xor eax, eax
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x1d0]
lea edi, [esp + 0xc8]
mov ecx, dword [esp + 0x1d4]
mov dword [esp], eax
lea eax, [esp + 0xe8]
call fcn.00414cef
mov ecx, 8
mov esi, eax
xor eax, eax
rep stosd dword es:[edi], eax
mov edx, dword [esp + 0x1d0]
mov ecx, dword [esp + 0x1d4]
lea eax, [esp + 0xc8]
call fcn.004157ca
mov ecx, dword [esp + 0x50]
mov edi, dword [esp + 0x40]
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x6c0ae9
mov dword [esp + 4], 0x20
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], edi
mov dword [esp], 0
call fcn.00647705
mov eax, dword [esp + 0x1d4]
add eax, 0x80000000
or eax, dword [esp + 0x1d0]
jne 0x4184a4
mov eax, dword [ebp + 0xc]
test byte [eax + 0x10], 0x20
jne 0x4184a4
mov eax, dword [ebx + 0x20]
mov edx, dword [ebx + 0x24]
mov dword [esp + 0x1d0], eax
mov dword [esp + 0x1d4], edx
mov eax, dword [ebx + 0x38]
mov edx, dword [ebx + 0x3c]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov eax, dword [ebp + 0x4c]
mov edx, dword [ebp + 0x50]
mov dword [esp + 4], eax
lea eax, [esp + 0x1c8]
mov dword [esp + 8], edx
mov dword [esp], eax
call fcn.0047cb82
cmp dword [0x744034], 0
je 0x4185cb
lea edi, [esp + 0x1a8]
xor eax, eax
mov ecx, 8
lea esi, [ebx + 0x38]
mov edx, dword [esp + 0x1d8]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x1dc]
lea eax, [esp + 0x1a8]
mov dword [esp], esi
lea edi, [esp + 0x188]
call fcn.00414cef
mov ecx, 8
mov dword [esp + 0x50], eax
xor eax, eax
rep stosd dword es:[edi], eax
mov edx, dword [esp + 0x1d8]
mov ecx, dword [esp + 0x1dc]
lea eax, [esp + 0x188]
lea edi, [esp + 0x168]
call fcn.004157ca
mov ecx, 8
mov dword [esp + 0x40], eax
xor eax, eax
rep stosd dword es:[edi], eax
mov edx, dword [esp + 0x1d0]
mov ecx, dword [esp + 0x1d4]
lea eax, [esp + 0x168]
mov dword [esp], esi
lea edi, [esp + 0x148]
call fcn.00414cef
mov ecx, 8
mov esi, eax
xor eax, eax
rep stosd dword es:[edi], eax
mov edx, dword [esp + 0x1d0]
mov ecx, dword [esp + 0x1d4]
lea eax, [esp + 0x148]
call fcn.004157ca
mov ecx, dword [esp + 0x50]
mov edi, dword [esp + 0x40]
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x6c0ae9
mov dword [esp + 4], 0x20
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], edi
mov dword [esp], 0
call fcn.00647705
mov eax, dword [esp + 0x1e4]
lea edx, [esp + 0x1c8]
mov dword [esp], 0
mov ecx, ebx
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x68]
call fcn.0041613a
mov eax, dword [ebx + 0x104]
test eax, eax
je 0x418332
mov edx, dword [ebp + 0x22c]
test edx, edx
je 0x418332
mov dword [esp + 8], edx
mov dword [esp + 4], 0x6c0b36
mov dword [esp], eax
call fcn.00414868
jmp 0x418332
add dword [ebx + 0x20], 1
adc dword [ebx + 0x24], 0
inc dword [ebx + 0x14]
cmp dword [0x84da80], 0
je 0x41864a
cmp dword [esp + 0x50], 0
je 0x41864a
mov edx, dword [esp + 0x50]
mov eax, ebx
call fcn.0041766b
inc dword [esp + 0x38]
jmp 0x417fdd
cmp dword [ebx + 0x6c], 0
jne 0x418661
call fcn.00644084
mov dword [ebx + 0x6c], eax
mov eax, dword [ebx + 0x6c]
mov dword [esp], eax
call fcn.006440ad
cmp dword [esp + 0x58], 0
je 0x41868c
mov eax, dword [ebx + 0x6c]
test eax, eax
je 0x41868c
mov esi, dword [esp + 0x58]
mov dword [esp], eax
mov dword [esp + 4], esi
call fcn.00644cb8
jmp 0x4186f5
add ebx, 0x6c
mov dword [esp], ebx
call fcn.00644163
jmp 0x4186f5
mov dword [esp + 8], 0x6c0b39
mov dword [esp + 4], 8
mov dword [esp], 0
call fcn.00647705
mov dword [esp], 1
call fcn.00410a8a
mov eax, dword [esp + 0x20]
fld qword [esp + 0x40]
mov dword [eax + 0x58], 1
fstp qword [esp + 0xc]
mov dword [esp + 8], 0x6c0b50
mov dword [esp + 4], 0x30
mov dword [esp], 0
call fcn.00647705
jmp 0x418246
add esp, 0x21c
pop ebx
pop esi
pop edi
pop ebp
ret