Function at 0x504d04
Capabilities:
Check for software breakpoints
Parse pe header

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff48
push ebx
push esi
push edi
xor eax, eax
mov dword [ebp - 8], eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x10], eax
xor eax, eax
push ebp
push 0x506e9b
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [ebp - 4], eax
xor eax, eax
mov dword [ebp - 0x7c], eax
xor eax, eax
push ebp
push 0x506e66
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x53585c]
mov dword [0x5358e4], eax
mov eax, dword [ebp - 0x50]
sub eax, dword [ebp - 0x1c]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x38]
add eax, 4
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x54]
add eax, 4
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x18]
add eax, 0x64
mov dword [ebp - 0x40], eax
mov eax, dword [0x535a40]
mov dword [0x5359bc], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x60], eax
lea eax, [ebp - 8]
mov edx, 0x506ebc
call fcn.0040a01c
imul eax, dword [ebp - 0x58], 0x8e
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x3c]
imul dword [ebp - 0x44]
mov dword [ebp - 0x1c], eax
imul eax, dword [ebp - 0x24], 0x27
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x54]
imul dword [ebp - 0x14]
mov dword [ebp - 0x28], eax
mov eax, dword [0x535994]
mov edx, dword [0x535994]
call fcn.0040aba0
jne 0x504dcd
mov eax, dword [0x53586c]
mov dword [0x53590c], eax
jmp 0x504dd8
fild dword [ebp - 0x50]
call fcn.0040762c
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x60]
cmp word [eax], 0x5a4d
je 0x504ead
mov eax, 0x4f
sub eax, dword [ebp - 0x40]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x2c]
add eax, 0x6e
mov dword [ebp - 0xb8], eax
fild dword [ebp - 0xb8]
call fcn.0040762c
mov dword [ebp - 0x28], eax
imul eax, dword [ebp - 0x4c], 0x5f
mov dword [ebp - 0x30], eax
xor eax, eax
mov dword [ebp - 0x38], eax
imul eax, dword [ebp - 0x58], 0x4c
mov dword [ebp - 0x3c], eax
inc dword [ebp - 0x38]
cmp dword [ebp - 0x38], 4
jne 0x504e17
mov eax, dword [ebp - 0x50]
add eax, 0xe1
mov dword [ebp - 0x48], eax
imul eax, dword [0x53594c], 0xe1
mov dword [0x535a50], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x506e80
mov eax, dword [ebp - 0x60]
mov eax, dword [eax + 0x3c]
add eax, dword [ebp + 8]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x38]
lea eax, [eax + eax*2]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x1c]
imul dword [ebp - 0x40]
mov dword [ebp - 0x48], eax
xor eax, eax
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], 0xd
jge 0x504efe
inc dword [ebp - 0x4c]
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0xf
jge 0x504ef8
inc dword [ebp - 0x14]
lea eax, [ebp - 8]
mov edx, dword [ebp - 8]
call fcn.0040a01c
cmp dword [ebp - 0x14], 0xf
jl 0x504ee4
cmp dword [ebp - 0x4c], 0xd
jl 0x504ed6
mov eax, dword [0x5358c4]
mov dword [0x5358c4], eax
mov eax, dword [ebp - 0x30]
add eax, 4
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x64]
cmp dword [eax], 0x4550
je 0x50501b
lea eax, [ebp - 8]
mov edx, dword [ebp - 8]
call fcn.0040a01c
mov eax, dword [ebp - 0x50]
add eax, 0xf4
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x38]
add eax, dword [ebp - 0x5c]
mov dword [ebp - 0x1c], eax
mov eax, dword [0x5358ac]
sub eax, dword [0x5359ac]
cmp eax, dword [0x5358ac]
jge 0x504f5c
imul eax, dword [ebp - 0x48], 0xfe
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x20]
add eax, dword [ebp - 0x14]
mov dword [ebp - 0x30], eax
mov eax, dword [0x53587c]
add eax, dword [0x53594c]
cmp eax, dword [0x53594c]
jne 0x504f83
fild dword [ebp - 0x58]
call fcn.00407638
mov dword [ebp - 0x40], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x506e80
mov eax, dword [0x5359e8]
add eax, dword [0x535934]
mov edx, dword [0x53587c]
add edx, dword [0x5359e8]
cmp eax, edx
jge 0x505057
xor eax, eax
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x54], 0xf
jge 0x5050aa
inc dword [ebp - 0x54]
lea eax, [ebp - 8]
mov edx, dword [ebp - 8]
call fcn.0040a01c
cmp dword [ebp - 0x54], 0xf
jl 0x505041
jmp 0x5050aa
mov eax, dword [ebp - 0x48]
push eax
mov eax, dword [ebp - 0x3c]
push eax
mov eax, dword [ebp - 0x3c]
push eax
mov ecx, dword [0x5359e8]
mov edx, dword [ebp - 0x2c]
mov eax, dword [0x5358c4]
call fcn.004fafb4
mov dword [0x53586c], eax
mov eax, dword [0x5358cc]
sub eax, dword [0x535a30]
mov edx, dword [0x5358b4]
sub edx, dword [0x535a30]
cmp eax, edx
jle 0x5050a1
mov eax, dword [ebp - 0x24]
sub eax, dword [ebp - 0x3c]
mov dword [ebp - 0x30], eax
jmp 0x5050aa
mov eax, dword [ebp - 0x14]
add eax, 0x15
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x34]
add eax, dword [ebp - 0x38]
mov dword [ebp - 0x50], eax
mov eax, dword [0x535a28]
call fcn.004071f4
mov dword [0x535a28], eax
mov eax, dword [ebp - 0x2c]
add eax, 0xf4
mov dword [ebp - 0x58], eax
mov eax, dword [0x535934]
add eax, dword [0x535894]
mov dword [0x5358cc], eax
mov eax, dword [0x5358cc]
add eax, 4
mov dword [0x535944], eax
mov eax, dword [0x53585c]
mov dword [0x5358b4], eax
mov eax, dword [0x535a00]
mov dword [0x5358c4], eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x40]
push eax
push 0x53590c
mov ecx, 0x535a08
mov edx, 0x5359f8
lea eax, [ebp - 0x58]
call fcn.004eb6e8
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x20]
add eax, 0x8c
mov dword [ebp - 0xb8], eax
fild dword [ebp - 0xb8]
call fcn.0040762c
mov dword [ebp - 0x30], eax
xor eax, eax
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 0xa
jge 0x50515f
inc dword [ebp - 0x38]
mov eax, dword [0x53596c]
call fcn.004071f4
mov dword [0x53596c], eax
cmp dword [ebp - 0x38], 0xa
jl 0x505147
mov eax, dword [0x5359ac]
call fcn.004071f4
mov dword [0x5359ac], eax
mov eax, dword [ebp - 0x64]
cmp word [eax + 4], 0x14c
je 0x505222
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x34]
push eax
lea ecx, [ebp - 0x44]
lea edx, [ebp - 0x50]
lea eax, [ebp - 0x40]
call fcn.004f9000
lea eax, [ebp - 0x58]
push eax
push 0x5358a4
push 0x5359d8
lea ecx, [ebp - 0x28]
mov edx, 0x535a50
lea eax, [ebp - 0x3c]
call fcn.004eb6e8
mov dword [ebp - 0x44], eax
xor eax, eax
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 3
jge 0x5051f2
inc dword [ebp - 0x28]
imul eax, dword [ebp - 0x3c], 0x7a
mov dword [ebp - 0x30], eax
xor eax, eax
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 3
jge 0x5051e6
inc dword [ebp - 0x38]
mov eax, dword [ebp - 0x14]
add eax, dword [ebp - 0x5c]
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x38], 3
jl 0x5051d4
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x28], 3
jl 0x5051bf
mov eax, dword [ebp - 0x58]
add eax, 4
mov dword [ebp - 0x34], eax
mov eax, dword [0x535894]
call fcn.004071f4
mov dword [0x535894], eax
mov eax, 0x2b
sub eax, dword [ebp - 0x1c]
mov dword [ebp - 0x24], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x506e80
xor eax, eax
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x54], 0xb
jge 0x505254
inc dword [ebp - 0x54]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 8]
call fcn.0040aba0
jne 0x505254
mov eax, dword [0x53586c]
call fcn.004071f4
mov dword [0x53586c], eax
jmp 0x505254
fild dword [ebp - 0x44]
call fcn.0040762c
mov dword [ebp - 0x24], eax
lea eax, [ebp - 8]
push eax
xor ecx, ecx
mov edx, 1
mov eax, dword [ebp - 8]
call fcn.0040abd8
mov eax, dword [0x53591c]
mov dword [ebp - 0x80], eax
cmp dword [ebp - 0x80], 0
je 0x50528b
mov eax, dword [ebp - 0x80]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x80], eax
cmp dword [ebp - 0x80], 0xfb
jle 0x50529f
mov eax, dword [ebp - 0x50]
add eax, 0x99
mov dword [ebp - 0x30], eax
mov eax, dword [0x53594c]
call fcn.004071f4
mov dword [0x53594c], eax
fild dword [ebp - 0x5c]
call fcn.00407638
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x64]
test byte [eax + 0x38], 1
je 0x5054e6
lea eax, [ebp - 8]
push eax
xor ecx, ecx
mov edx, 1
mov eax, dword [ebp - 8]
call fcn.0040abd8
mov eax, dword [0x535874]
mov dword [0x53587c], eax
mov eax, dword [0x53588c]
add eax, 0xe
cmp eax, dword [0x535a28]
jge 0x505318
mov eax, dword [ebp - 0x30]
add eax, 0x6c
mov dword [ebp - 0xb8], eax
fild dword [ebp - 0xb8]
call fcn.0040762c
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x14]
add eax, 0x5b
mov dword [ebp - 0x28], eax
jmp 0x50532a
mov eax, dword [ebp - 0x20]
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x44]
add eax, 0x2d
mov dword [ebp - 0x38], eax
imul eax, dword [ebp - 0x54], 0xdc
mov dword [ebp - 0x4c], eax
xor eax, eax
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x10]
mov edx, 0x506ef8
call fcn.0040aba0
jne 0x505354
mov eax, dword [0x5359e0]
mov dword [0x535874], eax
jmp 0x505366
mov edx, dword [ebp - 0x34]
mov eax, dword [0x535a40]
call fcn.004f8ad0
mov dword [0x53589c], eax
inc dword [ebp - 0x50]
cmp dword [ebp - 0x50], 0xf
jne 0x505339
mov eax, dword [0x535a30]
mov dword [0x535904], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x506e80
push 4
push 0x3000
mov eax, dword [ebp - 0x64]
mov eax, dword [eax + 0x50]
push eax
mov eax, dword [ebp - 0x64]
mov eax, dword [eax + 0x34]
push eax
call dword [0x535980]
mov dword [ebp - 0x68], eax
cmp dword [ebp - 0x68], 0
jne 0x505768
mov eax, dword [ebp - 0x14]
add eax, 0x2f
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x44]
add eax, dword [ebp - 0x28]
mov dword [ebp - 0x24], eax
mov eax, dword [0x5358e4]
mov dword [0x5358d4], eax
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x2c], eax
fild dword [ebp - 0x58]
call fcn.00407638
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x50]
sub eax, 0xee
mov dword [ebp - 0x5c], eax
push 4
push 0x3000
mov eax, dword [ebp - 0x64]
mov eax, dword [eax + 0x50]
push eax
push 0
call dword [0x535980]
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x3c]
push eax
mov eax, dword [ebp - 0x20]
push eax
mov eax, dword [0x535964]
push eax
mov ecx, dword [0x5359bc]
mov edx, dword [0x5359e0]
mov eax, dword [ebp - 0x50]
call fcn.00503e6c
mov eax, dword [ebp - 0x30]
add eax, 0x57
mov dword [ebp - 0x20], eax
xor eax, eax
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0
jge 0x5055a9
inc dword [ebp - 0x28]
mov eax, 0x52
sub eax, dword [ebp - 0x24]
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x28], 0
jl 0x505595
mov eax, dword [ebp - 0x2c]
add eax, 0x1d
mov dword [ebp - 0xb8], eax
fild dword [ebp - 0xb8]
call fcn.0040762c
mov dword [ebp - 0x40], eax
lea eax, [ebp - 0x10]
push eax
mov ecx, 2
mov edx, 1
mov eax, dword [ebp - 0x10]
call fcn.0040abd8
mov eax, dword [0x53589c]
mov dword [0x5359e8], eax
mov eax, dword [0x535a50]
mov dword [0x535a00], eax
mov eax, dword [0x5359e8]
cmp eax, dword [0x535a00]
jge 0x505648
xor eax, eax
mov dword [ebp - 0x58], eax
mov ecx, 1
mov edx, dword [ebp - 8]
mov eax, 0x506f1c
call fcn.0040ade8
cmp eax, 0xad
jge 0x505632
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0x30]
lea edx, [ebp - 0x4c]
mov eax, 0x535964
call fcn.004fbbf8
jmp 0x50563d
mov eax, dword [ebp - 0x50]
sub eax, 0xad
mov dword [ebp - 0x4c], eax
inc dword [ebp - 0x58]
cmp dword [ebp - 0x58], 8
jne 0x5055ff
jmp 0x505688
mov eax, dword [0x535a18]
mov dword [0x5359e0], eax
mov eax, dword [0x5359e0]
cmp eax, dword [0x535a00]
jge 0x50567e
xor eax, eax
mov dword [ebp - 0x48], eax
mov eax, dword [0x535874]
call fcn.004071f4
mov dword [0x535874], eax
inc dword [ebp - 0x48]
cmp dword [ebp - 0x48], 2
jne 0x505664
jmp 0x505688
mov eax, dword [0x53589c]
mov dword [0x5358cc], eax
mov eax, dword [0x53590c]
lea eax, [eax + eax*8]
mov dword [0x5359e0], eax
xor eax, eax
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 9
jge 0x5056dd
inc dword [ebp - 0x3c]
mov ecx, 1
mov edx, dword [0x535914]
mov eax, 0x506f40
call fcn.0040ade8
cmp eax, 0xcc
je 0x5056cb
mov eax, dword [0x5359c4]
mov dword [0x535884], eax
jmp 0x5056dd
mov eax, dword [0x53586c]
mov dword [0x5358b4], eax
jmp 0x5056dd
mov eax, dword [0x5359f8]
add eax, 0xcd
mov dword [0x535984], eax
mov eax, dword [0x53593c]
mov dword [0x5359b4], eax
cmp dword [ebp - 0x68], 0
jne 0x505768
mov eax, dword [ebp - 0x58]
add eax, 0xf9
mov dword [ebp - 0xb8], eax
fild dword [ebp - 0xb8]
call fcn.0040762c
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x3c]
sub eax, 0xc5
mov dword [ebp - 0x30], eax
mov eax, dword [0x535874]
mov dword [0x535944], eax
mov eax, dword [ebp - 0x20]
imul dword [ebp - 0x34]
mov dword [ebp - 0x54], eax
lea eax, [ebp - 0xc]
mov edx, dword [ebp - 8]
call fcn.0040a01c
mov eax, dword [ebp - 0x14]
add eax, 4
mov dword [ebp - 0xb8], eax
fild dword [ebp - 0xb8]
call fcn.00407638
mov dword [ebp - 0x48], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x506e80
mov eax, dword [ebp - 0x5c]
add eax, 4
mov dword [ebp - 0x24], eax
imul eax, dword [ebp - 0x44], 0x55
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x28]
add eax, 0xb9
mov dword [ebp - 0x30], eax
fild dword [ebp - 0x4c]
call fcn.00407638
mov dword [ebp - 0x38], eax
mov eax, dword [0x5358cc]
mov dword [0x53596c], eax
mov eax, dword [ebp - 0x18]
sub eax, dword [ebp - 0x34]
mov dword [ebp - 0x40], eax
push 0x1c
push 8
call dword [0x5359dc]
push eax
call dword [0x535970]
mov dword [ebp - 0x7c], eax
mov eax, dword [0x5359bc]
mov dword [0x53586c], eax
mov eax, dword [ebp - 0x18]
sub eax, dword [ebp - 0x48]
cmp eax, 0xbc
jge 0x505837
mov eax, dword [0x5359b4]
push eax
mov eax, dword [ebp - 0x5c]
push eax
mov eax, dword [ebp - 0x24]
push eax
mov eax, dword [0x5358c4]
push eax
mov ecx, dword [0x53592c]
mov edx, dword [0x53585c]
mov eax, dword [ebp - 0x50]
call fcn.004f8e58
mov dword [ebp - 0x5c], eax
xor eax, eax
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x20]
sub eax, 0x18
mov dword [ebp - 0x2c], eax
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 0xc
jne 0x5057fc
mov eax, dword [ebp - 0x50]
sub eax, dword [ebp - 0x44]
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x14]
push eax
mov ecx, 0x5359e0
mov edx, 0x5358d4
mov eax, 0x5359d0
call fcn.004fd388
imul eax, dword [ebp - 0x58], 0xef
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x38]
push eax
mov eax, dword [0x535a08]
push eax
mov eax, dword [ebp - 0x1c]
push eax
mov eax, dword [0x535a18]
push eax
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
call fcn.004f8e58
mov dword [0x5358cc], eax
mov eax, dword [0x5358d4]
mov dword [0x535a08], eax
mov eax, dword [ebp - 0x1c]
add eax, 0x45
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x7c], 0
jne 0x505a8d
fild dword [ebp - 0x24]
call fcn.00407638
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0xc]
mov edx, 0x506f70
call fcn.0040a01c
mov eax, dword [ebp - 0x4c]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x50]
add eax, dword [ebp - 0x44]
cmp eax, dword [ebp - 0x44]
jne 0x50592b
mov eax, dword [0x535944]
sub eax, dword [0x5359b4]
cmp eax, dword [0x5359bc]
jne 0x505920
xor eax, eax
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x50], 2
jge 0x50598b
inc dword [ebp - 0x50]
mov eax, dword [ebp - 8]
mov dword [ebp - 0x84], eax
cmp dword [ebp - 0x84], 0
je 0x5058f9
mov eax, dword [ebp - 0x84]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x84], eax
cmp dword [ebp - 0x84], 2
jle 0x50590e
mov eax, dword [0x53598c]
mov dword [0x53587c], eax
jmp 0x505918
imul eax, dword [ebp - 0x40], 0xd0
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x50], 2
jl 0x5058d3
jmp 0x50598b
mov eax, dword [ebp - 0x14]
sub eax, dword [ebp - 0x20]
mov dword [ebp - 0x38], eax
jmp 0x50598b
xor eax, eax
mov dword [ebp - 0x58], eax
mov eax, dword [0x5359bc]
mov dword [0x535a50], eax
mov eax, dword [0x53587c]
cmp eax, dword [0x535a50]
jle 0x50596d
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0x40]
mov edx, 0x5359e8
mov eax, 0x535974
call fcn.00503774
mov dword [0x5359bc], eax
jmp 0x50596d
mov eax, dword [0x5359e0]
add eax, 0x28
mov dword [ebp - 0xb8], eax
fild dword [ebp - 0xb8]
call fcn.0040762c
mov dword [0x5359bc], eax
xor eax, eax
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x48], 4
jge 0x5059ab
inc dword [ebp - 0x48]
mov eax, dword [0x5359d0]
mov dword [0x53587c], eax
jmp 0x5059ab
imul eax, dword [0x5359f8], 0x1d
mov dword [0x5359f8], eax
push 0x8000
push 0
mov eax, dword [ebp - 0x68]
push eax
call dword [0x5359a8]
mov eax, 0x4a
sub eax, dword [ebp - 0x4c]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x4c]
push eax
mov eax, dword [ebp - 0x34]
push eax
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x34]
call fcn.004f9618
mov dword [ebp - 0x40], eax
mov eax, dword [0x53595c]
call fcn.004071f4
mov dword [0x53595c], eax
mov eax, dword [0x5359c4]
mov dword [0x53596c], eax
mov eax, dword [0x53596c]
cmp eax, dword [0x53595c]
jge 0x505a2e
mov eax, dword [ebp - 0x24]
add eax, 0xe1
mov dword [ebp - 0x44], eax
mov eax, dword [0x5359c4]
call fcn.004071f4
mov dword [0x5359c4], eax
jmp 0x505a4d
xor eax, eax
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x54], 3
jge 0x505a4d
inc dword [ebp - 0x54]
lea eax, [ebp - 8]
mov edx, dword [ebp - 8]
call fcn.0040a01c
cmp dword [ebp - 0x54], 3
jl 0x505a39
mov eax, dword [ebp - 0x2c]
add eax, 0x7c
mov dword [ebp - 0x20], eax
xor eax, eax
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x48], 0xd
jge 0x505a77
inc dword [ebp - 0x48]
mov eax, dword [ebp - 0x18]
add eax, 0xb0
mov dword [ebp - 0x5c], eax
jmp 0x505a77
mov eax, dword [ebp - 0x28]
sub eax, dword [ebp - 0x50]
mov dword [ebp - 0x1c], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x506e80
imul eax, dword [ebp - 0x2c], 0x2a
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x1c]
imul dword [ebp - 0x24]
mov dword [ebp - 0x5c], eax
mov eax, dword [0x535a50]
add eax, dword [0x53592c]
cmp eax, dword [0x53592c]
jne 0x505ab9
mov eax, dword [ebp - 0x20]
add eax, dword [ebp - 0x44]
mov dword [ebp - 0x38], eax
mov eax, dword [0x535984]
call fcn.004071f4
mov dword [0x535984], eax
mov eax, dword [0x5358e4]
mov dword [0x5359ac], eax
mov eax, dword [0x5359ac]
cmp eax, dword [0x535984]
jge 0x505b1a
mov eax, dword [0x5359c4]
call fcn.004071f4
mov dword [0x5359c4], eax
mov eax, dword [0x5359c4]
cmp eax, dword [0x535984]
jge 0x505b11
xor eax, eax
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x50], 7
jge 0x505b1a
inc dword [ebp - 0x50]
cmp dword [ebp - 0x50], 7
jl 0x505b06
jmp 0x505b1a
mov eax, dword [ebp - 0x54]
add eax, dword [ebp - 0x3c]
mov dword [ebp - 0x40], eax
fild dword [0x535a50]
call fcn.00407638
mov dword [0x535864], eax
mov eax, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x68]
mov dword [eax + 4], edx
mov eax, 0x54
sub eax, dword [ebp - 0x5c]
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0xc]
push eax
mov ecx, 1
mov edx, 1
mov eax, dword [ebp - 0xc]
call fcn.0040abd8
xor eax, eax
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 4
jge 0x505b7c
inc dword [ebp - 0x38]
mov eax, dword [ebp - 0x4c]
add eax, dword [ebp - 0x3c]
mov dword [ebp - 0x40], eax
fild dword [ebp - 0x24]
call fcn.0040762c
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x38], 4
jl 0x505b5f
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x58], eax
imul eax, dword [ebp - 0x28], 0x82
mov dword [ebp - 0x14], eax
fild dword [0x535a00]
call fcn.0040762c
mov dword [0x5358e4], eax
lea eax, [ebp - 0xb4]
push eax
call dword [0x5359e4]
mov eax, dword [0x535894]
mov dword [0x53598c], eax
mov eax, dword [0x5359b4]
call fcn.004071f4
mov dword [0x5359b4], eax
mov eax, dword [ebp - 0x50]
add eax, 0x13
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x28]
push eax
mov eax, dword [0x53588c]
push eax
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [ebp - 0x58]
push eax
mov ecx, dword [0x535a30]
mov edx, dword [ebp - 0x2c]
mov eax, dword [0x535a28]
call fcn.00501af4
mov dword [0x5359ac], eax
mov eax, dword [ebp - 0x5c]
add eax, 4
mov dword [ebp - 0x54], eax
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp - 0x44]
mov edx, 0x535964
lea eax, [ebp - 0x54]
call fcn.004f9000
mov dword [0x5358c4], eax
mov eax, dword [ebp - 0x7c]
mov edx, dword [ebp - 0xb0]
mov dword [eax + 0x18], edx
mov eax, dword [ebp - 0x3c]
add eax, 4
mov dword [ebp - 0x28], eax
imul eax, dword [ebp - 0x24], 0x72
mov dword [ebp - 0x30], eax
mov eax, dword [0x53592c]
sub eax, dword [0x535a18]
mov edx, dword [0x5358f4]
sub edx, dword [0x535a18]
cmp eax, edx
jle 0x505c5b
mov eax, dword [ebp - 0x2c]
add eax, 4
mov dword [ebp - 0x38], eax
xor eax, eax
mov dword [ebp - 0x4c], eax
mov eax, 0x10
sub eax, dword [ebp - 0x4c]
cmp eax, 0xd8
jge 0x505cd0
xor eax, eax
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x50], 0xd
jge 0x505cdb
inc dword [ebp - 0x50]
mov eax, dword [0x535a48]
call fcn.004071f4
mov dword [0x535a48], eax
mov eax, dword [0x53598c]
mov dword [0x535864], eax
mov eax, dword [0x535864]
cmp eax, dword [0x535a48]
jle 0x505cc8
mov eax, dword [ebp - 0x50]
push eax
mov eax, dword [ebp - 0x48]
push eax
mov eax, dword [ebp - 0x1c]
push eax
mov ecx, dword [0x535a38]
mov edx, dword [0x53587c]
mov eax, dword [ebp - 0x18]
call fcn.005031c8
mov dword [0x53592c], eax
cmp dword [ebp - 0x50], 0xd
jl 0x505c7a
jmp 0x505cdb
fild dword [ebp - 0x40]
call fcn.00407638
mov dword [ebp - 0x58], eax
lea eax, [ebp - 0x10]
mov edx, dword [ebp - 0x10]
call fcn.0040a01c
inc dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], 0xd
jne 0x505c60
mov eax, dword [ebp - 0x18]
sub eax, 0xfc
mov dword [ebp - 0x54], eax
mov eax, dword [0x53585c]
sub eax, 0x5f
mov dword [0x5358c4], eax
push 4
push 0x1000
mov eax, dword [ebp - 0x64]
mov eax, dword [eax + 0x54]
push eax
mov eax, dword [ebp - 0x68]
push eax
call dword [0x535980]
mov dword [ebp - 0x6c], eax
mov eax, dword [0x5358d4]
sub eax, dword [0x53592c]
cmp eax, dword [0x5359c4]
jne 0x505d97
mov eax, dword [ebp - 0x4c]
add eax, dword [ebp - 0x5c]
cmp eax, dword [ebp - 0x5c]
jle 0x505d62
xor eax, eax
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x54], 9
jge 0x505d62
inc dword [ebp - 0x54]
mov eax, dword [0x535a30]
mov dword [0x53585c], eax
cmp dword [ebp - 0x54], 9
jl 0x505d4f
mov eax, dword [0x53587c]
sub eax, dword [0x535874]
cmp eax, dword [0x53589c]
jne 0x505d7d
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x24], eax
jmp 0x505d97
mov eax, dword [ebp - 0x48]
add eax, 0x20
mov dword [ebp - 0xb8], eax
fild dword [ebp - 0xb8]
call fcn.0040762c
mov dword [ebp - 0x30], eax
mov eax, dword [0x5359b4]
mov dword [0x53597c], eax
mov eax, dword [ebp - 0x38]
add eax, dword [ebp - 0x20]
mov dword [ebp - 0x44], eax
xor eax, eax
mov dword [ebp - 0x40], eax
mov eax, dword [0x5359e8]
sub eax, dword [0x535a30]
cmp eax, 0xbd
jge 0x505de4
xor eax, eax
mov dword [ebp - 0x58], eax
cmp dword [ebp - 0x58], 0
jge 0x505df3
inc dword [ebp - 0x58]
lea eax, [ebp - 8]
mov edx, dword [ebp - 8]
call fcn.0040a01c
jmp 0x505df3
mov eax, dword [0x5358cc]
call fcn.004071f4
mov dword [0x5358cc], eax
xor eax, eax
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 6
jge 0x505e25
inc dword [ebp - 0x34]
mov eax, dword [0x535964]
add eax, 4
mov dword [ebp - 0xb8], eax
fild dword [ebp - 0xb8]
call fcn.00407638
mov dword [0x5359c4], eax
cmp dword [ebp - 0x34], 6
jl 0x505dfe
inc dword [ebp - 0x40]
cmp dword [ebp - 0x40], 9
jne 0x505daf
xor eax, eax
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 1
jge 0x505e4c
inc dword [ebp - 0x2c]
mov eax, dword [0x5359ac]
mov dword [0x53587c], eax
cmp dword [ebp - 0x2c], 1
jl 0x505e39
lea eax, [ebp - 8]
push eax
xor ecx, ecx
mov edx, 1
mov eax, dword [ebp - 8]
call fcn.0040abd8
mov eax, dword [ebp - 0x64]
mov eax, dword [eax + 0x54]
mov dword [ebp - 0x88], eax
mov edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x88]
call fcn.00406fb0
mov eax, dword [ebp - 0x60]
mov eax, dword [eax + 0x3c]
add eax, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x7c]
mov dword [edx], eax
xor eax, eax
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x50], 9
jge 0x505ed6
inc dword [ebp - 0x50]
xor eax, eax
mov dword [ebp - 0x58], eax
mov eax, dword [0x5359c4]
mov dword [0x535a50], eax
mov eax, dword [0x5358fc]
mov dword [0x53586c], eax
mov eax, dword [0x53586c]
cmp eax, dword [0x535a50]
jle 0x505ed0
imul eax, dword [ebp - 0x48], 0x36
mov dword [ebp - 0x20], eax
jmp 0x505ed0
cmp dword [ebp - 0x50], 9
jl 0x505e95
fild dword [ebp - 0x14]
call fcn.00407638
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x44]
add eax, 4
mov dword [ebp - 0x3c], eax
lea eax, [ebp - 0xc]
push eax
xor ecx, ecx
mov edx, 1
mov eax, dword [ebp - 8]
call fcn.0040abd8
mov eax, dword [ebp - 0x34]
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x18]
sub eax, 0xb
mov dword [ebp - 0x4c], eax
mov ecx, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x64]
mov eax, dword [ebp + 8]
call fcn.004f988c
test al, al
jne 0x506030
imul eax, dword [ebp - 0x30], 0xf7
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x20]
imul dword [ebp - 0x58]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x24]
shl eax, 3
lea eax, [eax + eax*4]
mov dword [ebp - 0x3c], eax
fild dword [ebp - 0x28]
call fcn.00407638
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x54]
add eax, 4
mov dword [ebp - 0xb8], eax
fild dword [ebp - 0xb8]
call fcn.00407638
mov dword [ebp - 0x48], eax
fild dword [ebp - 0x14]
call fcn.0040762c
mov dword [ebp - 0x50], eax
call fcn.004f89c8
fild dword [ebp - 0x34]
call fcn.0040762c
mov dword [ebp - 0x24], eax
mov eax, dword [0x5358dc]
call fcn.004071f4
mov dword [0x5358dc], eax
xor eax, eax
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x4c]
mov dword [ebp - 0x40], eax
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 0x10
jne 0x505f98
mov eax, dword [ebp - 0x50]
add eax, 0x28
mov dword [ebp - 0x3c], eax
mov eax, dword [0x535864]
push eax
mov eax, dword [0x5358ac]
push eax
mov eax, dword [0x535a18]
push eax
mov ecx, dword [0x535984]
mov edx, dword [0x5358c4]
mov eax, dword [ebp - 0x54]
call fcn.005031c8
mov eax, dword [0x5359d0]
mov dword [0x5359d0], eax
mov eax, dword [0x5359d0]
cmp eax, dword [0x5358dc]
jge 0x506011
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 8
jge 0x506030
inc dword [ebp - 0x18]
lea eax, [ebp - 8]
mov edx, dword [ebp - 0xc]
call fcn.0040a01c
cmp dword [ebp - 0x18], 8
jl 0x505ffb
jmp 0x506030
mov eax, dword [ebp - 0x4c]
push eax
mov eax, dword [0x5358ac]
push eax
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x54]
mov eax, dword [0x5358cc]
call fcn.004fd680
mov dword [0x535a00], eax
mov eax, dword [ebp - 0x50]
add eax, 0x79
mov dword [ebp - 0xb8], eax
fild dword [ebp - 0xb8]
call fcn.0040762c
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x34]
sub eax, 0x19
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x38]
imul dword [ebp - 0x2c]
mov dword [ebp - 0x5c], eax
mov eax, dword [0x535a18]
call fcn.004071f4
mov dword [0x535a18], eax
mov eax, dword [0x53592c]
mov dword [0x535a30], eax
mov eax, dword [ebp - 0x28]
imul dword [ebp - 0x54]
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x64]
mov edx, dword [ebp - 0x68]
sub edx, dword [eax + 0x34]
mov dword [ebp - 0x70], edx
cmp dword [ebp - 0x70], 0
je 0x506160
mov eax, dword [ebp - 0x14]
add eax, 4
mov dword [ebp - 0xb8], eax
fild dword [ebp - 0xb8]
call fcn.00407638
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x48]
sub eax, dword [ebp - 0x18]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x24]
add eax, 0x24
mov dword [ebp - 0xb8], eax
fild dword [ebp - 0xb8]
call fcn.0040762c
mov dword [ebp - 0x44], eax
mov eax, dword [0x5359e0]
call fcn.004071f4
mov dword [0x5359e0], eax
mov eax, dword [ebp - 0x38]
imul dword [ebp - 0x30]
mov dword [ebp - 0x50], eax
mov eax, dword [0x535a50]
mov dword [0x535a30], eax
mov edx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x7c]
call fcn.004fe434
mov edx, dword [ebp - 0x7c]
mov byte [edx + 0x15], al
mov eax, dword [ebp - 0x28]
add eax, dword [ebp - 0x54]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x3c]
add eax, 0x73
mov dword [ebp - 0x5c], eax
mov eax, dword [0x53592c]
mov dword [0x5358fc], eax
xor eax, eax
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 4
jge 0x506148
inc dword [ebp - 0x30]
mov eax, dword [ebp - 0x4c]
sub eax, 0xff
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x18]
sub eax, 0x45
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0x30], 4
jl 0x50612b
mov eax, dword [ebp - 0x14]
sub eax, dword [ebp - 0x2c]
mov dword [ebp - 0x50], eax
mov eax, dword [0x53595c]
mov dword [0x535a30], eax
jmp 0x506241
mov eax, dword [ebp - 0x50]
add eax, dword [ebp - 0x58]
mov dword [ebp - 0x2c], eax
xor eax, eax
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0xf
jge 0x5061a4
inc dword [ebp - 0x30]
mov eax, dword [ebp - 0x28]
sub eax, 0xc2
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x48]
push eax
lea ecx, [ebp - 0x54]
lea edx, [ebp - 0x38]
mov eax, 0x535964
call fcn.004ff010
cmp dword [ebp - 0x30], 0xf
jl 0x506174
fild dword [ebp - 0x1c]
call fcn.00407638
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x20]
add eax, dword [ebp - 0x40]
mov dword [ebp - 0x5c], eax
lea eax, [ebp - 0x10]
mov edx, dword [ebp - 0x10]
call fcn.0040a01c
mov eax, dword [0x5359d0]
mov dword [0x535a50], eax
mov eax, dword [ebp - 0x7c]
mov byte [eax + 0x15], 1
mov eax, dword [ebp - 0x54]
add eax, dword [ebp - 0x4c]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x54]
push eax
mov eax, dword [ebp - 0x28]
push eax
mov eax, dword [ebp - 0x18]
push eax
mov ecx, dword [0x5358f4]
mov edx, dword [0x5358cc]
mov eax, dword [0x535884]
call fcn.005031c8
push 0x535a48
lea eax, [ebp - 0x58]
push eax
mov ecx, 0x5359e8
mov edx, 0x5358ac
mov eax, 0x535a48
call fcn.004f9000
mov dword [ebp - 0x40], eax
mov eax, dword [0x535964]
call fcn.004071f4
mov dword [0x535964], eax
mov eax, dword [ebp - 0x34]
sub eax, dword [ebp - 0x1c]
mov dword [ebp - 0x38], eax
mov eax, dword [0x53585c]
mov dword [0x5359ac], eax
mov eax, dword [ebp - 0x7c]
push eax
call fcn.004ff4d0
test al, al
jne 0x50638d
mov eax, dword [ebp - 0x28]
sub eax, 0xe4
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x58]
sub eax, dword [ebp - 0x44]
mov dword [ebp - 0x24], eax
mov eax, dword [0x5359ac]
sub eax, dword [0x53590c]
cmp eax, dword [0x5358e4]
jne 0x50629d
mov eax, dword [0x53587c]
mov dword [0x535904], eax
mov eax, dword [ebp - 0x48]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x34], eax
mov eax, dword [0x535964]
call fcn.004071f4
mov dword [0x535964], eax
jmp 0x5062df
mov eax, dword [ebp - 0x38]
add eax, 0xee
mov dword [ebp - 0x18], eax
xor eax, eax
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x50], 0xd
jge 0x5062d2
inc dword [ebp - 0x50]
lea eax, [ebp - 8]
push eax
mov ecx, 1
mov edx, 1
mov eax, dword [ebp - 0xc]
call fcn.0040abd8
cmp dword [ebp - 0x50], 0xd
jl 0x5062b3
lea eax, [ebp - 0xc]
mov edx, 0x506f98
call fcn.0040a01c
mov eax, dword [0x5358bc]
sub eax, dword [0x535884]
mov dword [0x535864], eax
mov eax, dword [0x53594c]
add eax, 0x67
mov dword [ebp - 0xb8], eax
fild dword [ebp - 0xb8]
call fcn.0040762c
mov dword [0x5358ec], eax
imul eax, dword [0x5358e4], 0x31
mov dword [0x535964], eax
call fcn.004f89c8
xor eax, eax
mov dword [ebp - 0x58], eax
mov eax, dword [0x535a40]
mov dword [0x53585c], eax
jmp 0x506338
mov eax, dword [0x53588c]
call fcn.004071f4
mov dword [0x53588c], eax
mov eax, dword [ebp - 0x20]
add eax, 0x99
cmp eax, dword [ebp - 0x18]
jge 0x50636e
mov eax, dword [ebp - 0x4c]
add eax, 4
mov dword [ebp - 0xb8], eax
fild dword [ebp - 0xb8]
call fcn.00407638
mov dword [ebp - 0x24], eax
mov eax, dword [0x535a28]
mov dword [0x5358fc], eax
mov eax, dword [ebp - 0x50]
sub eax, 0xf9
mov dword [ebp - 0x30], eax
mov eax, dword [0x5358fc]
mov dword [0x53593c], eax
mov eax, dword [0x535a08]
mov dword [0x5359d8], eax
mov eax, dword [0x5359e0]
call fcn.004071f4
mov dword [0x5359e0], eax
mov eax, dword [0x5359d8]
cmp eax, dword [0x5359e0]
jge 0x506414
xor eax, eax
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x54], 2
jge 0x5063ff
inc dword [ebp - 0x54]
mov eax, dword [0x535944]
mov dword [0x53585c], eax
mov eax, dword [0x5359d8]
cmp eax, dword [0x53585c]
jle 0x5063f9
mov eax, dword [0x535a18]
push eax
mov eax, dword [ebp - 0x50]
push eax
mov eax, dword [ebp - 0x24]
push eax
mov ecx, dword [ebp - 0x2c]
mov edx, dword [0x5359b4]
mov eax, dword [0x5359e0]
call fcn.005031c8
cmp dword [ebp - 0x54], 2
jl 0x5063be
mov eax, dword [0x535984]
mov dword [0x5358ec], eax
mov eax, dword [ebp - 0x34]
sub eax, dword [ebp - 0x48]
mov dword [ebp - 0x30], eax
jmp 0x506428
mov eax, 0xc1
sub eax, dword [ebp - 0x40]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x18]
add eax, 0x49
mov dword [ebp - 0x44], eax
lea eax, [ebp - 0x10]
mov edx, 0x506fdc
call fcn.0040a01c
mov eax, dword [ebp - 0x24]
add eax, 4
mov dword [ebp - 0xb8], eax
fild dword [ebp - 0xb8]
call fcn.00407638
mov dword [ebp - 0x58], eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp - 0x3c]
push eax
mov ecx, 0x53592c
mov edx, 0x5359bc
mov eax, 0x535934
call fcn.004ff010
mov eax, dword [0x53594c]
imul dword [0x535984]
mov dword [0x5358d4], eax
mov eax, dword [0x53589c]
sub eax, 0x13
mov dword [0x53595c], eax
mov eax, dword [ebp - 0x7c]
call fcn.004fbce4
test al, al
jne 0x50657b
lea eax, [ebp - 8]
mov edx, 0x507000
call fcn.0040a01c
fild dword [ebp - 0x4c]
call fcn.00407638
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x30]
add eax, 0xd8
mov dword [ebp - 0x24], eax
mov eax, dword [0x535a28]
mov dword [0x5358e4], eax
xor eax, eax
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0xe
jge 0x5064e3
inc dword [ebp - 0x2c]
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x2c], 0xe
jl 0x5064d4
lea eax, [ebp - 0x1c]
push eax
push 0x5358c4
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x54]
mov edx, 0x535934
mov eax, 0x53597c
call fcn.004eb6e8
call fcn.004f89c8
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 8]
call fcn.0040aba0
jne 0x50651e
mov eax, dword [0x535a48]
mov dword [0x53586c], eax
mov eax, dword [0x535934]
mov dword [0x535894], eax
mov eax, dword [ebp - 0x20]
add eax, 0xa3
cmp eax, dword [ebp - 0x28]
jge 0x50654f
mov eax, dword [ebp - 0x5c]
add eax, 4
mov dword [ebp - 0xb8], eax
fild dword [ebp - 0xb8]
call fcn.00407638
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x28]
add eax, dword [ebp - 0x20]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x58]
add eax, 0xff
mov dword [ebp - 0x34], eax
xor eax, eax
mov dword [ebp - 0x38], eax
mov eax, dword [0x53587c]
mov dword [0x535974], eax
inc dword [ebp - 0x38]
cmp dword [ebp - 0x38], 7
jne 0x506568
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax + 4]
call fcn.00504048
test al, al
jne 0x506748
mov eax, dword [ebp - 0x20]
add eax, 4
mov dword [ebp - 0xb8], eax
fild dword [ebp - 0xb8]
call fcn.00407638
mov dword [ebp - 0x1c], eax
xor eax, eax
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0xa
jge 0x5065c6
inc dword [ebp - 0x24]
mov eax, dword [0x53589c]
mov dword [0x5358dc], eax
cmp dword [ebp - 0x24], 0xa
jl 0x5065b3
mov eax, dword [0x535a48]
mov dword [0x53594c], eax
xor eax, eax
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0xc
jge 0x5065ee
inc dword [ebp - 0x3c]
mov eax, dword [0x53588c]
mov dword [0x5359b4], eax
cmp dword [ebp - 0x3c], 0xc
jl 0x5065db
mov eax, dword [ebp - 0x54]
sub eax, dword [ebp - 0x34]
cmp eax, dword [ebp - 0x50]
jne 0x50661a
xor eax, eax
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x54], 1
jge 0x50661a
inc dword [ebp - 0x54]
lea eax, [ebp - 8]
mov edx, 0x507054
call fcn.0040a01c
cmp dword [ebp - 0x54], 1
jl 0x506604
mov eax, dword [0x5358cc]
call fcn.004071f4
mov dword [0x5358cc], eax
mov eax, dword [ebp - 0x44]
imul dword [ebp - 0x4c]
mov dword [ebp - 0x48], eax
mov eax, dword [0x535864]
mov dword [0x53592c], eax
call fcn.004f89c8
mov eax, dword [ebp - 0x4c]
add eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x1c]
jle 0x5066df
xor eax, eax
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x54], 0xd
jge 0x50669a
inc dword [ebp - 0x54]
mov eax, dword [ebp - 8]
mov dword [ebp - 0x8c], eax
cmp dword [ebp - 0x8c], 0
je 0x506681
mov eax, dword [ebp - 0x8c]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x8c], eax
cmp dword [ebp - 0x8c], 2
jne 0x506694
mov eax, dword [0x535984]
mov dword [0x535874], eax
cmp dword [ebp - 0x54], 0xd
jl 0x50665b
mov eax, 0xad
sub eax, dword [ebp - 0x40]
mov dword [ebp - 0x24], eax
mov eax, dword [0x53587c]
mov dword [0x5358ec], eax
xor eax, eax
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0xe
jge 0x5066d0
inc dword [ebp - 0x30]
mov eax, dword [ebp - 0x2c]
add eax, 0xf2
mov dword [ebp - 0x38], eax
jmp 0x5066d0
mov eax, dword [0x5358ac]
sub eax, 0xdc
mov dword [0x535a18], eax
mov eax, dword [ebp - 0x5c]
sub eax, dword [ebp - 0x20]
mov dword [ebp - 0x50], eax
mov eax, dword [0x5358ec]
add eax, dword [0x535984]
mov edx, dword [0x53595c]
add edx, dword [0x5358ec]
cmp eax, edx
jge 0x50671d
fild dword [ebp - 0x18]
call fcn.0040762c
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0xc]
mov edx, 0x50707c
call fcn.0040a01c
jmp 0x506729
mov eax, dword [0x5359c4]
add eax, eax
mov dword [0x535874], eax
mov eax, dword [0x53595c]
sub eax, dword [0x5359e0]
mov dword [0x5358d4], eax
mov eax, dword [0x53590c]
call fcn.004071f4
mov dword [0x53590c], eax
mov eax, dword [0x5359e8]
mov dword [0x5359e8], eax
mov eax, dword [0x535984]
mov dword [0x5359f8], eax
mov eax, dword [0x5359e8]
cmp eax, dword [0x5359f8]
jge 0x506800
xor eax, eax
mov dword [ebp - 0x58], eax
mov eax, dword [0x5359e0]
mov dword [0x535a50], eax
mov eax, dword [0x5359e8]
cmp eax, dword [0x535a50]
jle 0x506799
mov edx, dword [0x5359f8]
mov eax, dword [ebp - 0x50]
call fcn.004f8ad0
jmp 0x5067a0
imul eax, dword [ebp - 0x24], 0x29
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x18]
add eax, 4
mov dword [ebp - 0x34], eax
mov eax, dword [0x53594c]
call fcn.004071f4
mov dword [0x53594c], eax
inc dword [ebp - 0x58]
cmp dword [ebp - 0x58], 2
jne 0x506772
mov eax, dword [ebp - 0x44]
push eax
mov eax, dword [0x53590c]
push eax
mov eax, dword [0x53595c]
push eax
mov ecx, dword [0x535894]
mov edx, dword [0x5358a4]
mov eax, dword [ebp - 0x38]
call fcn.005031c8
lea eax, [ebp - 0x10]
mov edx, 0x5070bc
call fcn.0040a01c
mov eax, dword [ebp - 0x54]
sub eax, 0x25
mov dword [ebp - 0x38], eax
call fcn.004fe274
xor eax, eax
mov dword [ebp - 0x5c], eax
lea eax, [ebp - 8]
mov edx, dword [ebp - 8]
call fcn.0040a01c
mov eax, dword [0x535a50]
push eax
mov eax, dword [0x53592c]
push eax
mov eax, dword [0x53588c]
push eax
mov ecx, dword [0x535944]
mov edx, dword [0x535884]
mov eax, dword [0x5358f4]
call fcn.004fafb4
mov dword [0x53595c], eax
mov eax, dword [ebp - 8]
mov edx, 0x5070e8
call fcn.0040aba0
jne 0x506857
mov eax, dword [ebp - 0x2c]
sub eax, 0xfc
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x20]
imul dword [ebp - 0x50]
mov dword [ebp - 0x14], eax
jmp 0x50686b
mov eax, dword [0x535974]
mov dword [0x5359ac], eax
imul eax, dword [0x5358b4], 0x4b
mov dword [0x535a38], eax
mov eax, dword [0x535864]
mov dword [0x535894], eax
mov eax, dword [0x53597c]
push eax
mov ecx, dword [0x535974]
mov edx, dword [0x5358bc]
mov eax, dword [0x535864]
call fcn.00504994
mov eax, dword [ebp - 0x7c]
call fcn.004fd860
test al, al
jne 0x506aa0
mov eax, dword [0x5359e8]
mov dword [0x5359d0], eax
mov eax, dword [0x535984]
mov dword [0x5359e0], eax
mov eax, dword [0x5359d0]
cmp eax, dword [0x5359e0]
jge 0x50699d
xor eax, eax
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x54], 1
jge 0x506935
inc dword [ebp - 0x54]
mov eax, dword [0x535a20]
mov edx, dword [0x535994]
call fcn.0040aba0
jne 0x50690d
mov eax, dword [0x53587c]
call fcn.004071f4
mov dword [0x53587c], eax
jmp 0x50691c
mov eax, dword [0x5358cc]
call fcn.004071f4
mov dword [0x5358cc], eax
mov ecx, dword [ebp - 0x2c]
mov edx, dword [0x53588c]
mov eax, dword [0x5358e4]
call fcn.004f92d4
cmp dword [ebp - 0x54], 1
jl 0x5068e7
mov eax, dword [ebp - 0x3c]
sub eax, dword [ebp - 0x24]
cmp eax, 0xdc
jge 0x50694e
mov eax, dword [0x535a08]
mov dword [0x53598c], eax
jmp 0x50698a
mov eax, dword [0x5359d0]
sub eax, dword [0x5358ec]
mov edx, dword [0x5358d4]
sub edx, dword [0x5358ec]
cmp eax, edx
jle 0x50698a
xor eax, eax
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0x44], 0xa
jge 0x50698a
inc dword [ebp - 0x44]
lea eax, [ebp - 8]
mov edx, 0x507110
call fcn.0040a01c
cmp dword [ebp - 0x44], 0xa
jl 0x506974
imul eax, dword [ebp - 0x40], 0x31
mov dword [ebp - 0x34], eax
mov eax, dword [0x53587c]
mov dword [0x53595c], eax
jmp 0x5069d3
fild dword [ebp - 0x20]
call fcn.0040762c
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x24]
add eax, 4
mov dword [ebp - 0x4c], eax
mov eax, dword [0x535a00]
call fcn.004071f4
mov dword [0x535a00], eax
mov eax, dword [ebp - 0x14]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x58], eax
mov eax, dword [0x5358ac]
mov dword [0x535874], eax
mov eax, dword [ebp - 0x30]
push eax
mov eax, dword [0x535944]
push eax
mov eax, dword [ebp - 0x58]
push eax
mov ecx, dword [ebp - 0x14]
mov edx, dword [0x535934]
mov eax, dword [ebp - 0x4c]
call fcn.00504b60
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [ebp - 0x58]
push eax
mov eax, dword [ebp - 0x3c]
push eax
mov eax, dword [0x535934]
push eax
mov ecx, dword [0x53585c]
mov edx, dword [ebp - 0x58]
mov eax, dword [0x5358ec]
call fcn.00501af4
mov dword [0x5358c4], eax
mov eax, dword [0x535934]
imul dword [0x535884]
mov dword [0x53596c], eax
mov eax, dword [ebp - 0x3c]
add eax, 4
mov dword [ebp - 0x48], eax
mov eax, dword [0x535a30]
cmp eax, dword [0x535974]
jle 0x506a91
mov eax, dword [ebp - 8]
mov dword [ebp - 0x90], eax
cmp dword [ebp - 0x90], 0
je 0x506a68
mov eax, dword [ebp - 0x90]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x90], eax
cmp dword [ebp - 0x90], 0x32
jne 0x506a82
mov eax, dword [0x53586c]
call fcn.004071f4
mov dword [0x53586c], eax
jmp 0x506a9b
mov edx, dword [ebp - 0x30]
mov eax, dword [0x5358a4]
call fcn.004f8804
jmp 0x506a9b
mov eax, dword [0x535864]
mov dword [0x5358fc], eax
call fcn.004f89c8
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax]
cmp dword [eax + 0x28], 0
je 0x506d2e
mov eax, dword [0x5358e4]
call fcn.004071f4
mov dword [0x5358e4], eax
mov eax, dword [ebp - 0x4c]
add eax, 0x46
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x24]
add eax, 4
mov dword [ebp - 0xb8], eax
fild dword [ebp - 0xb8]
call fcn.00407638
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x58]
add eax, 0x45
mov dword [ebp - 0x38], eax
mov eax, dword [0x53596c]
sub eax, dword [0x535a40]
cmp eax, 0xe5
jge 0x506b05
mov eax, dword [ebp - 0x14]
add eax, 4
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x48]
imul dword [ebp - 0x18]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax]
mov eax, dword [eax + 0x28]
add eax, dword [ebp - 0x68]
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 0x50]
add eax, 0xd7
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x38]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x44]
add eax, 0xf7
mov dword [ebp - 0x30], eax
mov eax, dword [0x535984]
mov dword [0x53593c], eax
mov eax, dword [0x53594c]
call fcn.004071f4
mov dword [0x53594c], eax
mov eax, dword [0x53593c]
cmp eax, dword [0x53594c]
jge 0x506b68
imul eax, dword [ebp - 0x58], 0x39
mov dword [ebp - 0x40], eax
mov eax, dword [0x53587c]
mov dword [0x5359d8], eax
mov eax, dword [0x535a30]
mov dword [0x5359e8], eax
push 0
push 1
mov eax, dword [ebp - 0x68]
push eax
call dword [ebp - 0x74]
cmp eax, 1
sbb eax, eax
inc eax
mov byte [ebp - 0x75], al
mov edx, dword [0x535a00]
mov eax, dword [0x5359c4]
call fcn.004f8804
mov dword [0x5358e4], eax
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x18]
sub eax, dword [ebp - 0x4c]
mov dword [ebp - 0x14], eax
xor eax, eax
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 1
jge 0x506bd9
inc dword [ebp - 0x38]
mov eax, dword [ebp - 0x50]
add eax, 4
mov dword [ebp - 0x3c], eax
jmp 0x506bd9
mov eax, dword [0x5359e8]
mov dword [0x5359d0], eax
cmp byte [ebp - 0x75], 0
jne 0x506c39
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x506e80
mov eax, dword [0x53588c]
mov dword [0x5358ec], eax
mov eax, dword [ebp - 0x5c]
add eax, 0x50
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x40]
add eax, 0x48
mov dword [ebp - 0xb8], eax
fild dword [ebp - 0xb8]
call fcn.0040762c
mov dword [ebp - 0x34], eax
xor eax, eax
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 1
jge 0x506c8c
inc dword [ebp - 0x3c]
mov eax, dword [ebp - 0x2c]
add eax, dword [ebp - 0x48]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x50]
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x3c], 1
jl 0x506c71
mov eax, dword [0x535a28]
mov dword [0x535a38], eax
mov eax, dword [ebp - 0x54]
add eax, 0xf2
mov dword [ebp - 0xb8], eax
fild dword [ebp - 0xb8]
call fcn.0040762c
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x7c]
mov byte [eax + 0x14], 1
fild dword [ebp - 0x50]
call fcn.00407638
mov dword [ebp - 0x38], eax
mov eax, dword [0x53596c]
cmp eax, dword [0x53593c]
jle 0x506cdb
mov eax, dword [0x535894]
mov dword [0x535984], eax
mov edx, dword [0x53588c]
mov eax, dword [ebp - 0x44]
call fcn.004f8ad0
mov dword [ebp - 0x20], eax
xor eax, eax
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], 4
jge 0x506d1b
inc dword [ebp - 0x4c]
xor eax, eax
mov dword [ebp - 0x58], eax
lea eax, [ebp - 8]
mov edx, 0x50714c
call fcn.0040a01c
inc dword [ebp - 0x58]
cmp dword [ebp - 0x58], 0xa
jne 0x506cff
cmp dword [ebp - 0x4c], 4
jl 0x506cf7
mov eax, dword [ebp - 0x2c]
sub eax, dword [ebp - 0x54]
mov dword [ebp - 0x24], eax
imul eax, dword [ebp - 0x18], 0x88
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x2c]
sub eax, dword [ebp - 0x3c]
mov dword [ebp - 0x48], eax
xor eax, eax
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], 0
jge 0x506da6
inc dword [ebp - 0x4c]
xor eax, eax
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x54], 7
jge 0x506da0
inc dword [ebp - 0x54]
mov eax, dword [0x5359f8]
mov dword [0x535a48], eax
mov eax, dword [0x53593c]
mov dword [0x53586c], eax
mov eax, dword [0x53586c]
cmp eax, dword [0x535a48]
jle 0x506d9a
mov eax, dword [0x5358a4]
push eax
mov eax, dword [ebp - 0x24]
push eax
mov eax, dword [0x5359ac]
push eax
mov ecx, dword [0x535964]
mov edx, dword [0x53595c]
mov eax, dword [0x535934]
call fcn.005031c8
cmp dword [ebp - 0x54], 7
jl 0x506d50
cmp dword [ebp - 0x4c], 0
jl 0x506d42
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x38], eax
xor eax, eax
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x44], eax
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], 7
jne 0x506db1
mov eax, dword [ebp - 0x1c]
add eax, dword [ebp - 0x30]
mov dword [ebp - 0x14], eax
mov eax, dword [0x53585c]
add eax, 0x5b
mov dword [ebp - 0xb8], eax
fild dword [ebp - 0xb8]
call fcn.0040762c
mov dword [0x5358bc], eax
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x4c]
add eax, 4
mov dword [ebp - 0xb8], eax
fild dword [ebp - 0xb8]
call fcn.00407638
mov dword [ebp - 0x44], eax
mov eax, dword [0x53592c]
mov dword [0x5359bc], eax
lea eax, [ebp - 0x10]
push eax
xor ecx, ecx
mov edx, 1
mov eax, dword [ebp - 8]
call fcn.0040abd8
mov eax, dword [0x535a50]
push eax
mov eax, dword [ebp - 0x48]
push eax
mov eax, dword [0x535974]
push eax
mov ecx, dword [ebp - 0x58]
mov edx, dword [0x53595c]
mov eax, dword [0x5358cc]
call fcn.004fafb4
imul eax, dword [ebp - 0x28], 0xd7
mov dword [ebp - 0x50], eax
fild dword [ebp - 0x34]
call fcn.00407638
mov dword [ebp - 0x54], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x506e80
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x506ea2
lea eax, [ebp - 0x10]
mov edx, 3
call fcn.00409c54
ret