Function at 0x5278f0
Capabilities:
Print debug messages
Resolve function by parsing pe exports

Disassembly:
xor eax, eax
ret 0x10
mov eax, dword [ecx + 0x1470]
cmp eax, 5
ja case.default.0x5278fb
jmp dword [eax*4 + 0x527948]
mov ecx, dword [ecx + 0x1458]
jmp 0x541620
mov ecx, dword [ecx + 0x145c]
jmp 0x53b800
mov ecx, dword [ecx + 0x1460]
jmp 0x5399a0
mov ecx, dword [ecx + 0x1464]
jmp 0x4ab180
mov ecx, dword [ecx + 0x1468]
jmp 0x4ab180
mov ecx, dword [ecx + 0x146c]
jmp 0x536560
ret 0x10
sub esp, 0x2cc
mov eax, dword [0x68e698]
push ebx
push ebp
mov ebp, ecx
mov dword [esp + 0x2d0], eax
mov eax, dword [ebp]
mov ecx, dword [eax + 0x2c]
cmp ecx, 0xffffffff
push esi
push edi
je 0x53658f
mov edx, dword [eax + 0xc8]
xor esi, esi
cmp edx, esi
jne 0x536599
mov eax, 0x80004005
jmp 0x537d91
mov eax, dword [eax + 0x14]
mov ebx, dword [eax + ecx*4]
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax + 0x34]
mov dword [esp + 0x38], ecx
fld dword [esp + 0x38]
lea edx, [eax + 0x1c]
mov edi, dword [edx]
fsub dword [ebx + 0x1434]
lea ecx, [ebx + 0x1278]
mov dword [ecx], edi
mov edi, dword [edx + 4]
fstp dword [esp + 0x38]
mov dword [ecx + 4], edi
mov edx, dword [edx + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0x34]
mov dword [esp + 0x10], eax
fld dword [esp + 0x10]
fchs
sub esp, 8
fstp dword [esp + 0x44]
mov dword [ebx + 0x1284], eax
fld dword [esp + 0x44]
fsub dword [0x64ff20]
fstp dword [esp + 0x44]
fld dword [esp + 0x44]
fstp qword [esp]
call fcn.00616f24
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fstp dword [esp + 0x28]
fld dword [esp + 0x44]
fstp qword [esp]
call fcn.00616fd4
fstp dword [esp + 0x18]
add esp, 8
fld dword [esp + 0x10]
lea ecx, [esp + 0x20]
fstp dword [esp + 0x28]
mov dword [esp + 0x24], esi
call fcn.004181c0
fld dword [esp + 0x3c]
fadd dword [0x64ff20]
sub esp, 8
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fstp qword [esp]
call fcn.00616f24
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fstp dword [esp + 0x48]
fld dword [esp + 0x18]
fstp qword [esp]
call fcn.00616fd4
mov eax, dword [esp + 0x2e8]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
add esp, 8
cmp eax, esi
fstp dword [esp + 0x48]
mov dword [esp + 0x44], esi
je 0x5366a3
push 0x20
call fcn.00526f60
add esp, 4
test al, al
mov dword [0x8bd384], 1
jne 0x5366a9
mov dword [0x8bd384], esi
mov ecx, dword [ebp]
call fcn.00529310
mov ecx, dword [ebp]
call fcn.005276a0
cmp dword [ebx + 0x13a4], esi
je 0x53688a
mov eax, dword [ebx + 0xc]
push eax
call fcn.00578b40
mov ecx, dword [ebx + 0xc]
push 8
push ecx
mov edi, eax
call fcn.00578a40
add esp, 0xc
test eax, eax
je 0x5366f7
cmp dword [ebx + 0x13a8], esi
jne 0x5366f7
mov eax, 1
mov dword [ebx + 0x13a8], eax
jmp 0x5366fc
mov eax, 1
cmp edi, 4
jne 0x53671e
mov dword [ebx + 0x1560], esi
mov dword [ebx + 0x1570], eax
mov dword [ebx + 0x1564], esi
mov dword [ebx + 0x1574], eax
jmp 0x53689c
cmp edi, 2
je 0x536730
cmp edi, esi
je 0x536730
cmp edi, 5
jne 0x53688a
cmp dword [ebx + 0x13a8], esi
je 0x53688a
cmp dword [ebx + 0x13a4], esi
je 0x536771
cmp edi, 5
je 0x536771
sub esp, 0xc
lea eax, [ebx + 0x1278]
mov ecx, dword [eax]
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [edx + 4], ecx
mov ecx, dword [ebp]
push 0xc8
mov dword [edx + 8], eax
call fcn.005276b0
xor eax, eax
lea edi, [ebx + 0x13b8]
mov dword [edi], eax
xor ecx, ecx
xor edx, edx
mov dword [edi + 4], ecx
mov dword [ebx + 0x13a4], esi
mov dword [ebx + 0x13a8], esi
mov dword [ebx + 0x1570], esi
mov dword [ebx + 0x1574], esi
mov dword [edi + 8], edx
mov dword [0x8bd340], 0x3c23d70a
cmp dword [ebx + 0x1568], 0x23
je 0x536847
mov ax, word [ebx + 0x123e]
cmp ax, 2
je 0x536806
cmp ax, 7
je 0x536806
cmp ax, 0x18
je 0x536806
push 0x25
push 0x25
mov ecx, ebx
call fcn.00530670
sub esp, 0xc
lea eax, [ebx + 0x1278]
mov edx, dword [eax]
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
mov dword [ecx + 8], eax
mov ecx, dword [ebx + 0x1284]
push ecx
push 0x25
mov dword [ebx + 0x126c], esi
push 0x25
jmp 0x536882
push 0x20
call fcn.00526f60
add esp, 4
test al, al
jne 0x53688a
push 0x25
push 0x25
mov ecx, ebx
call fcn.00530670
sub esp, 0xc
lea eax, [ebx + 0x1278]
mov ecx, dword [eax]
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
mov ecx, dword [ebx + 0x1284]
push ecx
push 0x25
mov dword [ebx + 0x126c], esi
push 0x25
jmp 0x53687c
cmp word [ebx + 0x123e], 0x14
jne 0x53688a
push 0x34
push 0x34
mov ecx, ebx
call fcn.00530670
sub esp, 0xc
lea eax, [ebx + 0x1278]
mov ecx, dword [eax]
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
mov ecx, dword [ebx + 0x1284]
push ecx
push 0x34
push 0x34
mov eax, dword [eax + 8]
mov dword [edx + 8], eax
mov ecx, dword [ebp]
call fcn.00527650
mov ecx, ebx
call fcn.00530ce0
mov eax, dword [0x8bd2e4]
cmp eax, esi
je 0x53689c
call eax
mov edx, dword [ebp]
mov eax, dword [edx + 0x7c]
push eax
mov byte [esp + 0x1f], 0
call fcn.00573e9a
fstp dword [esp + 0x40]
mov eax, dword [esp + 0x2e4]
add esp, 4
cmp eax, esi
je 0x537403
mov eax, dword [ebx + 0x1558]
test eax, eax
jne 0x537403
mov ecx, dword [ebx + 0xc]
push ecx
call fcn.00578b40
mov edx, dword [ebx + 0xc]
mov dword [esp + 0x14], eax
push edx
lea eax, [esp + 0x1dc]
push eax
call fcn.00578fd0
mov esi, eax
mov eax, dword [ebx + 0x13ac]
add esp, 0xc
test eax, eax
mov ecx, 0x3c
lea edi, [esp + 0xe4]
rep movsd dword es:[edi], dword [esi]
je 0x536956
lea ecx, [esp + 0x58]
push ecx
call dword [0x8bd2d8]
add esp, 4
test eax, eax
je 0x536956
push 0xffffffffffffffff
push 0xffffffffffffffff
mov ecx, ebx
mov byte [esp + 0x23], 1
call fcn.00531d10
test eax, eax
je 0x537403
lea eax, [ebx + 0x1278]
mov ecx, dword [eax]
sub esp, 0xc
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [edx + 4], ecx
mov dword [edx + 8], eax
jmp 0x5373e6
mov esi, dword [esp + 0x10]
cmp esi, 5
je 0x5369cc
mov eax, dword [ebx + 0x139c]
xor edi, edi
cmp eax, edi
jne 0x5369cc
test dword [ebx + 0x13c4], 0x2000000
jne 0x5369cc
mov eax, dword [0x8bd2d4]
cmp eax, edi
je 0x5369cc
push 1
call eax
add esp, 4
test eax, eax
je 0x5369cc
mov eax, dword [ebx + 0x1568]
cmp eax, 0x16
je 0x5369cc
cmp eax, 0x17
je 0x5369cc
cmp eax, 0x20
je 0x5369cc
mov byte [esp + 0x1b], 1
mov dword [ebx + 0x13ac], 1
call dword [sym.imp.winmm.dll_timeGetTime]
mov ecx, dword [ebp]
mov dword [ecx + 8], eax
mov edx, dword [ebp]
mov dword [edx + 0xc], edi
mov eax, dword [ebp]
mov dword [eax + 0x10], edi
jmp 0x537403
test dword [ebx + 0x13c4], 0x3000000
jne 0x5372f4
mov ecx, dword [0x681280]
push ecx
call fcn.00573e9a
fstp dword [esp + 0x20]
mov eax, dword [0x940f3c]
xor esi, esi
add esp, 4
cmp eax, esi
je 0x536a8b
mov eax, dword [ebx + 0xc]
add eax, 0x1c
mov ecx, eax
mov edi, dword [ecx]
lea edx, [ebx + 0x1278]
mov esi, edx
mov dword [esi], edi
mov edi, dword [ecx + 4]
mov dword [esi + 4], edi
mov ecx, dword [ecx + 8]
mov dword [esi + 8], ecx
mov esi, dword [eax + 4]
mov ecx, dword [eax]
mov eax, dword [eax + 8]
mov dword [esp + 0x30], esi
fld dword [esp + 0x30]
fadd dword [0x64fe88]
mov dword [edx], ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x34], eax
fstp dword [esp + 0x30]
mov ecx, dword [esp + 0x30]
mov dword [edx + 4], ecx
mov ecx, dword [ebx + 0xc]
mov dword [edx + 8], eax
lea edx, [esp + 0x2c]
push edx
call fcn.00404b50
fld dword [esp + 0x30]
sub esp, 8
fstp qword [esp]
push str._vecPos_:__lf_n
lea eax, [esp + 0x1e0]
push eax
call fcn.0061660d
add esp, 0x10
lea ecx, [esp + 0x1d4]
push ecx
call dword [sym.imp.kernel32.dll_OutputDebugStringA]
jmp 0x5371d0
cmp dword [0x940f30], esi
je 0x536b02
mov eax, dword [ebx + 0xc]
add eax, 0x1c
mov ecx, eax
mov edi, dword [ecx]
lea edx, [ebx + 0x1278]
mov esi, edx
mov dword [esi], edi
mov edi, dword [ecx + 4]
mov dword [esi + 4], edi
mov ecx, dword [ecx + 8]
mov dword [esi + 8], ecx
mov esi, dword [eax + 4]
mov ecx, dword [eax]
mov eax, dword [eax + 8]
mov dword [esp + 0x30], esi
fld dword [esp + 0x30]
fsub dword [0x64fe88]
mov dword [edx], ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x34], eax
fstp dword [esp + 0x30]
mov ecx, dword [esp + 0x30]
mov dword [edx + 4], ecx
mov ecx, dword [ebx + 0xc]
mov dword [edx + 8], eax
lea edx, [esp + 0x2c]
push edx
call fcn.00404b50
fld dword [esp + 0x30]
sub esp, 8
fstp qword [esp]
push 0x65f108
jmp 0x536a68
push 0x57
call fcn.00526f60
add esp, 4
test al, al
je 0x536ce6
push 0x41
call fcn.00526f60
add esp, 4
test al, al
je 0x536ce6
mov edx, dword [ebp + 0x14]
mov dword [esp + 0x14], edx
fld dword [esp + 0x14]
mov byte [esp + 0x1b], 1
fdiv dword [0x650050]
fmul dword [0x658038]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fadd dword [ebp + 0x2c]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
mov eax, dword [esp + 0x14]
fcomp dword [0x657504]
mov dword [ebp + 0x2c], eax
fnstsw ax
test ah, 1
jne 0x536b8d
fld dword [esp + 0x14]
call fcn.0061672c
cdq
mov ecx, 0x168
idiv ecx
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fstp dword [ebp + 0x2c]
cmp dword [ebp + 0x30], 0x274
jle 0x536b99
mov dword [ebp + 0x30], esi
mov ecx, dword [ebp + 0x38]
mov edi, dword [ebp + 0x30]
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
add edi, eax
mov edx, edi
mov dword [esp + 0x14], edx
mov eax, 0x5a
cmp ecx, eax
fild dword [esp + 0x14]
mov dword [ebp + 0x30], edi
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fmul qword [0x65f100]
fchs
fstp dword [ebp + 0x34]
jle 0x536bde
mov dword [ebp + 0x38], eax
fild dword [ebp + 0x38]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fadd dword [esp + 0x1c]
call fcn.0061672c
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
mov dword [ebp + 0x38], eax
sub esp, 0x10
xor ecx, ecx
fstp dword [esp + 0x24]
mov edi, esp
fld dword [esp + 0x24]
sub esp, 0xc
fmul qword [0x65f100]
mov edx, 0x3f800000
fchs
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
mov eax, dword [esp + 0x38]
fmul dword [0x64fe88]
mov dword [ebp + 0x3c], eax
xor eax, eax
fstp dword [esp + 0x18]
mov dword [edi], eax
mov dword [edi + 4], ecx
mov dword [edi + 8], edx
mov ecx, esp
mov dword [ecx], esi
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov ecx, dword [ebp + 0x28]
push eax
call fcn.005a93d0
mov edx, dword [esp + 0x3c]
push edx
mov ecx, ebx
call fcn.00532080
fld dword [ebp + 0x34]
fadd dword [0x64ff20]
push ecx
fstp dword [esp]
call fcn.00418130
fstp dword [esp + 0x30]
fld dword [ebp + 0x34]
fadd dword [0x64ff20]
fstp dword [esp]
call fcn.00418150
fchs
add esp, 4
lea ecx, [esp + 0x2c]
fstp dword [esp + 0x34]
mov dword [esp + 0x30], 0
call fcn.004181c0
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x34]
mov dword [esp + 0x24], ecx
lea ecx, [esp + 0x20]
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], edx
call fcn.004181c0
fld dword [esp + 0x38]
mov eax, dword [ebp + 0x34]
mov dword [ebx + 0x1434], eax
fadd dword [ebp + 0x34]
fstp dword [esp + 0x38]
mov ecx, dword [esp + 0x38]
push ecx
mov ecx, dword [ebx + 0xc]
call fcn.00404ba0
jmp 0x5371d0
push 0x57
call fcn.00526f60
add esp, 4
test al, al
je 0x536eca
push 0x44
call fcn.00526f60
add esp, 4
test al, al
je 0x536eca
mov edx, dword [ebp + 0x14]
mov dword [esp + 0x14], edx
fld dword [esp + 0x14]
mov byte [esp + 0x1b], 1
fdiv dword [0x650050]
fmul dword [0x658038]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fadd dword [ebp + 0x2c]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
mov eax, dword [esp + 0x14]
fcomp dword [0x657504]
mov dword [ebp + 0x2c], eax
fnstsw ax
test ah, 1
jne 0x536d71
fld dword [esp + 0x14]
call fcn.0061672c
cdq
mov ecx, 0x168
idiv ecx
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fstp dword [ebp + 0x2c]
cmp dword [ebp + 0x30], 0xfffffd8c
jg 0x536d7d
mov dword [ebp + 0x30], esi
mov ecx, dword [ebp + 0x38]
mov edi, dword [ebp + 0x30]
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
add edi, eax
mov edx, edi
mov dword [esp + 0x14], edx
mov eax, 0xffffffa6
cmp ecx, eax
fild dword [esp + 0x14]
mov dword [ebp + 0x30], edi
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fmul qword [0x65f100]
fchs
fstp dword [ebp + 0x34]
jge 0x536dc2
mov dword [ebp + 0x38], eax
fild dword [ebp + 0x38]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fsub dword [esp + 0x1c]
call fcn.0061672c
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
mov dword [ebp + 0x38], eax
sub esp, 0x10
xor ecx, ecx
fstp dword [esp + 0x24]
mov edi, esp
fld dword [esp + 0x24]
sub esp, 0xc
fmul qword [0x65f100]
mov edx, 0x3f800000
fchs
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
mov eax, dword [esp + 0x38]
fmul dword [0x64fe88]
mov dword [ebp + 0x3c], eax
xor eax, eax
fstp dword [esp + 0x18]
mov dword [edi], eax
mov dword [edi + 4], ecx
mov dword [edi + 8], edx
mov ecx, esp
mov dword [ecx], esi
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov ecx, dword [ebp + 0x28]
push eax
call fcn.005a93d0
mov edx, dword [esp + 0x3c]
push edx
mov ecx, ebx
call fcn.00532080
fld dword [ebp + 0x34]
fadd dword [0x64ff20]
push ecx
fstp dword [esp]
call fcn.00418130
fstp dword [esp + 0x30]
fld dword [ebp + 0x34]
fadd dword [0x64ff20]
fstp dword [esp]
call fcn.00418150
fchs
add esp, 4
lea ecx, [esp + 0x2c]
fstp dword [esp + 0x34]
mov dword [esp + 0x30], 0
call fcn.004181c0
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x34]
mov dword [esp + 0x24], ecx
lea ecx, [esp + 0x20]
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], edx
call fcn.004181c0
fld dword [esp + 0x38]
mov eax, dword [ebp + 0x34]
mov dword [ebx + 0x1434], eax
fadd dword [ebp + 0x34]
fstp dword [esp + 0x38]
mov ecx, dword [esp + 0x38]
push ecx
mov ecx, dword [ebx + 0xc]
call fcn.00404ba0
jmp 0x5371d0
push 0x57
call fcn.00526f60
add esp, 4
test al, al
je 0x537053
mov edx, dword [ebp + 0x14]
mov dword [esp + 0x14], edx
fld dword [esp + 0x14]
mov byte [esp + 0x1b], 1
fdiv dword [0x650050]
fmul dword [0x658038]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fadd dword [ebp + 0x2c]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
mov eax, dword [esp + 0x14]
fcomp dword [0x657504]
mov dword [ebp + 0x2c], eax
fnstsw ax
test ah, 1
jne 0x536f43
fld dword [esp + 0x14]
call fcn.0061672c
cdq
mov ecx, 0x168
idiv ecx
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fstp dword [ebp + 0x2c]
mov eax, dword [ebp + 0x38]
cmp eax, esi
jge 0x536f4f
add eax, 3
jmp 0x536f54
jle 0x536f57
add eax, 0xfffffffd
mov dword [ebp + 0x38], eax
mov eax, dword [ebp + 0x38]
cmp eax, 0xfffffffd
jl 0x536f67
cmp eax, 3
jg 0x536f67
mov dword [ebp + 0x38], esi
fild dword [ebp + 0x38]
sub esp, 0x10
xor eax, eax
xor ecx, ecx
fstp dword [esp + 0x24]
mov edi, esp
fld dword [esp + 0x24]
sub esp, 0xc
fmul qword [0x65f100]
fchs
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
mov edx, dword [esp + 0x38]
fmul dword [0x64fe88]
mov dword [ebp + 0x3c], edx
mov edx, 0x3f800000
fstp dword [esp + 0x18]
mov dword [edi], eax
mov dword [edi + 4], ecx
mov dword [edi + 8], edx
mov ecx, esp
mov dword [ecx], esi
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov ecx, dword [ebp + 0x28]
push eax
call fcn.005a93d0
mov edx, dword [esp + 0x3c]
push edx
mov ecx, ebx
call fcn.00532080
fld dword [ebp + 0x34]
fadd dword [0x64ff20]
push ecx
fstp dword [esp]
call fcn.00418130
fstp dword [esp + 0x30]
fld dword [ebp + 0x34]
fadd dword [0x64ff20]
fstp dword [esp]
call fcn.00418150
fchs
add esp, 4
lea ecx, [esp + 0x2c]
fstp dword [esp + 0x34]
mov dword [esp + 0x30], 0
call fcn.004181c0
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x34]
mov dword [esp + 0x24], ecx
lea ecx, [esp + 0x20]
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], edx
call fcn.004181c0
fld dword [esp + 0x38]
mov eax, dword [ebp + 0x34]
mov dword [ebx + 0x1434], eax
fadd dword [ebp + 0x34]
fstp dword [esp + 0x38]
mov ecx, dword [esp + 0x38]
push ecx
mov ecx, dword [ebx + 0xc]
call fcn.00404ba0
jmp 0x5371d0
push 0x44
call fcn.00526f60
add esp, 4
test al, al
je 0x5370f2
mov ecx, dword [ebp + 0x38]
mov eax, 0xffffffa6
cmp ecx, eax
mov byte [esp + 0x1b], 1
jge 0x537079
mov dword [ebp + 0x38], eax
fild dword [ebp + 0x38]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fsub dword [esp + 0x1c]
call fcn.0061672c
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
sub esp, 0x10
xor ecx, ecx
mov edi, esp
fstp dword [esp + 0x24]
mov dword [ebp + 0x38], eax
fld dword [esp + 0x24]
xor eax, eax
fmul qword [0x65f100]
sub esp, 0xc
fchs
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
mov edx, dword [esp + 0x38]
fmul dword [0x64fe88]
mov dword [ebp + 0x3c], edx
mov edx, 0x3f800000
fstp dword [esp + 0x18]
mov dword [edi], eax
mov dword [edi + 4], ecx
mov dword [edi + 8], edx
mov ecx, esp
mov dword [ecx], esi
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov ecx, dword [ebp + 0x28]
push eax
call fcn.005a93d0
jmp 0x5371d0
push 0x41
call fcn.00526f60
add esp, 4
test al, al
je 0x53718e
mov ecx, dword [ebp + 0x38]
mov eax, 0x5a
cmp ecx, eax
mov byte [esp + 0x1b], 1
jle 0x537118
mov dword [ebp + 0x38], eax
fild dword [ebp + 0x38]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fadd dword [esp + 0x1c]
call fcn.0061672c
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
sub esp, 0x10
xor ecx, ecx
mov edi, esp
fstp dword [esp + 0x24]
mov dword [ebp + 0x38], eax
fld dword [esp + 0x24]
xor eax, eax
fmul qword [0x65f100]
sub esp, 0xc
fchs
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
mov edx, dword [esp + 0x38]
fmul dword [0x64fe88]
mov dword [ebp + 0x3c], edx
mov edx, 0x3f800000
fstp dword [esp + 0x18]
mov dword [edi], eax
mov dword [edi + 4], ecx
mov dword [edi + 8], edx
mov ecx, esp
mov dword [ecx], esi
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov ecx, dword [ebp + 0x28]
push eax
call fcn.005a93d0
jmp 0x5371d0
push 0x53
call fcn.00526f60
add esp, 4
test al, al
je 0x5371aa
push 0x41
call fcn.00526f60
add esp, 4
test al, al
jne 0x5371d0
push 0x53
call fcn.00526f60
add esp, 4
test al, al
je 0x5371c6
push 0x44
call fcn.00526f60
add esp, 4
test al, al
jne 0x5371d0
push 0x53
call fcn.00526f60
add esp, 4
mov eax, dword [ebx + 0x13c4]
test ah, 0x10
jne 0x5372f0
push 0x20
call fcn.00526f60
add esp, 4
test al, al
je 0x5372f0
mov esi, dword [esp + 0x10]
cmp esi, 5
je 0x5372f4
mov eax, dword [esp + 0xf8]
test eax, eax
jne 0x5372f4
cmp esi, 4
je 0x5372f4
cmp esi, 3
je 0x5372f4
mov ecx, ebx
mov byte [esp + 0x1b], 1
call fcn.00531880
test eax, eax
je 0x5372b6
mov cl, byte [0x940fd7]
mov al, 0x80
test al, cl
je 0x537281
mov edx, dword [ebp]
fld dword [edx + 0x98]
lea eax, [esp + 0x10]
fdiv dword [0x65f0fc]
push eax
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x34]
push edx
fstp dword [esp + 0x1c]
call fcn.00525020
mov edx, dword [eax]
lea ecx, [ebx + 0x13b8]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov eax, dword [eax + 8]
add esp, 0xc
mov dword [ecx + 8], eax
jmp 0x5372b6
test byte [0x940fd3], al
je 0x5372a2
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x34]
mov dword [esp + 0x18], 0xc0892492
push eax
jmp 0x537261
xor eax, eax
lea edi, [ebx + 0x13b8]
xor ecx, ecx
mov dword [edi], eax
xor edx, edx
mov dword [edi + 4], ecx
mov dword [edi + 8], edx
sub esp, 0xc
mov ecx, esp
lea eax, [ebx + 0x1278]
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
mov edx, dword [ebx + 0x1568]
mov dword [ecx + 8], eax
mov ecx, dword [ebx + 0x1284]
mov eax, dword [ebx + 0x156c]
push ecx
mov ecx, dword [ebp]
push edx
push eax
call fcn.00527650
jmp 0x5372f4
mov esi, dword [esp + 0x10]
mov eax, dword [ebp]
mov ecx, dword [eax + 0x4c]
test ecx, ecx
jne 0x537403
test dword [ebx + 0x13c4], 0x2000000
jne 0x537403
mov cl, byte [eax + 0x108]
test cl, cl
jne 0x53737b
push 1
call fcn.00526f60
add esp, 4
test al, al
je 0x53737b
cmp esi, 5
je 0x53737b
push 0xffffffffffffffff
push 0xffffffffffffffff
mov ecx, ebx
mov byte [esp + 0x23], 1
call fcn.005311b0
test eax, eax
je 0x53737b
sub esp, 0xc
mov ecx, esp
lea eax, [ebx + 0x1278]
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
mov edx, dword [ebx + 0x1568]
mov dword [ecx + 8], eax
mov ecx, dword [ebx + 0x1284]
mov eax, dword [ebx + 0x156c]
push ecx
mov ecx, dword [ebp]
push edx
push eax
call fcn.00527650
call dword [0x8bd308]
test eax, eax
je 0x537403
mov eax, dword [0x8bd384]
test eax, eax
je 0x537403
mov eax, dword [ebp]
cmp byte [eax + 0x108], 1
jne 0x537403
mov ecx, dword [eax + 0x40]
test ecx, ecx
je 0x537403
cmp esi, 5
je 0x537403
mov ecx, 1
mov dword [eax + 0x8c], ecx
push 0xffffffffffffffff
mov dword [ebx + 0x1560], ecx
push 0xffffffffffffffff
mov ecx, ebx
mov byte [esp + 0x23], 1
call fcn.005311b0
test eax, eax
je 0x537403
lea eax, [ebx + 0x1278]
mov edx, dword [eax]
sub esp, 0xc
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
mov dword [ecx + 8], eax
mov ecx, dword [ebx + 0x1284]
mov edx, dword [ebx + 0x1568]
mov eax, dword [ebx + 0x156c]
push ecx
mov ecx, dword [ebp]
push edx
push eax
call fcn.00527650
test dword [ebx + 0x13c4], 0x3000000
je 0x53743a
mov eax, dword [0x8bd2dc]
test eax, eax
je 0x53741f
push 0
call eax
add esp, 4
mov ecx, dword [ebp]
mov dword [ecx + 0x90], 0
mov edx, dword [ebp]
or esi, 0xffffffff
mov dword [edx + 0x94], esi
jmp 0x53743d
or esi, 0xffffffff
mov al, byte [esp + 0x1b]
test al, al
jne 0x53753c
mov eax, dword [esp + 0x2e0]
mov ecx, dword [ebp]
push eax
call fcn.00529510
mov eax, dword [0x8bd2e0]
xor edi, edi
cmp eax, edi
je 0x5374a3
call eax
test eax, eax
je 0x5374a3
mov ecx, dword [esp + 0x3c]
push ecx
mov ecx, ebx
mov byte [esp + 0x1f], 1
call fcn.00530f50
fstp st(0)
push edi
call dword [0x8bd2f4]
push edi
call dword [0x8bd2f8]
push edi
call dword [0x8bd2fc]
push edi
call dword [0x8bd300]
push edi
call dword [0x8bd304]
add esp, 0x14
mov ecx, dword [ebp]
cmp dword [ecx + 0x90], edi
je 0x537585
mov edx, dword [ecx + 0x94]
push edx
call fcn.00528740
cmp eax, edi
je 0x537528
lea ecx, [ebx + 0x1278]
push ecx
add eax, 0x1278
push eax
lea eax, [esp + 0x34]
push eax
call fcn.0040bce0
add esp, 0xc
lea ecx, [esp + 0x2c]
mov dword [esp + 0x30], edi
call fcn.00418170
fcomp dword [0x65f0f8]
fnstsw ax
test ah, 0x41
jne 0x537585
lea ecx, [esp + 0x2c]
push ecx
mov ecx, dword [ebp]
call fcn.00529450
mov edx, dword [ebx + 0xc]
mov ecx, dword [esp + 0x3c]
mov eax, dword [edx + 0x34]
push ecx
mov ecx, ebx
mov dword [ebx + 0x1284], eax
mov byte [esp + 0x1f], 1
call fcn.00530f50
fstp st(0)
jmp 0x537585
mov edx, dword [ebp]
mov dword [edx + 0x90], edi
mov eax, dword [ebp]
mov dword [eax + 0x94], esi
jmp 0x537585
xor edi, edi
push edi
call dword [0x8bd2f4]
push edi
call dword [0x8bd2f8]
push edi
call dword [0x8bd2fc]
push edi
call dword [0x8bd300]
push edi
call dword [0x8bd304]
mov eax, dword [0x8bd2dc]
add esp, 0x14
cmp eax, edi
je 0x537573
push edi
call eax
add esp, 4
mov ecx, dword [ebp]
mov dword [ecx + 0x90], edi
mov edx, dword [ebp]
mov dword [edx + 0x94], esi
cmp dword [ebx + 0x13ac], edi
je 0x5375a9
lea eax, [esp + 0x5c]
push eax
call dword [0x8bd2d8]
add esp, 4
test eax, eax
jne 0x5375a9
mov ecx, dword [ebp]
mov dword [ecx + 4], 1
mov al, byte [esp + 0x1b]
test al, al
jne 0x5375c0
cmp dword [ebx + 0x1558], edi
jne 0x5375c0
mov ecx, ebx
call fcn.00531070
mov ecx, dword [ebp]
call fcn.00529780
test eax, eax
jne 0x5375db
mov eax, dword [0x8bd2e8]
cmp eax, edi
je 0x5375db
push edi
call eax
add esp, 4
mov eax, dword [ebx + 0x1568]
dec eax
cmp eax, 0x27
ja case.0x5375f2.2
movzx edx, byte [eax + 0x537de4]
jmp dword [edx*4 + 0x537dac]
mov eax, dword [ebp]
fld dword [eax + 0x9c]
lea ecx, [esp + 0x10]
fdiv dword [0x65f0fc]
push ecx
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0xc8]
push eax
fstp dword [esp + 0x1c]
call fcn.00525020
add esp, 0xc
push edi
jmp 0x537902
lea ecx, [ebp + 8]
call fcn.00536490
mov edx, dword [ebp + 0x14]
mov dword [esp + 0x10], edx
fld dword [esp + 0x10]
fdiv dword [0x65f0fc]
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x68]
push edx
fstp dword [esp + 0x1c]
call fcn.00525020
add esp, 0xc
push edi
jmp 0x537902
mov edx, dword [ebp]
fld dword [edx + 0x9c]
lea eax, [esp + 0x10]
fdiv dword [0x65f0fc]
push eax
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0xbc]
push edx
fchs
fstp dword [esp + 0x1c]
call fcn.00525020
add esp, 0xc
push edi
jmp 0x537902
mov edx, dword [ebp]
fld dword [edx + 0x9c]
lea eax, [esp + 0x10]
fdiv dword [0x65f0fc]
push eax
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x8c]
push edx
fchs
fstp dword [esp + 0x1c]
call fcn.00525020
add esp, 0xc
push edi
jmp 0x537902
mov edx, dword [ebp]
fld dword [edx + 0x9c]
lea eax, [esp + 0x10]
fdiv dword [0x65f0fc]
push eax
lea ecx, [esp + 0x44]
push ecx
lea edx, [esp + 0xe0]
push edx
fstp dword [esp + 0x1c]
call fcn.00525020
add esp, 0xc
push edi
jmp 0x537902
mov edx, dword [ebp]
fld dword [edx + 0x9c]
lea eax, [esp + 0x10]
fdiv dword [0x65f0fc]
push eax
lea ecx, [esp + 0x44]
push ecx
lea edx, [esp + 0xa4]
push edx
fchs
fstp dword [esp + 0x1c]
call fcn.00525020
add esp, 0xc
push edi
jmp 0x537902
push edi
sub esp, 0xc
xor eax, eax
mov esi, esp
mov dword [esi], eax
xor ecx, ecx
xor edx, edx
mov dword [esi + 4], ecx
mov dword [esi + 8], edx
mov edx, dword [ebx + 0xc]
push edx
call fcn.00578ae0
add esp, 0x14
jmp 0x537b4f
push edi
sub esp, 0xc
xor eax, eax
mov esi, esp
mov dword [esi], eax
mov eax, dword [ebx + 0xc]
xor ecx, ecx
xor edx, edx
mov dword [esi + 4], ecx
push eax
mov dword [esi + 8], edx
call fcn.00578ae0
add esp, 0x14
jmp 0x537b4f
push edi
sub esp, 0xc
xor eax, eax
mov esi, esp
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
mov ecx, dword [ebx + 0xc]
xor edx, edx
push ecx
mov dword [esi + 8], edx
call fcn.00578ae0
add esp, 0x14
jmp 0x537b4f
push edi
lea ecx, [ebx + 0x13b8]
mov eax, dword [ecx]
sub esp, 0xc
mov edx, esp
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [edx + 4], eax
mov dword [edx + 8], ecx
mov edx, dword [ebx + 0xc]
push edx
call fcn.00578ae0
add esp, 0x14
jmp 0x537b4f
mov ecx, dword [ebx + 0xc]
call fcn.0058fc90
cmp eax, edi
je 0x53783c
mov edi, str.CLASS_ROGUE
mov esi, eax
mov ecx, 0xc
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x537828
mov edi, str.WEAPON_SHADOW_OFF
mov esi, eax
mov ecx, 0x12
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x537828
mov edi, str.WEAPON_2CLAW
mov esi, eax
mov ecx, 0xd
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x537828
mov esi, eax
mov edi, str.WEAPON_2DA
mov ecx, 0xb
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x53783c
mov dword [esp + 0x10], 0x421c0000
lea eax, [esp + 0xcc]
jmp 0x5378ea
mov dword [esp + 0x10], 0x41f00000
lea ecx, [esp + 0x6c]
lea eax, [esp + 0x40]
lea edx, [esp + 0x10]
push edx
push eax
push ecx
call fcn.00525020
mov ecx, dword [eax]
add esp, 0xc
push 0xbf8ccccd
sub esp, 0xc
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [edx + 4], ecx
mov ecx, dword [ebx + 0xc]
push ecx
mov dword [edx + 8], eax
call fcn.00578ae0
add esp, 0x14
jmp 0x537b4f
mov ecx, dword [ebx + 0xc]
call fcn.0058fc90
cmp eax, edi
je 0x537928
mov edi, str.CLASS_ROGUE
mov esi, eax
mov ecx, 0xc
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x5378de
mov edi, str.WEAPON_SHADOW_OFF
mov esi, eax
mov ecx, 0x12
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x5378de
mov edi, str.WEAPON_2CLAW
mov esi, eax
mov ecx, 0xd
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x5378de
mov esi, eax
mov edi, str.WEAPON_2DA
mov ecx, 0xb
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x537928
mov dword [esp + 0x10], 0xc21c0000
lea eax, [esp + 0x78]
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x44]
push edx
push eax
call fcn.00525020
add esp, 0xc
push 0xbf8ccccd
mov edx, dword [eax]
sub esp, 0xc
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
mov dword [ecx + 8], eax
mov ecx, dword [ebx + 0xc]
push ecx
call fcn.00578ae0
add esp, 0x14
jmp 0x537b4f
mov dword [esp + 0x10], 0xc1f00000
lea ecx, [esp + 0x90]
jmp 0x537848
mov dword [esp + 0x10], 0xc21c0000
lea eax, [esp + 0x20]
lea ecx, [esp + 0xa8]
jmp 0x53784c
mov edx, dword [ebp + 0x14]
mov dword [esp + 0x10], edx
fld dword [esp + 0x10]
fcomp dword [0x64fe74]
fnstsw ax
test ah, 0x41
jne 0x537a04
mov eax, edx
mov dword [esp + 0x10], eax
fld dword [esp + 0x10]
fdiv dword [0x65f0fc]
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x54]
push eax
fstp dword [esp + 0x1c]
call fcn.00525020
mov edx, dword [eax]
add esp, 0xc
push edi
sub esp, 0xc
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
mov dword [ecx + 8], eax
mov ecx, dword [ebx + 0xc]
push ecx
call fcn.00578ae0
mov edx, dword [ebp + 0x14]
mov dword [esp + 0x24], edx
fld dword [esp + 0x24]
fdiv dword [0x650050]
add esp, 0x14
fmul dword [0x65f0f4]
fadd dword [ebp + 0x2c]
fstp dword [esp + 0x10]
mov eax, dword [esp + 0x10]
fld dword [esp + 0x10]
mov dword [ebp + 0x2c], eax
fcomp dword [0x64fe74]
fnstsw ax
test ah, 5
jp 0x5379f6
mov dword [ebp + 0x2c], edi
fld dword [ebp + 0x14]
fsub dword [0x64fe88]
fstp dword [ebp + 0x14]
jmp 0x537a24
push edi
sub esp, 0xc
xor eax, eax
mov esi, esp
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
mov ecx, dword [ebx + 0xc]
xor edx, edx
push ecx
mov dword [esi + 8], edx
call fcn.00578ae0
add esp, 0x14
mov eax, dword [ebp + 0x38]
cmp eax, edi
jge 0x537a30
add eax, 3
jmp 0x537a35
jle 0x537a38
add eax, 0xfffffffd
mov dword [ebp + 0x38], eax
mov eax, dword [ebp + 0x38]
cmp eax, 0xfffffffd
jl 0x537a48
cmp eax, 3
jg 0x537a48
mov dword [ebp + 0x38], edi
fild dword [ebp + 0x38]
sub esp, 0x10
xor eax, eax
xor ecx, ecx
fstp dword [esp + 0x20]
mov edi, esp
fld dword [esp + 0x20]
sub esp, 0xc
fmul qword [0x65f100]
xor esi, esi
fchs
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
mov edx, dword [esp + 0x38]
fmul dword [0x64fe88]
mov dword [ebp + 0x3c], edx
mov edx, 0x3f800000
fstp dword [esp + 0x18]
mov dword [edi], eax
mov dword [edi + 4], ecx
mov dword [edi + 8], edx
mov ecx, esp
mov dword [ecx], esi
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov ecx, dword [ebp + 0x28]
push esi
call fcn.005a93d0
mov edx, dword [esp + 0x3c]
push edx
mov ecx, ebx
call fcn.00532080
fld dword [ebp + 0x34]
fadd dword [0x64ff20]
sub esp, 8
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fstp qword [esp]
call fcn.00616f24
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fstp dword [esp + 0x34]
fld dword [ebp + 0x34]
fadd dword [0x64ff20]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fstp qword [esp]
call fcn.00616fd4
fstp dword [esp + 0x18]
add esp, 8
fld dword [esp + 0x10]
lea ecx, [esp + 0x2c]
fchs
fstp dword [esp + 0x34]
mov dword [esp + 0x30], esi
call fcn.004181c0
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x34]
mov dword [esp + 0x24], ecx
lea ecx, [esp + 0x20]
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], edx
call fcn.004181c0
fld dword [esp + 0x38]
mov eax, dword [ebp + 0x34]
mov dword [ebx + 0x1434], eax
fadd dword [ebp + 0x34]
fstp dword [esp + 0x38]
mov ecx, dword [esp + 0x38]
push ecx
mov ecx, dword [ebx + 0xc]
call fcn.00404ba0
mov edx, dword [ebp]
mov eax, dword [edx + 0xbc]
push eax
call fcn.00573e9a
fcomp dword [0x64fe64]
add esp, 4
fnstsw ax
test ah, 1
jne 0x537d8f
mov eax, dword [ebx + 0x1568]
cmp eax, 8
je 0x537bd5
cmp eax, 1
je 0x537bd5
cmp eax, 4
je 0x537bd5
cmp eax, 5
je 0x537bd5
cmp eax, 6
je 0x537bd5
cmp eax, 0xa
je 0x537bd5
test eax, eax
je 0x537bd5
cmp eax, 0x19
je 0x537bd5
cmp eax, 0x1a
je 0x537bd5
cmp eax, 0x29
je 0x537bd5
cmp eax, 0x2a
je 0x537bd5
cmp eax, 0x26
je 0x537bd5
cmp eax, 0x28
je 0x537bd5
cmp eax, 0x15
je 0x537bd5
cmp eax, 0x24
je 0x537bd5
cmp eax, 0x22
je 0x537bd5
cmp eax, 0x23
je 0x537bd5
cmp eax, 9
jne 0x537d8f
lea ecx, [esp + 0x20]
call fcn.004181c0
lea ecx, [esp + 0x40]
call fcn.004181c0
mov eax, dword [ebx + 0x1568]
dec eax
cmp eax, 0x27
ja case.0x537bfe.2
movzx ecx, byte [eax + 0x537e2c]
jmp dword [ecx*4 + 0x537e0c]
mov edx, dword [ebp]
fld dword [edx + 0x98]
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x54]
push edx
jmp 0x537c80
lea eax, [esp + 0x20]
jmp 0x537c2f
lea edx, [esp + 0x40]
jmp 0x537c6c
lea eax, [esp + 0x40]
mov ecx, dword [ebp]
fld dword [ecx + 0x9c]
lea edx, [esp + 0x10]
fdiv dword [0x64fe78]
push edx
push eax
lea ecx, [esp + 0x54]
push ecx
fchs
fstp dword [esp + 0x1c]
call fcn.00525020
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov dword [esp + 0x2c], edx
mov edx, dword [eax + 8]
add esp, 0xc
jmp 0x537d10
lea edx, [esp + 0x20]
mov eax, dword [ebp]
fld dword [eax + 0x9c]
lea ecx, [esp + 0x10]
push ecx
push edx
lea eax, [esp + 0x54]
push eax
fdiv dword [0x64fe78]
fstp dword [esp + 0x1c]
call fcn.00525020
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
add esp, 0xc
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], eax
jmp 0x537d18
lea ecx, [ebx + 0x13b8]
mov edx, dword [ecx]
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], ecx
jmp 0x537d18
mov edx, dword [ebp]
fld dword [edx + 0x9c]
lea eax, [esp + 0x10]
fdiv dword [0x64fe78]
push eax
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x54]
push edx
fchs
fstp dword [esp + 0x1c]
call fcn.00525020
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
add esp, 0xc
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], eax
jmp 0x537d18
xor eax, eax
xor ecx, ecx
xor edx, edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], edx
fld dword [esp + 0x20]
mov ecx, dword [ebx + 0xc]
fadd dword [ebx + 0x1278]
push ecx
fstp dword [esp + 0x24]
fld dword [esp + 0x28]
fadd dword [ebx + 0x127c]
fstp dword [esp + 0x28]
fld dword [esp + 0x2c]
fadd dword [ebx + 0x1280]
fstp dword [esp + 0x2c]
call fcn.00578b40
mov ecx, dword [esp + 0x28]
add esp, 4
sub esp, 0xc
cmp eax, 5
mov eax, dword [esp + 0x2c]
mov edx, esp
mov dword [edx], eax
mov eax, dword [esp + 0x34]
mov dword [edx + 4], ecx
mov ecx, dword [ebx + 0x1284]
push ecx
mov ecx, dword [ebp]
mov dword [edx + 8], eax
jne 0x537d7c
push 0x64
push 0x64
jmp 0x537d8a
mov edx, dword [ebx + 0x1568]
mov eax, dword [ebx + 0x156c]
push edx
push eax
call fcn.00527650
xor eax, eax
mov ecx, dword [esp + 0x2d8]
call fcn.006162c0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2cc
ret 0x10
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x64774c
push eax
mov dword fs:[0], esp
sub esp, 0x2b4
push ebx
push ebp
mov ebp, ecx
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0x2c]
cmp ecx, 0xffffffff
push esi
push edi
je 0x53ad7e
mov edx, dword [eax + 0xc8]
xor esi, esi
cmp edx, esi
je 0x53ad7e
mov eax, dword [eax + 0x14]
mov ebx, dword [eax + ecx*4]
mov ecx, dword [ebx + 0xc]
push 1
push ecx
call fcn.00578fb0
mov eax, dword [ebx + 0xc]
mov edx, dword [eax + 0x34]
mov dword [esp + 0x40], edx
fld dword [esp + 0x40]
lea edx, [eax + 0x1c]
mov edi, dword [edx]
fsub dword [ebx + 0x1434]
lea ecx, [ebx + 0x1278]
mov dword [ecx], edi
mov edi, dword [edx + 4]
fstp dword [esp + 0x40]
mov dword [ecx + 4], edi
mov edx, dword [edx + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0x34]
mov dword [esp + 0x1c], eax
fld dword [esp + 0x1c]
fchs
mov dword [ebx + 0x1284], eax
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
fsub dword [0x64ff20]
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
fstp qword [esp]
call fcn.00616f24
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fstp dword [esp + 0x28]
fld dword [esp + 0x24]
fstp qword [esp]
call fcn.00616fd4
fstp dword [esp + 0x1c]
add esp, 8
fld dword [esp + 0x14]
lea ecx, [esp + 0x20]
fstp dword [esp + 0x28]
mov dword [esp + 0x24], esi
call fcn.004181c0
fld dword [esp + 0x1c]
fadd dword [0x64ff20]
sub esp, 8
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fstp qword [esp]
call fcn.00616f24
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fstp dword [esp + 0x54]
fld dword [esp + 0x1c]
fstp qword [esp]
call fcn.00616fd4
mov eax, dword [esp + 0x2dc]
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
add esp, 8
cmp eax, esi
fstp dword [esp + 0x54]
mov dword [esp + 0x50], esi
je 0x539af2
push 0x20
call fcn.00526f60
add esp, 4
test al, al
mov dword [0x8bd390], 1
jne 0x539af8
mov dword [0x8bd390], esi
mov ecx, dword [ebp + 0xc]
call fcn.00529310
mov ecx, dword [ebp + 0xc]
call fcn.005276a0
cmp dword [ebx + 0x13a4], esi
je 0x539cd9
mov eax, dword [ebx + 0xc]
push eax
call fcn.00578b40
mov ecx, dword [ebx + 0xc]
push 8
push ecx
mov edi, eax
call fcn.00578a40
add esp, 0xc
cmp eax, esi
je 0x539b46
cmp dword [ebx + 0x13a8], esi
jne 0x539b46
mov eax, 1
mov dword [ebx + 0x13a8], eax
jmp 0x539b4b
mov eax, 1
cmp edi, 4
jne 0x539b6d
mov dword [ebx + 0x1560], esi
mov dword [ebx + 0x1570], eax
mov dword [ebx + 0x1564], esi
mov dword [ebx + 0x1574], eax
jmp 0x539ceb
cmp edi, 2
je 0x539b7f
cmp edi, esi
je 0x539b7f
cmp edi, 5
jne 0x539cd9
cmp dword [ebx + 0x13a8], esi
je 0x539cd9
cmp dword [ebx + 0x13a4], esi
je 0x539bc0
cmp edi, 5
je 0x539bc0
sub esp, 0xc
lea eax, [ebx + 0x1278]
mov ecx, dword [eax]
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [edx + 4], ecx
mov ecx, dword [ebp + 0xc]
push 0xc8
mov dword [edx + 8], eax
call fcn.005276b0
xor eax, eax
lea edi, [ebx + 0x13b8]
mov dword [edi], eax
xor ecx, ecx
xor edx, edx
mov dword [edi + 4], ecx
mov dword [ebx + 0x13a4], esi
mov dword [ebx + 0x13a8], esi
mov dword [ebx + 0x1570], esi
mov dword [ebx + 0x1574], esi
mov dword [edi + 8], edx
mov dword [0x8bd340], 0x3c23d70a
cmp dword [ebx + 0x1568], 0x23
je 0x539c96
mov ax, word [ebx + 0x123e]
cmp ax, 2
je 0x539c55
cmp ax, 7
je 0x539c55
cmp ax, 0x18
je 0x539c55
push 0x25
push 0x25
mov ecx, ebx
call fcn.00530670
sub esp, 0xc
lea eax, [ebx + 0x1278]
mov edx, dword [eax]
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
mov dword [ecx + 8], eax
mov ecx, dword [ebx + 0x1284]
push ecx
push 0x25
mov dword [ebx + 0x126c], esi
push 0x25
jmp 0x539cd1
push 0x20
call fcn.00526f60
add esp, 4
test al, al
jne 0x539cd9
push 0x25
push 0x25
mov ecx, ebx
call fcn.00530670
sub esp, 0xc
lea eax, [ebx + 0x1278]
mov ecx, dword [eax]
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
mov ecx, dword [ebx + 0x1284]
push ecx
push 0x25
mov dword [ebx + 0x126c], esi
push 0x25
jmp 0x539ccb
cmp word [ebx + 0x123e], 0x14
jne 0x539cd9
push 0x34
push 0x34
mov ecx, ebx
call fcn.00530670
sub esp, 0xc
lea eax, [ebx + 0x1278]
mov ecx, dword [eax]
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
mov ecx, dword [ebx + 0x1284]
push ecx
push 0x34
push 0x34
mov eax, dword [eax + 8]
mov dword [edx + 8], eax
mov ecx, dword [ebp + 0xc]
call fcn.00527650
mov ecx, ebx
call fcn.00530ce0
mov eax, dword [0x8bd2e4]
cmp eax, esi
je 0x539ceb
call eax
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 0x7c]
push eax
mov byte [esp + 0x1f], 0
call fcn.00573e9a
fstp dword [esp + 0x4c]
mov eax, dword [esp + 0x2d8]
add esp, 4
cmp eax, esi
je 0x53ae3c
mov eax, dword [ebx + 0x1558]
test eax, eax
jne 0x53ae3c
mov ecx, dword [ebx + 0xc]
push ecx
call fcn.00578b40
mov edx, dword [ebx + 0xc]
mov dword [esp + 0x18], eax
push edx
lea eax, [esp + 0x1dc]
push eax
call fcn.00578fd0
mov esi, eax
mov eax, dword [ebx + 0x13ac]
add esp, 0xc
test eax, eax
mov ecx, 0x3c
lea edi, [esp + 0xe4]
rep movsd dword es:[edi], dword [esi]
je 0x539dc2
lea ecx, [esp + 0x7c]
push ecx
call dword [0x8bd2d8]
add esp, 4
test eax, eax
je 0x539dc2
push 0xffffffffffffffff
push 0xffffffffffffffff
mov ecx, ebx
mov byte [esp + 0x23], 1
call fcn.00531d10
test eax, eax
je 0x53ae3c
sub esp, 0xc
mov edx, esp
lea eax, [ebx + 0x1278]
mov ecx, dword [eax]
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [edx + 4], ecx
mov ecx, dword [ebx + 0x1284]
mov dword [edx + 8], eax
mov edx, dword [ebx + 0x1568]
mov eax, dword [ebx + 0x156c]
push ecx
mov ecx, dword [ebp + 0xc]
push edx
push eax
call fcn.00527650
jmp 0x53ae3c
mov esi, dword [esp + 0x14]
cmp esi, 5
je 0x539e38
mov eax, dword [ebx + 0x139c]
xor edi, edi
cmp eax, edi
jne 0x539e38
test dword [ebx + 0x13c4], 0x2000000
jne 0x539e38
mov eax, dword [0x8bd2d4]
cmp eax, edi
je 0x539e38
push 1
call eax
add esp, 4
test eax, eax
je 0x539e38
mov eax, dword [ebx + 0x1568]
cmp eax, 0x16
je 0x539e38
cmp eax, 0x17
je 0x539e38
cmp eax, 0x20
je 0x539e38
mov byte [esp + 0x1b], 1
mov dword [ebx + 0x13ac], 1
call dword [sym.imp.winmm.dll_timeGetTime]
mov ecx, dword [ebp + 0xc]
mov dword [ecx + 8], eax
mov edx, dword [ebp + 0xc]
mov dword [edx + 0xc], edi
mov eax, dword [ebp + 0xc]
mov dword [eax + 0x10], edi
jmp 0x53ae3c
mov eax, dword [ebx + 0x13c4]
test eax, 0x3000000
jne 0x53aad3
mov ecx, dword [0x681280]
push ecx
call fcn.00573e9a
fstp dword [esp + 0x20]
push 0x57
call fcn.00526f60
add esp, 8
test al, al
je 0x53a0dc
push 0x41
call fcn.00526f60
add esp, 4
test al, al
je 0x53a0dc
mov edx, dword [ebp + 0x1c]
mov dword [esp + 0x10], edx
fld dword [esp + 0x10]
fdiv dword [0x650050]
mov byte [esp + 0x1b], 1
fmul dword [0x658038]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fadd dword [ebp + 0x28]
fstp dword [esp + 0x10]
mov eax, dword [esp + 0x10]
fld dword [esp + 0x10]
mov dword [ebp + 0x28], eax
fcomp dword [0x657504]
fnstsw ax
test ah, 1
jne 0x539ee4
fld dword [esp + 0x10]
call fcn.0061672c
cdq
mov ecx, 0x168
idiv ecx
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp dword [ebp + 0x28]
mov edi, dword [ebp + 0x28]
push edi
sub esp, 0xc
mov edi, esp
mov eax, 0xbf800000
mov dword [edi], eax
xor ecx, ecx
mov dword [edi + 4], ecx
mov ecx, dword [ebp]
xor edx, edx
mov dword [edi + 8], edx
sub esp, 0xc
mov edx, esp
xor eax, eax
xor esi, esi
mov dword [edx], esi
mov dword [edx + 4], eax
push eax
mov dword [edx + 8], eax
call fcn.005a93d0
mov edi, dword [ebp + 0x28]
push edi
sub esp, 0xc
xor ecx, ecx
mov edi, esp
mov eax, 0xbf800000
mov dword [edi], eax
mov dword [edi + 4], ecx
sub esp, 0xc
xor edx, edx
mov dword [edi + 8], edx
mov ecx, esp
mov dword [ecx], esi
xor eax, eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov ecx, dword [ebp + 4]
push esi
call fcn.005a93d0
cmp dword [ebp + 0x2c], 0x274
jle 0x539f56
mov dword [ebp + 0x2c], esi
mov ecx, dword [ebp + 0x34]
mov edi, dword [ebp + 0x2c]
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
add edi, eax
mov edx, edi
mov dword [esp + 0x10], edx
mov eax, 0x5a
cmp ecx, eax
fild dword [esp + 0x10]
mov dword [ebp + 0x2c], edi
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fmul qword [0x65f100]
fchs
fstp dword [ebp + 0x30]
jle 0x539f9b
mov dword [ebp + 0x34], eax
fild dword [ebp + 0x34]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fadd dword [esp + 0x1c]
call fcn.0061672c
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
mov dword [ebp + 0x34], eax
sub esp, 0x10
fstp dword [esp + 0x20]
mov edi, esp
fld dword [esp + 0x20]
mov ecx, 0x3f800000
fmul qword [0x65f100]
sub esp, 0xc
xor edx, edx
fchs
fstp dword [esp + 0x38]
mov eax, dword [esp + 0x38]
fld dword [esp + 0x38]
mov dword [ebp + 0x38], eax
fmul dword [0x64fe88]
xor eax, eax
fstp dword [esp + 0x18]
mov dword [edi], eax
mov dword [edi + 4], ecx
mov dword [edi + 8], edx
mov ecx, esp
mov dword [ecx], esi
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov ecx, dword [ebp]
push 1
call fcn.005a93d0
fld dword [ebp + 0x38]
fmul dword [0x64fe88]
sub esp, 0x10
xor eax, eax
mov edi, esp
fstp dword [esp + 0xc]
mov dword [edi], eax
xor edx, edx
mov ecx, 0x3f800000
mov dword [edi + 4], ecx
mov ecx, dword [ebp + 4]
mov dword [edi + 8], edx
sub esp, 0xc
mov edx, esp
xor esi, esi
mov dword [edx], esi
mov dword [edx + 4], eax
push 1
mov dword [edx + 8], eax
call fcn.005a93d0
mov eax, dword [esp + 0x48]
push eax
mov ecx, ebx
call fcn.00532080
fld dword [ebp + 0x30]
fadd dword [0x64ff20]
push ecx
fstp dword [esp]
call fcn.00418130
fstp dword [esp + 0x30]
fld dword [ebp + 0x30]
fadd dword [0x64ff20]
fstp dword [esp]
call fcn.00418150
fchs
add esp, 4
lea ecx, [esp + 0x2c]
fstp dword [esp + 0x34]
mov dword [esp + 0x30], esi
call fcn.004181c0
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], eax
lea ecx, [esp + 0x20]
call fcn.004181c0
fld dword [esp + 0x38]
mov ecx, dword [ebp + 0x30]
mov dword [ebx + 0x1434], ecx
fadd dword [ebp + 0x30]
mov ecx, dword [ebx + 0xc]
fstp dword [esp + 0x38]
mov edx, dword [esp + 0x38]
push edx
call fcn.00404ba0
jmp 0x53a77e
push 0x57
call fcn.00526f60
add esp, 4
test al, al
je 0x53a35f
push 0x44
call fcn.00526f60
add esp, 4
test al, al
je 0x53a35f
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x10], eax
fld dword [esp + 0x10]
fdiv dword [0x650050]
mov byte [esp + 0x1b], 1
fmul dword [0x658038]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fadd dword [ebp + 0x28]
fstp dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
fld dword [esp + 0x10]
mov dword [ebp + 0x28], ecx
fcomp dword [0x657504]
fnstsw ax
test ah, 1
jne 0x53a167
fld dword [esp + 0x10]
call fcn.0061672c
cdq
mov ecx, 0x168
idiv ecx
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp dword [ebp + 0x28]
mov edi, dword [ebp + 0x28]
push edi
sub esp, 0xc
mov edi, esp
mov eax, 0xbf800000
mov dword [edi], eax
xor ecx, ecx
mov dword [edi + 4], ecx
mov ecx, dword [ebp]
xor edx, edx
mov dword [edi + 8], edx
sub esp, 0xc
mov edx, esp
xor eax, eax
xor esi, esi
mov dword [edx], esi
mov dword [edx + 4], eax
push eax
mov dword [edx + 8], eax
call fcn.005a93d0
mov edi, dword [ebp + 0x28]
push edi
sub esp, 0xc
xor ecx, ecx
mov edi, esp
mov eax, 0xbf800000
mov dword [edi], eax
mov dword [edi + 4], ecx
sub esp, 0xc
xor edx, edx
mov dword [edi + 8], edx
mov ecx, esp
mov dword [ecx], esi
xor eax, eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov ecx, dword [ebp + 4]
push esi
call fcn.005a93d0
cmp dword [ebp + 0x2c], 0xfffffd8c
jg 0x53a1d9
mov dword [ebp + 0x2c], esi
mov ecx, dword [ebp + 0x34]
mov edi, dword [ebp + 0x2c]
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
add edi, eax
mov edx, edi
mov dword [esp + 0x10], edx
mov eax, 0xffffffa6
cmp ecx, eax
fild dword [esp + 0x10]
mov dword [ebp + 0x2c], edi
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fmul qword [0x65f100]
fchs
fstp dword [ebp + 0x30]
jge 0x53a21e
mov dword [ebp + 0x34], eax
fild dword [ebp + 0x34]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fsub dword [esp + 0x1c]
call fcn.0061672c
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
mov dword [ebp + 0x34], eax
sub esp, 0x10
fstp dword [esp + 0x20]
mov edi, esp
fld dword [esp + 0x20]
mov ecx, 0x3f800000
fmul qword [0x65f100]
sub esp, 0xc
xor edx, edx
fchs
fstp dword [esp + 0x38]
mov eax, dword [esp + 0x38]
fld dword [esp + 0x38]
mov dword [ebp + 0x38], eax
fmul dword [0x64fe88]
xor eax, eax
fstp dword [esp + 0x18]
mov dword [edi], eax
mov dword [edi + 4], ecx
mov dword [edi + 8], edx
mov ecx, esp
mov dword [ecx], esi
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov ecx, dword [ebp]
push 1
call fcn.005a93d0
fld dword [ebp + 0x38]
fmul dword [0x64fe88]
sub esp, 0x10
xor eax, eax
mov edi, esp
fstp dword [esp + 0xc]
mov dword [edi], eax
xor edx, edx
mov ecx, 0x3f800000
mov dword [edi + 4], ecx
mov ecx, dword [ebp + 4]
mov dword [edi + 8], edx
sub esp, 0xc
mov edx, esp
xor esi, esi
mov dword [edx], esi
mov dword [edx + 4], eax
push 1
mov dword [edx + 8], eax
call fcn.005a93d0
mov eax, dword [esp + 0x48]
push eax
mov ecx, ebx
call fcn.00532080
fld dword [ebp + 0x30]
fadd dword [0x64ff20]
push ecx
fstp dword [esp]
call fcn.00418130
fstp dword [esp + 0x30]
fld dword [ebp + 0x30]
fadd dword [0x64ff20]
fstp dword [esp]
call fcn.00418150
fchs
add esp, 4
lea ecx, [esp + 0x2c]
fstp dword [esp + 0x34]
mov dword [esp + 0x30], esi
call fcn.004181c0
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], eax
lea ecx, [esp + 0x20]
call fcn.004181c0
fld dword [esp + 0x38]
mov ecx, dword [ebp + 0x30]
mov dword [ebx + 0x1434], ecx
fadd dword [ebp + 0x30]
mov ecx, dword [ebx + 0xc]
fstp dword [esp + 0x38]
mov edx, dword [esp + 0x38]
push edx
call fcn.00404ba0
jmp 0x53a77e
push 0x57
call fcn.00526f60
add esp, 4
test al, al
je 0x53a587
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x10], eax
fld dword [esp + 0x10]
fdiv dword [0x650050]
mov byte [esp + 0x1b], 1
fmul dword [0x658038]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fadd dword [ebp + 0x28]
fstp dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
fld dword [esp + 0x10]
mov dword [ebp + 0x28], ecx
fcomp dword [0x657504]
fnstsw ax
test ah, 1
jne 0x53a3d8
fld dword [esp + 0x10]
call fcn.0061672c
cdq
mov ecx, 0x168
idiv ecx
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp dword [ebp + 0x28]
mov edi, dword [ebp + 0x28]
push edi
sub esp, 0xc
mov edi, esp
mov eax, 0xbf800000
mov dword [edi], eax
xor ecx, ecx
mov dword [edi + 4], ecx
mov ecx, dword [ebp]
xor edx, edx
mov dword [edi + 8], edx
sub esp, 0xc
mov edx, esp
xor eax, eax
xor esi, esi
mov dword [edx], esi
mov dword [edx + 4], eax
push eax
mov dword [edx + 8], eax
call fcn.005a93d0
mov edi, dword [ebp + 0x28]
push edi
sub esp, 0xc
xor ecx, ecx
mov edi, esp
mov eax, 0xbf800000
mov dword [edi], eax
mov dword [edi + 4], ecx
sub esp, 0xc
xor edx, edx
mov dword [edi + 8], edx
mov ecx, esp
mov dword [ecx], esi
xor eax, eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov ecx, dword [ebp + 4]
push esi
call fcn.005a93d0
mov eax, dword [ebp + 0x34]
cmp eax, esi
jge 0x53a44a
add eax, 3
jmp 0x53a44f
jle 0x53a452
add eax, 0xfffffffd
mov dword [ebp + 0x34], eax
mov eax, dword [ebp + 0x34]
cmp eax, 0xfffffffd
jl 0x53a462
cmp eax, 3
jg 0x53a462
mov dword [ebp + 0x34], esi
fild dword [ebp + 0x34]
sub esp, 0x10
xor eax, eax
mov edi, esp
fstp dword [esp + 0x20]
mov ecx, 0x3f800000
fld dword [esp + 0x20]
sub esp, 0xc
fmul qword [0x65f100]
fchs
fstp dword [esp + 0x2c]
mov edx, dword [esp + 0x2c]
fld dword [esp + 0x2c]
mov dword [ebp + 0x38], edx
fmul dword [0x64fe88]
xor edx, edx
fstp dword [esp + 0x18]
mov dword [edi], eax
mov dword [edi + 4], ecx
mov dword [edi + 8], edx
mov ecx, esp
mov dword [ecx], esi
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov ecx, dword [ebp]
push 1
call fcn.005a93d0
fld dword [ebp + 0x38]
fmul dword [0x64fe88]
sub esp, 0x10
xor eax, eax
mov edi, esp
fstp dword [esp + 0xc]
mov dword [edi], eax
xor edx, edx
mov ecx, 0x3f800000
mov dword [edi + 4], ecx
mov ecx, dword [ebp + 4]
mov dword [edi + 8], edx
sub esp, 0xc
mov edx, esp
xor esi, esi
mov dword [edx], esi
mov dword [edx + 4], eax
push 1
mov dword [edx + 8], eax
call fcn.005a93d0
mov eax, dword [esp + 0x48]
push eax
mov ecx, ebx
call fcn.00532080
fld dword [ebp + 0x30]
fadd dword [0x64ff20]
push ecx
fstp dword [esp]
call fcn.00418130
fstp dword [esp + 0x30]
fld dword [ebp + 0x30]
fadd dword [0x64ff20]
fstp dword [esp]
call fcn.00418150
fchs
add esp, 4
lea ecx, [esp + 0x2c]
fstp dword [esp + 0x34]
mov dword [esp + 0x30], esi
call fcn.004181c0
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0x20]
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], eax
call fcn.004181c0
fld dword [esp + 0x38]
mov ecx, dword [ebp + 0x30]
mov dword [ebx + 0x1434], ecx
fadd dword [ebp + 0x30]
fstp dword [esp + 0x38]
mov edx, dword [esp + 0x38]
mov ecx, dword [ebx + 0xc]
push edx
call fcn.00404ba0
jmp 0x53a77e
push 0x44
call fcn.00526f60
add esp, 4
test al, al
je 0x53a663
mov ecx, dword [ebp + 0x34]
mov eax, 0xffffffa6
cmp ecx, eax
mov byte [esp + 0x1b], 1
jge 0x53a5ad
mov dword [ebp + 0x34], eax
fild dword [ebp + 0x34]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fsub dword [esp + 0x1c]
call fcn.0061672c
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
mov dword [ebp + 0x34], eax
sub esp, 0x10
fstp dword [esp + 0x20]
mov edi, esp
fld dword [esp + 0x20]
mov ecx, 0x3f800000
fmul qword [0x65f100]
sub esp, 0xc
xor edx, edx
xor esi, esi
fchs
fstp dword [esp + 0x38]
mov eax, dword [esp + 0x38]
fld dword [esp + 0x38]
mov dword [ebp + 0x38], eax
fmul dword [0x64fe88]
xor eax, eax
fstp dword [esp + 0x18]
mov dword [edi], eax
mov dword [edi + 4], ecx
mov dword [edi + 8], edx
mov ecx, esp
mov dword [ecx], esi
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov ecx, dword [ebp]
push 1
call fcn.005a93d0
fld dword [ebp + 0x38]
fmul dword [0x64fe88]
sub esp, 0x10
xor eax, eax
mov edi, esp
fstp dword [esp + 0xc]
mov dword [edi], eax
xor edx, edx
mov ecx, 0x3f800000
mov dword [edi + 4], ecx
mov ecx, dword [ebp + 4]
mov dword [edi + 8], edx
sub esp, 0xc
mov edx, esp
mov dword [edx], esi
mov dword [edx + 4], eax
push 1
mov dword [edx + 8], eax
call fcn.005a93d0
jmp 0x53a77e
push 0x41
call fcn.00526f60
add esp, 4
test al, al
je 0x53a73c
mov ecx, dword [ebp + 0x34]
mov eax, 0x5a
cmp ecx, eax
mov byte [esp + 0x1b], 1
jle 0x53a689
mov dword [ebp + 0x34], eax
fild dword [ebp + 0x34]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fadd dword [esp + 0x1c]
call fcn.0061672c
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
mov dword [ebp + 0x34], eax
sub esp, 0x10
fstp dword [esp + 0x20]
mov edi, esp
fld dword [esp + 0x20]
mov ecx, 0x3f800000
fmul qword [0x65f100]
sub esp, 0xc
xor edx, edx
xor esi, esi
fchs
fstp dword [esp + 0x38]
mov eax, dword [esp + 0x38]
fld dword [esp + 0x38]
mov dword [ebp + 0x38], eax
fmul dword [0x64fe88]
xor eax, eax
fstp dword [esp + 0x18]
mov dword [edi], eax
mov dword [edi + 4], ecx
mov dword [edi + 8], edx
mov ecx, esp
mov dword [ecx], esi
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov ecx, dword [ebp]
push 1
call fcn.005a93d0
fld dword [ebp + 0x38]
fmul dword [0x64fe88]
sub esp, 0x10
xor eax, eax
mov edi, esp
fstp dword [esp + 0xc]
mov dword [edi], eax
xor edx, edx
mov ecx, 0x3f800000
mov dword [edi + 4], ecx
mov ecx, dword [ebp + 4]
mov dword [edi + 8], edx
sub esp, 0xc
mov edx, esp
mov dword [edx], esi
mov dword [edx + 4], eax
push 1
mov dword [edx + 8], eax
call fcn.005a93d0
jmp 0x53a77e
push 0x53
call fcn.00526f60
add esp, 4
test al, al
je 0x53a758
push 0x41
call fcn.00526f60
add esp, 4
test al, al
jne 0x53a77e
push 0x53
call fcn.00526f60
add esp, 4
test al, al
je 0x53a774
push 0x44
call fcn.00526f60
add esp, 4
test al, al
jne 0x53a77e
push 0x53
call fcn.00526f60
add esp, 4
push 0x4d
call fcn.00526f60
add esp, 4
test al, al
je 0x53a9af
fld dword [ebp + 0x30]
push ecx
fadd dword [0x64ff20]
fstp dword [esp]
call fcn.00418130
fstp dword [esp + 0x30]
fld dword [ebp + 0x30]
fadd dword [0x64ff20]
fstp dword [esp]
call fcn.00418150
fchs
add esp, 4
lea ecx, [esp + 0x2c]
fstp dword [esp + 0x34]
mov dword [esp + 0x30], 0
call fcn.004181c0
mov eax, dword [ebx + 0xc]
lea ecx, [eax + 0x1c]
mov edx, ecx
mov ecx, dword [edx]
mov esi, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 0x44], edx
mov dword [esp + 0x3c], ecx
lea ecx, [eax + 0x1c]
mov edx, ecx
mov ecx, dword [edx]
mov dword [esp + 0x58], ecx
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
add eax, 0x1c
mov dword [esp + 0x40], esi
mov dword [esp + 0x40], ecx
mov ecx, dword [eax]
mov dword [esp + 0x60], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x44], eax
lea eax, [esp + 0x10]
mov dword [esp + 0x58], ecx
push eax
lea ecx, [esp + 0x30]
mov dword [esp + 0x60], edx
push ecx
lea edx, [esp + 0x60]
push edx
mov dword [0x8bd388], 1
mov dword [esp + 0x1c], 0x461c4000
call fcn.00525020
push eax
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0x78]
push ecx
call fcn.0044cdb0
mov edx, eax
mov ecx, dword [edx]
mov dword [esp + 0x44], ecx
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], edx
mov edx, dword [eax]
add esp, 0xc
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
mov dword [ecx + 8], eax
mov ecx, 0xb1cee8
call fcn.00595b70
fstp dword [esp + 0x30]
lea ecx, [esp + 0x2c]
push ecx
lea edx, [esp + 0x40]
push edx
mov ecx, ebp
call fcn.00539810
mov eax, dword [0xb1a128]
lea edi, [ebp + 0xb30]
mov ecx, dword [eax]
push edi
push 1
push 0x42
push 0
push 0x640
push eax
call dword [ecx + 0x5c]
test eax, eax
jl 0x53ad7e
mov edi, dword [edi]
mov edx, dword [edi]
push 0
lea eax, [esp + 0x20]
push eax
push 0x640
push 0
push edi
call dword [edx + 0x2c]
test eax, eax
jl 0x53ad7e
mov edi, dword [esp + 0x1c]
lea esi, [ebp + 0x4f0]
mov ecx, 0x190
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp + 0xb30]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x30]
test eax, eax
jl 0x53ad7e
push 0x388
mov ecx, 0xb21d88
call fcn.0057d900
mov dword [esp + 0x10], eax
xor esi, esi
cmp eax, esi
mov dword [esp + 0x2cc], esi
je 0x53a92e
mov ecx, eax
call fcn.00584210
jmp 0x53a930
xor eax, eax
push eax
mov dword [esp + 0x2d0], 0xffffffff
mov dword [ebp + 0xb34], eax
call fcn.00578ac0
mov ecx, dword [ebp + 0xb34]
add esp, 4
push 1
push 0x65f170
call fcn.0058b7a0
mov edx, dword [ebp + 0x4f8]
mov eax, dword [ebp + 0x4f4]
mov ecx, dword [ebp + 0x4f0]
push edx
push eax
push ecx
mov ecx, dword [ebp + 0xb34]
call fcn.00583a00
mov edx, dword [ebp + 0xb28]
mov eax, dword [ebp + 0xb24]
mov ecx, dword [ebp + 0xb20]
push edx
push eax
push ecx
mov ecx, dword [ebp + 0xb34]
call fcn.00582550
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp + 0xb34]
push eax
push eax
call fcn.0057f180
mov dword [ebp + 0x3c], esi
mov eax, dword [ebx + 0x13c4]
test ah, 0x10
jne 0x53aacf
push 0x20
call fcn.00526f60
add esp, 4
test al, al
je 0x53aacf
mov esi, dword [esp + 0x14]
cmp esi, 5
je 0x53aad3
mov eax, dword [esp + 0xf8]
test eax, eax
jne 0x53aad3
cmp esi, 4
je 0x53aad3
cmp esi, 3
je 0x53aad3
mov ecx, ebx
mov byte [esp + 0x1b], 1
call fcn.00531880
test eax, eax
je 0x53aa95
mov cl, byte [0x940fd7]
mov al, 0x80
test al, cl
je 0x53aa60
mov edx, dword [ebp + 0xc]
fld dword [edx + 0x98]
lea eax, [esp + 0x14]
fdiv dword [0x65f0fc]
push eax
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x6c]
push edx
fstp dword [esp + 0x20]
call fcn.00525020
mov edx, dword [eax]
lea ecx, [ebx + 0x13b8]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov eax, dword [eax + 8]
add esp, 0xc
mov dword [ecx + 8], eax
jmp 0x53aa95
test byte [0x940fd3], al
je 0x53aa81
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x6c]
mov dword [esp + 0x1c], 0xc0892492
push eax
jmp 0x53aa40
xor eax, eax
lea edi, [ebx + 0x13b8]
xor ecx, ecx
mov dword [edi], eax
xor edx, edx
mov dword [edi + 4], ecx
mov dword [edi + 8], edx
sub esp, 0xc
mov ecx, esp
lea eax, [ebx + 0x1278]
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
mov edx, dword [ebx + 0x1568]
mov dword [ecx + 8], eax
mov ecx, dword [ebx + 0x1284]
mov eax, dword [ebx + 0x156c]
push ecx
mov ecx, dword [ebp + 0xc]
push edx
push eax
call fcn.00527650
jmp 0x53aad3
mov esi, dword [esp + 0x14]
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0x4c]
test ecx, ecx
jne 0x53ae3c
test dword [ebx + 0x13c4], 0x2000000
jne 0x53ae3c
mov cl, byte [eax + 0x108]
test cl, cl
mov edi, 1
jne 0x53ab5e
push edi
call fcn.00526f60
add esp, 4
test al, al
je 0x53ab5e
cmp esi, 5
je 0x53ab5e
push 0xffffffffffffffff
push 0xffffffffffffffff
mov ecx, ebx
mov byte [esp + 0x23], 1
call fcn.005311b0
test eax, eax
je 0x53ab5e
sub esp, 0xc
mov ecx, esp
lea eax, [ebx + 0x1278]
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
mov edx, dword [ebx + 0x1568]
mov dword [ecx + 8], eax
mov ecx, dword [ebx + 0x1284]
mov eax, dword [ebx + 0x156c]
push ecx
mov ecx, dword [ebp + 0xc]
push edx
push eax
call fcn.00527650
call dword [0x8bd308]
test eax, eax
je 0x53abed
mov eax, dword [0x8bd390]
test eax, eax
je 0x53abed
mov eax, dword [ebp + 0xc]
cmp byte [eax + 0x108], 1
jne 0x53abed
mov ecx, dword [eax + 0x40]
test ecx, ecx
je 0x53abed
cmp esi, 5
je 0x53abed
push 0xffffffffffffffff
mov dword [eax + 0x8c], edi
push 0xffffffffffffffff
mov ecx, ebx
mov byte [esp + 0x23], 1
mov dword [ebx + 0x1560], edi
call fcn.005311b0
test eax, eax
je 0x53abed
sub esp, 0xc
mov ecx, esp
lea eax, [ebx + 0x1278]
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
mov edx, dword [ebx + 0x1568]
mov dword [ecx + 8], eax
mov ecx, dword [ebx + 0x1284]
mov eax, dword [ebx + 0x156c]
push ecx
mov ecx, dword [ebp + 0xc]
push edx
push eax
call fcn.00527650
mov dword [0x8bd38c], edi
jmp 0x53abfa
mov eax, dword [0x8bd38c]
test eax, eax
je 0x53ae3c
mov ecx, dword [ebx + 0xc]
push 0
call fcn.00538830
fcomp dword [0x64fc90]
fnstsw ax
test ah, 0x41
jne 0x53ae3c
fld dword [ebp + 0x30]
push ecx
fadd dword [0x64ff20]
fstp dword [esp]
call fcn.00418130
fstp dword [esp + 0x40]
fld dword [ebp + 0x30]
fadd dword [0x64ff20]
fstp dword [esp]
call fcn.00418150
fchs
add esp, 4
lea ecx, [esp + 0x3c]
fstp dword [esp + 0x44]
mov dword [esp + 0x40], 0
call fcn.004181c0
mov eax, dword [ebx + 0xc]
lea ecx, [eax + 0x1c]
mov edx, ecx
mov ecx, dword [edx]
mov esi, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 0x60], edx
mov dword [esp + 0x2c], ecx
lea ecx, [eax + 0x1c]
mov edx, ecx
mov ecx, dword [edx]
mov dword [esp + 0x58], ecx
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
add eax, 0x1c
mov dword [esp + 0x30], ecx
mov ecx, dword [eax]
mov dword [esp + 0x60], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x34], eax
lea eax, [esp + 0x14]
mov dword [esp + 0x58], ecx
push eax
lea ecx, [esp + 0x40]
mov dword [esp + 0x60], esi
mov dword [esp + 0x60], edx
push ecx
lea edx, [esp + 0x6c]
push edx
mov dword [0x8bd388], 1
mov dword [esp + 0x20], 0x461c4000
call fcn.00525020
push eax
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0x6c]
push ecx
call fcn.0044cdb0
mov edx, eax
mov ecx, dword [edx]
mov dword [esp + 0x54], ecx
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x5c], edx
mov edx, dword [eax]
add esp, 0xc
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
mov dword [ecx + 8], eax
mov ecx, 0xb1cee8
call fcn.00595b70
fstp dword [esp + 0x40]
lea ecx, [esp + 0x3c]
push ecx
lea edx, [esp + 0x30]
push edx
mov ecx, ebp
call fcn.00539810
mov eax, dword [0xb1a128]
lea edi, [ebp + 0xb30]
mov ecx, dword [eax]
push edi
push 1
push 0x42
push 0
push 0x640
push eax
call dword [ecx + 0x5c]
test eax, eax
jl 0x53ad7e
mov edi, dword [edi]
mov edx, dword [edi]
push 0
lea eax, [esp + 0x14]
push eax
push 0x640
push 0
push edi
call dword [edx + 0x2c]
test eax, eax
jl 0x53ad7e
mov edi, dword [esp + 0x10]
lea esi, [ebp + 0x4f0]
mov ecx, 0x190
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp + 0xb30]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x30]
test eax, eax
jge 0x53ad88
mov eax, 0x80004005
jmp 0x53b68f
push 0x388
mov ecx, 0xb21d88
call fcn.0057d900
mov dword [esp + 0x14], eax
xor esi, esi
cmp eax, esi
mov dword [esp + 0x2cc], 1
je 0x53adb5
mov ecx, eax
call fcn.00584210
jmp 0x53adb7
xor eax, eax
push eax
mov dword [esp + 0x2d0], 0xffffffff
mov dword [ebp + 0xb34], eax
call fcn.00578ac0
mov ecx, dword [ebp + 0xb34]
add esp, 4
push 1
push 0x65f170
call fcn.0058b7a0
mov edx, dword [ebp + 0x4f8]
mov eax, dword [ebp + 0x4f4]
mov ecx, dword [ebp + 0x4f0]
push edx
push eax
push ecx
mov ecx, dword [ebp + 0xb34]
call fcn.00583a00
mov edx, dword [ebp + 0xb28]
mov eax, dword [ebp + 0xb24]
mov ecx, dword [ebp + 0xb20]
push edx
push eax
push ecx
mov ecx, dword [ebp + 0xb34]
call fcn.00582550
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp + 0xb34]
push eax
push eax
call fcn.0057f180
mov dword [ebp + 0x3c], esi
mov dword [0x8bd38c], esi
test dword [ebx + 0x13c4], 0x3000000
je 0x53ae73
mov eax, dword [0x8bd2dc]
test eax, eax
je 0x53ae58
push 0
call eax
add esp, 4
mov edx, dword [ebp + 0xc]
mov dword [edx + 0x90], 0
mov eax, dword [ebp + 0xc]
or esi, 0xffffffff
mov dword [eax + 0x94], esi
jmp 0x53ae76
or esi, 0xffffffff
mov al, byte [esp + 0x1b]
test al, al
jne 0x53af75
mov ecx, dword [esp + 0x2d4]
push ecx
mov ecx, dword [ebp + 0xc]
call fcn.00529510
mov eax, dword [0x8bd2e0]
xor edi, edi
cmp eax, edi
je 0x53aedc
call eax
test eax, eax
je 0x53aedc
mov edx, dword [esp + 0x48]
push edx
mov ecx, ebx
mov byte [esp + 0x1f], 1
call fcn.00530f50
fstp st(0)
push edi
call dword [0x8bd2f4]
push edi
call dword [0x8bd2f8]
push edi
call dword [0x8bd2fc]
push edi
call dword [0x8bd300]
push edi
call dword [0x8bd304]
add esp, 0x14
mov ecx, dword [ebp + 0xc]
cmp dword [ecx + 0x90], edi
je 0x53afbe
mov eax, dword [ecx + 0x94]
push eax
call fcn.00528740
cmp eax, edi
je 0x53af61
lea ecx, [ebx + 0x1278]
push ecx
add eax, 0x1278
push eax
lea ecx, [esp + 0x44]
push ecx
call fcn.0040bce0
add esp, 0xc
lea ecx, [esp + 0x3c]
mov dword [esp + 0x40], edi
call fcn.00418170
fcomp dword [0x65f0f8]
fnstsw ax
test ah, 0x41
jne 0x53afbe
mov ecx, dword [ebp + 0xc]
lea edx, [esp + 0x3c]
push edx
call fcn.00529450
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax + 0x34]
mov edx, dword [esp + 0x48]
mov dword [ebx + 0x1284], ecx
push edx
mov ecx, ebx
mov byte [esp + 0x1f], 1
call fcn.00530f50
fstp st(0)
jmp 0x53afbe
mov eax, dword [ebp + 0xc]
mov dword [eax + 0x90], edi
mov ecx, dword [ebp + 0xc]
mov dword [ecx + 0x94], esi
jmp 0x53afbe
xor edi, edi
push edi
call dword [0x8bd2f4]
push edi
call dword [0x8bd2f8]
push edi
call dword [0x8bd2fc]
push edi
call dword [0x8bd300]
push edi
call dword [0x8bd304]
mov eax, dword [0x8bd2dc]
add esp, 0x14
cmp eax, edi
je 0x53afac
push edi
call eax
add esp, 4
mov edx, dword [ebp + 0xc]
mov dword [edx + 0x90], edi
mov eax, dword [ebp + 0xc]
mov dword [eax + 0x94], esi
cmp dword [ebx + 0x13ac], edi
je 0x53afe5
lea ecx, [esp + 0x80]
push ecx
call dword [0x8bd2d8]
add esp, 4
test eax, eax
jne 0x53afe5
mov edx, dword [ebp + 0xc]
mov dword [edx + 4], 1
mov al, byte [esp + 0x1b]
test al, al
jne 0x53affc
cmp dword [ebx + 0x1558], edi
jne 0x53affc
mov ecx, ebx
call fcn.00531070
mov ecx, dword [ebp + 0xc]
call fcn.00529780
test eax, eax
jne 0x53b017
mov eax, dword [0x8bd2e8]
cmp eax, edi
je 0x53b017
push edi
call eax
add esp, 4
mov eax, dword [ebx + 0x1568]
dec eax
cmp eax, 0x27
ja case.0x53b02e.2
movzx eax, byte [eax + 0x53b6e4]
jmp dword [eax*4 + 0x53b6ac]
mov ecx, dword [ebp + 0xc]
fld dword [ecx + 0x9c]
lea edx, [esp + 0x14]
fdiv dword [0x65f0fc]
push edx
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x6c]
push ecx
fstp dword [esp + 0x20]
call fcn.00525020
add esp, 0xc
push edi
jmp 0x53b2d3
lea ecx, [ebp + 0x10]
call fcn.00536490
mov edx, dword [ebp + 0x1c]
mov dword [esp + 0x14], edx
fld dword [esp + 0x14]
fdiv dword [0x65f0fc]
lea edx, [esp + 0x58]
lea ecx, [esp + 0x20]
lea eax, [esp + 0x14]
fstp dword [esp + 0x14]
push eax
push ecx
push edx
call fcn.00525020
add esp, 0xc
push edi
mov edx, dword [eax]
sub esp, 0xc
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
mov dword [ecx + 8], eax
mov ecx, dword [ebx + 0xc]
push ecx
jmp 0x53b42c
mov edx, dword [ebp + 0xc]
fld dword [edx + 0x9c]
lea edx, [esp + 0x3c]
fdiv dword [0x65f0fc]
fchs
jmp 0x53b082
mov edx, dword [ebp + 0xc]
fld dword [edx + 0x9c]
lea edx, [esp + 0x2c]
fdiv dword [0x65f0fc]
fchs
jmp 0x53b082
mov edx, dword [ebp + 0xc]
fld dword [edx + 0x9c]
lea ecx, [esp + 0x4c]
fdiv dword [0x65f0fc]
lea edx, [esp + 0xcc]
jmp 0x53b086
mov edx, dword [ebp + 0xc]
fld dword [edx + 0x9c]
lea ecx, [esp + 0x4c]
fdiv dword [0x65f0fc]
lea edx, [esp + 0xc0]
fchs
jmp 0x53b086
xor ecx, ecx
push edi
xor eax, eax
xor edx, edx
sub esp, 0xc
mov esi, esp
mov dword [esi], eax
mov dword [esi + 4], ecx
mov ecx, dword [ebx + 0xc]
push ecx
jmp 0x53b429
xor edx, edx
push edi
xor eax, eax
xor ecx, ecx
sub esp, 0xc
mov esi, esp
mov dword [esi], eax
mov dword [esi + 4], ecx
mov dword [esi + 8], edx
mov edx, dword [ebx + 0xc]
push edx
jmp 0x53b42c
push edi
lea ecx, [ebx + 0x13b8]
mov eax, dword [ecx]
sub esp, 0xc
mov edx, esp
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [edx + 4], eax
mov dword [edx + 8], ecx
mov edx, dword [ebx + 0xc]
push edx
jmp 0x53b42c
mov ecx, dword [ebx + 0xc]
call fcn.0058fc90
cmp eax, edi
je 0x53b1ff
mov edi, str.CLASS_ROGUE
mov esi, eax
mov ecx, 0xc
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x53b1d3
mov edi, str.WEAPON_SHADOW_OFF
mov esi, eax
mov ecx, 0x12
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x53b1d3
mov edi, str.WEAPON_2CLAW
mov esi, eax
mov ecx, 0xd
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x53b1d3
mov esi, eax
mov edi, str.WEAPON_2DA
mov ecx, 0xb
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x53b1ff
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x50]
push edx
lea eax, [esp + 0xa4]
push eax
mov dword [esp + 0x20], 0x421c0000
call fcn.00525020
add esp, 0xc
push 0xbf8ccccd
jmp 0x53b09a
mov dword [esp + 0x14], 0x41f00000
lea eax, [esp + 0x4c]
lea ecx, [esp + 0x84]
jmp 0x53b2bf
mov ecx, dword [ebx + 0xc]
call fcn.0058fc90
cmp eax, edi
je 0x53b297
mov edi, str.CLASS_ROGUE
mov esi, eax
mov ecx, 0xc
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x53b26b
mov edi, str.WEAPON_SHADOW_OFF
mov esi, eax
mov ecx, 0x12
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x53b26b
mov edi, str.WEAPON_2CLAW
mov esi, eax
mov ecx, 0xd
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x53b26b
mov esi, eax
mov edi, str.WEAPON_2DA
mov ecx, 0xb
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x53b297
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x50]
push edx
lea eax, [esp + 0xbc]
push eax
mov dword [esp + 0x20], 0xc21c0000
call fcn.00525020
add esp, 0xc
push 0xbf8ccccd
jmp 0x53b09a
mov dword [esp + 0x14], 0xc1f00000
lea eax, [esp + 0x4c]
lea ecx, [esp + 0xd8]
jmp 0x53b2bf
mov dword [esp + 0x14], 0xc21c0000
lea eax, [esp + 0x20]
lea ecx, [esp + 0x90]
lea edx, [esp + 0x14]
push edx
push eax
push ecx
call fcn.00525020
add esp, 0xc
push 0xbf8ccccd
mov ecx, dword [eax]
sub esp, 0xc
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [edx + 4], ecx
mov ecx, dword [ebx + 0xc]
mov dword [edx + 8], eax
push ecx
jmp 0x53b42c
mov edx, dword [ebp + 0x1c]
mov dword [esp + 0x14], edx
fld dword [esp + 0x14]
fcomp dword [0x64fe74]
fnstsw ax
test ah, 0x41
jne case.0x53b02e.18
mov eax, edx
mov dword [esp + 0x14], eax
fld dword [esp + 0x14]
fdiv dword [0x65f0fc]
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0xb0]
push eax
fstp dword [esp + 0x20]
call fcn.00525020
mov edx, dword [eax]
add esp, 0xc
push edi
sub esp, 0xc
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
mov dword [ecx + 8], eax
mov ecx, dword [ebx + 0xc]
push ecx
call fcn.00578ae0
mov edx, dword [ebp + 0x1c]
mov dword [esp + 0x28], edx
fld dword [esp + 0x28]
fdiv dword [0x650050]
add esp, 0x14
fmul dword [0x65f0f4]
fadd dword [ebp + 0x28]
fstp dword [esp + 0x14]
mov eax, dword [esp + 0x14]
fld dword [esp + 0x14]
mov dword [ebp + 0x28], eax
fcomp dword [0x64fe74]
fnstsw ax
test ah, 5
jp 0x53b396
mov dword [ebp + 0x28], edi
fld dword [ebp + 0x28]
sub esp, 0x10
xor ecx, ecx
fchs
fstp dword [esp + 0xc]
mov edi, esp
mov eax, 0xbf800000
mov dword [edi], eax
mov dword [edi + 4], ecx
sub esp, 0xc
xor edx, edx
mov dword [edi + 8], edx
mov ecx, esp
xor eax, eax
xor esi, esi
mov dword [ecx], esi
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov ecx, dword [ebp]
push eax
call fcn.005a93d0
fld dword [ebp + 0x28]
sub esp, 0x10
fchs
fstp dword [esp + 0xc]
mov edi, esp
mov eax, 0xbf800000
mov dword [edi], eax
xor ecx, ecx
mov dword [edi + 4], ecx
mov ecx, dword [ebp + 4]
xor edx, edx
mov dword [edi + 8], edx
sub esp, 0xc
mov edx, esp
xor eax, eax
mov dword [edx], esi
mov dword [edx + 4], eax
push eax
mov dword [edx + 8], eax
call fcn.005a93d0
fld dword [ebp + 0x1c]
fsub dword [0x64fe88]
fstp dword [ebp + 0x1c]
jmp 0x53b434
push edi
xor eax, eax
xor ecx, ecx
xor edx, edx
sub esp, 0xc
mov esi, esp
mov dword [esi], eax
mov eax, dword [ebx + 0xc]
mov dword [esi + 4], ecx
push eax
mov dword [esi + 8], edx
call fcn.00578ae0
add esp, 0x14
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 0xbc]
push edx
call fcn.00573e9a
fcomp dword [0x64fe64]
add esp, 4
fnstsw ax
test ah, 1
jne 0x53b68d
mov eax, dword [ebx + 0x1568]
cmp eax, 8
je 0x53b4ba
cmp eax, 1
je 0x53b4ba
cmp eax, 4
je 0x53b4ba
cmp eax, 5
je 0x53b4ba
cmp eax, 6
je 0x53b4ba
cmp eax, 0xa
je 0x53b4ba
test eax, eax
je 0x53b4ba
cmp eax, 0x19
je 0x53b4ba
cmp eax, 0x1a
je 0x53b4ba
cmp eax, 0x29
je 0x53b4ba
cmp eax, 0x2a
je 0x53b4ba
cmp eax, 0x26
je 0x53b4ba
cmp eax, 0x28
je 0x53b4ba
cmp eax, 0x15
je 0x53b4ba
cmp eax, 0x24
je 0x53b4ba
cmp eax, 0x22
je 0x53b4ba
cmp eax, 0x23
je 0x53b4ba
cmp eax, 9
jne 0x53b68d
lea ecx, [esp + 0x20]
call fcn.004181c0
lea ecx, [esp + 0x4c]
call fcn.004181c0
mov eax, dword [ebx + 0x1568]
dec eax
cmp eax, 0x27
ja case.0x53b4e3.2
movzx eax, byte [eax + 0x53b72c]
jmp dword [eax*4 + 0x53b70c]
mov ecx, dword [ebp + 0xc]
fld dword [ecx + 0x98]
lea eax, [esp + 0x20]
fdiv dword [0x64fe78]
lea ecx, [esp + 0x4c]
jmp 0x53b5e3
mov eax, dword [ebp + 0xc]
fld dword [eax + 0x9c]
lea edx, [esp + 0x20]
lea eax, [esp + 0x4c]
jmp 0x53b542
mov ecx, dword [ebp + 0xc]
fld dword [ecx + 0x9c]
lea eax, [esp + 0x4c]
fdiv dword [0x64fe78]
jmp 0x53b5df
mov eax, dword [ebp + 0xc]
fld dword [eax + 0x9c]
lea edx, [esp + 0x4c]
lea eax, [esp + 0x70]
fdiv dword [0x64fe78]
lea ecx, [esp + 0x14]
push ecx
push edx
push eax
fchs
fstp dword [esp + 0x20]
call fcn.00525020
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
add esp, 0xc
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], eax
jmp 0x53b616
mov ecx, dword [ebp + 0xc]
fld dword [ecx + 0x9c]
lea edx, [esp + 0x14]
fdiv dword [0x64fe78]
push edx
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x78]
push ecx
fstp dword [esp + 0x20]
call fcn.00525020
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov dword [esp + 0x2c], edx
mov edx, dword [eax + 8]
add esp, 0xc
jmp 0x53b60e
lea eax, [ebx + 0x13b8]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], eax
jmp 0x53b616
mov ecx, dword [ebp + 0xc]
fld dword [ecx + 0x9c]
lea eax, [esp + 0x20]
fdiv dword [0x64fe78]
fchs
lea ecx, [esp + 0x70]
lea edx, [esp + 0x14]
fstp dword [esp + 0x14]
push edx
push eax
push ecx
call fcn.00525020
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov dword [esp + 0x2c], edx
mov edx, dword [eax + 8]
add esp, 0xc
jmp 0x53b60e
xor eax, eax
xor ecx, ecx
xor edx, edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], edx
fld dword [esp + 0x20]
mov eax, dword [ebx + 0xc]
fadd dword [ebx + 0x1278]
push eax
fstp dword [esp + 0x24]
fld dword [esp + 0x28]
fadd dword [ebx + 0x127c]
fstp dword [esp + 0x28]
fld dword [esp + 0x2c]
fadd dword [ebx + 0x1280]
fstp dword [esp + 0x2c]
call fcn.00578b40
mov edx, dword [esp + 0x24]
add esp, 4
sub esp, 0xc
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0x34]
cmp eax, 5
mov eax, dword [esp + 0x30]
mov dword [ecx + 4], eax
mov eax, dword [ebx + 0x1284]
mov dword [ecx + 8], edx
push eax
jne 0x53b677
push 0x64
push 0x64
jmp 0x53b685
mov ecx, dword [ebx + 0x1568]
mov edx, dword [ebx + 0x156c]
push ecx
push edx
mov ecx, dword [ebp + 0xc]
call fcn.00527650
xor eax, eax
mov ecx, dword [esp + 0x2c4]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x2c0
ret 0x10
sub esp, 0x2a8
push ebx
push ebp
mov ebp, ecx
mov eax, dword [ebp]
mov ecx, dword [eax + 0x2c]
cmp ecx, 0xffffffff
push esi
push edi
je 0x53b823
mov edx, dword [eax + 0xc8]
xor esi, esi
cmp edx, esi
jne 0x53b835
mov eax, 0x80004005
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2a8
ret 0x10
mov eax, dword [eax + 0x14]
mov ebx, dword [eax + ecx*4]
mov ecx, dword [ebx + 0xc]
push 1
push ecx
call fcn.00578fb0
mov eax, dword [ebx + 0xc]
mov edx, dword [eax + 0x34]
mov dword [esp + 0x34], edx
fld dword [esp + 0x34]
lea edx, [eax + 0x1c]
mov edi, dword [edx]
fsub dword [ebx + 0x1434]
lea ecx, [ebx + 0x1278]
mov dword [ecx], edi
mov edi, dword [edx + 4]
fstp dword [esp + 0x34]
mov dword [ecx + 4], edi
mov edx, dword [edx + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0x34]
mov dword [esp + 0x1c], eax
fld dword [esp + 0x1c]
fchs
mov dword [ebx + 0x1284], eax
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
fsub dword [0x64ff20]
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
fstp qword [esp]
call fcn.00616f24
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fstp dword [esp + 0x28]
fld dword [esp + 0x24]
fstp qword [esp]
call fcn.00616fd4
fstp dword [esp + 0x1c]
add esp, 8
fld dword [esp + 0x14]
lea ecx, [esp + 0x20]
fstp dword [esp + 0x28]
mov dword [esp + 0x24], esi
call fcn.004181c0
fld dword [esp + 0x1c]
fadd dword [0x64ff20]
sub esp, 8
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fstp qword [esp]
call fcn.00616f24
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fstp dword [esp + 0x48]
fld dword [esp + 0x1c]
fstp qword [esp]
call fcn.00616fd4
mov eax, dword [esp + 0x2c4]
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
add esp, 8
cmp eax, esi
fstp dword [esp + 0x48]
mov dword [esp + 0x44], esi
je 0x53b947
push 0x20
call fcn.00526f60
add esp, 4
test al, al
mov dword [0x8bd394], 1
jne 0x53b94d
mov dword [0x8bd394], esi
mov ecx, dword [ebp]
call fcn.00529310
mov ecx, dword [ebp]
call fcn.005276a0
cmp dword [ebx + 0x13a4], esi
je 0x53bb2e
mov eax, dword [ebx + 0xc]
push eax
call fcn.00578b40
mov ecx, dword [ebx + 0xc]
push 8
push ecx
mov edi, eax
call fcn.00578a40
add esp, 0xc
test eax, eax
je 0x53b99b
cmp dword [ebx + 0x13a8], esi
jne 0x53b99b
mov eax, 1
mov dword [ebx + 0x13a8], eax
jmp 0x53b9a0
mov eax, 1
cmp edi, 4
jne 0x53b9c2
mov dword [ebx + 0x1560], esi
mov dword [ebx + 0x1570], eax
mov dword [ebx + 0x1564], esi
mov dword [ebx + 0x1574], eax
jmp 0x53bb40
cmp edi, 2
je 0x53b9d4
cmp edi, esi
je 0x53b9d4
cmp edi, 5
jne 0x53bb2e
cmp dword [ebx + 0x13a8], esi
je 0x53bb2e
cmp dword [ebx + 0x13a4], esi
je 0x53ba15
cmp edi, 5
je 0x53ba15
sub esp, 0xc
lea eax, [ebx + 0x1278]
mov ecx, dword [eax]
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [edx + 4], ecx
mov ecx, dword [ebp]
push 0xc8
mov dword [edx + 8], eax
call fcn.005276b0
xor eax, eax
lea edi, [ebx + 0x13b8]
mov dword [edi], eax
xor ecx, ecx
xor edx, edx
mov dword [edi + 4], ecx
mov dword [ebx + 0x13a4], esi
mov dword [ebx + 0x13a8], esi
mov dword [ebx + 0x1570], esi
mov dword [ebx + 0x1574], esi
mov dword [edi + 8], edx
mov dword [0x8bd340], 0x3c23d70a
cmp dword [ebx + 0x1568], 0x23
je 0x53baeb
mov ax, word [ebx + 0x123e]
cmp ax, 2
je 0x53baaa
cmp ax, 7
je 0x53baaa
cmp ax, 0x18
je 0x53baaa
push 0x25
push 0x25
mov ecx, ebx
call fcn.00530670
sub esp, 0xc
lea eax, [ebx + 0x1278]
mov edx, dword [eax]
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
mov dword [ecx + 8], eax
mov ecx, dword [ebx + 0x1284]
push ecx
push 0x25
mov dword [ebx + 0x126c], esi
push 0x25
jmp 0x53bb26
push 0x20
call fcn.00526f60
add esp, 4
test al, al
jne 0x53bb2e
push 0x25
push 0x25
mov ecx, ebx
call fcn.00530670
sub esp, 0xc
lea eax, [ebx + 0x1278]
mov ecx, dword [eax]
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
mov ecx, dword [ebx + 0x1284]
push ecx
push 0x25
mov dword [ebx + 0x126c], esi
push 0x25
jmp 0x53bb20
cmp word [ebx + 0x123e], 0x14
jne 0x53bb2e
push 0x34
push 0x34
mov ecx, ebx
call fcn.00530670
sub esp, 0xc
lea eax, [ebx + 0x1278]
mov ecx, dword [eax]
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
mov ecx, dword [ebx + 0x1284]
push ecx
push 0x34
push 0x34
mov eax, dword [eax + 8]
mov dword [edx + 8], eax
mov ecx, dword [ebp]
call fcn.00527650
mov ecx, ebx
call fcn.00530ce0
mov eax, dword [0x8bd2e4]
cmp eax, esi
je 0x53bb40
call eax
mov edx, dword [ebp]
mov eax, dword [edx + 0x7c]
push eax
mov byte [esp + 0x1f], 0
call fcn.00573e9a
fstp dword [esp + 0x40]
mov eax, dword [esp + 0x2c0]
add esp, 4
cmp eax, esi
je 0x53c89c
mov eax, dword [ebx + 0x1558]
test eax, eax
jne 0x53c89c
mov ecx, dword [ebx + 0xc]
push ecx
call fcn.00578b40
mov edx, dword [ebx + 0xc]
mov dword [esp + 0x18], eax
push edx
lea eax, [esp + 0x1d0]
push eax
call fcn.00578fd0
mov esi, eax
mov eax, dword [ebx + 0x13ac]
add esp, 0xc
test eax, eax
mov ecx, 0x3c
lea edi, [esp + 0xd8]
rep movsd dword es:[edi], dword [esi]
je 0x53bbfa
lea ecx, [esp + 0x58]
push ecx
call dword [0x8bd2d8]
add esp, 4
test eax, eax
je 0x53bbfa
push 0xffffffffffffffff
push 0xffffffffffffffff
mov ecx, ebx
mov byte [esp + 0x23], 1
call fcn.00531d10
test eax, eax
je 0x53c89c
lea eax, [ebx + 0x1278]
mov ecx, dword [eax]
sub esp, 0xc
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [edx + 4], ecx
mov dword [edx + 8], eax
jmp 0x53c87f
mov esi, dword [esp + 0x14]
cmp esi, 5
je 0x53bc70
mov eax, dword [ebx + 0x139c]
xor edi, edi
cmp eax, edi
jne 0x53bc70
test dword [ebx + 0x13c4], 0x2000000
jne 0x53bc70
mov eax, dword [0x8bd2d4]
cmp eax, edi
je 0x53bc70
push 1
call eax
add esp, 4
test eax, eax
je 0x53bc70
mov eax, dword [ebx + 0x1568]
cmp eax, 0x16
je 0x53bc70
cmp eax, 0x17
je 0x53bc70
cmp eax, 0x20
je 0x53bc70
mov byte [esp + 0x1b], 1
mov dword [ebx + 0x13ac], 1
call dword [sym.imp.winmm.dll_timeGetTime]
mov ecx, dword [ebp]
mov dword [ecx + 8], eax
mov edx, dword [ebp]
mov dword [edx + 0xc], edi
mov eax, dword [ebp]
mov dword [eax + 0x10], edi
jmp 0x53c89c
test dword [ebx + 0x13c4], 0x3000000
jne 0x53c78d
mov ecx, dword [0x681280]
push ecx
call fcn.00573e9a
fstp dword [esp + 0x20]
push 0x57
call fcn.00526f60
add esp, 8
test al, al
je 0x53bf45
push 0x41
call fcn.00526f60
add esp, 4
test al, al
je 0x53bf45
mov edx, dword [ebp + 0x20]
mov dword [esp + 0x10], edx
fld dword [esp + 0x10]
mov byte [esp + 0x1b], 1
fdiv dword [0x650050]
fmul dword [0x658038]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fadd dword [ebp + 0x2c]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
mov eax, dword [esp + 0x10]
fcomp dword [0x657504]
mov dword [ebp + 0x2c], eax
fnstsw ax
test ah, 1
jne 0x53bd1b
fld dword [esp + 0x10]
call fcn.0061672c
cdq
mov ecx, 0x168
idiv ecx
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp dword [ebp + 0x2c]
mov edi, dword [ebp + 0x2c]
push edi
sub esp, 0xc
mov edi, esp
mov eax, 0xbf800000
mov dword [edi], eax
xor ecx, ecx
mov dword [edi + 4], ecx
mov ecx, dword [ebp + 4]
xor edx, edx
mov dword [edi + 8], edx
sub esp, 0xc
mov edx, esp
xor eax, eax
xor esi, esi
mov dword [edx], esi
mov dword [edx + 4], eax
push eax
mov dword [edx + 8], eax
call fcn.005a93d0
mov edi, dword [ebp + 0x2c]
push edi
sub esp, 0xc
xor ecx, ecx
mov edi, esp
mov eax, 0xbf800000
mov dword [edi], eax
mov dword [edi + 4], ecx
sub esp, 0xc
xor edx, edx
mov dword [edi + 8], edx
mov ecx, esp
mov dword [ecx], esi
xor eax, eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov ecx, dword [ebp + 8]
push eax
call fcn.005a93d0
mov edi, dword [ebp + 0x2c]
push edi
sub esp, 0xc
mov edi, esp
mov eax, 0xbf800000
mov dword [edi], eax
xor ecx, ecx
mov dword [edi + 4], ecx
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dword [edi + 8], edx
sub esp, 0xc
mov edx, esp
mov dword [edx], esi
xor eax, eax
mov dword [edx + 4], eax
push esi
mov dword [edx + 8], eax
call fcn.005a93d0
cmp dword [ebp + 0x30], 0x274
jle 0x53bdbf
mov dword [ebp + 0x30], esi
mov ecx, dword [ebp + 0x38]
mov edi, dword [ebp + 0x30]
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
add edi, eax
mov edx, edi
mov dword [esp + 0x10], edx
mov eax, 0x5a
cmp ecx, eax
fild dword [esp + 0x10]
mov dword [ebp + 0x30], edi
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fmul qword [0x65f100]
fchs
fstp dword [ebp + 0x34]
jle 0x53be04
mov dword [ebp + 0x38], eax
fild dword [ebp + 0x38]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fadd dword [esp + 0x1c]
call fcn.0061672c
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
mov dword [ebp + 0x38], eax
sub esp, 0x10
mov edi, esp
fstp dword [esp + 0x20]
mov ecx, 0x3f800000
fld dword [esp + 0x20]
sub esp, 0xc
fmul qword [0x65f100]
xor edx, edx
fchs
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
mov eax, dword [esp + 0x38]
fmul dword [0x64fe88]
mov dword [ebp + 0x3c], eax
xor eax, eax
fstp dword [esp + 0x18]
mov dword [edi], eax
mov dword [edi + 4], ecx
mov dword [edi + 8], edx
mov ecx, esp
mov dword [ecx], esi
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov ecx, dword [ebp + 4]
push 1
call fcn.005a93d0
fld dword [ebp + 0x3c]
fmul dword [0x64fe88]
sub esp, 0x10
xor eax, eax
mov edi, esp
fstp dword [esp + 0xc]
mov dword [edi], eax
xor edx, edx
mov ecx, 0x3f800000
mov dword [edi + 4], ecx
mov ecx, dword [ebp + 8]
mov dword [edi + 8], edx
sub esp, 0xc
mov edx, esp
xor esi, esi
mov dword [edx], esi
mov dword [edx + 4], eax
push 1
mov dword [edx + 8], eax
call fcn.005a93d0
mov eax, dword [esp + 0x3c]
push eax
mov ecx, ebx
call fcn.00532080
fld dword [ebp + 0x34]
fadd dword [0x64ff20]
push ecx
fstp dword [esp]
call fcn.00418130
fstp dword [esp + 0x34]
fld dword [ebp + 0x34]
fadd dword [0x64ff20]
fstp dword [esp]
call fcn.00418150
fchs
add esp, 4
lea ecx, [esp + 0x30]
fstp dword [esp + 0x38]
mov dword [esp + 0x34], esi
call fcn.004181c0
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], eax
lea ecx, [esp + 0x20]
call fcn.004181c0
fld dword [esp + 0x2c]
mov ecx, dword [ebp + 0x34]
mov dword [ebx + 0x1434], ecx
fadd dword [ebp + 0x34]
mov ecx, dword [ebx + 0xc]
fstp dword [esp + 0x2c]
mov edx, dword [esp + 0x2c]
push edx
call fcn.00404ba0
jmp 0x53c64b
push 0x57
call fcn.00526f60
add esp, 4
test al, al
je 0x53c1fa
push 0x44
call fcn.00526f60
add esp, 4
test al, al
je 0x53c1fa
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x10], eax
fld dword [esp + 0x10]
mov byte [esp + 0x1b], 1
fdiv dword [0x650050]
fmul dword [0x658038]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fadd dword [ebp + 0x2c]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
fcomp dword [0x657504]
mov dword [ebp + 0x2c], ecx
fnstsw ax
test ah, 1
jne 0x53bfd0
fld dword [esp + 0x10]
call fcn.0061672c
cdq
mov ecx, 0x168
idiv ecx
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp dword [ebp + 0x2c]
mov edi, dword [ebp + 0x2c]
push edi
sub esp, 0xc
mov edi, esp
mov eax, 0xbf800000
mov dword [edi], eax
xor ecx, ecx
mov dword [edi + 4], ecx
mov ecx, dword [ebp + 4]
xor edx, edx
mov dword [edi + 8], edx
sub esp, 0xc
mov edx, esp
xor eax, eax
xor esi, esi
mov dword [edx], esi
mov dword [edx + 4], eax
push eax
mov dword [edx + 8], eax
call fcn.005a93d0
mov edi, dword [ebp + 0x2c]
push edi
sub esp, 0xc
xor ecx, ecx
mov edi, esp
mov eax, 0xbf800000
mov dword [edi], eax
mov dword [edi + 4], ecx
sub esp, 0xc
xor edx, edx
mov dword [edi + 8], edx
mov ecx, esp
mov dword [ecx], esi
xor eax, eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov ecx, dword [ebp + 8]
push eax
call fcn.005a93d0
mov edi, dword [ebp + 0x2c]
push edi
sub esp, 0xc
mov edi, esp
mov eax, 0xbf800000
mov dword [edi], eax
xor ecx, ecx
mov dword [edi + 4], ecx
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dword [edi + 8], edx
sub esp, 0xc
mov edx, esp
mov dword [edx], esi
xor eax, eax
mov dword [edx + 4], eax
push esi
mov dword [edx + 8], eax
call fcn.005a93d0
cmp dword [ebp + 0x30], 0xfffffd8c
jg 0x53c074
mov dword [ebp + 0x30], esi
mov ecx, dword [ebp + 0x38]
mov edi, dword [ebp + 0x30]
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
add edi, eax
mov edx, edi
mov dword [esp + 0x10], edx
mov eax, 0xffffffa6
cmp ecx, eax
fild dword [esp + 0x10]
mov dword [ebp + 0x30], edi
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fmul qword [0x65f100]
fchs
fstp dword [ebp + 0x34]
jge 0x53c0b9
mov dword [ebp + 0x38], eax
fild dword [ebp + 0x38]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fsub dword [esp + 0x1c]
call fcn.0061672c
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
mov dword [ebp + 0x38], eax
sub esp, 0x10
mov edi, esp
fstp dword [esp + 0x20]
mov ecx, 0x3f800000
fld dword [esp + 0x20]
sub esp, 0xc
fmul qword [0x65f100]
xor edx, edx
fchs
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
mov eax, dword [esp + 0x38]
fmul dword [0x64fe88]
mov dword [ebp + 0x3c], eax
xor eax, eax
fstp dword [esp + 0x18]
mov dword [edi], eax
mov dword [edi + 4], ecx
mov dword [edi + 8], edx
mov ecx, esp
mov dword [ecx], esi
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov ecx, dword [ebp + 4]
push 1
call fcn.005a93d0
fld dword [ebp + 0x3c]
fmul dword [0x64fe88]
sub esp, 0x10
xor eax, eax
mov edi, esp
fstp dword [esp + 0xc]
mov dword [edi], eax
xor edx, edx
mov ecx, 0x3f800000
mov dword [edi + 4], ecx
mov ecx, dword [ebp + 8]
mov dword [edi + 8], edx
sub esp, 0xc
mov edx, esp
xor esi, esi
mov dword [edx], esi
mov dword [edx + 4], eax
push 1
mov dword [edx + 8], eax
call fcn.005a93d0
mov eax, dword [esp + 0x3c]
push eax
mov ecx, ebx
call fcn.00532080
fld dword [ebp + 0x34]
fadd dword [0x64ff20]
push ecx
fstp dword [esp]
call fcn.00418130
fstp dword [esp + 0x34]
fld dword [ebp + 0x34]
fadd dword [0x64ff20]
fstp dword [esp]
call fcn.00418150
fchs
add esp, 4
lea ecx, [esp + 0x30]
fstp dword [esp + 0x38]
mov dword [esp + 0x34], esi
call fcn.004181c0
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], eax
lea ecx, [esp + 0x20]
call fcn.004181c0
fld dword [esp + 0x2c]
mov ecx, dword [ebp + 0x34]
mov dword [ebx + 0x1434], ecx
fadd dword [ebp + 0x34]
mov ecx, dword [ebx + 0xc]
fstp dword [esp + 0x2c]
mov edx, dword [esp + 0x2c]
push edx
call fcn.00404ba0
jmp 0x53c64b
push 0x57
call fcn.00526f60
add esp, 4
test al, al
je 0x53c454
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x10], eax
fld dword [esp + 0x10]
mov byte [esp + 0x1b], 1
fdiv dword [0x650050]
fmul dword [0x658038]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fadd dword [ebp + 0x2c]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
fcomp dword [0x657504]
mov dword [ebp + 0x2c], ecx
fnstsw ax
test ah, 1
jne 0x53c273
fld dword [esp + 0x10]
call fcn.0061672c
cdq
mov ecx, 0x168
idiv ecx
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp dword [ebp + 0x2c]
mov edi, dword [ebp + 0x2c]
push edi
sub esp, 0xc
mov edi, esp
mov eax, 0xbf800000
mov dword [edi], eax
xor ecx, ecx
mov dword [edi + 4], ecx
mov ecx, dword [ebp + 4]
xor edx, edx
mov dword [edi + 8], edx
sub esp, 0xc
mov edx, esp
xor eax, eax
xor esi, esi
mov dword [edx], esi
mov dword [edx + 4], eax
push eax
mov dword [edx + 8], eax
call fcn.005a93d0
mov edi, dword [ebp + 0x2c]
push edi
sub esp, 0xc
xor ecx, ecx
mov edi, esp
mov eax, 0xbf800000
mov dword [edi], eax
mov dword [edi + 4], ecx
sub esp, 0xc
xor edx, edx
mov dword [edi + 8], edx
mov ecx, esp
mov dword [ecx], esi
xor eax, eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov ecx, dword [ebp + 8]
push eax
call fcn.005a93d0
mov edi, dword [ebp + 0x2c]
push edi
sub esp, 0xc
mov edi, esp
mov eax, 0xbf800000
mov dword [edi], eax
xor ecx, ecx
mov dword [edi + 4], ecx
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dword [edi + 8], edx
sub esp, 0xc
mov edx, esp
mov dword [edx], esi
xor eax, eax
mov dword [edx + 4], eax
push esi
mov dword [edx + 8], eax
call fcn.005a93d0
mov eax, dword [ebp + 0x38]
cmp eax, esi
jge 0x53c317
add eax, 3
jmp 0x53c31c
jle 0x53c31f
add eax, 0xfffffffd
mov dword [ebp + 0x38], eax
mov eax, dword [ebp + 0x38]
cmp eax, 0xfffffffd
jl 0x53c32f
cmp eax, 3
jg 0x53c32f
mov dword [ebp + 0x38], esi
fild dword [ebp + 0x38]
sub esp, 0x10
mov edi, esp
mov ecx, 0x3f800000
fstp dword [esp + 0x20]
sub esp, 0xc
fld dword [esp + 0x2c]
xor edx, edx
fmul qword [0x65f100]
fchs
fstp dword [esp + 0x2c]
fld dword [esp + 0x2c]
mov eax, dword [esp + 0x2c]
fmul dword [0x64fe88]
mov dword [ebp + 0x3c], eax
xor eax, eax
fstp dword [esp + 0x18]
mov dword [edi], eax
mov dword [edi + 4], ecx
mov dword [edi + 8], edx
mov ecx, esp
mov dword [ecx], esi
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov ecx, dword [ebp + 4]
push 1
call fcn.005a93d0
fld dword [ebp + 0x3c]
fmul dword [0x64fe88]
sub esp, 0x10
xor eax, eax
mov edi, esp
fstp dword [esp + 0xc]
mov dword [edi], eax
xor edx, edx
mov ecx, 0x3f800000
mov dword [edi + 4], ecx
mov ecx, dword [ebp + 8]
mov dword [edi + 8], edx
sub esp, 0xc
mov edx, esp
xor esi, esi
mov dword [edx], esi
mov dword [edx + 4], eax
push 1
mov dword [edx + 8], eax
call fcn.005a93d0
mov eax, dword [esp + 0x3c]
push eax
mov ecx, ebx
call fcn.00532080
fld dword [ebp + 0x34]
fadd dword [0x64ff20]
push ecx
fstp dword [esp]
call fcn.00418130
fstp dword [esp + 0x34]
fld dword [ebp + 0x34]
fadd dword [0x64ff20]
fstp dword [esp]
call fcn.00418150
fchs
add esp, 4
lea ecx, [esp + 0x30]
fstp dword [esp + 0x38]
mov dword [esp + 0x34], esi
call fcn.004181c0
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0x20]
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], eax
call fcn.004181c0
fld dword [esp + 0x2c]
mov ecx, dword [ebp + 0x34]
mov dword [ebx + 0x1434], ecx
fadd dword [ebp + 0x34]
fstp dword [esp + 0x2c]
mov edx, dword [esp + 0x2c]
mov ecx, dword [ebx + 0xc]
push edx
call fcn.00404ba0
jmp 0x53c64b
push 0x44
call fcn.00526f60
add esp, 4
test al, al
je 0x53c530
mov ecx, dword [ebp + 0x38]
mov eax, 0xffffffa6
cmp ecx, eax
mov byte [esp + 0x1b], 1
jge 0x53c47a
mov dword [ebp + 0x38], eax
fild dword [ebp + 0x38]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fsub dword [esp + 0x1c]
call fcn.0061672c
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
mov dword [ebp + 0x38], eax
sub esp, 0x10
mov edi, esp
fstp dword [esp + 0x20]
mov ecx, 0x3f800000
fld dword [esp + 0x20]
sub esp, 0xc
fmul qword [0x65f100]
xor edx, edx
xor esi, esi
fchs
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
mov eax, dword [esp + 0x38]
fmul dword [0x64fe88]
mov dword [ebp + 0x3c], eax
xor eax, eax
fstp dword [esp + 0x18]
mov dword [edi], eax
mov dword [edi + 4], ecx
mov dword [edi + 8], edx
mov ecx, esp
mov dword [ecx], esi
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov ecx, dword [ebp + 4]
push 1
call fcn.005a93d0
fld dword [ebp + 0x3c]
fmul dword [0x64fe88]
sub esp, 0x10
xor eax, eax
mov edi, esp
fstp dword [esp + 0xc]
mov dword [edi], eax
xor edx, edx
mov ecx, 0x3f800000
mov dword [edi + 4], ecx
mov ecx, dword [ebp + 8]
mov dword [edi + 8], edx
sub esp, 0xc
mov edx, esp
mov dword [edx], esi
mov dword [edx + 4], eax
push 1
mov dword [edx + 8], eax
call fcn.005a93d0
jmp 0x53c64b
push 0x41
call fcn.00526f60
add esp, 4
test al, al
je 0x53c609
mov ecx, dword [ebp + 0x38]
mov eax, 0x5a
cmp ecx, eax
mov byte [esp + 0x1b], 1
jle 0x53c556
mov dword [ebp + 0x38], eax
fild dword [ebp + 0x38]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fadd dword [esp + 0x1c]
call fcn.0061672c
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
mov dword [ebp + 0x38], eax
sub esp, 0x10
mov edi, esp
fstp dword [esp + 0x20]
mov ecx, 0x3f800000
fld dword [esp + 0x20]
sub esp, 0xc
fmul qword [0x65f100]
xor edx, edx
xor esi, esi
fchs
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
mov eax, dword [esp + 0x38]
fmul dword [0x64fe88]
mov dword [ebp + 0x3c], eax
xor eax, eax
fstp dword [esp + 0x18]
mov dword [edi], eax
mov dword [edi + 4], ecx
mov dword [edi + 8], edx
mov ecx, esp
mov dword [ecx], esi
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov ecx, dword [ebp + 4]
push 1
call fcn.005a93d0
fld dword [ebp + 0x3c]
fmul dword [0x64fe88]
sub esp, 0x10
xor eax, eax
mov edi, esp
fstp dword [esp + 0xc]
mov dword [edi], eax
xor edx, edx
mov ecx, 0x3f800000
mov dword [edi + 4], ecx
mov ecx, dword [ebp + 8]
mov dword [edi + 8], edx
sub esp, 0xc
mov edx, esp
mov dword [edx], esi
mov dword [edx + 4], eax
push 1
mov dword [edx + 8], eax
call fcn.005a93d0
jmp 0x53c64b
push 0x53
call fcn.00526f60
add esp, 4
test al, al
je 0x53c625
push 0x41
call fcn.00526f60
add esp, 4
test al, al
jne 0x53c64b
push 0x53
call fcn.00526f60
add esp, 4
test al, al
je 0x53c641
push 0x44
call fcn.00526f60
add esp, 4
test al, al
jne 0x53c64b
push 0x53
call fcn.00526f60
add esp, 4
mov eax, dword [ebx + 0x13c4]
test ah, 0x10
jne 0x53c789
push 0x20
call fcn.00526f60
add esp, 4
test al, al
je 0x53c789
mov esi, dword [esp + 0x14]
cmp esi, 5
je 0x53c78d
mov eax, dword [esp + 0xec]
test eax, eax
jne 0x53c78d
cmp esi, 4
je 0x53c78d
cmp esi, 3
je 0x53c78d
mov ecx, ebx
mov byte [esp + 0x1b], 1
call fcn.00531880
test eax, eax
je 0x53c74f
mov cl, byte [0x940fd7]
mov al, 0x80
test al, cl
je 0x53c6fc
mov eax, dword [ebp]
fld dword [eax + 0x98]
lea ecx, [esp + 0x14]
fdiv dword [0x65f0fc]
push ecx
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x38]
push eax
fstp dword [esp + 0x20]
call fcn.00525020
mov edx, dword [eax]
lea ecx, [ebx + 0x13b8]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov eax, dword [eax + 8]
add esp, 0xc
mov dword [ecx + 8], eax
jmp 0x53c74f
test byte [0x940fd3], al
je 0x53c73b
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x38]
push eax
mov dword [esp + 0x20], 0xc0892492
call fcn.00525020
mov edx, dword [eax]
lea ecx, [ebx + 0x13b8]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov eax, dword [eax + 8]
add esp, 0xc
mov dword [ecx + 8], eax
jmp 0x53c74f
xor eax, eax
lea edi, [ebx + 0x13b8]
xor ecx, ecx
mov dword [edi], eax
xor edx, edx
mov dword [edi + 4], ecx
mov dword [edi + 8], edx
sub esp, 0xc
mov ecx, esp
lea eax, [ebx + 0x1278]
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
mov edx, dword [ebx + 0x1568]
mov dword [ecx + 8], eax
mov ecx, dword [ebx + 0x1284]
mov eax, dword [ebx + 0x156c]
push ecx
mov ecx, dword [ebp]
push edx
push eax
call fcn.00527650
jmp 0x53c78d
mov esi, dword [esp + 0x14]
mov eax, dword [ebp]
mov ecx, dword [eax + 0x4c]
test ecx, ecx
jne 0x53c89c
test dword [ebx + 0x13c4], 0x2000000
jne 0x53c89c
mov cl, byte [eax + 0x108]
test cl, cl
jne 0x53c814
push 1
call fcn.00526f60
add esp, 4
test al, al
je 0x53c814
cmp esi, 5
je 0x53c814
push 0xffffffffffffffff
push 0xffffffffffffffff
mov ecx, ebx
mov byte [esp + 0x23], 1
call fcn.005311b0
test eax, eax
je 0x53c814
sub esp, 0xc
mov ecx, esp
lea eax, [ebx + 0x1278]
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
mov edx, dword [ebx + 0x1568]
mov dword [ecx + 8], eax
mov ecx, dword [ebx + 0x1284]
mov eax, dword [ebx + 0x156c]
push ecx
mov ecx, dword [ebp]
push edx
push eax
call fcn.00527650
call dword [0x8bd308]
test eax, eax
je 0x53c89c
mov eax, dword [0x8bd394]
test eax, eax
je 0x53c89c
mov eax, dword [ebp]
cmp byte [eax + 0x108], 1
jne 0x53c89c
mov ecx, dword [eax + 0x40]
test ecx, ecx
je 0x53c89c
cmp esi, 5
je 0x53c89c
mov ecx, 1
mov dword [eax + 0x8c], ecx
push 0xffffffffffffffff
mov dword [ebx + 0x1560], ecx
push 0xffffffffffffffff
mov ecx, ebx
mov byte [esp + 0x23], 1
call fcn.005311b0
test eax, eax
je 0x53c89c
lea eax, [ebx + 0x1278]
mov edx, dword [eax]
sub esp, 0xc
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
mov dword [ecx + 8], eax
mov ecx, dword [ebx + 0x1284]
mov edx, dword [ebx + 0x1568]
mov eax, dword [ebx + 0x156c]
push ecx
mov ecx, dword [ebp]
push edx
push eax
call fcn.00527650
test dword [ebx + 0x13c4], 0x3000000
je 0x53c8d3
mov eax, dword [0x8bd2dc]
test eax, eax
je 0x53c8b8
push 0
call eax
add esp, 4
mov ecx, dword [ebp]
mov dword [ecx + 0x90], 0
mov edx, dword [ebp]
or esi, 0xffffffff
mov dword [edx + 0x94], esi
jmp 0x53c8d6
or esi, 0xffffffff
mov al, byte [esp + 0x1b]
test al, al
jne 0x53c9d5
mov eax, dword [esp + 0x2bc]
mov ecx, dword [ebp]
push eax
call fcn.00529510
mov eax, dword [0x8bd2e0]
xor edi, edi
cmp eax, edi
je 0x53c93c
call eax
test eax, eax
je 0x53c93c
mov ecx, dword [esp + 0x3c]
push ecx
mov ecx, ebx
mov byte [esp + 0x1f], 1
call fcn.00530f50
fstp st(0)
push edi
call dword [0x8bd2f4]
push edi
call dword [0x8bd2f8]
push edi
call dword [0x8bd2fc]
push edi
call dword [0x8bd300]
push edi
call dword [0x8bd304]
add esp, 0x14
mov ecx, dword [ebp]
cmp dword [ecx + 0x90], edi
je 0x53ca1e
mov edx, dword [ecx + 0x94]
push edx
call fcn.00528740
cmp eax, edi
je 0x53c9c1
lea ecx, [ebx + 0x1278]
push ecx
add eax, 0x1278
push eax
lea eax, [esp + 0x38]
push eax
call fcn.0040bce0
add esp, 0xc
lea ecx, [esp + 0x30]
mov dword [esp + 0x34], edi
call fcn.00418170
fcomp dword [0x65f0f8]
fnstsw ax
test ah, 0x41
jne 0x53ca1e
lea ecx, [esp + 0x30]
push ecx
mov ecx, dword [ebp]
call fcn.00529450
mov edx, dword [ebx + 0xc]
mov ecx, dword [esp + 0x3c]
mov eax, dword [edx + 0x34]
push ecx
mov ecx, ebx
mov dword [ebx + 0x1284], eax
mov byte [esp + 0x1f], 1
call fcn.00530f50
fstp st(0)
jmp 0x53ca1e
mov edx, dword [ebp]
mov dword [edx + 0x90], edi
mov eax, dword [ebp]
mov dword [eax + 0x94], esi
jmp 0x53ca1e
xor edi, edi
push edi
call dword [0x8bd2f4]
push edi
call dword [0x8bd2f8]
push edi
call dword [0x8bd2fc]
push edi
call dword [0x8bd300]
push edi
call dword [0x8bd304]
mov eax, dword [0x8bd2dc]
add esp, 0x14
cmp eax, edi
je 0x53ca0c
push edi
call eax
add esp, 4
mov ecx, dword [ebp]
mov dword [ecx + 0x90], edi
mov edx, dword [ebp]
mov dword [edx + 0x94], esi
cmp dword [ebx + 0x13ac], edi
je 0x53ca42
lea eax, [esp + 0x5c]
push eax
call dword [0x8bd2d8]
add esp, 4
test eax, eax
jne 0x53ca42
mov ecx, dword [ebp]
mov dword [ecx + 4], 1
mov al, byte [esp + 0x1b]
test al, al
jne 0x53ca59
cmp dword [ebx + 0x1558], edi
jne 0x53ca59
mov ecx, ebx
call fcn.00531070
mov ecx, dword [ebp]
call fcn.00529780
test eax, eax
jne 0x53ca74
mov eax, dword [0x8bd2e8]
cmp eax, edi
je 0x53ca74
push edi
call eax
add esp, 4
mov eax, dword [ebx + 0x1568]
dec eax
cmp eax, 0x27
ja case.0x53ca8b.2
movzx edx, byte [eax + 0x53d168]
jmp dword [edx*4 + 0x53d130]
mov eax, dword [ebp]
fld dword [eax + 0x9c]
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x38]
push eax
fdiv dword [0x65f0fc]
fstp dword [esp + 0x20]
call fcn.00525020
add esp, 0xc
push edi
mov edx, dword [eax]
sub esp, 0xc
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
mov dword [ecx + 8], eax
mov ecx, dword [ebx + 0xc]
push ecx
jmp 0x53cecd
lea ecx, [ebp + 0x14]
call fcn.00536490
mov edx, dword [ebp + 0x20]
lea eax, [esp + 0x14]
push eax
mov dword [esp + 0x18], edx
fld dword [esp + 0x18]
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x68]
push edx
jmp 0x53caaa
mov edx, dword [ebp]
fld dword [edx + 0x9c]
lea eax, [esp + 0x14]
fdiv dword [0x65f0fc]
push eax
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0xbc]
push edx
fchs
jmp 0x53cab0
mov edx, dword [ebp]
fld dword [edx + 0x9c]
lea eax, [esp + 0x14]
fdiv dword [0x65f0fc]
push eax
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x80]
push edx
fchs
jmp 0x53cab0
mov edx, dword [ebp]
fld dword [edx + 0x9c]
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x44]
push ecx
lea edx, [esp + 0xd4]
push edx
jmp 0x53caaa
mov edx, dword [ebp]
fld dword [edx + 0x9c]
lea eax, [esp + 0x14]
fdiv dword [0x65f0fc]
push eax
lea ecx, [esp + 0x44]
push ecx
lea edx, [esp + 0x98]
push edx
fchs
jmp 0x53cab0
xor ecx, ecx
push edi
xor eax, eax
xor edx, edx
sub esp, 0xc
mov esi, esp
mov dword [esi], eax
mov dword [esi + 4], ecx
mov ecx, dword [ebx + 0xc]
mov dword [esi + 8], edx
push ecx
jmp 0x53cecd
xor eax, eax
push edi
xor ecx, ecx
xor edx, edx
sub esp, 0xc
mov esi, esp
mov dword [esi], eax
mov eax, dword [ebx + 0xc]
mov dword [esi + 4], ecx
mov dword [esi + 8], edx
push eax
jmp 0x53cecd
push edi
lea ecx, [ebx + 0x13b8]
mov eax, dword [ecx]
sub esp, 0xc
mov edx, esp
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [edx + 4], eax
mov dword [edx + 8], ecx
jmp 0x53cec9
mov ecx, dword [ebx + 0xc]
call fcn.0058fc90
cmp eax, edi
je 0x53cc6f
mov edi, str.CLASS_ROGUE
mov esi, eax
mov ecx, 0xc
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x53cc43
mov edi, str.WEAPON_SHADOW_OFF
mov esi, eax
mov ecx, 0x12
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x53cc43
mov edi, str.WEAPON_2CLAW
mov esi, eax
mov ecx, 0xd
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x53cc43
mov esi, eax
mov edi, str.WEAPON_2DA
mov ecx, 0xb
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x53cc6f
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x44]
push edx
lea eax, [esp + 0xc8]
push eax
mov dword [esp + 0x20], 0x421c0000
call fcn.00525020
add esp, 0xc
push 0xbf8ccccd
jmp 0x53cabd
mov dword [esp + 0x14], 0x41f00000
lea eax, [esp + 0x40]
lea ecx, [esp + 0xa8]
jmp 0x53cd2c
mov ecx, dword [ebx + 0xc]
call fcn.0058fc90
cmp eax, edi
je 0x53cd04
mov edi, str.CLASS_ROGUE
mov esi, eax
mov ecx, 0xc
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x53ccdb
mov edi, str.WEAPON_SHADOW_OFF
mov esi, eax
mov ecx, 0x12
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x53ccdb
mov edi, str.WEAPON_2CLAW
mov esi, eax
mov ecx, 0xd
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x53ccdb
mov esi, eax
mov edi, str.WEAPON_2DA
mov ecx, 0xb
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x53cd04
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x44]
push edx
lea eax, [esp + 0x74]
push eax
mov dword [esp + 0x20], 0xc21c0000
call fcn.00525020
add esp, 0xc
push 0xbf8ccccd
jmp 0x53cabd
mov dword [esp + 0x14], 0xc1f00000
lea eax, [esp + 0x40]
lea ecx, [esp + 0x84]
jmp 0x53cd2c
mov dword [esp + 0x14], 0xc21c0000
lea eax, [esp + 0x20]
lea ecx, [esp + 0x9c]
lea edx, [esp + 0x14]
push edx
push eax
push ecx
call fcn.00525020
mov ecx, dword [eax]
add esp, 0xc
push 0xbf8ccccd
sub esp, 0xc
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [edx + 4], ecx
mov ecx, dword [ebx + 0xc]
mov dword [edx + 8], eax
push ecx
jmp 0x53cecd
mov edx, dword [ebp + 0x20]
mov dword [esp + 0x14], edx
fld dword [esp + 0x14]
fcomp dword [0x64fe74]
fnstsw ax
test ah, 0x41
jne case.0x53ca8b.17
mov eax, edx
mov dword [esp + 0x14], eax
fld dword [esp + 0x14]
fdiv dword [0x65f0fc]
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x54]
push eax
fstp dword [esp + 0x20]
call fcn.00525020
mov edx, dword [eax]
add esp, 0xc
push edi
sub esp, 0xc
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
mov dword [ecx + 8], eax
mov ecx, dword [ebx + 0xc]
push ecx
call fcn.00578ae0
mov edx, dword [ebp + 0x20]
mov dword [esp + 0x28], edx
fld dword [esp + 0x28]
fdiv dword [0x650050]
add esp, 0x14
fmul dword [0x65f0f4]
fadd dword [ebp + 0x2c]
fstp dword [esp + 0x14]
mov eax, dword [esp + 0x14]
fld dword [esp + 0x14]
mov dword [ebp + 0x2c], eax
fcomp dword [0x64fe74]
fnstsw ax
test ah, 5
jp 0x53ce00
mov dword [ebp + 0x2c], edi
fld dword [ebp + 0x2c]
sub esp, 0x10
xor ecx, ecx
fchs
fstp dword [esp + 0xc]
mov edi, esp
mov eax, 0xbf800000
mov dword [edi], eax
mov dword [edi + 4], ecx
sub esp, 0xc
xor edx, edx
mov dword [edi + 8], edx
mov ecx, esp
xor eax, eax
xor esi, esi
mov dword [ecx], esi
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov ecx, dword [ebp + 4]
push eax
call fcn.005a93d0
fld dword [ebp + 0x2c]
sub esp, 0x10
fchs
fstp dword [esp + 0xc]
mov edi, esp
mov eax, 0xbf800000
mov dword [edi], eax
xor ecx, ecx
mov dword [edi + 4], ecx
mov ecx, dword [ebp + 8]
xor edx, edx
mov dword [edi + 8], edx
sub esp, 0xc
mov edx, esp
xor eax, eax
mov dword [edx], esi
mov dword [edx + 4], eax
push eax
mov dword [edx + 8], eax
call fcn.005a93d0
fld dword [ebp + 0x2c]
sub esp, 0x10
fchs
fstp dword [esp + 0xc]
xor ecx, ecx
mov edi, esp
mov eax, 0xbf800000
mov dword [edi], eax
mov dword [edi + 4], ecx
sub esp, 0xc
xor edx, edx
mov dword [edi + 8], edx
mov ecx, esp
mov dword [ecx], esi
xor eax, eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov ecx, dword [ebp + 0xc]
push eax
call fcn.005a93d0
fld dword [ebp + 0x20]
fsub dword [0x64fe88]
fstp dword [ebp + 0x20]
jmp 0x53ced5
push edi
xor eax, eax
xor ecx, ecx
xor edx, edx
sub esp, 0xc
mov esi, esp
mov dword [esi], eax
mov dword [esi + 4], ecx
mov dword [esi + 8], edx
mov edx, dword [ebx + 0xc]
push edx
call fcn.00578ae0
add esp, 0x14
mov eax, dword [ebp]
mov ecx, dword [eax + 0xbc]
push ecx
call fcn.00573e9a
fcomp dword [0x64fe64]
add esp, 4
fnstsw ax
test ah, 1
jne 0x53d121
mov eax, dword [ebx + 0x1568]
cmp eax, 8
je 0x53cf5b
cmp eax, 1
je 0x53cf5b
cmp eax, 4
je 0x53cf5b
cmp eax, 5
je 0x53cf5b
cmp eax, 6
je 0x53cf5b
cmp eax, 0xa
je 0x53cf5b
test eax, eax
je 0x53cf5b
cmp eax, 0x19
je 0x53cf5b
cmp eax, 0x1a
je 0x53cf5b
cmp eax, 0x29
je 0x53cf5b
cmp eax, 0x2a
je 0x53cf5b
cmp eax, 0x26
je 0x53cf5b
cmp eax, 0x28
je 0x53cf5b
cmp eax, 0x15
je 0x53cf5b
cmp eax, 0x24
je 0x53cf5b
cmp eax, 0x22
je 0x53cf5b
cmp eax, 0x23
je 0x53cf5b
cmp eax, 9
jne 0x53d121
lea ecx, [esp + 0x20]
call fcn.004181c0
lea ecx, [esp + 0x40]
call fcn.004181c0
mov eax, dword [ebx + 0x1568]
dec eax
cmp eax, 0x27
ja case.0x53cf84.2
movzx edx, byte [eax + 0x53d1b0]
jmp dword [edx*4 + 0x53d190]
mov eax, dword [ebp]
fld dword [eax + 0x98]
jmp 0x53cff1
lea eax, [esp + 0x20]
jmp 0x53cfaf
mov eax, dword [ebp]
fld dword [eax + 0x9c]
lea edx, [esp + 0x40]
jmp 0x53cff5
lea eax, [esp + 0x40]
mov ecx, dword [ebp]
fld dword [ecx + 0x9c]
lea edx, [esp + 0x14]
fdiv dword [0x64fe78]
push edx
push eax
lea ecx, [esp + 0x54]
push ecx
fchs
fstp dword [esp + 0x20]
call fcn.00525020
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov dword [esp + 0x2c], edx
mov edx, dword [eax + 8]
add esp, 0xc
jmp 0x53d090
mov eax, dword [ebp]
fld dword [eax + 0x9c]
lea edx, [esp + 0x20]
fdiv dword [0x64fe78]
lea ecx, [esp + 0x14]
push ecx
push edx
lea eax, [esp + 0x54]
push eax
fstp dword [esp + 0x20]
call fcn.00525020
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
add esp, 0xc
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], eax
jmp 0x53d098
lea ecx, [ebx + 0x13b8]
mov edx, dword [ecx]
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], ecx
jmp 0x53d098
mov edx, dword [ebp]
fld dword [edx + 0x9c]
lea eax, [esp + 0x14]
fdiv dword [0x64fe78]
push eax
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x54]
push edx
fchs
fstp dword [esp + 0x20]
call fcn.00525020
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
add esp, 0xc
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], eax
jmp 0x53d098
xor eax, eax
xor ecx, ecx
xor edx, edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], edx
fld dword [esp + 0x20]
mov ecx, dword [ebx + 0xc]
fadd dword [ebx + 0x1278]
push ecx
fstp dword [esp + 0x24]
fld dword [esp + 0x28]
fadd dword [ebx + 0x127c]
fstp dword [esp + 0x28]
fld dword [esp + 0x2c]
fadd dword [ebx + 0x1280]
fstp dword [esp + 0x2c]
call fcn.00578b40
mov ecx, dword [esp + 0x28]
add esp, 4
sub esp, 0xc
cmp eax, 5
mov eax, dword [esp + 0x2c]
mov edx, esp
mov dword [edx], eax
mov eax, dword [esp + 0x34]
mov dword [edx + 4], ecx
mov ecx, dword [ebx + 0x1284]
push ecx
mov ecx, dword [ebp]
mov dword [edx + 8], eax
jne 0x53d10e
push 0x64
push 0x64
call fcn.00527650
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2a8
ret 0x10
mov edx, dword [ebx + 0x1568]
mov eax, dword [ebx + 0x156c]
push edx
push eax
call fcn.00527650
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x2a8
ret 0x10
sub esp, 0x298
mov edx, ecx
mov eax, dword [edx]
mov ecx, dword [eax + 0x2c]
cmp ecx, 0xffffffff
push ebx
push ebp
push esi
push edi
mov dword [esp + 0x28], edx
je 0x54166d
mov esi, dword [eax + 0xc8]
xor edi, edi
cmp esi, edi
jne 0x54167f
mov eax, dword [esp + 0x2b8]
mov ecx, dword [esp + 0x2b4]
push eax
mov eax, dword [esp + 0x2b4]
push ecx
mov ecx, dword [esp + 0x2b4]
push eax
push ecx
mov ecx, edx
call fcn.0053d570
mov eax, 0x80004005
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x298
ret 0x10
mov edx, dword [eax + 0x14]
mov ebp, dword [edx + ecx*4]
mov eax, dword [ebp + 0xc]
push 1
push eax
call fcn.00578fb0
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 0x34]
mov dword [esp + 0x1c], edx
fld dword [esp + 0x1c]
fsub dword [ebp + 0x1434]
add esp, 8
mov dword [ebp + 0x1434], edi
fstp dword [esp + 0x14]
mov eax, dword [esp + 0x14]
push eax
call fcn.00404ba0
mov eax, dword [ebp + 0xc]
lea ecx, [eax + 0x1c]
mov esi, dword [ecx]
lea ebx, [ebp + 0x1278]
mov edx, ebx
mov dword [edx], esi
mov esi, dword [ecx + 4]
mov dword [edx + 4], esi
mov ecx, dword [ecx + 8]
mov dword [edx + 8], ecx
mov eax, dword [eax + 0x34]
mov dword [esp + 0x10], eax
fld dword [esp + 0x10]
fchs
sub esp, 8
fstp dword [esp + 0x34]
mov dword [ebp + 0x1284], eax
fld dword [esp + 0x34]
fsub dword [0x64ff20]
fstp dword [esp + 0x34]
fld dword [esp + 0x34]
fstp qword [esp]
call fcn.00616f24
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fstp dword [esp + 0x24]
fld dword [esp + 0x34]
fstp qword [esp]
call fcn.00616fd4
fstp dword [esp + 0x18]
add esp, 8
fld dword [esp + 0x10]
lea ecx, [esp + 0x1c]
fstp dword [esp + 0x24]
mov dword [esp + 0x20], edi
call fcn.004181c0
fld dword [esp + 0x2c]
fadd dword [0x64ff20]
sub esp, 8
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fstp qword [esp]
call fcn.00616f24
fstp dword [esp + 0x34]
fld dword [esp + 0x34]
fstp dword [esp + 0x38]
fld dword [esp + 0x18]
fstp qword [esp]
call fcn.00616fd4
mov eax, dword [esp + 0x2b4]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
mov ecx, dword [0x940f34]
add esp, 8
fstp dword [esp + 0x38]
cmp eax, edi
mov eax, dword [0x940f30]
mov dword [esp + 0x34], edi
je 0x5417bb
cmp eax, edi
je 0x5417bf
cmp ecx, edi
jne 0x5417bb
cmp dword [0x940f24], edi
jne 0x5417bb
mov dword [0x8bd3b4], 1
jmp 0x5417c9
cmp eax, edi
jne 0x5417c9
cmp ecx, edi
je 0x5417c9
mov dword [0x8bd3b4], edi
mov esi, dword [esp + 0x28]
mov ecx, dword [esi]
call fcn.00529310
mov ecx, dword [esi]
call fcn.005276a0
cmp dword [ebp + 0x13a4], edi
je 0x5419b1
mov edx, dword [ebp + 0xc]
push edx
call fcn.00578b40
mov esi, eax
mov eax, dword [ebp + 0xc]
push 8
push eax
call fcn.00578a40
add esp, 0xc
test eax, eax
je 0x541819
cmp dword [ebp + 0x13a8], edi
jne 0x541819
mov eax, 1
mov dword [ebp + 0x13a8], eax
jmp 0x54181e
mov eax, 1
cmp esi, 4
jne 0x541840
mov dword [ebp + 0x1560], edi
mov dword [ebp + 0x1570], eax
mov dword [ebp + 0x1564], edi
mov dword [ebp + 0x1574], eax
jmp 0x5419c3
cmp esi, 2
je 0x541852
cmp esi, edi
je 0x541852
cmp esi, 5
jne 0x5419b1
cmp dword [ebp + 0x13a8], edi
je 0x5419b1
cmp dword [ebp + 0x13a4], edi
je 0x541892
cmp esi, 5
je 0x541892
sub esp, 0xc
mov ecx, ebx
mov eax, dword [ecx]
mov edx, esp
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [edx + 4], eax
mov dword [edx + 8], ecx
mov edx, dword [esp + 0x34]
mov ecx, dword [edx]
push 0xc8
call fcn.005276b0
xor eax, eax
lea esi, [ebp + 0x13b8]
mov dword [esi], eax
xor ecx, ecx
xor edx, edx
mov dword [esi + 4], ecx
mov dword [ebp + 0x13a4], edi
mov dword [ebp + 0x13a8], edi
mov dword [ebp + 0x1570], edi
mov dword [ebp + 0x1574], edi
mov dword [esi + 8], edx
mov dword [0x8bd340], 0x3c23d70a
cmp dword [ebp + 0x1568], 0x23
je 0x541971
mov ax, word [ebp + 0x123e]
cmp ax, 2
je 0x54192a
cmp ax, 7
je 0x54192a
cmp ax, 0x18
je 0x54192a
push 0x25
push 0x25
mov ecx, ebp
call fcn.00530670
mov ecx, dword [ebx]
mov edx, dword [ebx + 4]
sub esp, 0xc
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [ebx + 8]
mov dword [eax + 4], edx
mov edx, dword [ebp + 0x1284]
push edx
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x38]
push 0x25
mov dword [ebp + 0x126c], edi
mov ecx, dword [eax]
push 0x25
jmp 0x5419ac
push 0x20
call fcn.00526f60
add esp, 4
test al, al
jne 0x5419b1
push 0x25
push 0x25
mov ecx, ebp
call fcn.00530670
mov edx, dword [ebx]
mov eax, dword [ebx + 4]
sub esp, 0xc
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [ebx + 8]
mov dword [ecx + 4], eax
mov eax, dword [ebp + 0x1284]
push eax
mov dword [ecx + 8], edx
mov ecx, dword [esp + 0x38]
push 0x25
mov dword [ebp + 0x126c], edi
mov ecx, dword [ecx]
push 0x25
jmp 0x5419ac
cmp word [ebp + 0x123e], 0x14
jne 0x5419b1
push 0x34
push 0x34
mov ecx, ebp
call fcn.00530670
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
sub esp, 0xc
mov edx, esp
mov dword [edx], eax
mov eax, dword [ebx + 8]
mov dword [edx + 4], ecx
mov ecx, dword [ebp + 0x1284]
push ecx
mov dword [edx + 8], eax
mov edx, dword [esp + 0x38]
mov ecx, dword [edx]
push 0x34
push 0x34
call fcn.00527650
mov ecx, ebp
call fcn.00530ce0
mov eax, dword [0x8bd2e4]
cmp eax, edi
je 0x5419c3
call eax
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x7c]
push edx
xor bl, bl
call fcn.00573e9a
fstp dword [esp + 0x14]
mov eax, dword [esp + 0x2b0]
add esp, 4
cmp eax, edi
je 0x5423c2
mov eax, dword [ebp + 0x1558]
test eax, eax
jne 0x5423c2
mov eax, dword [ebp + 0xc]
push eax
call fcn.00578b40
mov ecx, dword [ebp + 0xc]
push ecx
lea edx, [esp + 0x1c0]
push edx
mov dword [esp + 0x38], eax
mov byte [esp + 0x27], bl
call fcn.00578fd0
mov esi, eax
mov eax, dword [ebp + 0x13ac]
add esp, 0xc
test eax, eax
mov ecx, 0x3c
lea edi, [esp + 0xc8]
rep movsd dword es:[edi], dword [esi]
je 0x541a8b
lea eax, [esp + 0x64]
push eax
call dword [0x8bd2d8]
add esp, 4
test eax, eax
je 0x541a8b
push 0xffffffffffffffff
push 0xffffffffffffffff
mov ecx, ebp
mov bl, 1
call fcn.00531d10
test eax, eax
je 0x5423c2
sub esp, 0xc
lea eax, [ebp + 0x1278]
mov edx, dword [eax]
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
mov dword [ecx + 8], eax
mov ecx, dword [ebp + 0x1284]
push ecx
mov ecx, dword [esp + 0x38]
mov ecx, dword [ecx]
jmp 0x5423af
cmp dword [esp + 0x2c], 5
je 0x541afd
mov eax, dword [ebp + 0x139c]
xor esi, esi
cmp eax, esi
jne 0x541afd
test dword [ebp + 0x13c4], 0x2000000
jne 0x541afd
mov eax, dword [0x8bd2d4]
cmp eax, esi
je 0x541afd
push 1
call eax
add esp, 4
test eax, eax
je 0x541afd
mov eax, dword [ebp + 0x1568]
cmp eax, 0x16
je 0x541afd
cmp eax, 0x17
je 0x541afd
cmp eax, 0x20
je 0x541afd
mov bl, 1
mov dword [ebp + 0x13ac], 1
call dword [sym.imp.winmm.dll_timeGetTime]
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx]
mov dword [edx + 8], eax
mov eax, dword [ecx]
mov dword [eax + 0xc], esi
mov ecx, dword [ecx]
mov dword [ecx + 0x10], esi
jmp 0x5423c2
test dword [ebp + 0x13c4], 0x3000000
jne 0x5422b2
push 0x57
call fcn.00526f60
add esp, 4
test al, al
je 0x541b95
push 0x41
call fcn.00526f60
add esp, 4
test al, al
je 0x541b95
mov edx, dword [esp + 0x10]
push edx
mov ecx, ebp
mov bl, 1
call fcn.00532080
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x44]
push edx
call fcn.0044cdb0
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x28], ecx
add esp, 0xc
lea ecx, [esp + 0x1c]
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], eax
call fcn.004181c0
fld dword [esp + 0x14]
fsub dword [0x65eb3c]
mov dword [ebp + 0x1434], 0xbf490fdb
fstp dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, dword [ebp + 0xc]
call fcn.00404ba0
jmp 0x541d8a
push 0x57
call fcn.00526f60
add esp, 4
test al, al
je 0x541c1d
push 0x44
call fcn.00526f60
add esp, 4
test al, al
je 0x541c1d
mov edx, dword [esp + 0x10]
push edx
mov ecx, ebp
mov bl, 1
call fcn.00532080
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x44]
push edx
call fcn.0040bce0
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x28], ecx
add esp, 0xc
lea ecx, [esp + 0x1c]
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], eax
call fcn.004181c0
fld dword [esp + 0x14]
fadd dword [0x65eb3c]
mov dword [ebp + 0x1434], 0x3f490fdb
fstp dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, dword [ebp + 0xc]
call fcn.00404ba0
jmp 0x541d8a
push 0x57
call fcn.00526f60
add esp, 4
test al, al
je 0x541c3e
mov edx, dword [esp + 0x10]
push edx
mov ecx, ebp
mov bl, 1
call fcn.00532080
jmp 0x541d8a
push 0x53
call fcn.00526f60
add esp, 4
test al, al
je 0x541cc1
push 0x41
call fcn.00526f60
add esp, 4
test al, al
je 0x541cc1
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x44]
push edx
mov bl, 1
call fcn.0040bce0
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x28], ecx
add esp, 0xc
lea ecx, [esp + 0x1c]
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], eax
call fcn.004181c0
fld dword [esp + 0x14]
fadd dword [0x65eb3c]
mov dword [ebp + 0x1434], 0x3f490fdb
fstp dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, dword [ebp + 0xc]
call fcn.00404ba0
mov ecx, ebp
call fcn.00532130
jmp 0x541d8a
push 0x53
call fcn.00526f60
add esp, 4
test al, al
je 0x541d41
push 0x44
call fcn.00526f60
add esp, 4
test al, al
je 0x541d41
lea edx, [esp + 0x30]
push edx
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x44]
push ecx
mov bl, 1
call fcn.0044cdb0
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov dword [esp + 0x28], edx
mov edx, dword [eax + 8]
mov dword [esp + 0x2c], ecx
add esp, 0xc
lea ecx, [esp + 0x1c]
mov dword [esp + 0x24], edx
call fcn.004181c0
fld dword [esp + 0x14]
fsub dword [0x65eb3c]
mov ecx, dword [ebp + 0xc]
mov dword [ebp + 0x1434], 0xbf490fdb
fstp dword [esp + 0x14]
mov eax, dword [esp + 0x14]
push eax
call fcn.00404ba0
mov ecx, ebp
call fcn.00532130
jmp 0x541d8a
push 0x53
call fcn.00526f60
add esp, 4
test al, al
je 0x541d5a
mov ecx, ebp
mov bl, 1
call fcn.00532130
jmp 0x541d8a
push 0x41
call fcn.00526f60
add esp, 4
test al, al
je 0x541d73
mov ecx, ebp
mov bl, 1
call fcn.005320d0
jmp 0x541d8a
push 0x44
call fcn.00526f60
add esp, 4
test al, al
je 0x541d8a
mov ecx, ebp
mov bl, 1
call fcn.00532100
mov eax, dword [ebp + 0x13c4]
test ah, 0x10
jne 0x5422b2
push 0x20
call fcn.00526f60
add esp, 4
test al, al
je 0x541eee
push 0x41
call fcn.00526f60
add esp, 4
test al, al
je 0x541eee
cmp dword [esp + 0x2c], 5
je 0x541eee
mov eax, dword [esp + 0xdc]
test eax, eax
jne 0x541eee
mov bl, 1
push 0
mov ecx, ebp
mov byte [esp + 0x1f], bl
call fcn.00531b00
test eax, eax
je 0x541eee
mov ecx, dword [ebp + 0xc]
call fcn.0058fc90
test eax, eax
je 0x541e8b
mov edi, str.CLASS_ROGUE
mov esi, eax
mov ecx, 0xc
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x541e46
mov edi, str.WEAPON_SHADOW_OFF
mov esi, eax
mov ecx, 0x12
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x541e46
mov edi, str.WEAPON_2CLAW
mov esi, eax
mov ecx, 0xd
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x541e46
mov esi, eax
mov edi, str.WEAPON_2DA
mov ecx, 0xb
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x541e8b
lea eax, [ebp + 0x1278]
push eax
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x38]
push edx
lea eax, [esp + 0x48]
push eax
mov dword [esp + 0x24], 0x43aaa000
call fcn.00525020
add esp, 0xc
push eax
lea ecx, [esp + 0x50]
push ecx
call fcn.0044cdb0
mov ecx, dword [eax]
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [edx + 4], ecx
mov dword [edx + 8], eax
jmp 0x541ece
lea eax, [ebp + 0x1278]
push eax
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x54]
push ecx
mov dword [esp + 0x24], 0x43834000
call fcn.00525020
add esp, 0xc
push eax
lea edx, [esp + 0x44]
push edx
call fcn.0044cdb0
mov edx, dword [eax]
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
mov dword [ecx + 8], eax
mov ecx, dword [ebp + 0x1284]
mov edx, dword [ebp + 0x1568]
mov eax, dword [ebp + 0x156c]
push ecx
mov ecx, dword [esp + 0x38]
mov ecx, dword [ecx]
push edx
push eax
call fcn.00527650
push 0x20
call fcn.00526f60
add esp, 4
test al, al
je 0x54204f
push 0x44
call fcn.00526f60
add esp, 4
test al, al
je 0x54204f
mov al, byte [esp + 0x1b]
test al, al
jne 0x54204f
cmp dword [esp + 0x2c], 5
je 0x54204f
mov eax, dword [esp + 0xdc]
test eax, eax
jne 0x54204f
mov bl, 1
push 1
mov ecx, ebp
mov byte [esp + 0x1f], bl
call fcn.00531b00
test eax, eax
je 0x54204f
mov ecx, dword [ebp + 0xc]
call fcn.0058fc90
test eax, eax
je 0x541fec
mov edi, str.CLASS_ROGUE
mov esi, eax
mov ecx, 0xc
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x541fa7
mov edi, str.WEAPON_SHADOW_OFF
mov esi, eax
mov ecx, 0x12
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x541fa7
mov edi, str.WEAPON_2CLAW
mov esi, eax
mov ecx, 0xd
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x541fa7
mov esi, eax
mov edi, str.WEAPON_2DA
mov ecx, 0xb
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x541fec
lea eax, [ebp + 0x1278]
push eax
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x38]
push edx
lea eax, [esp + 0x54]
push eax
mov dword [esp + 0x24], 0xc3aaa000
call fcn.00525020
add esp, 0xc
push eax
lea ecx, [esp + 0x44]
push ecx
call fcn.0044cdb0
mov ecx, dword [eax]
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [edx + 4], ecx
mov dword [edx + 8], eax
jmp 0x54202f
lea eax, [ebp + 0x1278]
push eax
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x54]
push ecx
mov dword [esp + 0x24], 0xc3834000
call fcn.00525020
add esp, 0xc
push eax
lea edx, [esp + 0x44]
push edx
call fcn.0044cdb0
mov edx, dword [eax]
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
mov dword [ecx + 8], eax
mov ecx, dword [ebp + 0x1284]
mov edx, dword [ebp + 0x1568]
mov eax, dword [ebp + 0x156c]
push ecx
mov ecx, dword [esp + 0x38]
mov ecx, dword [ecx]
push edx
push eax
call fcn.00527650
push 0x20
call fcn.00526f60
add esp, 4
test al, al
je 0x542167
push 0x53
call fcn.00526f60
add esp, 4
test al, al
je 0x542167
mov al, byte [esp + 0x1b]
test al, al
jne 0x542167
cmp dword [esp + 0x2c], 5
je 0x542167
mov eax, dword [esp + 0xdc]
test eax, eax
jne 0x542167
mov ecx, dword [ebp + 0xc]
call fcn.0058fc90
test eax, eax
je 0x542167
mov edi, str.CLASS_ROGUE
mov esi, eax
mov ecx, 0xc
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x5420f1
mov edi, str.WEAPON_SHADOW_OFF
mov esi, eax
mov ecx, 0x12
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x5420f1
mov edi, str.WEAPON_2CLAW
mov esi, eax
mov ecx, 0xd
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x5420f1
mov esi, eax
mov edi, str.WEAPON_2DA
mov ecx, 0xb
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x542167
mov bl, 1
push 2
mov ecx, ebp
mov byte [esp + 0x1f], bl
call fcn.00531b00
test eax, eax
je 0x542167
lea eax, [ebp + 0x1278]
push eax
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x54]
push eax
mov dword [esp + 0x24], 0xc3aaa000
call fcn.00525020
add esp, 0xc
push eax
lea ecx, [esp + 0x44]
push ecx
call fcn.0044cdb0
mov ecx, dword [eax]
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [edx + 4], ecx
mov ecx, dword [ebp + 0x1284]
push ecx
mov ecx, dword [esp + 0x38]
mov ecx, dword [ecx]
mov dword [edx + 8], eax
mov edx, dword [ebp + 0x1568]
mov eax, dword [ebp + 0x156c]
push edx
push eax
call fcn.00527650
mov eax, dword [ebp + 0x13c4]
test ah, 0x10
jne 0x5422b2
push 0x20
call fcn.00526f60
add esp, 4
test al, al
je 0x5422b2
mov al, byte [esp + 0x1b]
test al, al
jne 0x5422b2
mov eax, dword [esp + 0x2c]
cmp eax, 5
je 0x5422b2
mov ecx, dword [esp + 0xdc]
test ecx, ecx
jne 0x5422b2
cmp eax, 4
je 0x5422b2
cmp eax, 3
je 0x5422b2
mov ecx, ebp
mov bl, 1
call fcn.00531880
test eax, eax
je 0x542277
mov cl, byte [0x940fd7]
mov al, 0x80
test al, cl
je 0x542224
mov edx, dword [esp + 0x28]
mov eax, dword [edx]
fld dword [eax + 0x98]
lea ecx, [esp + 0x14]
fdiv dword [0x65f0fc]
push ecx
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x50]
push eax
fstp dword [esp + 0x20]
call fcn.00525020
mov edx, dword [eax]
lea ecx, [ebp + 0x13b8]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov eax, dword [eax + 8]
add esp, 0xc
mov dword [ecx + 8], eax
jmp 0x542277
test byte [0x940fd3], al
je 0x542263
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x50]
push eax
mov dword [esp + 0x20], 0xc0892492
call fcn.00525020
mov edx, dword [eax]
lea ecx, [ebp + 0x13b8]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov eax, dword [eax + 8]
add esp, 0xc
mov dword [ecx + 8], eax
jmp 0x542277
xor eax, eax
lea esi, [ebp + 0x13b8]
xor ecx, ecx
mov dword [esi], eax
xor edx, edx
mov dword [esi + 4], ecx
mov dword [esi + 8], edx
sub esp, 0xc
mov ecx, esp
lea eax, [ebp + 0x1278]
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
mov edx, dword [ebp + 0x1568]
mov dword [ecx + 8], eax
mov ecx, dword [ebp + 0x1284]
mov eax, dword [ebp + 0x156c]
push ecx
mov ecx, dword [esp + 0x38]
mov ecx, dword [ecx]
push edx
push eax
call fcn.00527650
mov esi, dword [esp + 0x28]
mov eax, dword [esi]
mov ecx, dword [eax + 0x4c]
test ecx, ecx
jne 0x5423c2
test dword [ebp + 0x13c4], 0x2000000
jne 0x5423c2
mov cl, byte [eax + 0x108]
test cl, cl
jne 0x54233a
push 1
call fcn.00526f60
add esp, 4
test al, al
je 0x54233a
cmp dword [esp + 0x2c], 5
je 0x54233a
push 0xffffffffffffffff
push 0xffffffffffffffff
mov ecx, ebp
mov bl, 1
call fcn.005311b0
test eax, eax
je 0x54233a
sub esp, 0xc
mov edx, esp
lea eax, [ebp + 0x1278]
mov ecx, dword [eax]
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [edx + 4], ecx
mov ecx, dword [ebp + 0x1284]
mov dword [edx + 8], eax
mov edx, dword [ebp + 0x1568]
mov eax, dword [ebp + 0x156c]
push ecx
mov ecx, dword [esi]
push edx
push eax
call fcn.00527650
call dword [0x8bd308]
test eax, eax
je 0x5423c2
mov eax, dword [0x8bd3b4]
test eax, eax
je 0x5423c2
mov eax, dword [esi]
cmp byte [eax + 0x108], 1
jne 0x5423c2
mov ecx, dword [eax + 0x40]
test ecx, ecx
je 0x5423c2
mov ecx, dword [0x940f30]
test ecx, ecx
je 0x5423c2
cmp dword [esp + 0x2c], 5
je 0x5423c2
push 0xffffffffffffffff
push 0xffffffffffffffff
mov ecx, ebp
mov bl, 1
mov dword [eax + 0x8c], 1
call fcn.005311b0
test eax, eax
je 0x5423c2
sub esp, 0xc
lea eax, [ebp + 0x1278]
mov edx, dword [eax]
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
mov dword [ecx + 8], eax
mov ecx, dword [ebp + 0x1284]
push ecx
mov ecx, dword [esi]
mov edx, dword [ebp + 0x1568]
mov eax, dword [ebp + 0x156c]
push edx
push eax
call fcn.00527650
test dword [ebp + 0x13c4], 0x3000000
je 0x5423fb
mov eax, dword [0x8bd2dc]
test eax, eax
je 0x5423de
push 0
call eax
add esp, 4
mov esi, dword [esp + 0x28]
mov ecx, dword [esi]
mov dword [ecx + 0x90], 0
mov edx, dword [esi]
or edi, 0xffffffff
mov dword [edx + 0x94], edi
jmp 0x542402
mov esi, dword [esp + 0x28]
or edi, 0xffffffff
test bl, bl
jne 0x5424fb
mov eax, dword [esp + 0x2ac]
mov ecx, dword [esi]
push eax
call fcn.00529510
mov eax, dword [0x8bd2e0]
test eax, eax
je 0x542461
call eax
test eax, eax
je 0x542461
mov ecx, dword [esp + 0x10]
push ecx
mov ecx, ebp
mov bl, 1
call fcn.00532080
push 0
call dword [0x8bd2f4]
push 0
call dword [0x8bd2f8]
push 0
call dword [0x8bd2fc]
push 0
call dword [0x8bd300]
push 0
call dword [0x8bd304]
add esp, 0x14
mov ecx, dword [esi]
mov eax, dword [ecx + 0x90]
test eax, eax
je 0x54254a
mov edx, dword [ecx + 0x94]
push edx
call fcn.00528740
test eax, eax
je 0x5424e5
lea ecx, [ebp + 0x1278]
push ecx
add eax, 0x1278
push eax
lea eax, [esp + 0x44]
push eax
call fcn.0040bce0
add esp, 0xc
lea ecx, [esp + 0x3c]
mov dword [esp + 0x40], 0
call fcn.00418170
fcomp dword [0x65f0f8]
fnstsw ax
test ah, 0x41
jne 0x54254a
lea ecx, [esp + 0x3c]
push ecx
mov ecx, dword [esi]
call fcn.00529450
mov edx, dword [ebp + 0xc]
mov ecx, dword [esp + 0x10]
mov eax, dword [edx + 0x34]
push ecx
mov ecx, ebp
mov dword [ebp + 0x1284], eax
mov bl, 1
call fcn.00532080
jmp 0x54254a
mov edx, dword [esi]
mov dword [edx + 0x90], 0
mov eax, dword [esi]
mov dword [eax + 0x94], edi
jmp 0x54254a
push 0
call dword [0x8bd2f4]
push 0
call dword [0x8bd2f8]
push 0
call dword [0x8bd2fc]
push 0
call dword [0x8bd300]
push 0
call dword [0x8bd304]
mov eax, dword [0x8bd2dc]
add esp, 0x14
test eax, eax
je 0x542536
push 0
call eax
add esp, 4
mov ecx, dword [esi]
mov dword [ecx + 0x90], 0
mov edx, dword [esi]
mov dword [edx + 0x94], edi
mov eax, dword [ebp + 0x13ac]
test eax, eax
je 0x54256f
lea eax, [esp + 0x60]
push eax
call dword [0x8bd2d8]
add esp, 4
test eax, eax
jne 0x54256f
mov ecx, dword [esi]
mov dword [ecx + 4], 1
test bl, bl
jne 0x542584
mov eax, dword [ebp + 0x1558]
test eax, eax
jne 0x542584
mov ecx, ebp
call fcn.00531070
mov ecx, dword [esi]
call fcn.00529780
test eax, eax
jne 0x54259f
mov eax, dword [0x8bd2e8]
test eax, eax
je 0x54259f
push 0
call eax
add esp, 4
mov eax, dword [ebp + 0x1568]
dec eax
cmp eax, 0x27
ja case.0x5425b6.2
movzx edx, byte [eax + 0x542b74]
jmp dword [edx*4 + 0x542b3c]
mov eax, dword [esi]
fld dword [eax + 0x9c]
lea ecx, [esp + 0x10]
fdiv dword [0x65f0fc]
push ecx
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x50]
push eax
jmp 0x54265b
mov edx, dword [esi]
fld dword [edx + 0x98]
lea ecx, [esp + 0x1c]
fdiv dword [0x65f0fc]
lea edx, [esp + 0x3c]
jmp 0x542654
mov edx, dword [esi]
fld dword [edx + 0x9c]
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x98]
jmp 0x54264c
mov edx, dword [esi]
fld dword [edx + 0x9c]
lea ecx, [esp + 0x1c]
lea edx, [esp + 0xa4]
jmp 0x54264c
mov edx, dword [esi]
fld dword [edx + 0x9c]
lea ecx, [esp + 0x30]
fdiv dword [0x65f0fc]
lea edx, [esp + 0x80]
jmp 0x542654
mov edx, dword [esi]
fld dword [edx + 0x9c]
lea ecx, [esp + 0x30]
lea edx, [esp + 0xb0]
fdiv dword [0x65f0fc]
fchs
lea eax, [esp + 0x10]
push eax
push ecx
push edx
fstp dword [esp + 0x1c]
call fcn.00525020
mov edx, dword [eax]
add esp, 0xc
push 0
sub esp, 0xc
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
mov dword [ecx + 8], eax
mov ecx, dword [ebp + 0xc]
push ecx
jmp 0x5428e0
xor edx, edx
xor ecx, ecx
push edx
xor eax, eax
sub esp, 0xc
mov edi, esp
mov dword [edi], eax
mov dword [edi + 4], ecx
mov ecx, dword [ebp + 0xc]
mov dword [edi + 8], edx
push ecx
jmp 0x5428e0
xor edx, edx
xor eax, eax
push edx
xor ecx, ecx
sub esp, 0xc
mov edi, esp
mov dword [edi], eax
mov eax, dword [ebp + 0xc]
mov dword [edi + 4], ecx
mov dword [edi + 8], edx
push eax
jmp 0x5428e0
push 0
lea ecx, [ebp + 0x13b8]
mov eax, dword [ecx]
sub esp, 0xc
mov edx, esp
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [edx + 4], eax
mov dword [edx + 8], ecx
jmp 0x5428dc
mov ecx, dword [ebp + 0xc]
call fcn.0058fc90
test eax, eax
je 0x542786
mov edi, str.CLASS_ROGUE
mov esi, eax
mov ecx, 0xc
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x54273b
mov edi, str.WEAPON_SHADOW_OFF
mov esi, eax
mov ecx, 0x12
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x54273b
mov edi, str.WEAPON_2CLAW
mov esi, eax
mov ecx, 0xd
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x54273b
mov esi, eax
mov edi, str.WEAPON_2DA
mov ecx, 0xb
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x542786
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x34]
push edx
lea eax, [esp + 0x70]
push eax
mov dword [esp + 0x1c], 0x421c0000
call fcn.00525020
mov edx, dword [eax]
add esp, 0xc
push 0xbf8ccccd
sub esp, 0xc
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
mov dword [ecx + 8], eax
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.00578ae0
mov esi, dword [esp + 0x3c]
jmp 0x5428e5
mov dword [esp + 0x10], 0x41f00000
lea ecx, [esp + 0xbc]
jmp 0x54284c
mov ecx, dword [ebp + 0xc]
call fcn.0058fc90
test eax, eax
je 0x54283d
mov edi, str.CLASS_ROGUE
mov esi, eax
mov ecx, 0xc
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x5427f2
mov edi, str.WEAPON_SHADOW_OFF
mov esi, eax
mov ecx, 0x12
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x5427f2
mov edi, str.WEAPON_2CLAW
mov esi, eax
mov ecx, 0xd
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x5427f2
mov esi, eax
mov edi, str.WEAPON_2DA
mov ecx, 0xb
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x54283d
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x34]
push edx
lea eax, [esp + 0x7c]
push eax
mov dword [esp + 0x1c], 0xc21c0000
call fcn.00525020
mov edx, dword [eax]
add esp, 0xc
push 0xbf8ccccd
sub esp, 0xc
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
mov dword [ecx + 8], eax
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.00578ae0
mov esi, dword [esp + 0x3c]
jmp 0x5428e5
mov dword [esp + 0x10], 0xc1f00000
lea ecx, [esp + 0x8c]
lea edx, [esp + 0x10]
push edx
lea eax, [esp + 0x34]
push eax
push ecx
call fcn.00525020
mov ecx, dword [eax]
add esp, 0xc
push 0xbf8ccccd
sub esp, 0xc
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [edx + 4], ecx
mov ecx, dword [ebp + 0xc]
push ecx
mov dword [edx + 8], eax
call fcn.00578ae0
mov esi, dword [esp + 0x3c]
jmp 0x5428e5
lea edx, [esp + 0x10]
push edx
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x5c]
push ecx
mov dword [esp + 0x1c], 0xc21c0000
call fcn.00525020
mov ecx, dword [eax]
add esp, 0xc
push 0xbf8ccccd
sub esp, 0xc
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [edx + 4], ecx
mov ecx, dword [ebp + 0xc]
mov dword [edx + 8], eax
push ecx
jmp 0x5428e0
push 0
xor eax, eax
xor ecx, ecx
xor edx, edx
sub esp, 0xc
mov edi, esp
mov dword [edi], eax
mov dword [edi + 4], ecx
mov dword [edi + 8], edx
mov edx, dword [ebp + 0xc]
push edx
call fcn.00578ae0
mov eax, dword [esi]
mov ecx, dword [eax + 0xbc]
add esp, 0x14
push ecx
call fcn.00573e9a
fcomp dword [0x64fe64]
add esp, 4
fnstsw ax
test ah, 1
jne 0x542b2d
mov eax, dword [ebp + 0x1568]
cmp eax, 8
je 0x54296d
cmp eax, 1
je 0x54296d
cmp eax, 4
je 0x54296d
cmp eax, 5
je 0x54296d
cmp eax, 6
je 0x54296d
cmp eax, 0xa
je 0x54296d
test eax, eax
je 0x54296d
cmp eax, 0x19
je 0x54296d
cmp eax, 0x1a
je 0x54296d
cmp eax, 0x29
je 0x54296d
cmp eax, 0x2a
je 0x54296d
cmp eax, 0x26
je 0x54296d
cmp eax, 0x28
je 0x54296d
cmp eax, 0x15
je 0x54296d
cmp eax, 0x24
je 0x54296d
cmp eax, 0x22
je 0x54296d
cmp eax, 0x23
je 0x54296d
cmp eax, 9
jne 0x542b2d
lea ecx, [esp + 0x1c]
call fcn.004181c0
lea ecx, [esp + 0x30]
call fcn.004181c0
mov eax, dword [ebp + 0x1568]
dec eax
cmp eax, 0x27
ja case.0x542996.2
movzx edx, byte [eax + 0x542bbc]
jmp dword [edx*4 + 0x542b9c]
mov eax, dword [esi]
fld dword [eax + 0x98]
jmp 0x5429ff
lea eax, [esp + 0x1c]
jmp 0x5429bf
mov eax, dword [esi]
fld dword [eax + 0x9c]
lea edx, [esp + 0x30]
jmp 0x542a03
lea eax, [esp + 0x30]
mov ecx, dword [esi]
fld dword [ecx + 0x9c]
lea edx, [esp + 0x10]
fdiv dword [0x64fe78]
push edx
push eax
lea ecx, [esp + 0x5c]
push ecx
fchs
fstp dword [esp + 0x1c]
call fcn.00525020
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov dword [esp + 0x28], edx
mov edx, dword [eax + 8]
add esp, 0xc
jmp 0x542a9d
mov eax, dword [esi]
fld dword [eax + 0x9c]
lea edx, [esp + 0x1c]
fdiv dword [0x64fe78]
lea ecx, [esp + 0x10]
push ecx
push edx
lea eax, [esp + 0x5c]
push eax
fstp dword [esp + 0x1c]
call fcn.00525020
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
add esp, 0xc
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], eax
jmp 0x542aa5
lea ecx, [ebp + 0x13b8]
mov edx, dword [ecx]
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ecx
jmp 0x542aa5
mov edx, dword [esi]
fld dword [edx + 0x9c]
lea eax, [esp + 0x10]
fdiv dword [0x64fe78]
push eax
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x5c]
push edx
fchs
fstp dword [esp + 0x1c]
call fcn.00525020
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
add esp, 0xc
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], eax
jmp 0x542aa5
xor eax, eax
xor ecx, ecx
xor edx, edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edx
fld dword [esp + 0x1c]
mov ecx, dword [ebp + 0xc]
fadd dword [ebp + 0x1278]
push ecx
fstp dword [esp + 0x20]
fld dword [esp + 0x24]
fadd dword [ebp + 0x127c]
fstp dword [esp + 0x24]
fld dword [esp + 0x28]
fadd dword [ebp + 0x1280]
fstp dword [esp + 0x28]
call fcn.00578b40
mov ecx, dword [esp + 0x24]
add esp, 4
sub esp, 0xc
cmp eax, 5
mov eax, dword [esp + 0x28]
mov edx, esp
mov dword [edx], eax
mov eax, dword [esp + 0x30]
mov dword [edx + 4], ecx
mov ecx, dword [ebp + 0x1284]
push ecx
mov ecx, dword [esi]
mov dword [edx + 8], eax
jne 0x542b1a
push 0x64
push 0x64
call fcn.00527650
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x298
ret 0x10
mov edx, dword [ebp + 0x1568]
mov eax, dword [ebp + 0x156c]
push edx
push eax
call fcn.00527650
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x298
ret 0x10