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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push 0xffffffffffffffff
push 0x67b87b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x998
push ebx
mov ebx, dword [ebp + 0x10]
push esi
mov esi, dword [ebp + 0xc]
push edi
mov edi, dword [ebp + 8]
push 0x40400000
mov ecx, ebx
mov edx, esi
call fcn.005291d0
cmp dword [0x72b2b8], 3
mov dword [esp + 0x1c], eax
jne 0x54d40f
cmp dword [0x76c3f0], 3
je 0x54d40f
fild dword [esp + 0x1c]
fmul dword [0x6a84b0]
call fcn.00666390
mov ecx, 1
mov dword [esp + 0x1c], eax
mov dword [ebp + 0x30], ecx
mov dword [ebp + 0x2c], ecx
cmp eax, 4
jl 0x54ff5c
mov eax, dword [edi]
xor ecx, ecx
cmp eax, ecx
mov dword [esp + 0x50], eax
je 0x54d42d
mov eax, dword [eax + 0x30]
mov dword [esp + 0x28], eax
jmp 0x54d431
mov dword [esp + 0x28], ecx
mov edx, dword [esi + 0x40]
cmp dword [0x76c3f0], 3
sete al
mov dword [esp + 0x30], edx
movzx edx, al
mov eax, dword [edi + 8]
cmp eax, ecx
mov dword [esp + 0x68], edx
je 0x54d45e
mov eax, dword [eax + 0xc54]
xor ecx, ecx
cmp eax, 2
sete cl
push 0x1c0
mov dword [esp + 0x4c], ecx
call fcn.00401030
mov edi, eax
push 1
mov dword [esp + 0x78], edi
call fcn.00401080
mov esi, eax
push 1
mov dword [esp + 0x24], esi
call fcn.00401080
push 1
mov dword [esp + 0x50], eax
call fcn.00401080
push 1
mov dword [esp + 0x60], eax
call fcn.00401080
add esp, 0x14
test edi, edi
mov dword [esp + 0x44], eax
je 0x54ff5c
test esi, esi
je 0x54ff5c
mov ecx, dword [esp + 0x4c]
test ecx, ecx
je 0x54ff5c
test eax, eax
je 0x54ff5c
mov edx, dword [ebp + 0x14]
push edx
push esi
call fcn.00401c70
add esp, 8
push esi
push 0x72f3d0
push esi
call fcn.0059fcbc
mov eax, dword [ebp + 0x28]
test eax, eax
je 0x54d574
lea eax, [esp + 0x6e0]
call fcn.0043db50
fld dword [ebx + 8]
fld dword [ebx + 4]
mov eax, dword [ebx]
push 0
fstp dword [esp + 0xf8]
push 0
push 0
fstp dword [esp + 0x104]
lea ecx, [esp + 0x6ec]
push ecx
lea edi, [esp + 0x100]
mov dword [esp + 0x9bc], 0
mov dword [esp + 0x100], eax
call fcn.0043de60
fld dword [esp + 0xf8]
fsub st(1)
mov dword [esp + 0x9ac], 0xffffffff
fsubr st(1)
fstp dword [esi + 0x38]
mov edx, dword [ebx]
mov dword [esi + 0x30], edx
fstp st(0)
mov eax, dword [ebx + 4]
mov dword [esi + 0x34], eax
lea eax, [esp + 0x6e0]
mov dword [esi + 0x3c], 0x3f800000
call fcn.0043db90
jmp 0x54d58c
mov ecx, dword [ebx]
mov dword [esi + 0x30], ecx
mov edx, dword [ebx + 4]
mov dword [esi + 0x34], edx
mov eax, dword [ebx + 8]
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], 0x3f800000
mov edx, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
lea ecx, [edx + 0x20]
add edx, 0x10
push edi
mov eax, esi
mov dword [esp + 0x38], ecx
mov dword [esp + 0x40], edx
call fcn.0040cbf0
test eax, eax
je 0x54ff5c
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 0x40]
mov edx, dword [eax + 0x44]
add eax, 0x40
mov dword [esp + 0x30], eax
mov eax, dword [eax + 8]
mov dword [esp + 0xa8], eax
mov eax, dword [0x729634]
test eax, eax
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xa4], edx
mov dword [esp + 0xac], 0x3f800000
je 0x54d5f7
mov dword [0x72a374], 1
mov eax, dword [esp + 0x50]
test eax, eax
je 0x54d615
mov ecx, dword [edi + 4]
call fcn.0047af60
mov esi, dword [esp + 0x40]
push eax
mov ecx, esi
call fcn.00401d00
jmp 0x54d626
mov ecx, dword [ebp + 0x14]
mov esi, dword [esp + 0x40]
push ecx
push esi
call fcn.00401c70
add esp, 8
mov edx, dword [ebx]
mov dword [esi + 0x30], edx
mov eax, dword [ebx + 4]
mov dword [esi + 0x34], eax
mov ecx, dword [ebx + 8]
mov dword [esi + 0x38], ecx
mov dword [esi + 0x3c], 0x3f800000
call fcn.004075d0
test al, al
je 0x54d655
mov ecx, dword [ebp + 8]
add ecx, 0x19ac
call fcn.005251c0
mov esi, dword [ebp + 0xc]
xor eax, eax
push 0x780560
push eax
mov ecx, 0x70
lea edi, [esp + 0x6e8]
lea edx, [esp + 0x6e8]
rep stosd dword es:[edi], eax
push ebx
push edx
mov eax, esi
call fcn.00526e40
mov edi, dword [esp + 0x80]
lea eax, [esp + 0x6f0]
push eax
push esi
mov esi, dword [esp + 0x58]
lea ecx, [esp + 0xb8]
push ecx
push 0x780560
mov eax, edi
call fcn.00528320
mov eax, dword [ebp + 8]
mov edx, dword [0x72b2f4]
add esp, 0x20
add edi, 0x120
push edi
lea ecx, [eax + 0x4f0]
mov dword [eax + 0x4ec], edx
call fcn.00401c40
call fcn.004075d0
test al, al
mov edi, dword [ebp + 8]
je 0x54d6e1
lea eax, [edi + 0x19ac]
call fcn.00525190
mov eax, dword [0x729634]
xor esi, esi
cmp eax, esi
je 0x54d6f2
mov dword [0x72a374], esi
mov ecx, edi
call fcn.0054c6f0
mov eax, dword [esp + 0x50]
cmp eax, esi
mov dword [esp + 0x40], esi
je 0x54d70f
mov eax, dword [eax + 0x868]
mov dword [esp + 0x40], eax
mov edx, dword [0x7295d8]
mov ecx, dword [edi + 8]
mov esi, dword [ecx + 0xc50]
xor eax, eax
test edx, edx
jle 0x54d74b
mov ecx, dword [0x7295d4]
lea ebx, [ebx]
cmp dword [ecx], esi
jne 0x54d743
mov edi, dword [edi + 4]
movsx edi, byte [edi + 7]
cmp dword [ecx + 4], edi
mov edi, dword [ebp + 8]
je 0x54d74b
inc eax
add ecx, 0x40
cmp eax, edx
jl 0x54d730
mov ecx, dword [0x6f4e34]
xor eax, eax
cmp ecx, eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x74], eax
je 0x54d770
fild dword [esp + 0x1c]
fcomp dword [0x6a84ac]
fnstsw ax
test ah, 5
jp 0x54d77d
mov eax, 1
mov dword [esp + 0x7c], eax
mov dword [esp + 0x74], eax
fild dword [esp + 0x1c]
mov esi, dword [ebp + 0x30]
mov ecx, dword [ebp + 0x2c]
mov dword [esp + 0x54], esi
fst dword [esp + 0x2c]
mov dword [esp + 0x64], ecx
fcomp dword [esi*4 + 0x6a849c]
fnstsw ax
test ah, 5
jp 0x54d7bd
fld dword [esp + 0x2c]
inc esi
fcomp dword [esi*4 + 0x6a849c]
inc ecx
fnstsw ax
test ah, 5
jnp 0x54d7a1
mov dword [esp + 0x64], ecx
mov dword [esp + 0x54], esi
cmp esi, 3
jle 0x54d7cd
mov esi, 3
mov dword [esp + 0x54], esi
jmp 0x54d7d2
cmp esi, 2
jle 0x54d7f7
mov eax, dword [esp + 0x50]
test eax, eax
je 0x54d7f7
mov edx, dword [eax + 0x3cc]
test edx, edx
jne 0x54d7f7
mov al, byte [edi + 0x1d98]
test al, al
je 0x54d7f7
mov esi, 2
mov dword [esp + 0x54], esi
mov eax, dword [0x6e3fc8]
cmp eax, 0xffffffff
je 0x54d807
mov esi, eax
mov dword [esp + 0x54], esi
mov eax, dword [0x6e3fcc]
cmp eax, 0xffffffff
je 0x54d817
mov ecx, eax
mov dword [esp + 0x64], ecx
cmp esi, 0xffffffff
jne 0x54d824
cmp ecx, esi
je 0x54ff5c
mov eax, dword [edi + 4]
test eax, eax
je 0x54d84e
mov edx, dword [eax]
mov eax, dword [0x7295cc]
imul edx, edx, 0xc90
cmp dword [edx + eax + 0xc54], 2
je 0x54d847
cmp esi, 1
jl 0x54d84e
or dword [ebp + 0x20], 0x800
mov ecx, dword [esp + 0x18]
push ecx
lea edx, [esp + 0x5a4]
push edx
call fcn.00598340
mov edi, dword [esp + 0x38]
push edi
lea eax, [esp + 0x5ac]
push eax
lea ecx, [esp + 0x1a0]
push ecx
call fcn.00598540
mov eax, dword [esp + 0x2c]
add eax, 0x30
push eax
push edi
call fcn.00599d10
fstp dword [esp + 0x54]
add esp, 0x1c
test esi, esi
jne 0x54d8f8
fld dword [esp + 0x38]
fcomp dword [0x6bdb58]
fnstsw ax
test ah, 5
jp 0x54d8f8
mov edx, dword [ebp + 0xc]
cmp dword [edx + 4], 1
jne 0x54d8f8
fld dword [esp + 0x198]
mov ecx, dword [esp + 0x34]
fadd dword [0x6bda38]
mov edx, dword [esp + 0x3c]
push esi
lea eax, [esp + 0x194]
push eax
fstp dword [esp + 0x1a0]
push ecx
push edx
call fcn.0059a6a0
add esp, 0x10
test eax, eax
jne 0x54ff5c
fld dword [esp + 0x198]
fsub dword [0x6bda38]
fstp dword [esp + 0x198]
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x4c]
push eax
push esi
call fcn.00401c70
mov eax, dword [esp + 0x4c]
add esp, 8
mov edx, ebx
mov ecx, 0x77d7e0
call fcn.00423300
fld dword [0x6a8484]
fadd dword [esi + 0x38]
mov edi, dword [ebp + 0xc]
fstp dword [esi + 0x38]
fld dword [esp + 0x38]
fsub dword [0x6a8488]
fdiv dword [esp + 0x38]
fstp dword [esp + 0x38]
mov ecx, dword [esp + 0x38]
push ecx
call fcn.00529340
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x44]
push edx
call fcn.00529340
lea eax, [esp + 0x150]
push eax
call fcn.00598300
fld dword [ebx]
fchs
add esp, 4
fstp dword [esp + 0x180]
mov eax, esi
fld dword [ebx + 4]
push eax
fchs
lea ecx, [esp + 0x154]
fstp dword [esp + 0x188]
push ecx
fld dword [ebx + 8]
push eax
fchs
fstp dword [esp + 0x194]
call fcn.0059fcbc
mov ecx, dword [esp + 0x28]
xor eax, eax
test ecx, ecx
je 0x54d9aa
mov edx, ecx
mov ax, word [edx + 0x1d0]
mov esi, dword [ebp + 8]
push eax
lea eax, [esi + 0x1c00]
push eax
lea eax, [esp + 0x198]
call fcn.00549490
fld dword [ebx + 4]
mov edx, dword [esi + 0x1058]
fld dword [ebx + 8]
mov eax, dword [ebx]
fxch st(1)
mov edi, dword [esp + 0x50]
fstp dword [0x72e764]
xor ecx, ecx
test edx, edx
fstp dword [0x72e768]
setne cl
xor edx, edx
mov dword [0x72e760], eax
mov dword [esp + 0x20], ecx
cmp dword [esp + 0x54], 1
setge dl
test edi, edi
mov dword [esp + 0x60], edx
je 0x54dad8
lea esi, [edi + 0x540]
test esi, esi
mov dword [esp + 0x28], esi
je 0x54da33
push 0
push 0x72e310
push 0
push esi
mov edi, 0x72e760
call fcn.0043de60
fstp dword [0x72e768]
mov edi, dword [esp + 0x50]
mov ebx, dword [esp + 0x18]
push ebx
lea ecx, [esp + 0x1a4]
push ecx
lea edx, [esp + 0x1a8]
push edx
mov dword [esp + 0x1ac], 0
mov dword [esp + 0x1b0], 0
mov dword [esp + 0x1b4], 0
call fcn.0059f3cf
fld dword [0x6bda00]
mov eax, dword [esp + 0x68]
test eax, eax
jne 0x54da9c
push 0
fstp st(0)
push 0
push 0
push esi
lea edi, [esp + 0x1b0]
call fcn.0043de60
fsubr dword [esp + 0x1a8]
mov edi, dword [esp + 0x50]
fcom dword [0x6a8430]
mov dword [esp + 0x24], 0
fnstsw ax
test ah, 0x41
jne 0x54dae3
fcom dword [0x6a8434]
fnstsw ax
test ah, 5
jp 0x54dae3
fsub dword [0x6a8430]
fld dword [0x6a8434]
fsub dword [0x6a8430]
fdivp st(1)
fstp dword [esp + 0x24]
jmp 0x54daf8
xor esi, esi
mov dword [esp + 0x28], esi
jmp 0x54da33
fcomp dword [0x6a8434]
fnstsw ax
test ah, 0x41
jne 0x54daf8
mov dword [esp + 0x24], 0x3f800000
mov eax, dword [esp + 0x24]
push 0x3f800000
push 0
push eax
call fcn.00401be0
fstp dword [esp + 0x30]
fld dword [0x72961c]
add esp, 0xc
fcomp dword [0x6bda00]
fnstsw ax
test ah, 0x44
jnp 0x54db2d
mov ecx, dword [0x72961c]
mov dword [esp + 0x24], ecx
test edi, edi
jne 0x54db35
xor esi, esi
jmp 0x54db38
mov esi, dword [edi + 0x3c]
mov eax, dword [ebp + 0x28]
test eax, eax
jne 0x54e1e9
cmp dword [esp + 0x54], 2
jg 0x54e1e9
mov eax, dword [esp + 0x68]
test eax, eax
jne 0x54e1e9
test esi, esi
je 0x54e1e9
mov eax, dword [0x6e3f60]
test eax, eax
je 0x54e1e9
cmp dword [0x6f302c], 1
jle 0x54e1e9
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x4b8]
test eax, eax
je 0x54e1e9
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x54e1e9
mov eax, dword [ebp + 0xc]
call fcn.0054d020
test al, al
jne 0x54e1e9
mov eax, dword [esp + 0x3c]
fld dword [eax + 4]
mov ecx, dword [eax]
fstp dword [esp + 0xf4]
fld dword [eax + 8]
mov eax, dword [esp + 0x34]
mov edx, dword [eax]
fstp dword [esp + 0xf8]
fld dword [eax + 4]
push ebx
fstp dword [esp + 0x148]
fld dword [eax + 8]
lea eax, [esp + 0xf4]
mov dword [esp + 0xf4], ecx
push eax
lea ecx, [esp + 0xf8]
fstp dword [esp + 0x150]
push ecx
mov dword [esp + 0x14c], edx
call fcn.0059f3cf
push ebx
lea edx, [esp + 0x144]
push edx
lea eax, [esp + 0x148]
push eax
call fcn.0059f3cf
mov eax, dword [esi + 0x10]
mov esi, dword [eax + 0x14]
mov edi, dword [ebp + 0x10]
mov dword [esp + 0x30], eax
mov eax, edi
mov dword [esp + 0x48], esi
call fcn.0054ce70
mov edx, ebx
lea eax, [esp + 0x150]
call fcn.00524b60
lea ecx, [esp + 0xb0]
call fcn.00463130
mov ecx, dword [edi + 8]
mov edx, dword [0x727dec]
xor edi, edi
test esi, esi
mov ebx, 0x72df10
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x78], edx
jle 0x54dd58
lea esp, [esp]
lea eax, [esp + 0xb0]
push eax
mov eax, dword [esp + 0x34]
push edi
push eax
call dword [eax + 0xc]
fld dword [esp + 0xd4]
mov ecx, dword [esp + 0xcc]
fadd dword [0x6a842c]
mov edx, dword [esp + 0xd0]
push ecx
mov eax, esp
mov dword [eax], ecx
mov dword [esp + 0x90], ecx
mov dword [eax + 4], edx
fstp dword [esp + 0x98]
mov ecx, dword [esp + 0x98]
mov dword [esp + 0x94], edx
mov edx, dword [esp + 0x9c]
mov dword [eax + 8], ecx
lea esi, [esp + 0xa0]
lea ecx, [esp + 0x160]
mov dword [eax + 0xc], edx
call fcn.00524b00
lea eax, [esp + 0x4d0]
lea ecx, [esp + 0x90]
call fcn.005249b0
fld dword [eax + 8]
fsub dword [esp + 0x1c]
lea eax, [esp + 0x1c0]
lea ecx, [esp + 0x90]
fmul dword [esp + 0x78]
fchs
fstp dword [esp + 0x38]
call fcn.00524950
fld dword [esp + 0x38]
lea ecx, [esp + 0x90]
fmul dword [0x72e320]
fadd dword [eax]
lea eax, [esp + 0x1b0]
fstp dword [ebx]
call fcn.00524980
fld dword [esp + 0x38]
inc edi
fmul dword [0x72e324]
add ebx, 0x10
fadd dword [eax + 4]
mov eax, dword [esp + 0x48]
cmp edi, eax
fstp dword [ebx - 0xc]
jl 0x54dc70
mov eax, dword [esp + 0x60]
fld dword [0x6a8480]
mov ecx, dword [0x6a8480]
fadd dword [0x72e768]
mov edx, dword [esp + 0x28]
push eax
push ecx
push ecx
fstp dword [esp]
push edx
lea eax, [esp + 0x58]
push eax
push 0x72df10
call fcn.0054cb20
mov esi, dword [esp + 0x6c]
add esp, 0x18
test esi, esi
je 0x54dda7
mov eax, dword [0x729680]
test eax, eax
je 0x54dda7
mov ebx, dword [esp + 0x48]
mov ecx, 0x72e330
jmp 0x54ddbf
mov ecx, dword [esp + 0x48]
push ecx
call fcn.0054ccd0
mov ebx, eax
add esp, 4
mov dword [esp + 0x48], ebx
mov ecx, 0x72e770
cmp ebx, 3
mov dword [esp + 0x1c], ecx
jl 0x54e1e9
mov eax, ebx
cdq
sub eax, edx
sar eax, 1
shl eax, 4
add eax, ecx
push eax
lea edx, [esp + 0x1b4]
push edx
call fcn.004232a0
cmp esi, 2
fld dword [eax]
fld dword [eax + 4]
fld dword [eax + 8]
fstp dword [esp + 0x98]
fxch st(1)
fmul dword [0x6bda38]
fstp dword [esp + 0x90]
fmul dword [0x6bda38]
fstp dword [esp + 0x94]
fld dword [esp + 0x98]
fmul dword [0x6bda38]
fstp dword [esp + 0x98]
fld dword [esp + 0x24]
fmul dword [0x6bdfd4]
fadd dword [0x6bdfd0]
fld dword [0x6a8424]
fsub dword [0x6a8428]
fmul dword [esp + 0x24]
fadd dword [0x6a8428]
fstp dword [0x6e3f64]
jne 0x54de70
fld dword [esp + 0x2c]
fsub dword [0x6a84a4]
fld dword [0x6a84a0]
fsub dword [0x6a84a4]
fdivp st(1)
fmulp st(1)
call fcn.00666390
test eax, eax
jle 0x54e225
cmp eax, 0xfe
mov esi, eax
jle 0x54de8b
mov esi, 0xfe
mov eax, dword [0x6e41a0]
shl esi, 0x18
or esi, 0x808080
test eax, eax
je 0x54e1e9
mov eax, ebx
and eax, 0xfffffffe
lea edi, [eax - 1]
test edi, edi
mov dword [esp + 0x2c], 0
mov dword [esp + 0x60], edi
jle 0x54df99
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x38], eax
jmp 0x54ded0
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x4b8]
mov eax, dword [esp + 0x44]
push 4
push edx
call fcn.0040f5e0
add esp, 8
test al, al
je 0x54df7b
mov edi, dword [esp + 0x38]
mov ecx, edi
call fcn.0040f6b0
lea ecx, [esp + 0x90]
call fcn.0040f6b0
lea ecx, [edi + 0x10]
call fcn.0040f6b0
mov eax, dword [esp + 0x2c]
add eax, 2
cdq
idiv ebx
mov ecx, edx
mov edx, dword [esp + 0x1c]
shl ecx, 4
add ecx, edx
call fcn.0040f6b0
push esi
call fcn.0040f640
push esi
call fcn.0040f640
push esi
call fcn.0040f640
push esi
call fcn.0040f640
mov edi, dword [0x6a8420]
push 0
push edi
call fcn.0040f680
push 0
push 0
call fcn.0040f680
push 0
push edi
call fcn.0040f680
push 0
push edi
call fcn.0040f680
mov eax, dword [ebp + 0xc]
push eax
call fcn.0040f730
mov edi, dword [esp + 0x94]
add esp, 0x34
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x38]
add eax, 2
add edx, 0x20
cmp eax, edi
mov dword [esp + 0x2c], eax
mov dword [esp + 0x38], edx
jl 0x54ded0
test bl, 1
je 0x54e01c
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x4b8]
mov eax, dword [esp + 0x44]
push 3
push edx
call fcn.0040f5e0
add esp, 8
test al, al
je 0x54e01c
mov edi, dword [esp + 0x1c]
mov eax, ebx
shl eax, 4
lea ecx, [eax + edi - 0x10]
call fcn.0040f6b0
lea ecx, [esp + 0x90]
call fcn.0040f6b0
mov ecx, edi
call fcn.0040f6b0
push esi
call fcn.0040f640
push esi
call fcn.0040f640
push esi
call fcn.0040f640
mov edi, dword [0x6a8420]
push 0
push edi
call fcn.0040f680
push 0
push 0
call fcn.0040f680
push 0
push edi
call fcn.0040f680
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.0040f730
add esp, 0x28
mov eax, 0x55555556
imul ebx
mov eax, edx
shr eax, 0x1f
add edx, eax
mov edi, edx
mov ecx, edi
shl ecx, 4
mov dword [esp + 0x6c], ecx
mov ecx, edi
xor eax, eax
neg ecx
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x28], 0
mov dword [esp + 0x60], edi
mov dword [esp + 0x38], ecx
mov dword [esp + 0x2c], ebx
inc eax
cmp eax, 3
mov dword [esp + 0x5c], eax
mov ebx, edi
jl 0x54e067
mov ebx, dword [esp + 0x2c]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x4b8]
lea ecx, [ebx + ebx + 2]
push ecx
push eax
mov eax, dword [esp + 0x4c]
call fcn.0040f5e0
add esp, 8
test al, al
je 0x54e1b6
mov ecx, dword [esp + 0x28]
lea eax, [ebx + ecx]
cmp ecx, eax
mov ebx, ecx
jge 0x54e12b
mov edi, dword [esp + 0x38]
sub eax, ecx
mov dword [esp + 0x30], eax
lea ebx, [eax + ecx]
jmp 0x54e0b0
lea ecx, [esp + 0x90]
mov edx, edi
lea eax, [esp + 0x1b0]
call fcn.0054cfe0
fld dword [eax + 4]
mov edx, dword [eax]
fstp dword [esp + 0x84]
fld dword [eax + 8]
mov ecx, edi
fstp dword [esp + 0x88]
mov dword [esp + 0x80], edx
call fcn.0040f6b0
lea ecx, [esp + 0x80]
call fcn.0040f6b0
push esi
call fcn.0040f6e0
push esi
call fcn.0040f6e0
mov eax, dword [0x6a8420]
push 0
push eax
call fcn.0040f680
push 0
push 0x3f800000
call fcn.0040f680
mov eax, dword [esp + 0x48]
add esp, 0x18
add edi, 0x10
dec eax
mov dword [esp + 0x30], eax
jne 0x54e0b0
cmp ebx, dword [esp + 0x48]
jl 0x54e133
xor ebx, ebx
mov ecx, dword [esp + 0x1c]
shl ebx, 4
add ebx, ecx
lea ecx, [esp + 0x90]
mov edx, ebx
lea eax, [esp + 0x1c0]
call fcn.0054cfe0
fld dword [eax + 4]
mov edx, dword [eax]
fstp dword [esp + 0x84]
fld dword [eax + 8]
mov ecx, ebx
fstp dword [esp + 0x88]
mov dword [esp + 0x80], edx
call fcn.0040f6b0
lea ecx, [esp + 0x80]
call fcn.0040f6b0
push esi
call fcn.0040f6e0
push esi
call fcn.0040f6e0
mov eax, dword [0x6a8420]
push 0
push eax
call fcn.0040f680
push 0
push 0x3f800000
call fcn.0040f680
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.0040f730
mov edi, dword [esp + 0x7c]
add esp, 0x1c
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x78]
mov ebx, dword [esp + 0x2c]
add eax, edi
add ebx, edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x6c]
add edx, eax
mov eax, dword [esp + 0x5c]
cmp eax, 3
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x38], edx
jl 0x54e057
mov eax, dword [0x6f302c]
test eax, eax
je 0x54eb55
mov eax, dword [esp + 0x20]
test eax, eax
je 0x54eb55
mov eax, dword [ebp + 0x28]
test eax, eax
jne 0x54eb55
mov eax, dword [esp + 0x68]
xor esi, esi
cmp eax, esi
je 0x54e22c
fld dword [0x6a846c]
fld dword [0x6a8470]
jmp 0x54e238
xor esi, esi
jmp 0x54de8b
fld dword [0x6a8464]
fld dword [0x6a8468]
mov ecx, dword [esp + 0x3c]
fld dword [ecx]
mov eax, dword [esp + 0x34]
fld dword [0x6a8438]
mov edx, dword [eax]
fmul dword [esp + 0x24]
mov dword [esp + 0x140], edx
push fcn.00401020
push 0x10
fadd dword [0x6bda18]
push 0x10
fstp dword [esp + 0x34]
fld dword [ecx + 4]
fmul dword [esp + 0x34]
fmul st(3)
fstp dword [esp + 0x100]
fld dword [eax + 4]
lea eax, [esp + 0x5ec]
fmul dword [esp + 0x34]
push eax
fmul st(3)
fstp dword [esp + 0x154]
fmul dword [esp + 0x38]
fmul st(1)
fstp dword [esp + 0x100]
fld dword [esp + 0x150]
fmul dword [esp + 0x38]
fmul st(1)
fstp dword [esp + 0x150]
fstp st(0)
fstp st(0)
call fcn.004010d0
push fcn.00401020
push 0x10
push 8
lea ecx, [esp + 0x52c]
push ecx
call fcn.004010d0
fld dword [esp + 0x144]
fsub dword [esp + 0xf4]
mov eax, 1
xor edx, edx
mov dword [esp + 0x108], eax
fmul dword [0x6bdcc0]
mov dword [esp + 0x10c], eax
mov dword [esp + 0x118], eax
fstp dword [esp + 0x5c]
mov dword [esp + 0x11c], eax
fld dword [esp + 0x140]
mov eax, 3
fsub dword [esp + 0xf0]
mov ecx, 2
mov dword [esp + 0x94], edx
mov dword [esp + 0x98], edx
fmul dword [0x6bdcc0]
mov dword [esp + 0x120], eax
mov dword [esp + 0x124], eax
mov dword [esp + 0x130], eax
fstp dword [esp + 0x20]
mov dword [esp + 0x134], eax
mov eax, dword [esp + 0xf4]
mov dword [esp + 0x90], esi
mov dword [esp + 0x128], esi
mov dword [esp + 0x12c], esi
mov dword [esp + 0x138], esi
mov dword [esp + 0x13c], esi
mov dword [esp + 0x9c], edx
mov dword [esp + 0x100], ecx
mov dword [esp + 0x104], ecx
mov dword [esp + 0x110], ecx
mov dword [esp + 0x114], ecx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x2c], edx
lea esi, [esp + 0x5e0]
lea edi, [esp + 0x520]
mov dword [esp + 0x38], 4
jmp 0x54e3d0
fld dword [esp + 0xf0]
mov dword [esp + 0x34], 0
fst dword [esp + 0x30]
mov ebx, 4
jmp 0x54e3f0
mov ecx, dword [esp + 0x3c]
fstp dword [esi]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x2c]
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0x18]
push esi
push ecx
push esi
mov dword [esi + 8], 0
mov dword [edi], edx
mov dword [edi + 4], eax
call fcn.0040a8c0
fld dword [esp + 0x3c]
fadd dword [esp + 0x2c]
mov edx, dword [ebp + 0x10]
mov eax, dword [edx + 8]
mov dword [esi + 8], eax
fst dword [esp + 0x3c]
add esp, 0xc
fld dword [esp + 0x34]
add esi, 0x10
fadd dword [0x6bdcc0]
add edi, 8
dec ebx
fstp dword [esp + 0x34]
jne 0x54e3f0
mov eax, dword [esp + 0x38]
fstp st(0)
fld dword [esp + 0x3c]
dec eax
fadd dword [esp + 0x5c]
mov dword [esp + 0x38], eax
fstp dword [esp + 0x3c]
fld dword [esp + 0x2c]
fadd dword [0x6bdcc0]
fstp dword [esp + 0x2c]
jne 0x54e3d0
mov ebx, dword [esp + 0x18]
push ebx
lea ecx, [esp + 0x84]
push ecx
lea edx, [esp + 0x88]
push edx
mov dword [esp + 0x8c], 0
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
call fcn.0059f3cf
mov eax, dword [esp + 0x50]
test eax, eax
je 0x54e4bb
add eax, 0x540
mov edi, dword [esp + 0x68]
test edi, edi
mov dword [esp + 0x2c], eax
jne 0x54e695
test eax, eax
je 0x54e695
push fcn.00401020
push 4
push 0x10
lea eax, [esp + 0xbc]
push eax
call fcn.004010d0
push fcn.00401020
push 4
push 0x10
lea ecx, [esp + 0x15c]
push ecx
call fcn.004010d0
xor ebx, ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x3c], ebx
lea esp, [esp]
mov edx, dword [ebp + 8]
mov esi, dword [edx + 4]
call fcn.0055c000
mov ecx, dword [esp + 0x3c]
lea edx, [eax + ecx + 0x10]
mov eax, dword [esp + 0x18]
push edx
push eax
lea edi, [esp + ebx + 0xb8]
push edi
call fcn.0040a8c0
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x38]
add esp, 0xc
lea edx, [esp + ecx + 0x20]
push edx
lea esi, [esp + ebx + 0x154]
push esi
push 0
push eax
call fcn.0043de60
fstp dword [edi + 8]
fld dword [0x6bdaf8]
push ecx
fdiv dword [esp + ebx + 0x15c]
fstp dword [esp]
push esi
push esi
call fcn.00407570
mov eax, dword [esp + 0x48]
mov edi, dword [esp + 0x40]
add esp, 0xc
add eax, 0x30
inc edi
add ebx, 0x10
cmp eax, 0xc0
mov dword [esp + 0x34], edi
mov dword [esp + 0x3c], eax
jl 0x54e510
xor ebx, ebx
lea esi, [esp + 0x5e8]
nop
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0x5b]
push ecx
push 0
push 0
lea edi, [esi - 8]
push edx
call fcn.0043de60
fstp dword [esi]
mov cl, byte [esp + 0x5b]
test cl, cl
jne 0x54e604
mov eax, dword [esp + ebx*4 + 0x100]
mov dl, byte [esp + eax + 0x20]
test dl, dl
je 0x54e604
fld dword [esi - 4]
shl eax, 4
fsub dword [esp + eax + 0xb4]
mov cl, 1
mov byte [esp + 0x5b], cl
fmul dword [esp + eax + 0x154]
fld dword [edi]
fsub dword [esp + eax + 0xb0]
fmul dword [esp + eax + 0x150]
faddp st(1)
fadd dword [esp + eax + 0xb8]
fstp dword [esi]
mov eax, ebx
sar eax, 1
xor eax, ebx
and eax, 5
cmp al, 5
jne 0x54e61b
fld dword [0x6a8478]
fadd dword [esi]
fstp dword [esi]
test cl, cl
je 0x54e653
mov ecx, dword [0x72e768]
mov edx, dword [esi]
push ecx
push edx
call fcn.0054caa0
add esp, 8
test al, al
je 0x54e653
mov eax, edi
call fcn.0054cac0
test al, al
je 0x54e653
mov eax, dword [esi]
fld dword [0x6a847c]
fadd dword [esi]
mov dword [esp + 0x88], eax
jmp 0x54e67c
fld dword [esp + 0x88]
mov eax, ebx
fadd dword [0x6a847c]
cdq
and edx, 3
add eax, edx
sar eax, 2
mov ecx, dword [esp + eax*4 + 0x90]
lea eax, [esp + eax*4 + 0x90]
inc ecx
mov dword [eax], ecx
fstp dword [esi]
inc ebx
add esi, 0x10
cmp ebx, 0x10
jl 0x54e5a0
mov edi, dword [esp + 0x68]
mov ebx, dword [esp + 0x18]
jmp 0x54e6c9
xor eax, eax
lea ecx, [esp + 0x5e8]
mov edi, edi
mov edx, dword [0x6e3f6c]
mov dword [ecx], edx
mov edx, eax
sar edx, 1
xor edx, eax
and edx, 5
cmp dl, 5
jne 0x54e6c0
fld dword [0x6a8478]
fadd dword [ecx]
fstp dword [ecx]
inc eax
add ecx, 0x10
cmp eax, 0x10
jl 0x54e6a0
fld dword [0x6bda18]
mov eax, dword [ebx + 0x28]
fsub dword [esp + 0x24]
mov esi, dword [ebp + 8]
push 0x3f800000
push 0
push eax
fstp dword [esp + 0x3c]
call fcn.00401be0
mov ecx, edi
add esp, 0xc
neg ecx
sbb ecx, ecx
fmul dword [esp + 0x30]
and ecx, 0x5c
mov dword [esp + 0x20], ecx
fstp dword [esp + 0x5c]
neg edi
fild dword [esp + 0x20]
sbb edi, edi
fld dword [ebx + 0x28]
and edi, 0xffffffea
fabs
add edi, 0x72
fmul dword [esp + 0x30]
mov dword [esp + 0x20], edi
fild dword [esp + 0x20]
fsub st(2)
fmulp st(1)
fadd st(1)
call fcn.00666390
fstp st(0)
test eax, eax
jg 0x54e736
xor eax, eax
jmp 0x54e742
cmp eax, 0xfe
jle 0x54e742
mov eax, 0xfe
shl eax, 0x18
or eax, 0x808080
mov dword [esp + 0x78], eax
cmp dword [0x76c3f0], 3
jne 0x54e75f
fild dword [0x72ca20]
jmp 0x54e765
fild dword [0x72ca18]
fmul dword [0x6bdc98]
push ecx
fstp dword [esp + 0x2c]
fld dword [0x6a8444]
fmul dword [esp + 0x2c]
fstp dword [esp]
call fcn.00546f40
movsx edx, word [esi + 0x4c8]
mov dword [esp + 0x24], edx
fabs
fstp dword [esp + 0x20]
fild dword [esp + 0x24]
fmul dword [esp + 0x20]
call fcn.00666390
movsx ecx, word [esi + 0x4ca]
mov dword [esp + 0x24], ecx
mov edi, eax
fild dword [esp + 0x24]
movsx eax, word [esi + 0x4c0]
fmul dword [esp + 0x20]
add edi, eax
call fcn.00666390
movsx edx, word [esi + 0x4c2]
add eax, edx
mov dword [esp + 0x70], eax
movsx eax, word [esi + 0x4cc]
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fmul dword [esp + 0x20]
call fcn.00666390
fld dword [0x6a8440]
movsx ecx, word [esi + 0x4c4]
fmul dword [esp + 0x2c]
add eax, ecx
mov dword [esp + 0x64], eax
fstp dword [esp]
call fcn.00546f40
fabs
fstp dword [esp + 0x24]
fld dword [esp + 0x2c]
fmul dword [0x6a843c]
fstp dword [esp]
call fcn.00546f40
fabs
fmul dword [esp + 0x24]
add esp, 4
fmul dword [0x6a8448]
call fcn.00666390
movsx edx, word [esi + 0x4ce]
mov dword [esp + 0x20], edx
mov ebx, eax
fild dword [esp + 0x20]
fmul dword [esp + 0x1c]
call fcn.00666390
add ebx, eax
movsx eax, word [esi + 0x4c6]
add ebx, eax
mov dword [esp + 0x20], ebx
fild dword [esp + 0x20]
fmul dword [esp + 0x5c]
call fcn.00666390
test edi, edi
jg 0x54e871
xor edi, edi
jmp 0x54e87e
cmp edi, 0xfe
jle 0x54e87e
mov edi, 0xfe
mov ecx, dword [esp + 0x6c]
test ecx, ecx
jg 0x54e88a
xor ecx, ecx
jmp 0x54e897
cmp ecx, 0xfe
mov edx, 0xfe
jg 0x54e899
mov edx, ecx
mov ecx, dword [esp + 0x60]
test ecx, ecx
jg 0x54e8a5
xor ecx, ecx
jmp 0x54e8b2
cmp ecx, 0xfe
jle 0x54e8b2
mov ecx, 0xfe
test eax, eax
jg 0x54e8ba
xor eax, eax
jmp 0x54e8c6
cmp eax, 0xfe
jle 0x54e8c6
mov eax, 0xfe
shl eax, 8
or eax, ecx
shl eax, 8
or eax, edx
shl eax, 8
or eax, edi
mov dword [esp + 0x20], eax
mov dword [esp + 0x3c], 0
mov eax, dword [esp + 0x3c]
test eax, eax
jne 0x54e8fc
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x78]
mov eax, dword [ecx + 0x4b4]
mov dword [esp + 0x28], edx
jmp 0x54e90d
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x20]
mov eax, dword [eax + 0x4bc]
mov dword [esp + 0x28], ecx
test eax, eax
mov dword [esp + 0x30], eax
je 0x54eb43
test dword [esp + 0x28], 0xff000000
je 0x54eb43
lea edx, [esp + 0x5e0]
mov dword [esp + 0x48], edx
lea eax, [esp + 0x620]
lea ecx, [esp + 0x520]
lea edx, [esp + 0x540]
mov dword [esp + 0x50], eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x38], edx
mov dword [esp + 0x34], 0
jmp 0x54e960
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + eax*4 + 0x94]
add ecx, dword [esp + eax*4 + 0x90]
cmp ecx, 4
jge 0x54eaff
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x44]
push 8
push edx
call fcn.0040f5e0
add esp, 8
test al, al
je 0x54eb31
mov eax, dword [0x72b1e4]
mov ecx, dword [0x72b1d4]
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
lea edx, [eax + 0x18]
add eax, 0x14
mov dword [esp + 0x24], eax
mov eax, dword [0x72b1e0]
lea eax, [eax + eax*2]
lea esi, [ecx + eax*8]
lea ebx, [esi + 0xc]
lea edi, [esi + 8]
mov dword [esp + 0x1c], edx
add esi, 4
mov dword [esp + 0x2c], 4
mov eax, dword [esp + 0x48]
mov ecx, dword [eax]
mov dword [esi], ecx
mov edx, dword [eax + 4]
mov ecx, dword [esp + 0x28]
mov dword [edi], edx
mov eax, dword [eax + 8]
mov dword [ebx], eax
mov eax, dword [0x72b1e0]
inc eax
push ecx
mov dword [0x72b1e0], eax
add esi, 0x18
add edi, 0x18
add ebx, 0x18
call fcn.0040f6e0
mov eax, dword [esp + 0x1c]
mov edx, dword [eax]
fld dword [eax + 4]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x20]
mov dword [eax], edx
fstp dword [ecx]
mov edx, dword [0x72b1e4]
add eax, 0x18
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x54]
add ecx, 0x18
inc edx
mov dword [esp + 0x20], ecx
mov ecx, dword [eax]
mov dword [esi], ecx
mov ecx, dword [esp + 0x2c]
mov dword [0x72b1e4], edx
mov edx, dword [eax + 4]
mov dword [edi], edx
mov eax, dword [eax + 8]
mov dword [ebx], eax
mov eax, dword [0x72b1e0]
inc eax
push ecx
mov dword [0x72b1e0], eax
add esi, 0x18
add edi, 0x18
add ebx, 0x18
call fcn.0040f6e0
mov eax, dword [esp + 0x40]
mov edx, dword [eax]
fld dword [eax + 4]
mov ecx, dword [esp + 0x2c]
mov dword [ecx], edx
mov edx, dword [esp + 0x24]
fstp dword [edx]
mov edx, dword [0x72b1e4]
add ecx, 0x18
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x24]
add esp, 8
inc edx
mov dword [0x72b1e4], edx
mov edx, dword [esp + 0x48]
add ecx, 0x18
mov dword [esp + 0x1c], ecx
mov ecx, 0x10
add edx, ecx
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x50]
add edx, ecx
add eax, 8
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x2c]
add edx, 8
dec eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x2c], eax
jne 0x54e9d1
mov eax, dword [0x72b1d4]
mov ecx, dword [0x72b1e0]
push 0
push 0
push 0x77bfc0
push 0
mov dword [eax], ecx
push eax
mov eax, dword [0x72b1dc]
mov edi, 0x7123f8
call fcn.0040e0a0
add esp, 0x14
jmp 0x54eb31
mov edi, dword [esp + 0x48]
mov esi, dword [esp + 0x50]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x38]
mov eax, 0x40
add edi, eax
add esi, eax
mov eax, 0x20
add edx, eax
add ecx, eax
mov dword [esp + 0x48], edi
mov dword [esp + 0x50], esi
mov dword [esp + 0x18], edx
mov dword [esp + 0x38], ecx
mov eax, dword [esp + 0x34]
inc eax
cmp eax, 3
mov dword [esp + 0x34], eax
jl 0x54e960
mov eax, dword [esp + 0x3c]
inc eax
cmp eax, 2
mov dword [esp + 0x3c], eax
jl 0x54e8e1
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x4e4]
test eax, eax
mov ecx, dword [edx + 0x4d0]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x30], eax
jne 0x54eb74
mov dword [esp + 0x30], ecx
mov eax, dword [edx + 0x4d4]
mov ebx, dword [esp + 0x54]
xor esi, esi
mov dword [esp + 0x5c], eax
mov dword [esp + 0x34], esi
jmp 0x54eb90
lea ecx, [esi + esi*2]
shl ecx, 5
lea eax, [esi - 3]
cmp eax, 0xf
lea edi, [ecx + edx + 0xe6c]
ja case.0x54ebb0.5
movzx eax, byte [eax + 0x54ff80]
jmp dword [eax*4 + 0x54ff74]
mov eax, dword [ebp + 0x28]
test eax, eax
jne case.0x54ebb0.15
cmp ebx, 1
jg case.0x54ebb0.15
mov eax, dword [esp + 0x40]
test eax, eax
je 0x54ebf1
mov eax, dword [eax + 0xe0]
xor ecx, ecx
cmp esi, 3
setne cl
shl ecx, 1
shr eax, cl
and eax, 3
cmp eax, 1
jg case.0x54ebb0.15
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x4d0]
lea ecx, [ebx + ebx*2]
lea edi, [edi + ecx*8]
mov esi, 0xd6d6080a
mov eax, edi
call fcn.005236e0
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x7c]
mov esi, dword [ebp + 0x20]
push 0
push ecx
mov ecx, dword [ebp + 0xc]
push edx
push edi
or eax, esi
push ecx
call fcn.0040b9e0
mov esi, dword [esp + 0x34]
jmp 0x54ece0
mov eax, dword [edx + 4]
movsx eax, byte [eax + esi + 0x6a4]
mov ecx, esi
sub ecx, 0xc
je 0x54ec47
dec ecx
and eax, 1
test eax, eax
je case.0x54ebb0.15
cmp esi, 0xb
mov edx, dword [esp + 0x30]
je 0x54ec5f
mov edx, dword [esp + 0x20]
lea ecx, [ebx + ebx*2]
lea edi, [edi + ecx*8]
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x54ec91
test edx, edx
je 0x54ec91
mov eax, dword [ecx + 0x3c]
movsx ecx, byte [ecx + 0x1a]
test ecx, ecx
jle 0x54ec91
jmp 0x54ec80
cmp dword [eax], 0xd6d6080a
jne 0x54ec8b
mov dword [eax + 4], edx
add eax, 8
dec ecx
jne 0x54ec80
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x54ecc1
mov edx, dword [esp + 0x5c]
test edx, edx
je 0x54ecc1
mov eax, dword [ecx + 0x3c]
movsx ecx, byte [ecx + 0x1a]
test ecx, ecx
jle 0x54ecc1
jmp 0x54ecb0
cmp dword [eax], 0x471a1dca
jne 0x54ecbb
mov dword [eax + 4], edx
add eax, 8
dec ecx
jne 0x54ecb0
mov edx, dword [ebp + 0x20]
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x4c]
push 0
or eax, edx
mov edx, dword [esp + 0x74]
push edx
mov edx, dword [ebp + 0xc]
push ecx
push edi
push edx
call fcn.0040b9e0
mov edx, dword [ebp + 8]
inc esi
cmp esi, 0x1e
mov dword [esp + 0x34], esi
jl 0x54eb90
cmp ebx, 1
jle 0x54ed01
mov eax, dword [ebp + 0x28]
test eax, eax
je 0x54eeac
lea eax, [esp + 0xb0]
push eax
lea ecx, [esp + 0xb4]
push ecx
mov ecx, 0x4000
mov dword [esp + 0xb8], 0x3f800000
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0x3f800000
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
mov dword [esp + 0xdc], 0
mov dword [esp + 0xe0], 0x3f800000
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe8], 0
mov dword [esp + 0xec], 0
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 0x3f800000
call fcn.0040ac40
mov esi, dword [ebp + 8]
mov edx, dword [esi + 0x4dc]
add esp, 8
test edx, edx
lea ebx, [esi + 0x140c]
je 0x54ee04
mov ecx, dword [ebx + 0xc]
test ecx, ecx
je 0x54ee04
mov eax, dword [ecx + 0x3c]
movsx ecx, byte [ecx + 0x1a]
test ecx, ecx
jle 0x54ee04
cmp dword [eax], 0x3b3a1f8d
jne 0x54edfe
mov dword [eax + 4], edx
add eax, 8
dec ecx
jne 0x54edf3
mov edi, dword [esi + 0x67c]
lea eax, [esi + 0x67c]
cmp edi, eax
je 0x54eea8
mov edx, dword [0x72a3e4]
mov edi, edi
mov esi, dword [0x72a3e8]
mov eax, dword [edi + 0x10]
lea ecx, [edx + 0x40]
cmp ecx, esi
jb 0x54ee49
mov eax, dword [0x72a3f8]
add eax, 0x40
mov dword [0x72a3f4], 1
mov dword [0x72a3f8], eax
jmp 0x54ee96
mov esi, edx
test esi, esi
mov edx, ecx
mov dword [0x72a3e4], edx
je 0x54ee96
add eax, 0x10
push eax
lea edx, [esp + 0xb4]
push edx
push esi
call fcn.0059fcbc
mov eax, dword [esp + 0x4c]
push eax
push esi
push esi
call fcn.0059fcbc
mov ecx, dword [ebp + 0x20]
mov eax, dword [esp + 0x7c]
mov edx, dword [ebp + 0xc]
push 0
or eax, ecx
mov ecx, dword [esp + 0x74]
push ecx
push esi
push ebx
push edx
call fcn.0040b9e0
mov edx, dword [0x72a3e4]
mov eax, dword [ebp + 8]
mov edi, dword [edi]
add eax, 0x67c
cmp edi, eax
jne 0x54ee20
mov ebx, dword [esp + 0x54]
cmp ebx, 2
jle 0x54eebc
mov eax, dword [ebp + 0x28]
test eax, eax
je 0x54f051
lea eax, [esp + 0xb0]
push eax
lea ecx, [esp + 0xb4]
push ecx
mov ecx, 0x4000
mov dword [esp + 0xb8], 0x3f800000
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0x3f800000
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
mov dword [esp + 0xdc], 0
mov dword [esp + 0xe0], 0x3f800000
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe8], 0
mov dword [esp + 0xec], 0
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 0x3f800000
call fcn.0040ac40
mov eax, dword [ebp + 8]
mov ebx, dword [eax + 0x704]
lea edi, [eax + 0x152c]
add eax, 0x704
add esp, 8
cmp ebx, eax
je 0x54f051
mov edx, dword [0x72a3e4]
jmp 0x54efb0
mov eax, dword [esp + 0x40]
test eax, eax
mov ecx, dword [ebx + 0x10]
je 0x54efcc
mov eax, dword [eax + 0xe0]
shr eax, 6
and eax, 3
cmp eax, 1
jg 0x54f03f
mov esi, dword [0x72a3e8]
lea eax, [edx + 0x40]
cmp eax, esi
jb 0x54eff2
mov eax, dword [0x72a3f8]
add eax, 0x40
mov dword [0x72a3f4], 1
mov dword [0x72a3f8], eax
jmp 0x54f03f
mov esi, edx
test esi, esi
mov edx, eax
mov dword [0x72a3e4], edx
je 0x54f03f
add ecx, 0x10
push ecx
lea edx, [esp + 0xb4]
push edx
push esi
call fcn.0059fcbc
mov eax, dword [esp + 0x4c]
push eax
push esi
push esi
call fcn.0059fcbc
mov ecx, dword [ebp + 0x20]
mov eax, dword [esp + 0x7c]
mov edx, dword [ebp + 0xc]
push 0
or eax, ecx
mov ecx, dword [esp + 0x74]
push ecx
push esi
push edi
push edx
call fcn.0040b9e0
mov edx, dword [0x72a3e4]
mov eax, dword [ebp + 8]
mov ebx, dword [ebx]
add eax, 0x704
cmp ebx, eax
jne 0x54efb0
fld dword [0x6e4160]
fld dword [0x6e4164]
fld dword [0x6a8458]
fcomp dword [0x6bda00]
fnstsw ax
test ah, 0x44
jp 0x54f07b
mov eax, dword [ebp + 8]
fld dword [eax + 0x540]
jmp 0x54f081
fld dword [0x6a8458]
mov eax, dword [ebp + 8]
fld dword [0x6bda18]
mov ecx, dword [eax + 4]
fdiv st(2)
mov esi, dword [ecx + 0x464]
mov edi, dword [ebp + 0x18]
xor edx, edx
test esi, esi
mov esi, dword [ebp + 0x1c]
setne dl
lea ebx, [eax + 0x530]
mov ecx, edx
lea eax, [eax + ecx*4 + 0x510]
xor ecx, ecx
lea edx, [esi + 0x34]
sub edi, esi
mov dword [esp + 0x34], eax
mov esi, 0x3f800000
fld dword [ebx]
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
fld st(0)
fmul st(5)
mov dword [esp + 0x1c], eax
fstp dword [esp + 0x40]
fcom dword [0x6bda00]
fnstsw ax
test ah, 0x44
jp 0x54f0e6
fstp st(0)
fld st(2)
xor eax, eax
fmul st(1)
mov dword [esp + ecx + 0x1d4], eax
mov dword [esp + ecx + 0x1d8], eax
mov dword [esp + ecx + 0x1dc], eax
mov dword [esp + ecx + 0x1e0], eax
mov dword [esp + ecx + 0x1e8], eax
mov dword [esp + ecx + 0x1ec], eax
mov dword [esp + ecx + 0x1f0], eax
mov dword [esp + ecx + 0x1f4], eax
mov dword [esp + ecx + 0x1fc], eax
mov dword [esp + ecx + 0x200], eax
mov dword [esp + ecx + 0x204], eax
mov dword [esp + ecx + 0x208], eax
mov dword [esp + ecx + 0x1d0], esi
mov dword [esp + ecx + 0x1e4], esi
mov dword [esp + ecx + 0x1f8], esi
mov dword [esp + ecx + 0x20c], esi
fst dword [esp + ecx + 0x1e4]
fld dword [esp + 0x40]
mov dword [esp + ecx + 0x3d4], eax
fchs
mov dword [esp + ecx + 0x3d8], eax
fstp dword [esp + ecx + 0x204]
mov dword [esp + ecx + 0x3dc], eax
fld dword [esp + 0x1c]
mov dword [esp + ecx + 0x3e0], eax
fcomp dword [0x6bda00]
mov dword [esp + ecx + 0x3e8], eax
mov dword [esp + ecx + 0x3ec], eax
mov dword [esp + ecx + 0x3f0], eax
mov dword [esp + ecx + 0x3f4], eax
mov dword [esp + ecx + 0x3fc], eax
mov dword [esp + ecx + 0x400], eax
mov dword [esp + ecx + 0x404], eax
mov dword [esp + ecx + 0x408], eax
mov dword [esp + ecx + 0x2d4], eax
mov dword [esp + ecx + 0x2d8], eax
mov dword [esp + ecx + 0x2dc], eax
mov dword [esp + ecx + 0x2e0], eax
mov dword [esp + ecx + 0x2e8], eax
mov dword [esp + ecx + 0x2ec], eax
mov dword [esp + ecx + 0x2f0], eax
mov dword [esp + ecx + 0x2f4], eax
mov dword [esp + ecx + 0x2fc], eax
mov dword [esp + ecx + 0x300], eax
mov dword [esp + ecx + 0x304], eax
mov dword [esp + ecx + 0x308], eax
fnstsw ax
mov dword [esp + ecx + 0x3d0], esi
test ah, 5
mov dword [esp + ecx + 0x3e4], esi
mov dword [esp + ecx + 0x3f8], esi
mov dword [esp + ecx + 0x40c], esi
mov dword [esp + ecx + 0x2d0], esi
mov dword [esp + ecx + 0x2e4], esi
mov dword [esp + ecx + 0x2f8], esi
mov dword [esp + ecx + 0x30c], esi
jp 0x54f269
fld dword [esp + 0x40]
fadd dword [esp + 0x1c]
jmp 0x54f271
fld dword [esp + 0x1c]
fsub dword [esp + 0x40]
fchs
fstp dword [esp + ecx + 0x404]
fld st(2)
fmulp st(1)
fld st(2)
fcomp dword [0x6bda00]
fnstsw ax
test ah, 0x44
jp 0x54f293
fstp st(0)
fld dword [esp + 0x40]
fld dword [esp + 0x1c]
fcomp dword [0x6bda00]
fnstsw ax
test ah, 5
jp 0x54f2aa
fadd dword [esp + 0x1c]
jmp 0x54f2ae
fsubr dword [esp + 0x1c]
mov eax, dword [esp + 0x34]
fchs
mov dword [edx + edi], 0
fstp dword [esp + ecx + 0x304]
mov dword [edx], 0
add eax, 8
add ecx, 0x40
add ebx, 4
add edx, 0x40
cmp ecx, 0x100
mov dword [esp + 0x34], eax
jl 0x54f0c1
mov eax, dword [ebp + 8]
fstp st(0)
mov ecx, dword [eax + 4]
fstp st(0)
mov dl, byte [ecx + 0x6b5]
fstp st(0)
xor edi, edi
fstp st(0)
test dl, dl
mov dword [esp + 0x40], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x24], edi
je 0x54f9e5
cmp dword [esp + 0x54], 2
jg 0x54f9e5
mov ecx, dword [0x72a3e4]
mov ebx, dword [0x72a3e8]
lea edx, [ecx + 0x100]
cmp edx, ebx
jb 0x54f359
mov edx, dword [0x72a3f8]
add edx, 0x100
mov dword [0x72a3f4], 1
mov dword [0x72a3f8], edx
mov dword [esp + 0x18], edi
jmp 0x54f367
mov esi, ecx
mov ecx, edx
mov dword [0x72a3e4], ecx
mov dword [esp + 0x18], esi
lea edx, [ecx + 0x700]
cmp edx, ebx
jb 0x54f389
add dword [0x72a3f8], 0x700
mov dword [0x72a3f4], 1
xor edx, edx
jmp 0x54f397
mov edi, ecx
mov ecx, edx
mov edx, edi
mov dword [0x72a3e4], ecx
xor edi, edi
cmp dword [esp + 0x18], edi
mov dword [esp + 0x24], edx
je 0x54f9f1
cmp edx, edi
je 0x54f9f1
movzx edx, byte [eax + 0x1c38]
movzx edi, byte [eax + 0x1c18]
movzx ecx, byte [eax + 0x1c58]
mov ebx, dword [esp + 0x64]
cmp ebx, 2
mov dword [esp + 0x34], edx
movzx edx, byte [eax + 0x1c78]
mov dword [esp + 0x40], edi
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x2c], edx
jle 0x54f3e7
mov ebx, 2
push 0xc000
mov dword [esp + 0xb4], 0x3f800000
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], 0x3f800000
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
mov dword [esp + 0xdc], 0x3f800000
mov dword [esp + 0xe0], 0
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe8], 0
mov dword [esp + 0xec], 0
mov dword [esp + 0xf0], 0x3f800000
call fcn.00546ea0
fstp dword [esp + 0x34]
push 0x8000
call fcn.00546ea0
fst dword [esp + 0x10c]
mov eax, dword [esp + 0x38]
fchs
add esp, 8
fstp dword [esp + 0x110]
mov ecx, eax
lea edx, [esp + 0x100]
mov dword [esp + 0x100], eax
push edx
lea eax, [esp + 0xb4]
mov dword [esp + 0x118], ecx
push eax
lea ecx, [esp + 0xb8]
push ecx
mov dword [esp + 0x114], 0
mov dword [esp + 0x118], 0
mov dword [esp + 0x124], 0
mov dword [esp + 0x128], 0
mov dword [esp + 0x12c], 0
mov dword [esp + 0x130], 0
mov dword [esp + 0x134], 0x3f800000
mov dword [esp + 0x138], 0
mov dword [esp + 0x13c], 0
mov dword [esp + 0x140], 0
mov dword [esp + 0x144], 0
mov dword [esp + 0x148], 0x3f800000
call fcn.0059fcbc
mov eax, dword [ebp + 8]
lea edx, [ebx + ebx*2]
lea esi, [eax + edx*8 + 0x14cc]
mov edx, dword [eax + 0x4d8]
test edx, edx
mov dword [esp + 0x64], esi
je 0x54f674
mov ecx, dword [esi + 0xc]
test ecx, ecx
je 0x54f5b9
mov eax, dword [ecx + 0x3c]
movsx ecx, byte [ecx + 0x1a]
test ecx, ecx
jle 0x54f5b9
cmp dword [eax], 0x22719fa9
jne 0x54f5b3
mov dword [eax + 4], edx
add eax, 8
dec ecx
jne 0x54f5a8
mov ecx, dword [esi + 0xc]
test ecx, ecx
je 0x54f5e1
mov eax, dword [ecx + 0x3c]
movsx ecx, byte [ecx + 0x1a]
test ecx, ecx
jle 0x54f5e1
jmp 0x54f5d0
cmp dword [eax], 0xfd102a92
jne 0x54f5db
mov dword [eax + 4], edx
add eax, 8
dec ecx
jne 0x54f5d0
mov ecx, dword [esi + 0xc]
test ecx, ecx
je 0x54f604
mov eax, dword [ecx + 0x3c]
movsx ecx, byte [ecx + 0x1a]
test ecx, ecx
jle 0x54f604
cmp dword [eax], 0x12049251
jne 0x54f5fe
mov dword [eax + 4], edx
add eax, 8
dec ecx
jne 0x54f5f3
mov ecx, dword [esi + 0xc]
test ecx, ecx
je 0x54f627
mov eax, dword [ecx + 0x3c]
movsx ecx, byte [ecx + 0x1a]
test ecx, ecx
jle 0x54f627
cmp dword [eax], 0x22719fa9
jne 0x54f621
mov dword [eax + 4], edx
add eax, 8
dec ecx
jne 0x54f616
mov ecx, dword [esi + 0xc]
test ecx, ecx
je 0x54f651
mov eax, dword [ecx + 0x3c]
movsx ecx, byte [ecx + 0x1a]
test ecx, ecx
jle 0x54f651
lea esp, [esp]
cmp dword [eax], 0xfd102a92
jne 0x54f64b
mov dword [eax + 4], edx
add eax, 8
dec ecx
jne 0x54f640
mov ecx, dword [esi + 0xc]
test ecx, ecx
je 0x54f674
mov eax, dword [ecx + 0x3c]
movsx ecx, byte [ecx + 0x1a]
test ecx, ecx
jle 0x54f674
cmp dword [eax], 0x12049251
jne 0x54f66e
mov dword [eax + 4], edx
add eax, 8
dec ecx
jne 0x54f663
test edi, edi
je 0x54f75d
lea eax, [esp + 0xb0]
push eax
lea ecx, [esp + 0x1d4]
push ecx
lea edx, [esp + 0x158]
push edx
call fcn.0059fcbc
mov eax, dword [ebp + 0x18]
push eax
lea ecx, [esp + 0x154]
push ecx
lea edx, [esp + 0x158]
push edx
call fcn.0059fcbc
lea eax, [esp + 0x3d0]
push eax
lea ecx, [esp + 0x154]
push ecx
lea edx, [esp + 0x158]
push edx
call fcn.0059fcbc
mov eax, dword [esp + 0x4c]
mov edi, dword [esp + 0x18]
push eax
lea ecx, [esp + 0x154]
push ecx
push edi
call fcn.0059fcbc
mov eax, dword [0x72a37c]
test eax, eax
je 0x54f710
mov ebx, dword [ebp + 0xc]
mov eax, dword [esp + 0x24]
push ebx
lea edx, [esp + 0xa4]
push edx
push 0x780560
push edi
push eax
call fcn.00527770
add esp, 0x14
jmp 0x54f743
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x24]
push ebx
lea eax, [esp + 0x6e4]
mov ecx, edi
call fcn.00526400
push 0x780560
push ebx
lea eax, [esp + 0xac]
call fcn.00526c20
mov ebx, dword [ebp + 0xc]
mov edi, dword [esp + 0x24]
add esp, 0xc
mov ecx, dword [ebp + 0x20]
mov eax, dword [esp + 0x74]
push 0
or eax, ecx
mov ecx, dword [esp + 0x28]
push ecx
push edi
push esi
push ebx
call fcn.0040b9e0
jmp 0x54f760
mov ebx, dword [ebp + 0xc]
mov eax, dword [esp + 0x34]
test eax, eax
je 0x54f828
mov edx, dword [ebp + 0x18]
add edx, 0x40
push edx
lea eax, [esp + 0x214]
push eax
lea ecx, [esp + 0x158]
push ecx
call fcn.0059fcbc
lea edx, [esp + 0x410]
push edx
lea eax, [esp + 0x154]
push eax
lea ecx, [esp + 0x158]
push ecx
call fcn.0059fcbc
mov edx, dword [esp + 0x4c]
mov esi, dword [esp + 0x18]
push edx
lea eax, [esp + 0x154]
push eax
add esi, 0x40
push esi
call fcn.0059fcbc
mov edi, dword [esp + 0x24]
mov eax, dword [0x72a37c]
add edi, 0x1c0
test eax, eax
je 0x54f7ec
push ebx
lea ecx, [esp + 0xa4]
push ecx
push 0x780560
push esi
push edi
call fcn.00527770
add esp, 0x14
jmp 0x54f810
push esi
lea eax, [esp + 0x6e4]
mov ecx, edi
call fcn.00526400
push 0x780560
push esi
lea eax, [esp + 0xac]
call fcn.00526c20
add esp, 0xc
mov edx, dword [ebp + 0x20]
mov eax, dword [esp + 0x74]
push 0
push edi
or eax, edx
mov edx, dword [esp + 0x6c]
push esi
push edx
push ebx
call fcn.0040b9e0
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x54f8f5
mov eax, dword [ebp + 0x18]
add eax, 0x80
push eax
lea ecx, [esp + 0x254]
push ecx
lea edx, [esp + 0x158]
push edx
call fcn.0059fcbc
lea eax, [esp + 0x450]
push eax
lea ecx, [esp + 0x154]
push ecx
lea edx, [esp + 0x158]
push edx
call fcn.0059fcbc
mov eax, dword [esp + 0x4c]
mov esi, dword [esp + 0x18]
push eax
lea ecx, [esp + 0x154]
push ecx
add esi, 0x80
push esi
call fcn.0059fcbc
mov edi, dword [esp + 0x24]
mov eax, dword [0x72a37c]
add edi, 0x380
test eax, eax
je 0x54f8b9
push ebx
lea edx, [esp + 0xa4]
push edx
push 0x780560
push esi
push edi
call fcn.00527770
add esp, 0x14
jmp 0x54f8dd
push esi
lea eax, [esp + 0x6e4]
mov ecx, edi
call fcn.00526400
push 0x780560
push esi
lea eax, [esp + 0xac]
call fcn.00526c20
add esp, 0xc
mov ecx, dword [esp + 0x64]
mov edx, dword [ebp + 0x20]
mov eax, dword [esp + 0x74]
push 0
push edi
push esi
push ecx
or eax, edx
push ebx
call fcn.0040b9e0
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x54f9e0
lea edx, [esp + 0xb0]
push edx
lea eax, [esp + 0x294]
push eax
lea ecx, [esp + 0x158]
push ecx
call fcn.0059fcbc
mov edx, dword [ebp + 0x18]
add edx, 0xc0
push edx
lea eax, [esp + 0x154]
push eax
lea ecx, [esp + 0x158]
push ecx
call fcn.0059fcbc
lea edx, [esp + 0x490]
push edx
lea eax, [esp + 0x154]
push eax
lea ecx, [esp + 0x158]
push ecx
call fcn.0059fcbc
mov edx, dword [esp + 0x4c]
mov esi, dword [esp + 0x18]
push edx
lea eax, [esp + 0x154]
push eax
add esi, 0xc0
push esi
call fcn.0059fcbc
mov edi, dword [esp + 0x24]
mov eax, dword [0x72a37c]
add edi, 0x540
test eax, eax
je 0x54f9a4
push ebx
lea ecx, [esp + 0xa4]
push ecx
push 0x780560
push esi
push edi
call fcn.00527770
add esp, 0x14
jmp 0x54f9c8
push esi
lea eax, [esp + 0x6e4]
mov ecx, edi
call fcn.00526400
push 0x780560
push esi
lea eax, [esp + 0xac]
call fcn.00526c20
add esp, 0xc
mov edx, dword [ebp + 0x20]
mov eax, dword [esp + 0x74]
push 0
push edi
or eax, edx
mov edx, dword [esp + 0x6c]
push esi
push edx
push ebx
call fcn.0040b9e0
mov eax, dword [ebp + 8]
xor edi, edi
mov ecx, dword [0x72a3e4]
mov ebx, dword [0x72a3e8]
cmp dword [esp + 0x54], 1
jg 0x54ff5c
cmp dword [eax + 0x1478], edi
je 0x54ff5c
movzx edx, byte [eax + 0x1cd8]
movzx edi, byte [eax + 0x1d38]
movzx esi, byte [eax + 0x1d18]
mov dword [esp + 0x30], edx
movzx edx, byte [eax + 0x1cf8]
mov dword [esp + 0x6c], edi
or edi, esi
or edi, edx
mov dword [esp + 0x20], edx
or edi, dword [esp + 0x30]
mov dword [esp + 0x5c], esi
je 0x54ff5c
lea edx, [ecx + 0x100]
cmp edx, ebx
jb 0x54fa6c
mov edx, dword [0x72a3f8]
add edx, 0x100
mov dword [0x72a3f4], 1
mov dword [0x72a3f8], edx
xor esi, esi
jmp 0x54fa76
mov esi, ecx
mov ecx, edx
mov dword [0x72a3e4], ecx
lea edx, [ecx + 0x700]
cmp edx, ebx
mov dword [esp + 0x44], esi
jb 0x54fa9c
add dword [0x72a3f8], 0x700
mov dword [0x72a3f4], 1
xor ecx, ecx
jmp 0x54faa2
mov dword [0x72a3e4], edx
test esi, esi
mov dword [esp + 0x18], ecx
je 0x54ff5c
test ecx, ecx
je 0x54ff5c
mov edx, dword [esp + 0x68]
xor ecx, ecx
test edx, edx
sete cl
lea ecx, [ecx + ecx*2]
lea edi, [eax + ecx*8 + 0x146c]
mov eax, dword [eax + 0x4e0]
test eax, eax
je 0x54fb71
mov edx, dword [edi + 0xc]
test edx, edx
je 0x54fb01
mov ecx, dword [edx + 0x3c]
movsx edx, byte [edx + 0x1a]
test edx, edx
jle 0x54fb01
jmp 0x54faf0
cmp dword [ecx], 0xa3186e2b
jne 0x54fafb
mov dword [ecx + 4], eax
add ecx, 8
dec edx
jne 0x54faf0
mov edx, dword [edi + 0xc]
test edx, edx
je 0x54fb24
mov ecx, dword [edx + 0x3c]
movsx edx, byte [edx + 0x1a]
test edx, edx
jle 0x54fb24
cmp dword [ecx], 0xd6640dff
jne 0x54fb1e
mov dword [ecx + 4], eax
add ecx, 8
dec edx
jne 0x54fb13
mov edx, dword [edi + 0xc]
test edx, edx
je 0x54fb47
mov ecx, dword [edx + 0x3c]
movsx edx, byte [edx + 0x1a]
test edx, edx
jle 0x54fb47
cmp dword [ecx], 0xa3186e2b
jne 0x54fb41
mov dword [ecx + 4], eax
add ecx, 8
dec edx
jne 0x54fb36
mov edx, dword [edi + 0xc]
test edx, edx
je 0x54fb71
mov ecx, dword [edx + 0x3c]
movsx edx, byte [edx + 0x1a]
test edx, edx
jle 0x54fb71
lea esp, [esp]
cmp dword [ecx], 0xa3186e2b
jne 0x54fb6b
mov dword [ecx + 4], eax
add ecx, 8
dec edx
jne 0x54fb60
mov eax, dword [0x6a8490]
mov edx, dword [0x6a848c]
mov ecx, dword [0x6a8494]
mov dword [esp + 0x114], eax
mov eax, dword [esp + 0x30]
test eax, eax
mov dword [esp + 0x104], 0
mov dword [esp + 0x108], 0
mov dword [esp + 0x10c], 0
mov dword [esp + 0x110], 0
mov dword [esp + 0x118], 0
mov dword [esp + 0x11c], 0
mov dword [esp + 0x120], 0
mov dword [esp + 0x124], 0
mov dword [esp + 0x12c], 0
mov dword [esp + 0x130], 0
mov dword [esp + 0x134], 0
mov dword [esp + 0x138], 0
mov dword [esp + 0x13c], 0x3f800000
mov dword [esp + 0x100], edx
mov dword [esp + 0x128], ecx
je 0x54fd04
mov edx, dword [ebp + 0x1c]
push edx
lea eax, [esp + 0x104]
push eax
lea ecx, [esp + 0x158]
push ecx
call fcn.0059fcbc
lea edx, [esp + 0x2d0]
push edx
lea eax, [esp + 0x154]
push eax
lea ecx, [esp + 0x158]
push ecx
call fcn.0059fcbc
mov edx, dword [esp + 0x4c]
push edx
lea eax, [esp + 0x154]
push eax
push esi
call fcn.0059fcbc
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x40]
add ecx, 0xe2c
test eax, eax
mov dword [edi + 0x10], ecx
mov dword [edi + 0x14], 2
je 0x54fcc5
cmp dword [0x76c3f0], 6
jne 0x54fcc5
mov edx, dword [0x72b008]
cmp dword [edx], 1
je 0x54fcc5
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x44]
mov ebx, dword [ebp + 0xc]
push 0
push eax
mov eax, dword [ebp + 0x20]
push ecx
push edi
push ebx
call fcn.0040b9e0
jmp 0x54fd07
mov ebx, dword [ebp + 0xc]
mov esi, dword [esp + 0x44]
lea edx, [esp + 0x6e0]
push edx
push ebx
lea eax, [esp + 0xa8]
push eax
mov eax, dword [esp + 0x24]
push 0x780560
call fcn.00528320
mov ecx, dword [esp + 0x28]
mov eax, dword [ebp + 0x20]
add esp, 0x10
push 0
push ecx
mov edx, esi
push edx
push edi
push ebx
call fcn.0040b9e0
jmp 0x54fd07
mov ebx, dword [ebp + 0xc]
mov eax, dword [esp + 0x20]
test eax, eax
je 0x54fdc4
mov ecx, dword [ebp + 0x1c]
lea eax, [esp + 0x310]
push eax
add ecx, 0x40
push ecx
lea edx, [esp + 0x158]
push edx
call fcn.0059fcbc
mov eax, dword [esp + 0x4c]
mov esi, dword [esp + 0x44]
push eax
lea ecx, [esp + 0x154]
push ecx
add esi, 0x40
push esi
call fcn.0059fcbc
mov edx, dword [ebp + 8]
mov eax, dword [esp + 0x34]
add edx, 0xe4c
test eax, eax
mov dword [edi + 0x10], edx
mov dword [edi + 0x14], 2
je 0x54fd86
cmp dword [0x76c3f0], 6
jne 0x54fd86
mov eax, dword [0x72b008]
cmp dword [eax], 1
je 0x54fd86
mov ecx, dword [esp + 0x24]
push 0
add ecx, 0x1c0
push ecx
jmp 0x54fdb9
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x6e0]
push edx
push ebx
lea ecx, [esp + 0xa8]
push ecx
add eax, 0x1c0
push 0x780560
call fcn.00528320
mov eax, dword [esp + 0x28]
add esp, 0x10
push 0
add eax, 0x1c0
push eax
mov eax, dword [ebp + 0x20]
push esi
push edi
push ebx
call fcn.0040b9e0
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x54fe7e
mov eax, dword [ebp + 0x1c]
lea edx, [esp + 0x350]
push edx
add eax, 0x80
push eax
lea ecx, [esp + 0x158]
push ecx
call fcn.0059fcbc
mov edx, dword [esp + 0x4c]
mov esi, dword [esp + 0x44]
push edx
lea eax, [esp + 0x154]
push eax
add esi, 0x80
push esi
call fcn.0059fcbc
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x3c]
add ecx, 0xe4c
test eax, eax
mov dword [edi + 0x10], ecx
mov dword [edi + 0x14], 2
je 0x54fe40
cmp dword [0x76c3f0], 6
jne 0x54fe40
mov edx, dword [0x72b008]
cmp dword [edx], 1
je 0x54fe40
mov eax, dword [esp + 0x24]
jmp 0x54fe6b
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x6e0]
push ecx
push ebx
lea edx, [esp + 0xa8]
push edx
add eax, 0x380
push 0x780560
call fcn.00528320
mov eax, dword [esp + 0x28]
add esp, 0x10
push 0
add eax, 0x380
push eax
mov eax, dword [ebp + 0x20]
push esi
push edi
push ebx
call fcn.0040b9e0
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x54ff5c
mov eax, dword [ebp + 0x1c]
add eax, 0xc0
push eax
lea ecx, [esp + 0x104]
push ecx
lea edx, [esp + 0x4e8]
push edx
call fcn.0059fcbc
lea eax, [esp + 0x390]
push eax
lea ecx, [esp + 0x4e4]
push ecx
lea edx, [esp + 0x4e8]
push edx
call fcn.0059fcbc
mov eax, dword [esp + 0x4c]
mov esi, dword [esp + 0x44]
push eax
lea ecx, [esp + 0x4e4]
push ecx
add esi, 0xc0
push esi
call fcn.0059fcbc
mov edx, dword [ebp + 8]
mov eax, dword [esp + 0x2c]
add edx, 0xe2c
test eax, eax
mov dword [edi + 0x10], edx
mov dword [edi + 0x14], 2
je 0x54ff1f
cmp dword [0x76c3f0], 6
jne 0x54ff1f
mov eax, dword [0x72b008]
cmp dword [eax], 1
je 0x54ff1f
mov ecx, dword [esp + 0x24]
push 0
add ecx, 0x540
push ecx
jmp 0x54ff51
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x6e0]
push edx
push ebx
lea ecx, [esp + 0xa8]
push ecx
add eax, 0x540
push 0x780560
mov dword [esp + 0x30], eax
call fcn.00528320
mov edx, dword [esp + 0x30]
add esp, 0x10
push 0
push edx
mov eax, dword [ebp + 0x20]
push esi
push edi
push ebx
call fcn.0040b9e0
mov ecx, dword [esp + 0x9a4]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 0x30