Function at 0x504fb0
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff3c
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 0x5073e4
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x533a50]
call fcn.004071f4
mov dword [0x533a50], eax
mov eax, dword [0x533a50]
call fcn.004071f4
mov dword [0x533a50], eax
mov eax, dword [0x533a50]
cmp eax, dword [0x533a50]
jle 0x50501b
lea eax, [ebp - 8]
mov edx, 0x507404
call fcn.0040a01c
mov eax, dword [ebp - 0x54]
lea eax, [eax + eax*2]
lea eax, [eax + eax*8]
mov dword [ebp - 0x1c], eax
jmp 0x505031
fild dword [ebp - 0x14]
call fcn.0040762c
mov dword [ebp - 0x28], eax
mov eax, 0x80
sub eax, dword [ebp - 0x44]
mov dword [ebp - 0x2c], eax
mov eax, dword [0x5339d0]
add eax, 0x83
cmp eax, dword [0x53398c]
jge 0x505088
mov eax, dword [0x5339e0]
sub eax, dword [0x53396c]
cmp eax, 0xe9
jge 0x505078
xor eax, eax
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 1
jge 0x505088
inc dword [ebp - 0x3c]
lea eax, [ebp - 8]
mov edx, 0x507450
call fcn.0040a01c
cmp dword [ebp - 0x3c], 1
jl 0x505060
jmp 0x505088
mov eax, dword [0x53396c]
add eax, dword [0x53390c]
mov dword [0x533944], eax
mov eax, dword [0x53395c]
mov dword [0x5339b4], eax
mov eax, dword [0x533a00]
imul dword [0x533a28]
mov dword [0x53385c], eax
xor eax, eax
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x40]
sub eax, dword [ebp - 0x28]
mov dword [ebp - 0x30], eax
xor eax, eax
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 4
jge 0x5050cf
inc dword [ebp - 0x34]
fild dword [ebp - 0x48]
call fcn.00407638
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x34], 4
jl 0x5050bb
lea eax, [ebp - 0x50]
push eax
push 0x5339bc
push 0x5338bc
push 0x5339e8
mov ecx, 0x5339bc
lea edx, [ebp - 0x34]
mov eax, 0x533974
call fcn.004ff2b0
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x1c]
sub eax, 0x1b
mov dword [ebp - 0x4c], eax
imul eax, dword [0x5339bc], 0xfc
mov dword [0x53388c], eax
xor eax, eax
mov dword [ebp - 0x38], eax
imul eax, dword [0x5338a4], 0x93
mov dword [0x533904], eax
inc dword [ebp - 0x38]
cmp dword [ebp - 0x38], 9
jne 0x505114
xor eax, eax
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x4c]
sub eax, dword [ebp - 0x44]
cmp eax, dword [ebp - 0x4c]
jge 0x505185
xor eax, eax
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x50], 9
jge 0x505178
inc dword [ebp - 0x50]
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [0x533884]
push eax
mov eax, dword [0x53395c]
push eax
mov ecx, dword [0x5339f8]
mov edx, dword [0x5339c4]
mov eax, dword [ebp - 0x14]
call fcn.004fac14
cmp dword [ebp - 0x50], 9
jl 0x505147
mov eax, 0xc9
sub eax, dword [ebp - 0x20]
mov dword [ebp - 0x38], eax
jmp 0x5051d1
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x44], eax
xor eax, eax
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x54], 0xc
jge 0x5051ba
inc dword [ebp - 0x54]
xor eax, eax
mov dword [ebp - 0x58], eax
lea eax, [ebp - 8]
mov edx, 0x507478
call fcn.0040a01c
inc dword [ebp - 0x58]
cmp dword [ebp - 0x58], 0xe
jne 0x50519e
cmp dword [ebp - 0x54], 0xc
jl 0x505196
xor eax, eax
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x4c]
add eax, dword [ebp - 0x14]
mov dword [ebp - 0x18], eax
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], 0xf
jne 0x5051bf
mov eax, dword [0x533874]
mov dword [0x5339f8], eax
mov eax, dword [0x533a28]
mov dword [0x533a08], eax
mov eax, dword [0x533a08]
cmp eax, dword [0x5339f8]
jge 0x505244
mov eax, dword [0x533a20]
mov edx, 0x50749c
call fcn.0040aba0
jne 0x505210
lea eax, [ebp - 8]
mov edx, dword [ebp - 8]
call fcn.0040a01c
jmp 0x505227
push 0x53397c
lea ecx, [ebp - 0x28]
mov edx, 0x53394c
mov eax, 0x533a30
call fcn.004fa3bc
lea eax, [ebp - 8]
mov edx, dword [ebp - 0x10]
call fcn.0040a01c
fild dword [0x533894]
call fcn.0040762c
mov dword [0x533964], eax
jmp 0x505251
mov eax, dword [0x53397c]
lea eax, [eax + eax*8]
mov dword [0x533a00], eax
mov eax, dword [0x53387c]
add eax, 0xa0
mov dword [0x53388c], eax
call fcn.004fd838
mov dword [0x5339ac], eax
mov eax, dword [0x533a18]
imul dword [0x533a40]
mov dword [0x5338e4], eax
xor eax, eax
push ebp
push 0x5072e8
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x50], 0xf
jge 0x5052e1
inc dword [ebp - 0x50]
mov eax, dword [ebp - 0x28]
add eax, 4
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x2c]
sub eax, 0x33
mov dword [ebp - 0x44], eax
mov eax, 0xf1
sub eax, dword [0x533a00]
mov dword [0x5338a4], eax
xor eax, eax
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 7
jge 0x5052db
inc dword [ebp - 0x24]
imul eax, dword [0x5338cc], 0xec
mov dword [0x53398c], eax
cmp dword [ebp - 0x24], 7
jl 0x5052c3
cmp dword [ebp - 0x50], 0xf
jl 0x505293
mov eax, dword [0x5338c4]
mov dword [0x533a00], eax
lea ecx, [ebp - 0x58]
lea edx, [ebp - 0x2c]
mov eax, 0x533974
call fcn.004f8a1c
fild dword [0x5339c4]
call fcn.0040762c
mov dword [0x53388c], eax
mov eax, dword [0x53395c]
imul dword [0x5339c4]
mov dword [0x5338ec], eax
mov eax, dword [0x53387c]
add eax, dword [0x5338fc]
cmp eax, dword [0x5338fc]
jne 0x50533f
mov eax, dword [0x53393c]
call fcn.004071f4
mov dword [0x53393c], eax
jmp 0x50534f
mov eax, dword [0x5338dc]
sub eax, dword [0x5338a4]
mov dword [0x5339d8], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x5c]
cmp word [eax], 0x5a4d
je 0x50548e
mov eax, dword [ebp - 0x28]
shl eax, 2
lea eax, [eax + eax*4]
mov dword [ebp - 0x24], eax
fild dword [ebp - 0x40]
call fcn.0040762c
mov dword [ebp - 0x2c], eax
fild dword [ebp - 0x58]
call fcn.0040762c
mov dword [ebp - 0x30], eax
mov eax, 0xc7
sub eax, dword [ebp - 0x1c]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x18]
add eax, dword [ebp - 0x48]
mov dword [ebp - 0x44], eax
lea eax, [ebp - 0x10]
mov edx, 0x5074c8
call fcn.0040a01c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5073c9
lea eax, [ebp - 8]
mov edx, 0x5074ec
call fcn.0040a01c
mov eax, dword [ebp - 0x50]
sub eax, 0xdb
mov dword [ebp - 0x20], eax
lea eax, [ebp - 8]
push eax
mov ecx, 1
mov edx, 1
mov eax, dword [ebp - 0xc]
call fcn.0040abd8
mov eax, dword [ebp - 0x40]
imul dword [ebp - 0x44]
mov dword [ebp - 0x28], eax
mov eax, dword [0x5339f8]
mov dword [0x5338f4], eax
xor eax, eax
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0xa
jge 0x5054ed
inc dword [ebp - 0x30]
mov eax, dword [0x533894]
mov dword [0x533944], eax
cmp dword [ebp - 0x30], 0xa
jl 0x5054da
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x3c]
add eax, dword [ebp + 8]
mov dword [ebp - 0x60], eax
xor eax, eax
mov dword [ebp - 0x54], eax
jmp 0x505507
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x28], eax
imul eax, dword [ebp - 0x38], 0x8c
mov dword [ebp - 0x2c], eax
lea edx, [ebp - 0x20]
mov eax, 0x53394c
call fcn.00504e2c
mov dword [0x53395c], eax
mov eax, dword [ebp - 0x24]
add eax, 0xfc
mov dword [ebp - 0xc4], eax
fild dword [ebp - 0xc4]
call fcn.0040762c
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x18]
sub eax, 0x13
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x60]
cmp dword [eax], 0x4550
je 0x505566
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5073c9
mov eax, dword [ebp - 0x3c]
add eax, 0x2c
mov dword [ebp - 0x24], eax
xor eax, eax
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 4
jge 0x505597
inc dword [ebp - 0x28]
mov eax, dword [ebp - 0x50]
sub eax, 0x31
mov dword [ebp - 0x30], eax
fild dword [ebp - 0x20]
call fcn.0040762c
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x28], 4
jl 0x50557a
mov eax, dword [0x533924]
mov dword [ebp - 0x7c], eax
cmp dword [ebp - 0x7c], 0
je 0x5055b0
mov eax, dword [ebp - 0x7c]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x7c], eax
cmp dword [ebp - 0x7c], 0xfe
jne 0x505669
mov eax, dword [0x533a18]
mov dword [0x5339d8], eax
mov eax, dword [0x5339bc]
mov dword [0x5339e0], eax
mov eax, dword [0x5339d8]
cmp eax, dword [0x5339e0]
jge 0x505612
xor eax, eax
mov dword [ebp - 0x58], eax
cmp dword [ebp - 0x58], 1
jge 0x505605
inc dword [ebp - 0x58]
lea eax, [ebp - 8]
push eax
xor ecx, ecx
mov edx, 1
mov eax, dword [ebp - 8]
call fcn.0040abd8
cmp dword [ebp - 0x58], 1
jl 0x5055e9
fild dword [ebp - 0x1c]
call fcn.0040762c
mov dword [ebp - 0x14], eax
jmp 0x50561c
mov eax, dword [0x533894]
mov dword [0x53392c], eax
mov eax, 0x5a
sub eax, dword [ebp - 0x4c]
cmp eax, 0xa3
jge 0x505647
mov eax, dword [ebp - 0x48]
add eax, 4
mov dword [ebp - 0xc4], eax
fild dword [ebp - 0xc4]
call fcn.00407638
mov dword [ebp - 0x44], eax
jmp 0x505657
mov eax, dword [0x5338fc]
sub eax, dword [0x5338d4]
mov dword [0x533894], eax
fild dword [0x533864]
call fcn.0040762c
mov dword [0x5338fc], eax
jmp 0x505679
mov eax, dword [0x53389c]
imul dword [0x5339e0]
mov dword [0x5339c4], eax
mov eax, dword [0x533a08]
call fcn.004071f4
mov dword [0x533a08], eax
mov eax, dword [0x533a08]
cmp eax, dword [0x53392c]
jge 0x5056cd
mov eax, dword [0x533a40]
call fcn.004071f4
mov dword [0x533a40], eax
mov eax, dword [0x533a08]
cmp eax, dword [0x533a40]
jge 0x5056c0
lea eax, [ebp - 8]
mov edx, 0x50751c
call fcn.0040a01c
jmp 0x5056cd
mov eax, dword [0x53396c]
add eax, 0xc
mov dword [0x5338fc], eax
mov eax, dword [0x53396c]
call fcn.004071f4
mov dword [0x53396c], eax
mov eax, dword [0x53395c]
add eax, 4
mov dword [ebp - 0xc4], eax
fild dword [ebp - 0xc4]
call fcn.00407638
mov dword [0x5339d8], eax
mov eax, dword [ebp - 0x60]
cmp word [eax + 4], 0x14c
je 0x50579a
mov eax, dword [0x53386c]
mov dword [0x533984], eax
mov eax, dword [0x533a18]
mov dword [0x53398c], eax
lea eax, [ebp - 0x10]
push eax
mov ecx, 2
mov edx, 1
mov eax, dword [ebp - 0x10]
call fcn.0040abd8
mov eax, dword [ebp - 0x38]
add eax, dword [ebp - 0x28]
mov dword [ebp - 0x44], eax
imul eax, dword [ebp - 0x14], 0x6d
mov dword [ebp - 0x4c], eax
mov eax, dword [0x533a18]
call fcn.004071f4
mov dword [0x533a18], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5073c9
lea eax, [ebp - 8]
mov edx, dword [ebp - 8]
call fcn.0040a01c
mov eax, dword [ebp - 0x50]
sub eax, 0x2c
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x38]
sub eax, dword [ebp - 0x2c]
mov dword [ebp - 0x20], eax
mov eax, dword [0x5338c4]
call fcn.004071f4
mov dword [0x5338c4], eax
mov eax, 0x2b
sub eax, dword [ebp - 0x14]
mov dword [ebp - 0x28], eax
mov eax, dword [0x5338ec]
sub eax, dword [0x53387c]
cmp eax, 0xcb
jge 0x5057ee
mov eax, dword [ebp - 0x3c]
sub eax, 0xf8
mov dword [ebp - 0x48], eax
xor eax, eax
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x50], 0xf
jge 0x505830
inc dword [ebp - 0x50]
xor eax, eax
mov dword [ebp - 0x58], eax
mov eax, dword [0x533a38]
mov dword [0x53386c], eax
jmp 0x505816
imul eax, dword [ebp - 0x18], 0xbb
mov dword [ebp - 0x20], eax
mov eax, dword [0x5339d0]
mov dword [0x5338c4], eax
cmp dword [ebp - 0x50], 0xf
jl 0x5057f9
mov eax, dword [0x533874]
mov dword [0x5338fc], eax
mov eax, dword [0x533a30]
push eax
mov eax, dword [0x5339ac]
push eax
mov ecx, dword [ebp - 0x50]
mov edx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x1c]
call fcn.00504b7c
mov eax, dword [ebp - 0x38]
sub eax, 0x52
mov dword [ebp - 0x34], eax
mov eax, 0x6b
sub eax, dword [ebp - 0x48]
mov dword [ebp - 0x3c], eax
xor eax, eax
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x54], 0xf
jge 0x5058c9
inc dword [ebp - 0x54]
xor eax, eax
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], 0xa
jge 0x5058c3
inc dword [ebp - 0x4c]
mov eax, dword [0x5339f8]
mov dword [0x533a50], eax
mov eax, dword [0x53386c]
cmp eax, dword [0x533a50]
jle 0x5058b4
mov ecx, 0x5339ac
mov edx, 0x53389c
lea eax, [ebp - 0x3c]
call fcn.004f8a1c
mov dword [0x5339f8], eax
jmp 0x5058bd
mov eax, dword [ebp - 0x40]
add eax, 0x48
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x4c], 0xa
jl 0x505881
cmp dword [ebp - 0x54], 0xf
jl 0x505873
mov eax, dword [ebp - 0x60]
test byte [eax + 0x38], 1
je 0x505944
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5073c9
imul eax, dword [ebp - 0x20], 0x99
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x3c], eax
xor eax, eax
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x44]
sub eax, dword [ebp - 0x38]
cmp eax, dword [ebp - 0x44]
jge 0x505995
mov eax, dword [0x5339e8]
sub eax, dword [0x53396c]
cmp eax, 0x6a
jge 0x505995
xor eax, eax
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x50], 2
jge 0x505995
inc dword [ebp - 0x50]
lea eax, [ebp - 8]
mov edx, 0x507594
call fcn.0040a01c
cmp dword [ebp - 0x50], 2
jl 0x50597f
mov eax, dword [ebp - 0x24]
imul dword [ebp - 0x30]
mov dword [ebp - 0x18], eax
mov eax, dword [0x533a30]
mov dword [0x533934], eax
jmp 0x5059b3
mov eax, dword [0x533874]
mov dword [0x53397c], eax
mov eax, dword [0x533874]
mov dword [0x53397c], eax
mov eax, dword [0x53397c]
cmp eax, dword [0x53397c]
jge 0x505a3d
mov eax, 0xfa
sub eax, dword [0x53393c]
cmp eax, 0xfa
jge 0x505a28
xor eax, eax
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], 0
jge 0x505a32
inc dword [ebp - 0x4c]
mov eax, dword [ebp - 8]
mov dword [ebp - 0x80], eax
cmp dword [ebp - 0x80], 0
je 0x505a0b
mov eax, dword [ebp - 0x80]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x80], eax
cmp dword [ebp - 0x80], 0x6e
jle 0x505a20
mov eax, dword [0x533874]
call fcn.004071f4
mov dword [0x533874], eax
cmp dword [ebp - 0x4c], 0
jl 0x5059f1
jmp 0x505a32
mov eax, dword [0x533a48]
mov dword [0x5338f4], eax
mov eax, dword [ebp - 0x54]
sub eax, dword [ebp - 0x48]
mov dword [ebp - 0x38], eax
jmp 0x505a81
mov eax, dword [ebp - 0x44]
add eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x30]
add edx, dword [ebp - 0x44]
cmp eax, edx
jge 0x505a5f
fild dword [0x533904]
call fcn.00407638
mov dword [0x533864], eax
jmp 0x505a81
mov eax, dword [0x533a50]
push eax
mov eax, dword [ebp - 0x2c]
push eax
mov eax, dword [ebp - 0x24]
push eax
mov eax, dword [0x533a08]
push eax
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x48]
call fcn.00503b0c
fild dword [ebp - 0x58]
call fcn.00407638
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x3c]
cmp eax, dword [ebp - 0x38]
jle 0x505aa6
mov eax, dword [0x5338dc]
sub eax, dword [0x533864]
mov dword [0x5339e0], eax
jmp 0x505ab6
mov eax, dword [0x53397c]
sub eax, dword [0x53392c]
mov dword [0x533884], eax
push 4
push 0x3000
mov eax, dword [ebp - 0x60]
mov eax, dword [eax + 0x50]
push eax
mov eax, dword [ebp - 0x60]
mov eax, dword [eax + 0x34]
push eax
call dword [0x533980]
mov dword [ebp - 0x64], eax
mov eax, dword [0x533a08]
mov dword [0x5339e0], eax
mov eax, dword [0x5339b4]
mov dword [0x5339f8], eax
mov eax, dword [0x5339e0]
cmp eax, dword [0x5339f8]
jge 0x505b27
xor eax, eax
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x54], 2
jge 0x505b15
inc dword [ebp - 0x54]
mov eax, dword [0x533944]
mov dword [0x53386c], eax
jmp 0x505b15
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x20], eax
mov eax, dword [0x53393c]
mov dword [0x5338bc], eax
jmp 0x505b52
mov eax, dword [ebp - 0x58]
add eax, 4
mov dword [ebp - 0x28], eax
mov eax, dword [0x533934]
mov dword [0x53390c], eax
mov eax, dword [0x53392c]
call fcn.004071f4
mov dword [0x53392c], eax
mov eax, dword [ebp - 0x30]
imul dword [ebp - 0x24]
mov dword [ebp - 0x38], eax
xor eax, eax
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0x44], 1
jge 0x505bc8
inc dword [ebp - 0x44]
mov eax, 0x6a
sub eax, dword [0x53395c]
cmp eax, 0x72
jge 0x505b91
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 3
jge 0x505ba0
inc dword [ebp - 0x1c]
lea eax, [ebp - 8]
mov edx, dword [ebp - 8]
call fcn.0040a01c
cmp dword [ebp - 0x1c], 3
jl 0x505b7b
jmp 0x505ba0
mov eax, dword [0x5338cc]
call fcn.004071f4
mov dword [0x5338cc], eax
mov eax, dword [0x533a08]
push eax
mov eax, dword [ebp - 0x24]
push eax
mov eax, dword [ebp - 0x30]
push eax
mov eax, dword [ebp - 0x40]
push eax
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x2c]
mov eax, dword [0x5339bc]
call fcn.00502f44
cmp dword [ebp - 0x44], 1
jl 0x505b5d
mov eax, dword [ebp - 0x38]
sub eax, dword [ebp - 0x48]
cmp eax, dword [ebp - 0x38]
jge 0x505c29
mov eax, dword [0x533a50]
mov dword [0x53397c], eax
xor eax, eax
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0xc
jge 0x505c1f
inc dword [ebp - 0x40]
mov eax, dword [ebp - 0x48]
sub eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x34]
sub edx, dword [ebp - 0x1c]
cmp eax, edx
jle 0x505c19
xor eax, eax
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x50], 9
jge 0x505c19
inc dword [ebp - 0x50]
mov eax, dword [0x533974]
mov dword [0x53386c], eax
cmp dword [ebp - 0x50], 9
jl 0x505c06
cmp dword [ebp - 0x40], 0xc
jl 0x505be8
mov eax, dword [0x5338bc]
mov dword [0x5338d4], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x34], eax
mov eax, dword [0x5338e4]
mov dword [0x533a00], eax
mov eax, dword [0x5338dc]
add eax, 0x4b
mov dword [0x533864], eax
cmp dword [ebp - 0x64], 0
jne 0x505f1c
push 4
push 0x3000
mov eax, dword [ebp - 0x60]
mov eax, dword [eax + 0x50]
push eax
push 0
call dword [0x533980]
mov dword [ebp - 0x64], eax
cmp dword [ebp - 0x64], 0
jne 0x505ea1
mov eax, dword [0x533864]
call fcn.004071f4
mov dword [0x533864], eax
mov eax, dword [ebp - 0x44]
add eax, 0x73
mov dword [ebp - 0x18], eax
mov eax, dword [0x5338a4]
mov dword [0x53389c], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x20], eax
lea eax, [ebp - 8]
push eax
mov ecx, 1
mov edx, 1
mov eax, dword [ebp - 0xc]
call fcn.0040abd8
xor eax, eax
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 5
jge 0x505cce
inc dword [ebp - 0x28]
mov eax, dword [ebp - 0x34]
sub eax, dword [ebp - 0x1c]
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x28], 5
jl 0x505cbc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5073c9
fild dword [ebp - 0x28]
call fcn.0040762c
mov dword [ebp - 0x30], eax
mov eax, 0xcb
sub eax, dword [ebp - 0x58]
mov dword [ebp - 0x34], eax
mov eax, dword [0x53397c]
mov dword [0x53394c], eax
xor eax, eax
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 7
jge 0x505ede
inc dword [ebp - 0x38]
imul eax, dword [ebp - 0x48], 0x1c
mov dword [ebp - 0x44], eax
jmp 0x505ede
xor eax, eax
mov dword [ebp - 0x50], eax
xor eax, eax
mov dword [ebp - 0x54], eax
mov eax, dword [0x533864]
call fcn.004071f4
mov dword [0x533864], eax
inc dword [ebp - 0x54]
cmp dword [ebp - 0x54], 7
jne 0x505ee8
inc dword [ebp - 0x50]
cmp dword [ebp - 0x50], 0xc
jne 0x505ee3
lea eax, [ebp - 8]
push eax
xor ecx, ecx
mov edx, 1
mov eax, dword [ebp - 8]
call fcn.0040abd8
push 0x1c
push 8
call dword [0x5339dc]
push eax
call dword [0x533970]
mov dword [ebp - 0x78], eax
cmp dword [ebp - 0x78], 0
jne 0x506224
xor eax, eax
mov dword [ebp - 0x54], eax
mov eax, dword [0x5339d8]
mov dword [0x533a48], eax
mov eax, dword [0x533974]
mov dword [0x533a50], eax
mov eax, dword [0x533a50]
cmp eax, dword [0x533a48]
jle 0x505f6a
imul eax, dword [ebp - 0x20], 0xe0
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x38]
add eax, 0x76
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x48]
add eax, 4
mov dword [ebp - 0xc4], eax
fild dword [ebp - 0xc4]
call fcn.00407638
mov dword [ebp - 0x2c], eax
mov eax, dword [0x5338b4]
mov dword [0x53392c], eax
mov eax, dword [0x53392c]
cmp eax, dword [0x533a48]
jle 0x505fad
mov eax, dword [ebp - 0x40]
imul dword [ebp - 0x18]
mov dword [ebp - 0x58], eax
inc dword [ebp - 0x54]
cmp dword [ebp - 0x54], 2
jne 0x505f3f
xor eax, eax
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], 2
jge 0x50600a
inc dword [ebp - 0x4c]
xor eax, eax
mov dword [ebp - 0x34], eax
mov eax, dword [0x533864]
call fcn.004071f4
mov dword [0x533864], eax
jmp 0x505fe3
mov eax, dword [0x5339d8]
sub eax, 0xac
mov dword [0x53392c], eax
fild dword [0x53396c]
call fcn.00407638
mov dword [0x5339ac], eax
jmp 0x50600a
fild dword [0x5338f4]
call fcn.0040762c
mov dword [0x533874], eax
mov eax, dword [0x533a50]
add eax, 0xd6
mov dword [0x5338dc], eax
fild dword [0x5339e8]
call fcn.00407638
mov dword [0x53395c], eax
push 0x8000
push 0
mov eax, dword [ebp - 0x64]
push eax
call dword [0x5339a8]
xor eax, eax
mov dword [ebp - 0x58], eax
mov eax, dword [0x533924]
mov dword [ebp - 0x84], eax
cmp dword [ebp - 0x84], 0
je 0x506074
mov eax, dword [ebp - 0x84]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x84], eax
cmp dword [ebp - 0x84], 0xe0
jne 0x5060c9
mov eax, dword [0x533a30]
mov dword [0x533874], eax
lea eax, [ebp - 8]
push eax
mov ecx, 1
mov edx, 1
mov eax, dword [ebp - 0xc]
call fcn.0040abd8
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x28]
sub eax, dword [ebp - 0x50]
cmp eax, dword [ebp - 0x24]
jne 0x5060bc
mov eax, dword [ebp - 0x44]
sub eax, dword [ebp - 0x48]
mov dword [ebp - 0x2c], eax
jmp 0x5060eb
fild dword [ebp - 0x50]
call fcn.00407638
mov dword [ebp - 0x3c], eax
jmp 0x5060eb
xor eax, eax
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 2
jge 0x5060e5
inc dword [ebp - 0x34]
call fcn.004f90ac
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x34], 2
jl 0x5060d4
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x1c], eax
mov ecx, dword [0x533944]
mov edx, dword [ebp - 0x30]
mov eax, dword [0x5339b4]
call fcn.00502970
mov eax, 0x24
sub eax, dword [0x53386c]
mov dword [0x5339bc], eax
mov eax, dword [0x5338f4]
mov dword [0x533a00], eax
inc dword [ebp - 0x58]
cmp dword [ebp - 0x58], 0xa
jne 0x50604f
imul eax, dword [ebp - 0x38], 0xb1
mov dword [ebp - 0x18], eax
mov eax, dword [0x53398c]
sub eax, 0x1d
mov dword [0x5338e4], eax
mov eax, dword [0x5338f4]
add eax, dword [0x53393c]
mov edx, dword [0x5338b4]
add edx, dword [0x5338f4]
cmp eax, edx
jge 0x506167
fild dword [0x533a38]
call fcn.0040762c
mov dword [0x53398c], eax
mov eax, dword [0x53389c]
push eax
mov eax, dword [ebp - 0x1c]
push eax
mov ecx, dword [ebp - 0x1c]
mov edx, dword [0x533a50]
mov eax, dword [0x5339c4]
call fcn.004f847c
mov dword [0x533904], eax
mov eax, dword [0x533a28]
add eax, 0xe3
mov dword [0x533864], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5073c9
mov eax, dword [0x5339e0]
sub eax, dword [0x533944]
cmp eax, dword [0x5339e0]
jge 0x50629d
xor eax, eax
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x50], 0
jge 0x506281
inc dword [ebp - 0x50]
mov eax, dword [0x533a20]
mov edx, 0x507630
call fcn.0040aba0
jne 0x506281
mov eax, dword [ebp - 0x54]
push eax
mov eax, dword [0x5338ac]
push eax
mov ecx, dword [0x5339d8]
mov edx, dword [0x5338ec]
mov eax, dword [ebp - 0x44]
call fcn.004fd4b0
mov dword [0x5338f4], eax
jmp 0x506281
mov eax, dword [ebp - 0x1c]
add eax, 0xcb
mov dword [ebp - 0xc4], eax
fild dword [ebp - 0xc4]
call fcn.0040762c
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x30]
add eax, dword [ebp - 0x20]
mov dword [ebp - 0x38], eax
mov eax, dword [0x533a38]
mov dword [0x533974], eax
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x3c], eax
mov eax, 0x2e
sub eax, dword [ebp - 0x24]
mov dword [ebp - 0x44], eax
mov eax, dword [0x5338f4]
add eax, dword [0x53394c]
mov dword [0x533874], eax
mov eax, dword [ebp - 0x78]
mov edx, dword [ebp - 0x64]
mov dword [eax + 4], edx
lea eax, [ebp - 0xc0]
push eax
call dword [0x5339e4]
mov eax, dword [ebp - 0x78]
mov edx, dword [ebp - 0xbc]
mov dword [eax + 0x18], edx
mov eax, dword [ebp - 0x58]
add eax, 4
mov dword [ebp - 0xc4], eax
fild dword [ebp - 0xc4]
call fcn.00407638
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x40]
add eax, 0x56
mov dword [ebp - 0x48], eax
lea eax, [ebp - 0x10]
push eax
xor ecx, ecx
mov edx, 1
mov eax, dword [ebp - 8]
call fcn.0040abd8
imul eax, dword [ebp - 0x30], 0x1a
mov dword [ebp - 0x50], eax
mov eax, dword [0x533a40]
call fcn.004071f4
mov dword [0x533a40], eax
mov eax, dword [ebp - 0x1c]
imul dword [ebp - 0x34]
mov dword [ebp - 0x38], eax
push 4
push 0x1000
mov eax, dword [ebp - 0x60]
mov eax, dword [eax + 0x54]
push eax
mov eax, dword [ebp - 0x64]
push eax
call dword [0x533980]
mov dword [ebp - 0x68], eax
mov eax, dword [0x53390c]
call fcn.004071f4
mov dword [0x53390c], eax
mov eax, dword [ebp - 0x50]
imul dword [ebp - 0x38]
mov dword [ebp - 0x34], eax
mov eax, dword [0x5338f4]
mov dword [0x53395c], eax
mov eax, dword [ebp - 0x38]
add eax, 0x22
cmp eax, dword [ebp - 0x2c]
jge 0x50639d
mov eax, dword [ebp - 0x3c]
add eax, 0xa2
mov dword [ebp - 0x40], eax
jmp 0x5063cb
mov eax, dword [ebp - 0x28]
add eax, dword [ebp - 0x4c]
cmp eax, dword [ebp - 0x4c]
jne 0x5063cb
xor eax, eax
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 9
jge 0x5063cb
inc dword [ebp - 0x28]
mov eax, dword [0x53386c]
call fcn.004071f4
mov dword [0x53386c], eax
cmp dword [ebp - 0x28], 9
jl 0x5063b3
mov eax, dword [ebp - 0x44]
add eax, 0xf7
mov dword [ebp - 0x48], eax
mov eax, dword [0x53390c]
add eax, 0x4d
cmp eax, dword [0x533974]
jge 0x5063f1
mov eax, dword [ebp - 0x4c]
sub eax, 0x1a
mov dword [ebp - 0x24], eax
jmp 0x50640b
mov eax, dword [ebp - 0x18]
add eax, 0x18
mov dword [ebp - 0xc4], eax
fild dword [ebp - 0xc4]
call fcn.0040762c
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x60]
mov eax, dword [eax + 0x54]
mov dword [ebp - 0x88], eax
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x88]
call fcn.00406fb0
mov eax, dword [0x5339d8]
push eax
mov eax, dword [ebp - 0x30]
push eax
mov ecx, dword [0x53392c]
mov edx, dword [ebp - 0x38]
mov eax, dword [0x53389c]
call fcn.004fd4b0
mov dword [0x53392c], eax
mov eax, dword [0x5338bc]
call fcn.004071f4
mov dword [0x5338bc], eax
mov eax, dword [ebp - 0x14]
add eax, 0x3c
mov dword [ebp - 0x24], eax
mov eax, dword [0x5338e4]
call fcn.004071f4
mov dword [0x5338e4], eax
mov eax, dword [0x5338e4]
cmp eax, dword [0x5338bc]
jle 0x50648d
mov eax, dword [0x53390c]
call fcn.004071f4
mov dword [0x53390c], eax
lea eax, [ebp - 0xc]
push eax
mov ecx, 2
mov edx, 1
mov eax, dword [ebp - 0x10]
call fcn.0040abd8
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x54]
mov eax, dword [0x533a00]
call fcn.005017cc
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x3c]
add eax, dword [ebp - 0x68]
mov edx, dword [ebp - 0x78]
mov dword [edx], eax
xor eax, eax
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0x8c], eax
cmp dword [ebp - 0x8c], 0
je 0x5064e9
mov eax, dword [ebp - 0x8c]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x8c], eax
cmp dword [ebp - 0x8c], 0x3e
jle 0x5064fc
mov eax, dword [0x5339d0]
mov dword [0x53386c], eax
mov eax, dword [0x5338bc]
mov dword [0x533894], eax
mov eax, 0xcc
sub eax, dword [ebp - 0x18]
mov dword [ebp - 0x20], eax
inc dword [ebp - 0x54]
cmp dword [ebp - 0x54], 7
jne 0x5064c6
mov eax, dword [ebp - 0x2c]
add eax, 0x65
mov dword [ebp - 0xc4], eax
fild dword [ebp - 0xc4]
call fcn.0040762c
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [0x533a00]
push eax
mov eax, dword [0x5339e0]
push eax
mov ecx, dword [0x533964]
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x18]
call fcn.004fe4cc
lea eax, [ebp - 0xc]
mov edx, 0x507660
call fcn.0040a01c
mov eax, dword [ebp - 0x14]
add eax, 4
mov dword [ebp - 0x38], eax
mov eax, dword [0x533a40]
push eax
mov eax, dword [0x533934]
push eax
mov ecx, dword [0x533a18]
mov edx, dword [0x53387c]
mov eax, dword [0x5338bc]
call fcn.004f847c
mov ecx, dword [ebp - 0x78]
mov edx, dword [ebp - 0x60]
mov eax, dword [ebp + 8]
call fcn.004f949c
test al, al
jne 0x5065a4
call fcn.004f8778
mov eax, dword [ebp - 0x50]
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x24], eax
lea eax, [ebp - 8]
mov edx, dword [ebp - 0x10]
call fcn.0040a01c
mov eax, dword [ebp - 0x48]
sub eax, 0xfb
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x54]
imul dword [ebp - 0x38]
mov dword [ebp - 0x30], eax
mov eax, dword [0x533a20]
mov dword [ebp - 0x90], eax
cmp dword [ebp - 0x90], 0
je 0x5065f1
mov eax, dword [ebp - 0x90]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x90], eax
cmp dword [ebp - 0x90], 0x9f
jne 0x50660a
mov eax, dword [ebp - 0x4c]
add eax, 0x8f
mov dword [ebp - 0x3c], eax
jmp 0x506666
mov eax, dword [0x5339d0]
sub eax, dword [0x53395c]
mov edx, dword [0x5338e4]
sub edx, dword [0x53395c]
cmp eax, edx
jle 0x506646
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 5
jge 0x506666
inc dword [ebp - 0x14]
lea eax, [ebp - 8]
mov edx, dword [ebp - 8]
call fcn.0040a01c
cmp dword [ebp - 0x14], 5
jl 0x506630
jmp 0x506666
mov eax, dword [0x5338d4]
add eax, 0xb4
mov dword [ebp - 0xc4], eax
fild dword [ebp - 0xc4]
call fcn.0040762c
mov dword [0x53395c], eax
lea eax, [ebp - 0x10]
mov edx, 0x507684
call fcn.0040a01c
mov eax, dword [ebp - 0x60]
mov edx, dword [ebp - 0x64]
sub edx, dword [eax + 0x34]
mov dword [ebp - 0x6c], edx
mov edx, dword [ebp - 0x30]
mov eax, dword [0x533a50]
call fcn.00502408
mov dword [0x53392c], eax
mov eax, dword [0x5338b4]
add eax, dword [0x5338fc]
cmp eax, dword [0x5338fc]
jle 0x5066b6
mov eax, dword [ebp - 0x20]
add eax, 0x46
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x44]
imul dword [ebp - 0x50]
mov dword [ebp - 0x2c], eax
mov eax, dword [0x53385c]
mov dword [0x533944], eax
mov eax, dword [0x533a00]
push eax
mov eax, dword [0x533884]
push eax
mov eax, dword [0x5339e8]
push eax
mov eax, dword [0x53385c]
push eax
mov ecx, dword [0x533a50]
mov edx, dword [ebp - 0x24]
mov eax, dword [0x5339d0]
call fcn.00503b0c
mov dword [0x5338ec], eax
mov eax, dword [ebp - 0x4c]
add eax, dword [ebp - 0x30]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x58]
add eax, 4
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x6c], 0
je 0x506832
mov eax, dword [0x53387c]
mov dword [0x5338b4], eax
mov eax, dword [ebp - 0x24]
sub eax, dword [ebp - 0x40]
cmp eax, 0x77
jge 0x50674c
mov eax, dword [ebp - 0x30]
add eax, 0xd4
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x34]
mov dword [ebp - 0x18], eax
mov eax, dword [0x533964]
mov dword [0x533944], eax
fild dword [ebp - 0x48]
call fcn.0040762c
mov dword [ebp - 0x38], eax
jmp 0x50679f
mov eax, dword [0x5339c4]
sub eax, dword [0x5339d8]
cmp eax, 0x72
jge 0x50677c
xor eax, eax
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], 0xd
jge 0x506785
inc dword [ebp - 0x4c]
mov eax, dword [0x533a00]
mov dword [0x53385c], eax
cmp dword [ebp - 0x4c], 0xd
jl 0x506767
jmp 0x506785
mov eax, dword [ebp - 0x40]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x24], eax
mov eax, dword [0x53392c]
mov dword [0x53392c], eax
mov eax, dword [0x53396c]
imul dword [0x5338fc]
mov dword [0x5339e8], eax
imul eax, dword [0x53395c], 0xf5
mov dword [0x5338a4], eax
lea eax, [ebp - 0x54]
push eax
mov ecx, 0x53385c
mov edx, 0x53389c
mov eax, 0x5338a4
call fcn.004f8d10
mov dword [0x533894], eax
fild dword [0x5339f8]
call fcn.0040762c
mov dword [0x53393c], eax
mov eax, dword [0x5339c8]
mov dword [ebp - 0x94], eax
cmp dword [ebp - 0x94], 0
je 0x506800
mov eax, dword [ebp - 0x94]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x94], eax
cmp dword [ebp - 0x94], 0xe0
jle 0x50681c
mov eax, dword [0x53388c]
sub eax, dword [0x5338dc]
mov dword [0x5339e8], eax
mov edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x78]
call fcn.004fe64c
mov edx, dword [ebp - 0x78]
mov byte [edx + 0x15], al
jmp 0x506934
mov eax, dword [ebp - 0x20]
add eax, 4
mov dword [ebp - 0xc4], eax
fild dword [ebp - 0xc4]
call fcn.00407638
mov dword [ebp - 0x38], eax
mov eax, dword [0x53397c]
call fcn.004071f4
mov dword [0x53397c], eax
mov eax, dword [0x53394c]
mov dword [0x53398c], eax
mov eax, dword [ebp - 0x2c]
sub eax, dword [ebp - 0x50]
mov dword [ebp - 0x44], eax
mov eax, dword [0x533a00]
mov dword [0x5339d8], eax
mov eax, dword [ebp - 0x4c]
add eax, 0x85
cmp eax, dword [ebp - 0x44]
jge 0x5068a4
xor eax, eax
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0xe
jge 0x5068a4
inc dword [ebp - 0x28]
lea eax, [ebp - 8]
mov edx, dword [ebp - 0xc]
call fcn.0040a01c
cmp dword [ebp - 0x28], 0xe
jl 0x506890
mov eax, dword [ebp - 0x78]
mov byte [eax + 0x15], 1
mov eax, dword [ebp - 0x54]
add eax, 0x76
mov dword [ebp - 0x34], eax
mov eax, dword [0x533874]
mov dword [0x53398c], eax
imul eax, dword [ebp - 0x4c], 0x6f
mov dword [ebp - 0x44], eax
mov eax, 0xe2
sub eax, dword [ebp - 0x4c]
cmp eax, 0x21
jge 0x5068f1
xor eax, eax
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x50], 0xe
jge 0x5068f1
inc dword [ebp - 0x50]
lea eax, [ebp - 8]
mov edx, dword [ebp - 8]
call fcn.0040a01c
cmp dword [ebp - 0x50], 0xe
jl 0x5068dd
xor eax, eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x28]
sub eax, dword [ebp - 0x18]
mov dword [ebp - 0x24], eax
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xa
jne 0x5068f6
mov eax, dword [ebp - 0x40]
sub eax, dword [ebp - 0x58]
mov dword [ebp - 0x38], eax
mov eax, dword [0x53390c]
add eax, eax
mov dword [0x533a18], eax
mov eax, dword [0x533874]
add eax, 4
mov dword [0x53388c], eax
mov eax, dword [0x53395c]
mov dword [0x533904], eax
mov eax, dword [0x5339b4]
sub eax, dword [0x533944]
cmp eax, dword [0x5339e0]
jne 0x506990
xor eax, eax
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x50], 2
jge 0x506986
inc dword [ebp - 0x50]
mov ecx, 1
mov edx, dword [0x533a20]
mov eax, 0x5076a8
call fcn.0040ade8
cmp eax, 0xee
jge 0x506980
mov eax, dword [0x533884]
call fcn.004071f4
mov dword [0x533884], eax
cmp dword [ebp - 0x50], 2
jl 0x506952
mov eax, dword [0x533a38]
mov dword [0x5338c4], eax
mov eax, dword [ebp - 0x30]
imul dword [ebp - 0x48]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x58]
add eax, 0xf4
mov dword [ebp - 0xc4], eax
fild dword [ebp - 0xc4]
call fcn.0040762c
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x3c]
imul dword [ebp - 0x18]
mov dword [ebp - 0x38], eax
mov eax, dword [0x533874]
mov dword [0x533974], eax
mov eax, dword [ebp - 0x20]
add eax, 4
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x78]
push eax
call fcn.004ff5a4
test al, al
jne 0x506a5c
lea edx, [ebp - 0x30]
mov eax, 0x5339e0
call fcn.00504e2c
mov eax, dword [0x53398c]
mov dword [0x5338bc], eax
mov eax, dword [0x53393c]
mov dword [0x5338c4], eax
mov eax, dword [0x5338d4]
call fcn.004071f4
mov dword [0x5338d4], eax
mov eax, dword [0x5338c4]
cmp eax, dword [0x5338d4]
jle 0x506a26
mov eax, dword [ebp - 0x4c]
add eax, 0xe8
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x1c]
add eax, 0x80
mov dword [ebp - 0x38], eax
xor eax, eax
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0xc
jge 0x506a4e
inc dword [ebp - 0x3c]
mov eax, dword [ebp - 0x48]
add eax, 0x5f
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0x3c], 0xc
jl 0x506a3c
mov eax, dword [ebp - 0x24]
sub eax, dword [ebp - 0x54]
mov dword [ebp - 0x50], eax
call fcn.004f8778
mov eax, dword [ebp - 0x78]
call fcn.004fb9c4
test al, al
jne 0x506c48
mov eax, dword [ebp - 0x48]
add eax, dword [ebp - 0x40]
mov dword [ebp - 0x38], eax
mov eax, dword [0x533a50]
mov dword [0x533984], eax
mov eax, dword [0x533a50]
mov dword [0x533984], eax
mov eax, dword [0x533984]
cmp eax, dword [0x533984]
jge 0x506b02
mov eax, dword [0x5339c4]
cmp eax, dword [0x53393c]
jle 0x506af6
xor eax, eax
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], 0xf
jge 0x506b55
inc dword [ebp - 0x4c]
mov eax, dword [ebp - 8]
mov dword [ebp - 0x98], eax
cmp dword [ebp - 0x98], 0
je 0x506ad8
mov eax, dword [ebp - 0x98]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x98], eax
cmp dword [ebp - 0x98], 0x9e
jne 0x506aee
mov eax, dword [0x53397c]
mov dword [0x53387c], eax
cmp dword [ebp - 0x4c], 0xf
jl 0x506ab2
jmp 0x506b55
mov eax, dword [0x533874]
mov dword [0x5338f4], eax
jmp 0x506b55
mov eax, dword [0x53396c]
call fcn.004071f4
mov dword [0x53396c], eax
mov ecx, 1
mov edx, dword [0x5339a4]
mov eax, 0x5076dc
call fcn.0040ade8
cmp eax, 0x2f
je 0x506b55
mov eax, dword [ebp - 0x18]
sub eax, dword [ebp - 0x50]
cmp eax, dword [ebp - 0x48]
jne 0x506b55
xor eax, eax
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x50], 5
jge 0x506b55
inc dword [ebp - 0x50]
lea eax, [ebp - 8]
mov edx, dword [ebp - 8]
call fcn.0040a01c
cmp dword [ebp - 0x50], 5
jl 0x506b41
xor eax, eax
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 1
jge 0x506b7e
inc dword [ebp - 0x34]
mov eax, dword [ebp - 0x30]
sub eax, dword [ebp - 0x54]
mov dword [ebp - 0x3c], eax
mov eax, dword [0x533a30]
mov dword [0x5339ac], eax
jmp 0x506b7e
mov eax, dword [ebp - 0x44]
sub eax, dword [ebp - 0x14]
mov dword [ebp - 0x18], eax
mov eax, dword [0x5338f4]
add eax, dword [0x53387c]
mov dword [0x533894], eax
mov eax, dword [0x5338b4]
sub eax, dword [0x5339e0]
cmp eax, dword [0x5338b4]
jge 0x506bb9
imul eax, dword [0x533894], 0xf0
mov dword [0x533964], eax
call fcn.004f8778
lea eax, [ebp - 8]
push eax
mov ecx, 1
mov edx, 1
mov eax, dword [ebp - 0xc]
call fcn.0040abd8
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x1c]
add eax, 0x58
cmp eax, dword [ebp - 0x54]
jge 0x506bf0
mov eax, dword [ebp - 0x14]
sub eax, dword [ebp - 0x58]
mov dword [ebp - 0x30], eax
jmp 0x506bf9
mov eax, dword [ebp - 0x48]
sub eax, dword [ebp - 0x28]
mov dword [ebp - 0x38], eax
imul eax, dword [ebp - 0x1c], 0xda
mov dword [ebp - 0x50], eax
fild dword [ebp - 0x20]
call fcn.00407638
mov dword [ebp - 0x40], eax
xor eax, eax
mov dword [ebp - 0x44], eax
xor eax, eax
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], 5
jge 0x506c3f
inc dword [ebp - 0x4c]
xor eax, eax
mov dword [ebp - 0x54], eax
mov eax, dword [0x5339e8]
mov dword [0x533884], eax
inc dword [ebp - 0x54]
cmp dword [ebp - 0x54], 0xa
jne 0x506c26
cmp dword [ebp - 0x4c], 5
jl 0x506c1e
inc dword [ebp - 0x44]
cmp dword [ebp - 0x44], 0xe
jne 0x506c13
imul eax, dword [ebp - 0x48], 0xa7
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x24]
imul dword [ebp - 0x28]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x4c]
sub eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x4c]
jne 0x506c7a
xor eax, eax
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x50], 0xb
jge 0x506c7a
inc dword [ebp - 0x50]
cmp dword [ebp - 0x50], 0xb
jl 0x506c71
mov eax, dword [0x533a50]
mov dword [0x5338ec], eax
mov eax, dword [ebp - 0x4c]
imul dword [ebp - 0x14]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x58]
sub eax, dword [ebp - 0x54]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x78]
mov eax, dword [eax + 4]
call fcn.00503ce8
test al, al
jne 0x506cfd
lea eax, [ebp - 8]
mov edx, 0x507714
call fcn.0040a01c
imul eax, dword [ebp - 0x4c], 0x43
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x50]
imul dword [ebp - 0x40]
mov dword [ebp - 0x44], eax
mov eax, dword [0x5338ac]
mov dword [0x53390c], eax
mov eax, dword [0x533864]
mov dword [0x53392c], eax
mov eax, dword [0x53390c]
cmp eax, dword [0x53392c]
jle 0x506cf8
mov eax, dword [ebp - 0x48]
shl eax, 6
mov dword [ebp - 0x14], eax
call fcn.004f8778
mov eax, dword [ebp - 0x78]
call fcn.004fda7c
test al, al
jne 0x506f42
mov eax, dword [ebp - 0x30]
add eax, 0x25
mov dword [ebp - 0x28], eax
xor eax, eax
mov dword [ebp - 0x40], eax
mov eax, dword [0x533974]
imul dword [0x5339f8]
mov dword [0x5339d0], eax
inc dword [ebp - 0x40]
cmp dword [ebp - 0x40], 1
jne 0x506d1b
mov eax, dword [ebp - 0x1c]
add eax, 4
mov dword [ebp - 0xc4], eax
fild dword [ebp - 0xc4]
call fcn.0040762c
mov dword [ebp - 0x14], eax
mov eax, dword [0x5338b4]
sub eax, dword [0x533974]
mov dword [0x5338a4], eax
imul eax, dword [0x53385c], 0xdc
mov dword [0x533904], eax
call fcn.004f8778
mov eax, dword [0x5339e0]
call fcn.004071f4
mov dword [0x5339e0], eax
mov eax, dword [0x5339e8]
mov dword [0x5339e8], eax
mov eax, dword [0x5339e0]
cmp eax, dword [0x5339e8]
jge 0x506e49
xor eax, eax
mov dword [ebp - 0x54], eax
mov eax, dword [0x5339e0]
mov dword [0x533a50], eax
mov eax, dword [0x5339e0]
cmp eax, dword [0x533a50]
jle 0x506dcf
mov eax, dword [ebp - 0x24]
push eax
mov ecx, dword [ebp - 0x14]
mov edx, dword [0x53398c]
mov eax, dword [ebp - 0x44]
call fcn.004f8894
jmp 0x506dd9
mov eax, dword [0x53387c]
mov dword [0x5338dc], eax
inc dword [ebp - 0x54]
cmp dword [ebp - 0x54], 5
jne 0x506da1
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x38]
lea eax, [eax + eax*2]
mov dword [ebp - 0x3c], eax
xor eax, eax
mov dword [ebp - 0x40], eax
mov eax, dword [0x5339d0]
add eax, 0xd6
cmp eax, dword [0x5339b4]
jge 0x506e33
xor eax, eax
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x50], 2
jge 0x506e3e
inc dword [ebp - 0x50]
lea eax, [ebp - 8]
push eax
xor ecx, ecx
mov edx, 1
mov eax, dword [ebp - 8]
call fcn.0040abd8
jmp 0x506e3e
fild dword [ebp - 0x1c]
call fcn.0040762c
mov dword [ebp - 0x2c], eax
inc dword [ebp - 0x40]
cmp dword [ebp - 0x40], 4
jne 0x506df6
jmp 0x506e85
mov eax, dword [ebp - 0x4c]
add eax, 0x32
mov dword [ebp - 0x44], eax
mov eax, dword [0x5339f8]
add eax, dword [0x533a28]
mov edx, dword [0x5338cc]
add edx, dword [0x5339f8]
cmp eax, edx
jge 0x506e85
xor eax, eax
mov dword [ebp - 0x28], eax
mov eax, dword [0x5339bc]
mov dword [0x533864], eax
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 7
jne 0x506e72
lea ecx, [ebp - 0x48]
lea edx, [ebp - 0x48]
mov eax, 0x5338cc
call fcn.004ebb6c
mov dword [0x533984], eax
imul eax, dword [0x533a50], 0xbc
mov dword [0x53395c], eax
lea eax, [ebp - 0xc]
push eax
mov ecx, 1
mov edx, 1
mov eax, dword [ebp - 0xc]
call fcn.0040abd8
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x9c], eax
cmp dword [ebp - 0x9c], 0
je 0x506ee2
mov eax, dword [ebp - 0x9c]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x9c], eax
cmp dword [ebp - 0x9c], 0xf7
jle 0x506efa
mov eax, dword [0x533894]
mov dword [0x5339b4], eax
jmp 0x506f0a
fild dword [0x53390c]
call fcn.0040762c
mov dword [0x53385c], eax
mov eax, dword [0x533884]
cmp eax, dword [0x533a30]
jle 0x506f3b
mov eax, dword [0x5338f4]
push eax
mov eax, dword [ebp - 0x4c]
push eax
mov eax, dword [ebp - 0x34]
push eax
mov ecx, dword [0x5338a4]
mov edx, dword [0x53392c]
mov eax, dword [ebp - 0x2c]
call fcn.004fe4cc
jmp 0x506f42
add dword [0x53395c], 0x7e
mov eax, dword [0x533a38]
push eax
mov ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x1c]
call fcn.004f8894
mov eax, dword [ebp - 0x4c]
imul dword [ebp - 0x3c]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x34]
add eax, 4
mov dword [ebp - 0xc4], eax
fild dword [ebp - 0xc4]
call fcn.00407638
mov dword [ebp - 0x28], eax
xor eax, eax
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0xe
jge 0x506f96
inc dword [ebp - 0x2c]
imul eax, dword [ebp - 0x1c], 0x39
mov dword [ebp - 0x30], eax
jmp 0x506f96
mov eax, dword [ebp - 0x50]
sub eax, 0x2d
mov dword [ebp - 0x44], eax
mov eax, dword [0x5339c4]
mov dword [0x5339e8], eax
mov eax, dword [ebp - 0x78]
mov eax, dword [eax]
cmp dword [eax + 0x28], 0
je 0x507186
mov eax, dword [ebp - 0x78]
mov eax, dword [eax]
mov eax, dword [eax + 0x28]
add eax, dword [ebp - 0x64]
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x34]
add eax, dword [ebp - 0x20]
mov dword [ebp - 0x30], eax
mov eax, dword [0x53393c]
call fcn.004071f4
mov dword [0x53393c], eax
mov eax, dword [0x5339e8]
mov dword [0x53394c], eax
mov eax, dword [ebp - 0x40]
sub eax, dword [ebp - 0x54]
mov dword [ebp - 0x38], eax
mov eax, dword [0x5338d4]
mov dword [0x53397c], eax
mov eax, dword [ebp - 0x58]
add eax, 0x9c
mov dword [ebp - 0x1c], eax
push 0
push 1
mov eax, dword [ebp - 0x64]
push eax
call dword [ebp - 0x70]
cmp eax, 1
sbb eax, eax
inc eax
mov byte [ebp - 0x71], al
mov eax, dword [0x533a30]
mov dword [0x53386c], eax
mov eax, dword [ebp - 0x48]
add eax, dword [ebp - 0x40]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x50]
sub eax, 0xc9
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0xc]
push eax
xor ecx, ecx
mov edx, 1
mov eax, dword [ebp - 8]
call fcn.0040abd8
xor eax, eax
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x54], 6
jge 0x507096
inc dword [ebp - 0x54]
mov eax, dword [ebp - 0x48]
sub eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x54]
sub edx, dword [ebp - 0x1c]
cmp eax, edx
jle 0x507090
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jge 0x507090
inc dword [ebp - 0x14]
lea eax, [ebp - 8]
mov edx, 0x507740
call fcn.0040a01c
cmp dword [ebp - 0x14], 0
jl 0x50707a
cmp dword [ebp - 0x54], 6
jl 0x50705c
cmp byte [ebp - 0x71], 0
jne 0x50717f
mov eax, dword [0x5339e0]
add eax, dword [0x5338a4]
cmp eax, dword [0x5338a4]
jle 0x5070da
xor eax, eax
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x50], 0
jge 0x5070da
inc dword [ebp - 0x50]
lea eax, [ebp - 8]
push eax
xor ecx, ecx
mov edx, 1
mov eax, dword [ebp - 8]
call fcn.0040abd8
cmp dword [ebp - 0x50], 0
jl 0x5070be
lea edx, [ebp - 0x3c]
lea eax, [ebp - 0x34]
call fcn.00504e2c
mov dword [0x5338bc], eax
lea edx, [ebp - 0x1c]
lea eax, [ebp - 0x38]
call fcn.00504e2c
mov eax, 0x1a
sub eax, dword [ebp - 0x40]
mov dword [ebp - 0x28], eax
mov eax, dword [0x533904]
call fcn.004071f4
mov dword [0x533904], eax
xor eax, eax
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x14]
add eax, 0x7d
mov dword [ebp - 0x34], eax
jmp 0x507128
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5073c9
mov eax, dword [ebp - 0x78]
mov byte [eax + 0x14], 1
lea eax, [ebp - 8]
mov edx, dword [ebp - 0xc]
call fcn.0040a01c
mov eax, dword [ebp - 0x24]
imul dword [ebp - 0x48]
mov dword [ebp - 0x14], eax
mov eax, dword [0x533a38]
mov dword [0x533884], eax
mov eax, dword [0x53388c]
sub eax, dword [0x5339e0]
cmp eax, 0xf
jge 0x5071d0
mov eax, dword [ebp - 0x30]
add eax, 6
mov dword [ebp - 0xc4], eax
fild dword [ebp - 0xc4]
call fcn.0040762c
mov dword [ebp - 0x20], eax
jmp 0x5071e6
fild dword [ebp - 0x3c]
call fcn.00407638
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x40]
sub eax, 0xff
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x44]
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x54], eax
mov eax, dword [0x5338e4]
mov dword [0x533a40], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x34]
sub eax, 0xfb
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x18]
mov dword [ebp - 0x2c], eax
xor eax, eax
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], 0xc
jge 0x507237
inc dword [ebp - 0x4c]
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x38], eax
mov eax, dword [0x5339d8]
mov dword [0x53397c], eax
cmp dword [ebp - 0x4c], 0xc
jl 0x50721e
mov eax, dword [0x5339ac]
sub eax, dword [0x53390c]
mov edx, dword [0x53394c]
sub edx, dword [0x53390c]
cmp eax, edx
jle 0x5072b0
mov eax, dword [ebp - 0x38]
sub eax, dword [ebp - 0x54]
cmp eax, dword [ebp - 0x48]
jne 0x50729d
xor eax, eax
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 3
jge 0x5072ba
inc dword [ebp - 0x3c]
mov eax, dword [0x533a18]
mov dword [0x533a40], eax
mov eax, dword [0x53395c]
mov dword [0x53385c], eax
mov eax, dword [0x53385c]
cmp eax, dword [0x533a40]
jle 0x507295
mov eax, dword [ebp - 0x48]
add eax, 0x27
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0x3c], 3
jl 0x507268
jmp 0x5072ba
mov eax, dword [0x5338d4]
mov edx, eax
shl eax, 5
sub eax, edx
mov dword [0x5339e8], eax
jmp 0x5072ba
mov eax, dword [0x533874]
mov dword [0x5338ac], eax
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp - 0x20]
jle 0x5072cc
mov eax, dword [0x533a08]
mov dword [0x53397c], eax
mov eax, dword [0x533a50]
sub eax, 0xe0
mov dword [0x533a40], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5073c9
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5073eb
lea eax, [ebp - 0x10]
mov edx, 3
call fcn.00409c54
ret