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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x5f4
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 4]
push ebx
push esi
mov esi, ecx
mov ecx, dword [eax]
mov eax, dword [eax + 8]
mov dword [esp + 0xc4], eax
mov eax, dword [esi + 0x88]
test eax, eax
push edi
mov edi, dword [ebp + 8]
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xc4], edx
je 0x74e1aa
cmp dword [eax + 0x94], 1
jne 0x74e1aa
inc dword [edi + 0x50]
mov ecx, dword [esi + 0x17a8]
push ecx
lea edx, [esp + 0xc4]
push edx
mov ecx, edi
call fcn.004fcac0
mov ebx, eax
cmp dword [edi + 4], 0xf
mov dword [esp + 0x10], ebx
jne 0x74e1eb
mov eax, dword [esi + 0x17a8]
push eax
lea ecx, [esp + 0xc4]
push ecx
mov ecx, 0x919650
call fcn.004fcac0
mov ebx, eax
mov dword [esp + 0x10], ebx
call fcn.006bf530
cmp eax, 3
jne 0x74e213
cmp dword [0x925e90], 3
je 0x74e213
fild dword [esp + 0x10]
fmul dword [0x8b2ee8]
call fcn.007c4b80
mov ebx, eax
mov dword [esp + 0x10], ebx
cmp ebx, dword [edi + 0x24]
jge 0x74e229
mov eax, dword [edi + 4]
cmp eax, 0xf
je 0x74e229
cmp eax, 0x10
jne 0x75052a
mov eax, dword [0x903320]
xor edx, edx
cmp eax, edx
je 0x75051f
mov eax, dword [edi + 0x40]
mov dword [esp + 0x50], eax
mov eax, dword [esi + 0x88]
cmp eax, edx
je 0x74e25d
mov edi, dword [eax + 0x94]
xor ecx, ecx
cmp edi, 2
sete cl
mov dword [esp + 0x28], ecx
jmp 0x74e261
mov dword [esp + 0x28], edx
mov eax, dword [0x915f84]
mov edi, dword [0x915f88]
lea ecx, [eax + 0x130]
cmp ecx, edi
jb 0x74e295
mov eax, dword [0x915f98]
add eax, 0x130
mov dword [0x915f94], 1
mov dword [0x915f98], eax
mov dword [esp + 0x1c], edx
jmp 0x74e29f
mov dword [0x915f84], ecx
mov dword [esp + 0x1c], eax
push 1
call fcn.00405ed0
mov ebx, eax
push 1
mov dword [esp + 0x5c], ebx
call fcn.00405ed0
push 1
mov edi, eax
call fcn.00405ed0
push 1
mov dword [esp + 0x30], eax
call fcn.00405ed0
mov ecx, dword [esp + 0x2c]
add esp, 0x10
test ecx, ecx
mov dword [esp + 0x38], eax
je 0x75052a
test ebx, ebx
je 0x75052a
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x75052a
test eax, eax
je 0x75052a
mov edx, dword [ebp + 0x10]
push edx
push ebx
call fcn.00444fe0
push ebx
push 0x9b34b0
push ebx
call fcn.006bd900
mov eax, dword [esp + 0xd4]
add esp, 0x14
mov dword [ebx + 0x30], eax
mov ecx, dword [esp + 0xc4]
mov dword [ebx + 0x34], ecx
mov edx, dword [esp + 0xc8]
push ebx
lea eax, [esi + 0xa0]
lea ecx, [esi + 0x90]
push eax
push ecx
mov ecx, dword [ebp + 8]
mov dword [ebx + 0x38], edx
mov dword [ebx + 0x3c], 0x3f800000
call fcn.004fca70
test eax, eax
je 0x75052a
mov eax, dword [esp + 0x50]
mov ecx, dword [eax + 0x40]
add eax, 0x40
mov dword [esp + 0xd0], ecx
mov edx, dword [eax + 4]
cmp dword [0x925e90], 3
mov dword [esp + 0x50], eax
mov dword [esp + 0xd4], edx
mov eax, dword [eax + 8]
sete cl
mov dword [esp + 0xd8], eax
mov eax, dword [0x9b0940]
test eax, eax
movzx edx, cl
mov dword [esp + 0xdc], 0x3f800000
mov dword [esp + 0xa8], edx
je 0x74e3ae
mov dword [0x916008], 1
mov eax, dword [ebp + 0x10]
push eax
push edi
call fcn.00444fe0
mov ecx, dword [esp + 0xc8]
mov dword [edi + 0x30], ecx
mov edx, dword [esp + 0xcc]
mov dword [edi + 0x34], edx
mov eax, dword [esp + 0xd0]
lea ecx, [esp + 0x4d8]
push ecx
mov dword [edi + 0x38], eax
mov dword [edi + 0x3c], 0x3f800000
call fcn.004fc6c0
add esp, 0xc
call fcn.00516e10
mov ecx, eax
call fcn.00516e20
add eax, 0xfffffffe
cmp eax, 3
ja case.default.0x74e401
jmp dword [eax*4 + 0x750538]
mov eax, 0x8f2dd0
jmp 0x74e429
mov eax, 0x8f2c90
jmp 0x74e429
mov eax, 0x8f2b50
jmp 0x74e429
mov eax, 0x8f2bf0
jmp 0x74e429
mov eax, 0x8f2d30
cmp dword [0x925e90], 6
jne 0x74e437
mov eax, 0x8f2e70
mov ebx, dword [ebp + 8]
push ebx
push 0x987fc0
push 0
lea edx, [esp + 0xcc]
push edx
push eax
lea eax, [esp + 0x4e4]
push eax
call fcn.00502130
mov eax, dword [esp + 0x34]
lea ecx, [esp + 0x4e8]
push ecx
push ebx
lea edx, [esp + 0xf0]
push edx
push 0x987fc0
push edi
push eax
call fcn.00502580
mov ecx, dword [0x982b78]
mov dword [esi + 0x100], ecx
mov eax, dword [0x9b0940]
add esp, 0x30
xor edi, edi
test eax, eax
je 0x74e499
mov dword [0x916008], edi
mov ecx, esi
call fcn.00737e30
cmp dword [0x8f9334], edi
mov dword [esp + 0x18], edi
mov dword [esp + 0xac], edi
je 0x74e4c4
fild dword [esp + 0x10]
fcomp dword [0x8b2ee4]
fnstsw ax
test ah, 5
jp 0x74e4d4
mov eax, 1
mov dword [esp + 0x18], eax
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x28]
xor ecx, ecx
xor edx, edx
cmp eax, edi
jne 0x74e516
cmp dword [esi + 0x1628], 2
je 0x74e51d
fild dword [esp + 0x10]
fst dword [esp + 0xc]
fcomp dword [0x8970c0]
fnstsw ax
test ah, 5
jp 0x74e546
mov edi, edi
fld dword [esp + 0xc]
inc ecx
fcomp dword [ecx*4 + 0x8b2ebc]
inc edx
fnstsw ax
test ah, 5
jnp 0x74e500
jmp 0x74e546
mov dword [ebp + 0x20], 0x80000
fild dword [esp + 0x10]
fst dword [esp + 0xc]
fcomp dword [0x8b2f7c]
fnstsw ax
test ah, 5
jp 0x74e546
fld dword [esp + 0xc]
inc ecx
fcomp dword [ecx*4 + 0x8b2ed0]
inc edx
fnstsw ax
test ah, 5
jnp 0x74e532
mov ebx, dword [esi + 0x1628]
mov edi, dword [esi + 0x162c]
lea eax, [ebx + ecx]
cmp eax, edi
mov dword [esp + 0x14], eax
jl 0x74e561
mov dword [esp + 0x14], edi
lea eax, [ebx + edx]
cmp eax, edi
mov dword [esp + 0x58], eax
jl 0x74e570
mov dword [esp + 0x58], edi
mov eax, dword [0x903384]
cmp eax, 0xffffffff
je 0x74e589
push edi
push ebx
push eax
call fcn.00402090
add esp, 0xc
mov dword [esp + 0x14], eax
mov eax, dword [0x903388]
cmp eax, 0xffffffff
je 0x74e5a2
push edi
push ebx
push eax
call fcn.00402090
add esp, 0xc
mov dword [esp + 0x58], eax
mov ecx, dword [esp + 0x14]
or eax, 0xffffffff
cmp ecx, eax
jne 0x74e5b7
cmp dword [esp + 0x58], eax
je 0x75052a
mov eax, dword [esi + 0x84]
test eax, eax
je 0x74e5f8
mov edx, dword [eax]
mov eax, dword [0x9b09d8]
imul edx, edx, 0xd0
mov ecx, dword [edx + eax + 0x94]
test ecx, ecx
je 0x74e5f8
mov ecx, dword [ebp + 0x20]
mov eax, dword [0x9885c8]
or ecx, 0x800
test eax, eax
mov dword [ebp + 0x20], ecx
je 0x74e5f8
mov eax, ecx
or eax, 0x80000
mov dword [ebp + 0x20], eax
mov ebx, dword [esp + 0x54]
lea ecx, [esp + 0x490]
push ebx
push ecx
call fcn.0045e300
mov edi, dword [esp + 0x58]
push edi
lea edx, [esp + 0x49c]
push edx
lea eax, [esp + 0x170]
push eax
call fcn.0045ed20
lea eax, [ebx + 0x30]
push eax
push edi
call fcn.0045f340
fstp dword [esp + 0x28]
mov eax, dword [esp + 0x30]
add esp, 0x1c
test eax, eax
jne 0x74e6b0
fld dword [esp + 0xc]
fcomp dword [0x890e98]
fnstsw ax
test ah, 5
jp 0x74e6b0
mov ecx, dword [ebp + 8]
cmp dword [ecx + 4], 1
jne 0x74e6b0
mov eax, dword [0x9885c8]
test eax, eax
jne 0x74e6b0
fld dword [esp + 0x168]
push 0
fadd dword [0x8933d4]
lea edx, [esp + 0x164]
push edx
lea eax, [esi + 0xa0]
push eax
fstp dword [esp + 0x174]
lea eax, [esi + 0x90]
push eax
call fcn.0045fde0
add esp, 0x10
test eax, eax
jne 0x75052a
fld dword [esp + 0x168]
fsub dword [0x8933d4]
fstp dword [esp + 0x168]
cmp byte [esi + 0x17c0], 1
jne 0x74e6d0
fld dword [esi + 0x17c4]
fcomp dword [0x890968]
fnstsw ax
test ah, 0x41
je 0x75051f
mov edi, dword [esp + 0x20]
push ebx
push edi
call fcn.00444fe0
mov ebx, dword [esp + 0x40]
lea eax, [esp + 0xc8]
push eax
push 0x987ab0
push ebx
call fcn.00466a60
mov ecx, dword [0x9885c8]
add esp, 0x14
test ecx, ecx
je 0x74e704
mov edx, dword [ecx]
call dword [edx + 0x3c]
mov eax, dword [ebp + 0x28]
test eax, eax
jne 0x74e7a3
fld dword [edi + 0x38]
mov eax, dword [esp + 0xa8]
test eax, eax
fadd dword [0x890dc4]
fstp dword [edi + 0x38]
fld dword [esp + 0xc]
fsub dword [0x890cd4]
fdiv dword [esp + 0xc]
fstp dword [esp + 0x28]
je 0x74e746
mov eax, dword [esp + 0x28]
mov ecx, dword [ebp + 8]
push eax
push edi
call fcn.005028a0
mov ecx, dword [esp + 0x28]
push ecx
mov ecx, dword [ebp + 8]
push ebx
call fcn.005028a0
lea edx, [esp + 0x120]
push edx
call fcn.004450c0
fld dword [esp + 0xc4]
fchs
push ebx
fstp dword [esp + 0x158]
lea eax, [esp + 0x128]
fld dword [esp + 0xcc]
push eax
fchs
push ebx
fstp dword [esp + 0x164]
fld dword [esp + 0xd8]
fchs
fstp dword [esp + 0x168]
call fcn.006bd900
add esp, 0x10
xor edi, edi
mov di, word [esi + 0x1180]
xor eax, eax
mov ax, word [esi + 0x1182]
mov ecx, edi
cmp cx, 0x8000
mov edx, eax
jbe 0x74e7c2
neg ecx
cmp dx, 0x8000
jbe 0x74e7cb
neg edx
mov ebx, eax
movzx eax, dx
cdq
xor eax, edx
sub eax, edx
mov dword [esp + 0x28], eax
movzx eax, cx
mov ecx, dword [esp + 0x28]
cdq
xor eax, edx
sub eax, edx
cmp eax, ecx
jle 0x74e7eb
mov ebx, edi
push ebx
lea ecx, [esp + 0x164]
push ecx
lea ecx, [esi + 0x1640]
call fcn.007422d0
mov eax, dword [0x903328]
test eax, eax
je 0x74e840
mov eax, dword [ebp + 0x28]
test eax, eax
jne 0x74e840
mov edi, dword [ebp + 8]
cmp dword [edi + 4], 1
jne 0x74e843
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x54]
push edx
mov edx, dword [ebp + 0x2c]
lea eax, [esp + 0x494]
push eax
push ecx
push edx
lea eax, [esp + 0xd0]
push eax
push edi
mov ecx, esi
call fcn.00743ea0
jmp 0x74e843
mov edi, dword [ebp + 8]
cmp dword [0x925e90], 6
jne 0x74e85a
cmp dword [edi + 4], 3
mov dword [esp + 0x24], 0x8000
jne 0x74e862
mov dword [esp + 0x24], 0
mov eax, dword [edi + 4]
cmp eax, 1
je 0x74e86f
cmp eax, 2
jne 0x74e895
fld dword [0x925970]
fcomp dword [0x890968]
fnstsw ax
test ah, 0x41
jne 0x74e895
mov ecx, dword [esi + 0x40]
test ecx, ecx
je 0x74e8a6
mov eax, dword [esp + 0x20]
mov edx, dword [ecx]
push eax
call dword [edx + 0xc]
jmp 0x74e8a6
mov ecx, dword [esi + 0x40]
test ecx, ecx
je 0x74e8a6
mov eax, dword [esp + 0x20]
mov edx, dword [ecx]
push eax
call dword [edx + 0x10]
mov eax, dword [esi + 0x88]
test eax, eax
je 0x74e8bc
cmp dword [eax + 0x94], 1
jne 0x74e8bc
inc dword [edi + 0x4c]
mov eax, dword [esi + 0xec]
test eax, eax
mov ecx, dword [esi + 0xd8]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x34], eax
jne 0x74e8d8
mov dword [esp + 0x34], ecx
mov eax, dword [esi + 0xf0]
test eax, eax
mov dword [esp + 0x30], eax
jne 0x74e8ea
mov dword [esp + 0x30], ecx
mov ecx, dword [esi + 0xe0]
xor edi, edi
mov dword [esp + 0x50], ecx
mov dword [esp + 0x2c], edi
lea ebx, [ebx]
push 0x40
call fcn.00405e80
add esp, 4
test eax, eax
mov dword [esp + 0x10], eax
je case.0x74e963.24
mov edx, dword [esp + 0x20]
push edx
mov ecx, eax
call fcn.00445090
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x38]
lea eax, [edi + edi*4]
lea eax, [esi + eax*4 + 0xb84]
lea ebx, [eax + edx*4]
mov eax, dword [ebx]
test eax, 0xfffffffc
mov dword [esp + 0x28], ecx
mov dword [esp + 0x54], ebx
je case.0x74e963.24
test al, 1
jne case.0x74e963.24
lea ecx, [edi - 0x18]
cmp ecx, 0x2d
ja case.0x74e963.25
movzx ecx, byte [ecx + 0x750554]
jmp dword [ecx*4 + 0x750548]
mov ecx, dword [ebp + 0x28]
test ecx, ecx
jne case.0x74e963.24
mov edx, dword [esi + 0xd8]
and eax, 0xfffffffc
mov edi, eax
push edx
push 0xd6d6080a
mov ecx, edi
call fcn.00501640
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
mov ecx, dword [ebp + 0x20]
push 0
or eax, edx
mov edx, dword [esp + 0x24]
or eax, ecx
mov ecx, dword [esp + 0x20]
push eax
push ecx
mov ecx, dword [ebp + 8]
push edx
push edi
call fcn.006da9b0
mov edi, dword [esp + 0x2c]
jmp case.0x74e963.24
mov edx, dword [esi + 0x84]
movsx eax, byte [edx + edi + 0x274]
lea ecx, [edi - 1]
cmp ecx, 0x24
mov dword [esp + 0xc], eax
ja case.0x74e9dc.2
movzx ecx, byte [ecx + 0x75058c]
jmp dword [ecx*4 + 0x750584]
mov cl, byte [0x903310]
test cl, cl
je case.0x74e963.24
lea ecx, [edi - 0xd]
cmp ecx, 0x34
ja case.0x74ea00.15
movzx ecx, byte [ecx + 0x7505cc]
jmp dword [ecx*4 + 0x7505b4]
mov ecx, dword [esi + 0xf8]
test ecx, ecx
je case.0x74ea00.15
mov edx, dword [esi + 0xdc]
mov dword [esp + 0x28], edx
and eax, 1
test eax, eax
je case.0x74e963.24
mov eax, dword [esp + 0x28]
mov ecx, dword [ebx]
push eax
push 0xd6d6080a
and ecx, 0xfffffffc
call fcn.00501640
mov ecx, dword [esp + 0x50]
push ecx
mov ecx, dword [ebx]
push 0x471a1dca
and ecx, 0xfffffffc
call fcn.00501640
mov ecx, dword [esi + 0x40]
test ecx, ecx
je 0x74ec7a
cmp edi, 0x2b
je 0x74ec7a
cmp edi, 0x17
jg case.0x74e963.24
mov edx, dword [ecx]
push edi
call dword [edx + 0x18]
mov ecx, dword [esp + 0x10]
push eax
call fcn.00445090
mov ecx, dword [esi + 0x40]
mov eax, dword [ecx]
push edi
call dword [eax + 0x1c]
test al, al
jne case.0x74e963.24
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov eax, dword [ebp + 0x20]
or ecx, edx
mov edx, dword [esp + 0x1c]
or ecx, eax
mov eax, dword [esp + 0x10]
push ecx
mov ecx, dword [ebp + 8]
push edx
push eax
push ebx
push ecx
jmp 0x74ec99
cmp dword [edx], 0x33
jne 0x74ea1e
mov eax, dword [esp + 0x2c]
xor edi, edi
cmp eax, 0x15
je 0x74eae6
cmp eax, 0xd
jne 0x74ead0
mov edi, 1
jmp 0x74eae6
cmp eax, 0xe
jne 0x74eadc
mov edi, 2
jmp 0x74eae6
cmp eax, 0x16
jne 0x74eae6
mov edi, 3
fld dword [0x890968]
fld dword [edi*4 + 0x9ae8a0]
fucompp
fnstsw ax
test ah, 0x44
jp 0x74eb25
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x10]
push eax
shl edi, 6
add edi, 0x9b2800
push edi
push ecx
call fcn.006bd900
mov edi, dword [esp + 0x38]
mov eax, dword [esp + 0x18]
add esp, 0xc
jmp 0x74ea1e
cmp dword [edi*4 + 0x9ae8a0], 0x3f800000
jne 0x74eb5b
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
push edx
shl edi, 6
add edi, 0x9b2af0
push edi
push eax
call fcn.006bd900
mov edi, dword [esp + 0x38]
mov eax, dword [esp + 0x18]
add esp, 0xc
jmp 0x74ea1e
mov ebx, edi
shl ebx, 6
lea ecx, [ebx + 0x9b2af0]
push ecx
lea ecx, [esp + 0x44]
call fcn.00732280
lea edx, [ebx + 0x9b2800]
push edx
lea ecx, [esp + 0x174]
call fcn.00732280
mov eax, dword [edi*4 + 0x9ae8a0]
push eax
lea ecx, [esp + 0x44]
push ecx
lea edx, [esp + 0x188]
push edx
lea ecx, [esp + 0x17c]
call fcn.00463a20
lea eax, [ebx + 0x9b2b20]
push eax
lea ecx, [esp + 0xb4]
call fcn.00466980
mov ecx, dword [edi*4 + 0x9ae8a0]
push ecx
lea edx, [esp + 0xb4]
push edx
mov eax, edx
push eax
call fcn.0045c8f0
fld dword [0x89096c]
fsub dword [edi*4 + 0x9ae8a0]
add esp, 8
lea ecx, [ebx + 0x9b2830]
lea edx, [esp + 0xb4]
fstp dword [esp]
push ecx
push edx
mov eax, edx
push eax
call fcn.0045f680
add esp, 0x10
lea ecx, [esp + 0x120]
push ecx
lea ecx, [esp + 0x184]
call fcn.00466af0
lea edx, [esp + 0xb0]
push edx
lea ecx, [esp + 0x154]
call fcn.00444fa0
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x10]
push eax
lea ecx, [esp + 0x124]
push ecx
push edx
call fcn.006bd900
mov ebx, dword [esp + 0x60]
mov edi, dword [esp + 0x38]
mov eax, dword [esp + 0x18]
add esp, 0xc
jmp 0x74ea1e
mov ecx, dword [0x925e90]
and eax, 1
cmp ecx, 3
jne 0x74ec5f
xor eax, eax
cmp dword [edx], 0x33
jne 0x74ec6f
and eax, dword [0x9b0920]
jmp 0x74ea1e
and eax, dword [0x90330c]
jmp 0x74ea1e
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov ecx, dword [ebp + 0x20]
or edx, eax
mov eax, dword [esp + 0x1c]
or edx, ecx
mov ecx, dword [esp + 0x10]
push edx
mov edx, dword [ebp + 8]
push eax
push ecx
push ebx
push edx
mov ecx, esi
call fcn.007387e0
inc edi
cmp edi, 0x4c
mov dword [esp + 0x2c], edi
jl 0x74e900
mov eax, dword [esi + 0x84]
mov ecx, dword [esp + 0x14]
cmp ecx, dword [eax + 0x18]
jle 0x74ecc8
mov eax, dword [ebp + 0x28]
test eax, eax
je 0x74ed84
lea edx, [esp + 0x120]
push edx
call fcn.00466f20
lea eax, [esp + 0x124]
push 0x4000
push eax
mov ecx, eax
push ecx
call fcn.006bdc60
mov ecx, dword [esi + 0x234]
lea eax, [esi + 0x234]
add esp, 0x10
cmp ecx, eax
mov dword [esp + 0xc], ecx
je 0x74ed84
mov edx, dword [esp + 0xc]
mov ebx, dword [edx + 0x10]
push 1
call fcn.00405ed0
mov edi, eax
add esp, 4
test edi, edi
je 0x74ed70
add ebx, 0x10
push ebx
lea eax, [esp + 0x124]
push eax
push edi
call fcn.006bd900
mov ecx, dword [esp + 0x2c]
push ecx
push edi
push edi
call fcn.006bd900
mov edx, dword [esi + 0x1628]
mov eax, dword [esi + edx*4 + 0x10e8]
add esp, 0x18
and eax, 0xfffffffc
je 0x74ed70
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov ebx, dword [ebp + 0x20]
or ecx, edx
mov edx, dword [esp + 0x1c]
push 0
or ecx, ebx
push ecx
mov ecx, dword [ebp + 8]
push edx
push edi
push eax
call fcn.006da9b0
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
lea ecx, [esi + 0x234]
cmp eax, ecx
mov dword [esp + 0xc], eax
jne 0x74ed05
mov ecx, dword [esi + 0x84]
mov edx, dword [esp + 0x14]
cmp edx, dword [ecx + 0x30]
jg 0x74ee86
push 1
call fcn.00405ed0
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x74ee86
mov eax, dword [esi + 0x84]
mov edi, dword [eax + 0xf8]
test edi, edi
je 0x74ede6
push 0
push 0x8b4d88
call fcn.00460bf0
add esp, 4
push eax
mov ecx, edi
call fcn.00747ac0
test eax, eax
je 0x74ede6
mov eax, dword [esi + 0x1288]
test eax, eax
je 0x74ede6
mov dword [esi + 0x1284], eax
mov eax, dword [esi + 0x1284]
test eax, eax
je 0x74ee46
test edi, edi
je 0x74ee46
mov cl, byte [edi + 5]
shr cl, 5
cmp cl, 1
jl 0x74ee46
mov edx, dword [esp + 0x14]
mov edi, dword [esi + edx*4 + 0xef4]
and edi, 0xfffffffc
je 0x74ee86
mov ecx, dword [esp + 0x20]
push ecx
add eax, 0x10
push eax
push ebx
call fcn.006bd900
mov edx, dword [esp + 0x40]
add esp, 0xc
push edx
push 0xd6d6080a
mov ecx, edi
call fcn.00501640
mov eax, dword [esp + 0x18]
mov edx, dword [ebp + 0x20]
mov ecx, dword [esp + 0x1c]
push 0
or eax, edx
push eax
push ecx
push ebx
jmp 0x74ee7d
mov edx, dword [esp + 0x14]
mov edi, dword [esi + edx*4 + 0xef4]
and edi, 0xfffffffc
je 0x74ee86
mov eax, dword [esp + 0x34]
push eax
push 0xd6d6080a
mov ecx, edi
call fcn.00501640
mov edx, dword [ebp + 0x20]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
push 0
or ecx, edx
mov edx, dword [esp + 0x20]
push ecx
push edx
push eax
mov ecx, dword [ebp + 8]
push edi
call fcn.006da9b0
mov ecx, dword [esi + 0x84]
mov edx, dword [esp + 0x14]
cmp edx, dword [ecx + 0x34]
jg 0x74ef4a
push 1
call fcn.00405ed0
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x74ef4a
mov eax, dword [esi + 0x128c]
test eax, eax
je 0x74ef04
mov ecx, dword [esp + 0x20]
push ecx
add eax, 0x10
push eax
push ebx
call fcn.006bd900
mov edx, dword [esp + 0x20]
mov edi, dword [esi + edx*4 + 0x105c]
add esp, 0xc
and edi, 0xfffffffc
je 0x74ef4a
mov eax, dword [esp + 0x30]
push eax
push 0xd6d6080a
mov ecx, edi
call fcn.00501640
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov eax, dword [ebp + 0x20]
or ecx, edx
mov edx, dword [esp + 0x1c]
push 0
or ecx, eax
push ecx
push edx
push ebx
jmp 0x74ef41
mov eax, dword [esp + 0x14]
mov edi, dword [esi + eax*4 + 0x105c]
and edi, 0xfffffffc
je 0x74ef4a
mov ecx, dword [esp + 0x30]
push ecx
push 0xd6d6080a
mov ecx, edi
call fcn.00501640
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x18]
mov ecx, dword [ebp + 0x20]
mov eax, dword [esp + 0x1c]
push 0
or edx, ebx
or edx, ecx
mov ecx, dword [esp + 0x24]
push edx
push eax
push ecx
mov ecx, dword [ebp + 8]
push edi
call fcn.006da9b0
push 0x402350
push 4
push 0x40
lea edx, [esp + 0x29c]
push edx
call fcn.00404db0
push 0x402350
push 4
push 0x40
lea eax, [esp + 0x19c]
push eax
call fcn.00404db0
push 0x402350
push 4
push 0x40
lea ecx, [esp + 0x39c]
push ecx
call fcn.00404db0
fld dword [0x903314]
mov eax, dword [esi + 0x154]
fld dword [0x890968]
mov edx, dword [esi + 0x150]
fld dword [0x890968]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x14]
xor ebx, ebx
cmp eax, 1
mov dword [esp + 0x54], edx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x2c], ebx
jg 0x74f033
mov edi, dword [esi + 0x17b4]
fstp st(0)
fstp st(0)
fld dword [edi + 0xf0]
fld dword [0x8b4d84]
fmul st(1)
call fcn.007c4b80
fmul dword [0x890eac]
fld dword [edi + 0xf8]
mov ecx, eax
fld dword [0x8b4d84]
mov eax, 0xb60b60b7
imul ecx
fmul st(1)
add edx, ecx
sar edx, 8
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x34], eax
call fcn.007c4b80
mov ecx, eax
fmul dword [0x890eac]
mov eax, 0xb60b60b7
imul ecx
add edx, ecx
sar edx, 8
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 0x18]
mov edx, dword [ebp + 0x14]
lea ecx, [eax + 0x34]
sub edx, eax
mov dword [esp + 0x38], ecx
mov dword [esp + 0x10], ebx
xor ecx, ecx
lea edi, [esi + 0x140]
mov dword [esp + 0x3c], edx
xor ebx, ebx
mov eax, dword [edi - 0x30]
fld dword [edi - 0x10]
mov edx, dword [edi]
fld st(0)
mov dword [esp + 0x28], edx
xor edx, edx
mov dword [esp + 0x30], eax
cmp dword [esp + 0x10], 2
setge dl
cmp ecx, 0x80
fmul dword [esi + edx*4 + 0x120]
fmul st(4)
fstp dword [esp + 0xc]
jge 0x74f08b
fld dword [esp + 0x54]
jmp 0x74f08f
fld dword [esp + 0x50]
mov eax, 0x3f800000
fld st(1)
mov dword [esp + ecx + 0x290], eax
mov dword [esp + ecx + 0x2a4], eax
mov dword [esp + ecx + 0x2b8], eax
mov dword [esp + ecx + 0x2cc], eax
mov dword [esp + ecx + 0x294], ebx
mov dword [esp + ecx + 0x298], ebx
mov dword [esp + ecx + 0x29c], ebx
mov dword [esp + ecx + 0x2a0], ebx
mov dword [esp + ecx + 0x2a8], ebx
mov dword [esp + ecx + 0x2ac], ebx
mov dword [esp + ecx + 0x2b0], ebx
mov dword [esp + ecx + 0x2b4], ebx
mov dword [esp + ecx + 0x2bc], ebx
mov dword [esp + ecx + 0x2c0], ebx
mov dword [esp + ecx + 0x2c4], ebx
mov dword [esp + ecx + 0x2c8], ebx
fstp dword [esp + ecx + 0x2a4]
fld dword [esp + 0x28]
mov dword [esp + ecx + 0x190], eax
fstp dword [esp + ecx + 0x2b8]
mov dword [esp + ecx + 0x1a4], eax
fld dword [esp + 0xc]
mov dword [esp + ecx + 0x1b8], eax
fchs
mov dword [esp + ecx + 0x1cc], eax
fst dword [esp + ecx + 0x2c4]
mov dword [esp + ecx + 0x390], eax
fld dword [esp + 0x30]
mov dword [esp + ecx + 0x3a4], eax
fcomp dword [0x890968]
mov dword [esp + ecx + 0x3b8], eax
mov dword [esp + ecx + 0x3cc], eax
mov eax, dword [esp + 0x28]
mov dword [esp + ecx + 0x290], eax
fnstsw ax
mov dword [esp + ecx + 0x194], ebx
mov dword [esp + ecx + 0x198], ebx
test ah, 5
mov dword [esp + ecx + 0x19c], ebx
mov dword [esp + ecx + 0x1a0], ebx
mov dword [esp + ecx + 0x1a8], ebx
mov dword [esp + ecx + 0x1ac], ebx
mov dword [esp + ecx + 0x1b0], ebx
mov dword [esp + ecx + 0x1b4], ebx
mov dword [esp + ecx + 0x1bc], ebx
mov dword [esp + ecx + 0x1c0], ebx
mov dword [esp + ecx + 0x1c4], ebx
mov dword [esp + ecx + 0x1c8], ebx
mov dword [esp + ecx + 0x394], ebx
mov dword [esp + ecx + 0x398], ebx
mov dword [esp + ecx + 0x39c], ebx
mov dword [esp + ecx + 0x3a0], ebx
mov dword [esp + ecx + 0x3a8], ebx
mov dword [esp + ecx + 0x3ac], ebx
mov dword [esp + ecx + 0x3b0], ebx
mov dword [esp + ecx + 0x3b4], ebx
mov dword [esp + ecx + 0x3bc], ebx
mov dword [esp + ecx + 0x3c0], ebx
mov dword [esp + ecx + 0x3c4], ebx
mov dword [esp + ecx + 0x3c8], ebx
jp 0x74f22b
fld dword [esp + 0xc]
fadd dword [esp + 0x30]
jmp 0x74f233
fld dword [esp + 0x30]
fsub dword [esp + 0xc]
fchs
fstp dword [esp + ecx + 0x1c4]
fld dword [0x890968]
fld st(2)
fucompp
fnstsw ax
test ah, 0x44
jnp 0x74f25c
fxch st(1)
fmul st(2)
fadd st(1)
fstp dword [esp + ecx + 0x3c4]
jmp 0x74f25e
fstp st(0)
cmp ecx, 0x80
fstp st(0)
fstp st(0)
fld dword [esp + ecx + 0x1c8]
jge 0x74f275
fsub st(2)
jmp 0x74f277
fsub st(1)
mov eax, dword [esp + 0x38]
fstp dword [esp + ecx + 0x1c8]
mov edx, dword [esp + 0x3c]
mov dword [eax + edx], ebx
mov edx, dword [esp + 0x10]
mov dword [eax], ebx
inc edx
add ecx, 0x40
add eax, 0x40
add edi, 4
cmp ecx, 0x100
mov dword [esp + 0x10], edx
mov dword [esp + 0x38], eax
jl 0x74f054
mov eax, dword [esi + 0x84]
fstp st(0)
mov ecx, dword [eax]
fstp st(0)
cmp ecx, 4
fstp st(0)
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x1c], ebx
je 0x74fca9
mov cl, byte [eax + 0x2b6]
test cl, cl
je 0x74fca9
mov ecx, dword [esp + 0x14]
cmp ecx, dword [eax + 0x28]
jg 0x74fca9
push 4
call fcn.00405ed0
mov edi, eax
add esp, 4
lea ecx, [esi + 0x17ac]
mov dword [esp + 0x18], edi
call fcn.007329f0
fld dword [0x890968]
mov edx, dword [eax]
mov dword [esp + 0x3c], edx
fld dword [esp + 0x3c]
mov dword [esp + 0xc], ebx
fucompp
fnstsw ax
test ah, 0x44
jnp 0x74f339
push 2
call fcn.00405ed0
add esp, 4
mov dword [esp + 0xc], eax
push 0x4c0
call fcn.00405e80
add esp, 4
cmp edi, ebx
mov dword [esp + 0x1c], eax
je 0x74fca9
cmp eax, ebx
je 0x74fca9
movzx eax, byte [esi + 0x1658]
movzx ecx, byte [esi + 0x1678]
movzx edx, byte [esi + 0x1698]
mov dword [esp + 0x50], eax
movzx eax, byte [esi + 0x16b8]
mov dword [esp + 0x54], ecx
mov ecx, dword [esi + 0x84]
mov dword [esp + 0x28], eax
mov eax, dword [ecx + 0x28]
mov ecx, dword [esp + 0x58]
cmp ecx, eax
mov dword [esp + 0x38], edx
jg 0x74f399
mov eax, ecx
mov ecx, dword [esi + 0xe4]
lea edi, [esi + eax*4 + 0x10ac]
cmp edi, ebx
lea edx, [esi + eax*4 + 0x10c0]
mov dword [esp + 0x58], eax
mov dword [esp + 0xb0], ecx
mov dword [esp + 0x10], edx
je 0x74f40b
cmp ecx, ebx
je 0x74f40b
mov eax, ecx
mov ecx, dword [edi]
push eax
push 0x22719fa9
and ecx, 0xfffffffc
call fcn.00501640
mov ecx, dword [esp + 0xb0]
push ecx
mov ecx, dword [edi]
push 0xfd102a92
and ecx, 0xfffffffc
call fcn.00501640
mov edx, dword [esp + 0xb0]
mov ecx, dword [edi]
push edx
push 0x12049251
and ecx, 0xfffffffc
call fcn.00501640
mov ecx, dword [esp + 0xb0]
cmp dword [esp + 0x10], ebx
je 0x74f45a
cmp ecx, ebx
je 0x74f45a
mov eax, dword [esp + 0xb0]
mov ecx, dword [edi]
push eax
push 0x22719fa9
and ecx, 0xfffffffc
call fcn.00501640
mov ecx, dword [esp + 0xb0]
push ecx
mov ecx, dword [edi]
push 0xfd102a92
and ecx, 0xfffffffc
call fcn.00501640
mov edx, dword [esp + 0xb0]
mov ecx, dword [edi]
push edx
push 0x12049251
and ecx, 0xfffffffc
call fcn.00501640
mov al, byte [esi + 0x17d0]
test al, al
mov dword [esp + 0x5c], 0x9b3600
mov dword [esp + 0xb0], ebx
je 0x74f486
mov dword [esp + 0x5c], 0x9b0bf0
mov dword [esp + 0xb0], 0x40000
mov al, byte [esi + 0x17cc]
test al, al
jne 0x74f4ae
mov al, byte [esi + 0x17cd]
test al, al
jne 0x74f4ae
mov al, byte [esi + 0x17ce]
test al, al
jne 0x74f4ae
mov al, byte [esi + 0x17cf]
test al, al
je 0x74f4d3
lea eax, [esp + 0x120]
push eax
call fcn.004450c0
lea ecx, [esp + 0x124]
push 0x4fa
push ecx
mov edx, ecx
push edx
call fcn.006bdbb0
add esp, 0x10
cmp dword [esp + 0x50], ebx
je 0x74f667
cmp word [esp + 0x34], bx
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x30], eax
je 0x74f585
push eax
lea eax, [esp + 0x64]
push eax
call fcn.00444fe0
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x9c]
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x4c], edx
push ecx
lea edx, [esp + 0x6c]
mov dword [esp + 0x54], eax
push edx
mov eax, edx
push eax
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0x3f800000
call fcn.006bdbb0
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x5c]
mov dword [esp + 0xa4], ecx
lea ecx, [esp + 0x74]
add esp, 0x14
mov dword [esp + 0x94], edx
mov dword [esp + 0x98], eax
mov dword [esp + 0x30], ecx
mov edx, dword [esp + 0x5c]
push edx
lea eax, [esp + 0x294]
push eax
lea ecx, [esp + 0xe8]
push ecx
call fcn.006bd900
mov al, byte [esi + 0x17cc]
add esp, 0xc
test al, al
je 0x74f5c7
lea edx, [esp + 0x120]
push edx
lea eax, [esp + 0xe4]
push eax
mov ecx, eax
push ecx
call fcn.006bd900
add esp, 0xc
mov edx, dword [esp + 0x30]
push edx
lea eax, [esp + 0xe4]
push eax
mov ecx, eax
push ecx
call fcn.006bd900
lea edx, [esp + 0x19c]
push edx
lea eax, [esp + 0xf0]
push eax
mov ecx, eax
push ecx
call fcn.006bd900
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x30]
push edx
lea eax, [esp + 0xfc]
push eax
push ecx
call fcn.006bd900
mov ebx, dword [ebp + 8]
mov ecx, dword [esp + 0x3c]
lea edx, [esp + 0x4f4]
push edx
mov edx, dword [esp + 0x44]
push ebx
lea eax, [esp + 0xfc]
push eax
push 0x987fc0
push ecx
push edx
call fcn.00502580
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0xec]
mov ecx, dword [esp + 0xe8]
or eax, edx
mov edx, dword [ebp + 0x20]
add esp, 0x3c
or eax, ecx
mov ecx, dword [esp + 0x1c]
or eax, edx
mov edx, dword [esp + 0x18]
push eax
push ecx
push edx
push edi
push ebx
mov ecx, esi
call fcn.007387e0
jmp 0x74f66a
mov ebx, dword [ebp + 8]
mov eax, dword [esp + 0x54]
test eax, eax
je 0x74f80c
mov eax, dword [ebp + 0x14]
add eax, 0x40
cmp word [esp + 0x34], 0
mov dword [esp + 0x30], eax
je 0x74f726
mov ecx, eax
push ecx
lea edx, [esp + 0x64]
push edx
call fcn.00444fe0
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0xa0]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x3c]
neg eax
mov dword [esp + 0x4c], ecx
push eax
lea ecx, [esp + 0x6c]
mov dword [esp + 0x54], edx
push ecx
mov edx, ecx
push edx
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0x3f800000
call fcn.006bdbb0
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov dword [esp + 0xa4], eax
lea eax, [esp + 0x74]
add esp, 0x14
mov dword [esp + 0x94], ecx
mov dword [esp + 0x98], edx
mov dword [esp + 0x30], eax
mov al, byte [esi + 0x17cd]
test al, al
je 0x74f752
lea ecx, [esp + 0x120]
push ecx
lea edx, [esp + 0x2d4]
push edx
lea eax, [esp + 0xe8]
push eax
call fcn.006bd900
add esp, 0xc
jmp 0x74f766
lea ecx, [esp + 0x2d0]
push ecx
lea ecx, [esp + 0xe4]
call fcn.00445090
mov edx, dword [esp + 0x30]
push edx
lea eax, [esp + 0xe4]
push eax
mov ecx, eax
push ecx
call fcn.006bd900
lea edx, [esp + 0x1dc]
push edx
lea eax, [esp + 0xf0]
push eax
mov ecx, eax
push ecx
call fcn.006bd900
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x30]
push edx
lea ecx, [esp + 0xfc]
add eax, 0x40
push ecx
push eax
call fcn.006bd900
mov ecx, dword [esp + 0x40]
lea edx, [esp + 0x4f4]
push edx
push ebx
lea eax, [esp + 0xfc]
push eax
mov eax, dword [esp + 0x48]
push 0x987fc0
add eax, 0x40
add ecx, 0x130
push eax
push ecx
call fcn.00502580
mov edx, dword [esp + 0xe8]
mov ecx, dword [esp + 0x60]
mov eax, dword [ebp + 0x20]
add esp, 0x3c
or ecx, edx
or ecx, eax
mov eax, dword [esp + 0x1c]
push ecx
add eax, 0x130
push eax
mov eax, dword [esp + 0x20]
add eax, 0x40
push eax
push edi
push ebx
mov ecx, esi
call fcn.007387e0
mov eax, dword [esp + 0x38]
test eax, eax
je 0x74fa4e
mov edi, dword [ebp + 0x14]
add edi, 0x80
cmp word [esp + 0x2c], 0
je 0x74f8c1
lea edx, [esp + 0x60]
push edi
push edx
call fcn.00444fe0
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0xa0]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x34]
neg eax
mov dword [esp + 0x4c], ecx
push eax
lea ecx, [esp + 0x6c]
mov dword [esp + 0x54], edx
push ecx
mov edx, ecx
push edx
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0x3f800000
call fcn.006bdbb0
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
add esp, 0x14
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], ecx
mov dword [esp + 0x98], edx
lea edi, [esp + 0x60]
mov al, byte [esi + 0x17ce]
test al, al
je 0x74f8ed
lea eax, [esp + 0x120]
push eax
lea ecx, [esp + 0x314]
push ecx
lea edx, [esp + 0xe8]
push edx
call fcn.006bd900
add esp, 0xc
jmp 0x74f901
lea eax, [esp + 0x310]
push eax
lea ecx, [esp + 0xe4]
call fcn.00445090
lea ecx, [esp + 0xe0]
push edi
push ecx
mov edx, ecx
push edx
call fcn.006bd900
lea eax, [esp + 0x21c]
push eax
lea ecx, [esp + 0xf0]
push ecx
mov edx, ecx
push edx
call fcn.006bd900
mov eax, dword [esp + 0x38]
mov edi, dword [esp + 0x30]
push eax
lea ecx, [esp + 0xfc]
push ecx
add edi, 0x80
push edi
call fcn.006bd900
mov eax, dword [esp + 0x40]
lea edx, [esp + 0x4f4]
push edx
push ebx
lea ecx, [esp + 0xfc]
push ecx
push 0x987fc0
add eax, 0x260
push edi
push eax
call fcn.00502580
mov eax, dword [esp + 0xe4]
add esp, 0x3c
test eax, eax
jne 0x74f9c9
mov eax, dword [0x9885c8]
test eax, eax
jne 0x74f9c9
mov edx, dword [esp + 0x58]
cmp edx, dword [esi + 0x1628]
jne 0x74f9c9
push ebx
push edi
call fcn.00738440
fcomp dword [0x9b0994]
add esp, 8
fnstsw ax
test ah, 5
jp 0x74f9c9
mov eax, dword [esi + 0x1628]
mov edx, dword [esi + 0x162c]
lea ecx, [eax + 1]
cmp ecx, edx
jg 0x74f9c9
lea eax, [esi + eax*4 + 0x10c4]
test eax, eax
je 0x74f9c9
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0xac]
mov edi, dword [esp + 0x24]
mov ecx, dword [ebp + 0x20]
mov eax, dword [esp + 0x1c]
or edi, edx
mov edx, dword [esp + 0x10]
or edi, ecx
push edi
add eax, 0x260
push eax
mov eax, dword [esp + 0x20]
add eax, 0x80
push eax
push edx
push ebx
mov ecx, esi
call fcn.007387e0
mov eax, dword [esp + 0xc]
test eax, eax
je 0x74fa4e
fld dword [esp + 0x110]
mov eax, dword [esp + 0x20]
fadd dword [esp + 0x3c]
mov edx, dword [esp + 0xc]
push eax
lea ecx, [esp + 0xe4]
push ecx
fstp dword [esp + 0x118]
push edx
call fcn.006bd900
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x1c]
add esp, 0xc
push edi
add eax, 0x260
push eax
mov eax, dword [esp + 0x14]
push eax
push ecx
push ebx
mov ecx, esi
call fcn.007387e0
mov edx, dword [esp + 0x58]
lea eax, [esi + edx*4 + 0x10c0]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x28]
test eax, eax
je 0x74fcac
mov edi, dword [ebp + 0x14]
add edi, 0xc0
cmp word [esp + 0x2c], 0
je 0x74fb10
lea ecx, [esp + 0x60]
push edi
push ecx
call fcn.00444fe0
mov edx, dword [esp + 0x98]
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x34]
mov dword [esp + 0x4c], eax
push edx
lea eax, [esp + 0x6c]
mov dword [esp + 0x54], ecx
push eax
mov ecx, eax
push ecx
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0x3f800000
call fcn.006bdbb0
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
add esp, 0x14
mov dword [esp + 0x90], edx
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], ecx
lea edi, [esp + 0x60]
mov edx, dword [esp + 0x5c]
push edx
lea eax, [esp + 0x354]
push eax
lea ecx, [esp + 0xe8]
push ecx
call fcn.006bd900
mov al, byte [esi + 0x17cf]
add esp, 0xc
test al, al
je 0x74fb52
lea edx, [esp + 0x120]
push edx
lea eax, [esp + 0xe4]
push eax
mov ecx, eax
push ecx
call fcn.006bd900
add esp, 0xc
lea edx, [esp + 0xe0]
push edi
push edx
mov eax, edx
push eax
call fcn.006bd900
lea ecx, [esp + 0x25c]
push ecx
lea edx, [esp + 0xf0]
push edx
mov eax, edx
push eax
call fcn.006bd900
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x30]
push ecx
lea edx, [esp + 0xfc]
add edi, 0xc0
push edx
push edi
mov dword [esp + 0x54], edi
call fcn.006bd900
mov eax, dword [esp + 0x40]
lea ecx, [esp + 0x4f4]
push ecx
push ebx
lea edx, [esp + 0xfc]
push edx
push 0x987fc0
add eax, 0x390
push edi
push eax
mov dword [esp + 0x98], eax
call fcn.00502580
mov eax, dword [esp + 0xe4]
add esp, 0x3c
test eax, eax
jne 0x74fc25
mov eax, dword [0x9885c8]
test eax, eax
jne 0x74fc25
mov eax, dword [esp + 0x58]
cmp eax, dword [esi + 0x1628]
jne 0x74fc25
push ebx
push edi
call fcn.00738440
fcomp dword [0x9b0994]
add esp, 8
fnstsw ax
test ah, 5
jp 0x74fc25
mov eax, dword [esi + 0x1628]
mov edx, dword [esi + 0x162c]
lea ecx, [eax + 1]
cmp ecx, edx
jg 0x74fc25
lea eax, [esi + eax*4 + 0x10c4]
test eax, eax
je 0x74fc25
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x24]
mov edi, dword [esp + 0xb0]
mov eax, dword [esp + 0xac]
mov edx, dword [ebp + 0x20]
or edi, ecx
mov ecx, dword [esp + 0x10]
or edi, eax
mov eax, dword [esp + 0x30]
or edi, edx
mov edx, dword [esp + 0x5c]
push edi
push edx
push eax
push ecx
push ebx
mov ecx, esi
call fcn.007387e0
mov eax, dword [esp + 0xc]
test eax, eax
je 0x74fcac
fld dword [esp + 0x110]
mov edx, dword [esp + 0x20]
fadd dword [esp + 0x3c]
push edx
lea ecx, [esp + 0xe4]
add eax, 0x40
push ecx
fstp dword [esp + 0x118]
push eax
mov dword [esp + 0x48], eax
call fcn.006bd900
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x1c]
add esp, 0xc
push edi
push edx
push eax
push ecx
push ebx
mov ecx, esi
call fcn.007387e0
jmp 0x74fcac
mov ebx, dword [ebp + 8]
mov edx, dword [esi + 0x84]
mov eax, dword [esp + 0x14]
cmp eax, dword [edx + 0x2c]
jg 0x75051f
mov ecx, dword [esi + 0x1628]
test dword [esi + ecx*4 + 0xd64], 0xfffffffc
je 0x75051f
movzx edx, byte [esi + 0x1718]
movzx ecx, byte [esi + 0x16f8]
movzx eax, byte [esi + 0x16d8]
mov dword [esp + 0xb0], edx
movzx edx, byte [esi + 0x1738]
mov edi, dword [esp + 0xb0]
mov dword [esp + 0x5c], edx
or edx, edi
or edx, ecx
or edx, eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0xa8], ecx
je 0x75051f
push 4
call fcn.00405ed0
mov edi, eax
push 0x4c0
mov dword [esp + 0x20], edi
call fcn.00405e80
add esp, 8
test edi, edi
mov dword [esp + 0x10], eax
je 0x75051f
test eax, eax
je 0x75051f
mov ecx, dword [esp + 0x14]
mov ecx, dword [esi + ecx*4 + 0xd64]
test ecx, 0xfffffffc
mov eax, dword [esi + 0xe8]
mov dword [esp + 0xc], eax
je 0x74fd8f
and ecx, 0xfffffffc
test eax, eax
mov edi, ecx
je 0x74fd91
mov edx, eax
push edx
push 0xd6640dff
call fcn.00501640
mov eax, dword [esp + 0xc]
push eax
push 0xa3186e2b
mov ecx, edi
call fcn.00501640
jmp 0x74fd91
xor edi, edi
mov ecx, dword [esp + 0x14]
mov ecx, dword [esi + ecx*4 + 0xe2c]
test ecx, 0xfffffffc
je 0x74fdd5
mov eax, dword [esp + 0xc]
and ecx, 0xfffffffc
test eax, eax
mov dword [esp + 0x14], ecx
je 0x74fddd
mov edx, eax
push edx
push 0xd6640dff
call fcn.00501640
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x14]
push eax
push 0xa3186e2b
call fcn.00501640
jmp 0x74fddd
mov dword [esp + 0x14], 0
lea ecx, [esp + 0xe0]
push ecx
call fcn.00466f20
mov eax, dword [esp + 0x40]
add esp, 4
test eax, eax
mov dword [esp + 0xe0], 0x3f800000
mov dword [esp + 0xf4], 0xbf800000
mov dword [esp + 0x108], 0x3f800000
je 0x74ffd6
cmp word [esp + 0x34], 0
mov edx, dword [ebp + 0x18]
mov dword [esp + 0x3c], edx
je 0x74fec5
mov eax, edx
push eax
lea ecx, [esp + 0x64]
push ecx
call fcn.00444fe0
mov edx, dword [esp + 0x98]
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x4c], eax
push edx
lea eax, [esp + 0x6c]
mov dword [esp + 0x54], ecx
push eax
mov ecx, eax
push ecx
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0x3f800000
call fcn.006bdbb0
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0xa4], edx
lea edx, [esp + 0x74]
add esp, 0x14
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], ecx
mov dword [esp + 0x3c], edx
lea eax, [esp + 0xe0]
push eax
lea ecx, [esp + 0x394]
push ecx
lea edx, [esp + 0x128]
push edx
call fcn.006bd900
mov eax, dword [esp + 0x48]
push eax
lea ecx, [esp + 0x130]
push ecx
mov edx, ecx
push edx
call fcn.006bd900
lea eax, [esp + 0x1a8]
push eax
lea ecx, [esp + 0x13c]
push ecx
mov edx, ecx
push edx
call fcn.006bd900
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x3c]
push eax
lea ecx, [esp + 0x148]
push ecx
push edx
call fcn.006bd900
mov eax, dword [esp + 0x80]
add esp, 0x30
test eax, eax
je 0x74ff75
cmp dword [0x925e90], 6
jne 0x74ff75
test edi, edi
je 0x74ffd6
push 0
push 2
lea eax, [esi + 0xb54]
push eax
mov ecx, edi
call fcn.004fb6e0
mov edx, dword [ebp + 0x20]
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
or ecx, edx
mov edx, dword [esp + 0x1c]
push 0
or ecx, 0x40000
push ecx
push edx
push eax
jmp 0x74ffce
test edi, edi
je 0x74ffd6
push 0
push 2
lea ecx, [esi + 0xb54]
push ecx
mov ecx, edi
call fcn.004fb6e0
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x4d0]
push edx
mov edx, dword [esp + 0x14]
push ebx
lea eax, [esp + 0xd8]
push eax
push 0x987fc0
push ecx
push edx
call fcn.00502580
mov ecx, dword [ebp + 0x20]
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x30]
add esp, 0x18
or eax, ecx
mov ecx, dword [esp + 0x10]
push 0
or eax, 0x40000
push eax
push ecx
push edx
mov ecx, ebx
push edi
call fcn.006da9b0
mov eax, dword [esp + 0xa8]
test eax, eax
je 0x750186
mov eax, dword [ebp + 0x18]
add eax, 0x40
cmp word [esp + 0x34], 0
je 0x75008b
push eax
lea eax, [esp + 0x64]
push eax
call fcn.00444fe0
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x9c]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x3c]
neg eax
mov dword [esp + 0x48], ecx
push eax
lea ecx, [esp + 0x6c]
mov dword [esp + 0x50], edx
push ecx
mov edx, ecx
push edx
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0x3f800000
call fcn.006bdbb0
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov dword [esp + 0xa4], eax
add esp, 0x14
mov dword [esp + 0x94], ecx
mov dword [esp + 0x98], edx
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0x3d4]
push eax
lea ecx, [esp + 0x128]
push ecx
call fcn.006bd900
lea edx, [esp + 0x1dc]
push edx
lea eax, [esp + 0x130]
push eax
mov ecx, eax
push ecx
call fcn.006bd900
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x30]
push edx
lea ecx, [esp + 0x13c]
add eax, 0x40
push ecx
push eax
call fcn.006bd900
mov eax, dword [esp + 0x78]
add esp, 0x24
test eax, eax
je 0x75011a
cmp dword [0x925e90], 6
jne 0x75011a
test edi, edi
je 0x750186
push 0
push 2
lea edx, [esi + 0xb6c]
push edx
mov ecx, edi
call fcn.004fb6e0
mov eax, dword [esp + 0x24]
mov edx, dword [ebp + 0x20]
mov ecx, dword [esp + 0x1c]
push 0
or eax, edx
push eax
add ecx, 0x130
push ecx
jmp 0x750176
test edi, edi
je 0x750186
push 0
push 2
lea edx, [esi + 0xb6c]
push edx
mov ecx, edi
call fcn.004fb6e0
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x4d0]
push ecx
mov ecx, dword [esp + 0x1c]
push ebx
lea edx, [esp + 0xd8]
push edx
push 0x987fc0
add ecx, 0x40
add eax, 0x130
push ecx
push eax
call fcn.00502580
mov eax, dword [esp + 0x3c]
mov edx, dword [ebp + 0x20]
add esp, 0x18
or eax, edx
push 0
push eax
mov eax, dword [esp + 0x18]
add eax, 0x130
push eax
mov eax, dword [esp + 0x24]
add eax, 0x40
push eax
mov ecx, ebx
push edi
call fcn.006da9b0
mov eax, dword [esp + 0xb0]
test eax, eax
je 0x750340
mov eax, dword [ebp + 0x18]
add eax, 0x80
cmp word [esp + 0x2c], 0
je 0x75023d
push eax
lea ecx, [esp + 0x64]
push ecx
call fcn.00444fe0
mov edx, dword [esp + 0x98]
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x34]
neg edx
mov dword [esp + 0x4c], eax
push edx
lea eax, [esp + 0x6c]
mov dword [esp + 0x54], ecx
push eax
mov ecx, eax
push ecx
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0x3f800000
call fcn.006bdbb0
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0xa8], eax
add esp, 0x14
mov dword [esp + 0x90], edx
mov dword [esp + 0x98], ecx
lea eax, [esp + 0x60]
push eax
lea edx, [esp + 0x414]
push edx
lea eax, [esp + 0x128]
push eax
call fcn.006bd900
lea ecx, [esp + 0x21c]
push ecx
lea edx, [esp + 0x130]
push edx
mov eax, edx
push eax
call fcn.006bd900
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x30]
push ecx
lea edx, [esp + 0x13c]
push edx
add edi, 0x80
push edi
call fcn.006bd900
mov eax, dword [esp + 0x5c]
add esp, 0x24
test eax, eax
je 0x7502db
cmp dword [0x925e90], 6
jne 0x7502db
mov eax, dword [esp + 0x14]
test eax, eax
je 0x750340
mov ecx, dword [esp + 0x14]
push 0
push 2
lea eax, [esi + 0xb6c]
push eax
call fcn.004fb6e0
mov eax, dword [ebp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
push 0
or ecx, eax
mov eax, dword [esp + 0x18]
push ecx
add edx, 0x260
push edx
push edi
push eax
jmp 0x750339
mov eax, dword [esp + 0x14]
test eax, eax
je 0x750340
push 0
push 2
lea ecx, [esi + 0xb6c]
push ecx
mov ecx, eax
call fcn.004fb6e0
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x4d0]
push edx
push ebx
lea ecx, [esp + 0xd8]
push ecx
push 0x987fc0
add eax, 0x260
push edi
push eax
mov dword [esp + 0x50], eax
call fcn.00502580
mov ecx, dword [ebp + 0x20]
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x50]
add esp, 0x18
push 0
or edx, ecx
mov ecx, dword [esp + 0x18]
push edx
push eax
push edi
push ecx
mov ecx, ebx
call fcn.006da9b0
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x75051f
mov edi, dword [ebp + 0x18]
add edi, 0xc0
cmp word [esp + 0x2c], 0
je 0x7503f3
lea edx, [esp + 0x60]
push edi
push edx
call fcn.00444fe0
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0xa0]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x4c], ecx
push eax
lea ecx, [esp + 0x6c]
mov dword [esp + 0x54], edx
push ecx
mov edx, ecx
push edx
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0x3f800000
call fcn.006bdbb0
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
add esp, 0x14
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], ecx
mov dword [esp + 0x98], edx
lea edi, [esp + 0x60]
lea eax, [esp + 0xe0]
push eax
lea ecx, [esp + 0x454]
push ecx
lea edx, [esp + 0x128]
push edx
call fcn.006bd900
lea eax, [esp + 0x12c]
push edi
push eax
mov ecx, eax
push ecx
call fcn.006bd900
lea edx, [esp + 0x268]
push edx
lea eax, [esp + 0x13c]
push eax
mov ecx, eax
push ecx
call fcn.006bd900
mov edx, dword [esp + 0x44]
mov edi, dword [esp + 0x3c]
push edx
lea eax, [esp + 0x148]
push eax
add edi, 0xc0
push edi
call fcn.006bd900
mov eax, dword [esp + 0x58]
add esp, 0x30
test eax, eax
je 0x7504bc
cmp dword [0x925e90], 6
jne 0x7504bc
mov eax, dword [esp + 0x14]
test eax, eax
je 0x75051f
push 0
push 2
add esi, 0xb54
push esi
mov ecx, eax
call fcn.004fb6e0
mov edx, dword [ebp + 0x20]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
push 0
or eax, edx
mov edx, dword [esp + 0x18]
or eax, 0x40000
push eax
add ecx, 0x390
push ecx
push edi
mov ecx, ebx
push edx
call fcn.006da9b0
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x30
mov eax, dword [esp + 0x14]
test eax, eax
je 0x75051f
push 0
push 2
add esi, 0xb54
push esi
mov ecx, eax
call fcn.004fb6e0
mov esi, dword [esp + 0x10]
lea eax, [esp + 0x4d0]
push eax
push ebx
lea ecx, [esp + 0xd8]
push ecx
push 0x987fc0
add esi, 0x390
push edi
push esi
call fcn.00502580
mov ecx, dword [ebp + 0x20]
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x2c]
add esp, 0x18
push 0
or eax, ecx
or eax, 0x40000
push eax
push esi
push edi
mov ecx, ebx
push edx
call fcn.006da9b0
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x30
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret 0x30