Function at 0x504378
Capabilities:
Authenticate hmac
Check http status code
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x4f6
push 0
push 0
dec ecx
jne 0x504381
push ecx
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov dword [ebp - 0x4c0], ecx
mov dword [ebp - 0x29c], edx
mov dword [ebp - 0x4bc], eax
mov eax, dword [ebp - 0x4bc]
call fcn.004055b8
xor eax, eax
push ebp
push 0x515e53
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 0x4b6], 0
mov byte [ebp - 0x595], 0
xor eax, eax
mov dword [ebp - 0x2b0], eax
mov byte [ebp - 0x59e], 0
mov byte [ebp - 0x594], 0
mov byte [ebp - 0x501], 0
mov byte [ebp - 0x502], 0
mov byte [ebp - 0x503], 0
mov byte [ebp - 0x504], 0
mov byte [ebp - 0x505], 0
mov byte [ebp - 0x59d], 0
xor eax, eax
push ebp
push 0x515a3f
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x4e4]
push eax
mov eax, dword [ebp - 0x4bc]
call fcn.004053c8
mov edx, eax
sub edx, 2
mov ecx, 3
mov eax, dword [ebp - 0x4bc]
call fcn.00405628
lea edx, [ebp - 0x9ec]
mov eax, dword [ebp - 0x4e4]
call fcn.0048d278
mov edx, dword [ebp - 0x9ec]
lea eax, [ebp - 0x4e4]
call fcn.004051a0
lea edx, [ebp - 0x530]
mov eax, dword [ebp - 0x4e4]
call fcn.004038ac
mov dword [ebp - 0x2ac], eax
mov eax, dword [ebp - 0x2ac]
call fcn.00530a34
mov dword [ebp - 0x52c], eax
cmp dword [ebp - 0x52c], 0
jl 0x5044aa
cmp dword [ebp - 0x4c0], 0
je 0x5044aa
mov eax, dword [ebp - 0x4c0]
mov dword [ebp - 0x2a8], eax
jmp 0x515a05
mov byte [ebp - 0x4b5], 0
mov eax, dword [ebp - 0x29c]
mov dl, 1
call fcn.00500d90
mov byte [ebp - 0x4c1], 0
mov byte [ebp - 0x591], 1
mov byte [ebp - 0x592], 0
mov byte [ebp - 0x59f], 0
xor eax, eax
mov dword [ebp - 0x590], eax
mov eax, 0x515e74
call fcn.0049839c
lea eax, [ebp - 0x4e4]
push eax
mov eax, dword [ebp - 0x4bc]
call fcn.004053c8
mov edx, eax
sub edx, 2
mov ecx, 3
mov eax, dword [ebp - 0x4bc]
call fcn.00405628
lea edx, [ebp - 0x9f0]
mov eax, dword [ebp - 0x4e4]
call fcn.0048d278
mov edx, dword [ebp - 0x9f0]
lea eax, [ebp - 0x4e4]
call fcn.004051a0
lea edx, [ebp - 0x530]
mov eax, dword [ebp - 0x4e4]
call fcn.004038ac
mov dword [ebp - 0x2ac], eax
imul eax, dword [ebp - 0x2ac], 0x97
mov byte [eax + 0x646294], 0
call fcn.0040c8dc
fstp qword [ebp - 0x560]
wait
call fcn.0040c8dc
fstp qword [ebp - 0x558]
wait
mov eax, dword [ebp - 0x2ac]
call fcn.00524050
lea edx, [ebp - 0x9f4]
call fcn.0040a2d8
mov ecx, dword [ebp - 0x9f4]
lea eax, [ebp - 0x4c8]
mov edx, 0x515e88
call fcn.00405414
cmp dword [0x64608c], 0
jne 0x504646
lea eax, [ebp - 0x4e0]
call fcn.00520e44
imul eax, dword [ebp - 0x2ac], 0x97
lea edx, [eax + 0x646294]
lea eax, [ebp - 0xb94]
call fcn.004032bc
mov edx, 0x515e9c
lea eax, [ebp - 0xb94]
mov cl, 0x98
call fcn.0040328c
lea edx, [ebp - 0xb94]
lea eax, [ebp - 0xaf8]
call fcn.0040536c
lea eax, [ebp - 0xaf8]
mov edx, dword [ebp - 0x4e0]
call fcn.004053d0
mov edx, dword [ebp - 0xaf8]
lea eax, [ebp - 0xaf4]
mov ecx, 0xff
call fcn.004053a4
lea edx, [ebp - 0xaf4]
imul eax, dword [ebp - 0x2ac], 0x97
add eax, 0x646294
mov cl, 0x96
call fcn.004032c8
call fcn.0040c8dc
fstp qword [ebp - 0x560]
wait
cmp dword [ebp - 0x4c0], 0xffffffff
jne 0x504670
cmp dword [ebp + 8], 0xf4240
jl 0x504670
cmp dword [ebp + 8], 0x1e8480
jge 0x504670
mov dword [ebp - 0x2a8], 0xffffffff
jmp 0x505d05
cmp dword [ebp - 0x4c0], 0
je 0x504687
mov eax, dword [ebp - 0x4c0]
mov dword [ebp - 0x2a8], eax
jmp 0x5046ad
push 0
push 0
push 3
push 0
push 3
push 0xc0000000
mov eax, dword [ebp - 0x4c8]
call fcn.004055c8
push eax
call sub.KERNEL32.DLL_CreateFileA
mov dword [ebp - 0x2a8], eax
cmp dword [ebp - 0x2a8], 0xffffffff
jne 0x504715
call sub.KERNEL32.DLL_GetLastError
xor edx, edx
push edx
push eax
lea eax, [ebp - 0xb9c]
call fcn.0040a3c4
mov ecx, dword [ebp - 0xb9c]
lea eax, [ebp - 0xb98]
mov edx, 0x515ea8
call fcn.00405414
mov eax, dword [ebp - 0xb98]
push eax
mov ecx, dword [ebp - 0x29c]
add ecx, 0x551c
mov eax, dword [ebp - 0x29c]
add eax, 0x5130
mov edx, 0x3e8
call fcn.0048e934
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x515b5d
cmp dword [0x614780], 0
jge 0x504768
mov eax, 0x515eb4
call fcn.0049839c
mov eax, 0x515ecc
call fcn.0052cb70
mov dword [0x614780], eax
lea edx, [ebp - 0xba4]
mov eax, dword [0x614780]
call fcn.0040a2d8
mov ecx, dword [ebp - 0xba4]
lea eax, [ebp - 0xba0]
mov edx, 0x515ee0
call fcn.00405414
mov eax, dword [ebp - 0xba0]
call fcn.0049839c
cmp dword [0x614780], 0
jle 0x50489d
mov eax, 0x515efc
call fcn.0049839c
push ebp
call fcn.00502cc0
pop ecx
mov edx, 0x515f0c
lea eax, [ebp - 0xbd4]
call fcn.004032bc
mov edx, dword [ebp - 0x29c]
lea eax, [ebp - 0xbd4]
mov cl, 0x2b
call fcn.0040328c
lea edx, [ebp - 0xbd4]
lea eax, [ebp - 0xc08]
call fcn.004032bc
mov edx, 0x515f20
lea eax, [ebp - 0xc08]
mov cl, 0x32
call fcn.0040328c
lea edx, [ebp - 0xc08]
lea eax, [ebp - 0xc50]
call fcn.004032bc
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
lea eax, [ebp - 0xc50]
mov cl, 0x46
call fcn.0040328c
lea edx, [ebp - 0xc50]
lea eax, [ebp - 0xca0]
call fcn.004032bc
mov edx, 0x515f28
lea eax, [ebp - 0xca0]
mov cl, 0x4d
call fcn.0040328c
lea edx, [ebp - 0xca0]
lea eax, [ebp - 0xd04]
call fcn.004032bc
mov edx, dword [ebp - 0x29c]
add edx, 0x1a
lea eax, [ebp - 0xd04]
mov cl, 0x61
call fcn.0040328c
lea edx, [ebp - 0xd04]
lea eax, [ebp - 0xba8]
call fcn.0040536c
mov eax, dword [ebp - 0xba8]
call fcn.0049839c
mov edx, dword [ebp - 0x29c]
mov eax, 0x515f30
call fcn.00402c78
dec eax
jne 0x50489d
mov eax, 0x515f3c
call fcn.0049839c
imul eax, dword [ebp - 0x2ac], 0x83
add eax, 0x63fa34
mov edx, 0x515f70
mov cl, 0x82
call fcn.0040328c
mov byte [ebp - 0x4c1], 1
jmp 0x515a05
mov dword [ebp - 0x59c], 2
mov eax, 0x646094
xor ecx, ecx
mov edx, 0x200
call fcn.0040345c
lea eax, [ebp - 0x298]
xor ecx, ecx
mov edx, 0x298
call fcn.0040345c
mov word [ebp - 0x298], 0x2c
mov byte [ebp - 0x294], 1
mov byte [ebp - 0x292], 6
mov byte [ebp - 0x291], 0x18
mov byte [ebp - 0x290], 1
mov dword [ebp - 0x28c], 0xc0
mov eax, dword [ebp - 0x59c]
mov dword [ebp - 0x288], eax
lea eax, [ebp - 0x24c]
lea edx, [ebp - 0x298]
sub eax, edx
mov dword [ebp - 0x284], eax
lea eax, [ebp - 0x26c]
lea edx, [ebp - 0x298]
sub eax, edx
mov dword [ebp - 0x280], eax
mov byte [ebp - 0x27c], 0x12
mov byte [ebp - 0x278], 0xc0
mov eax, dword [ebp - 0x284]
add eax, dword [ebp - 0x28c]
mov dword [ebp - 0x2a4], eax
cmp byte [0x61414c], 0
jne 0x5055b7
push 0
lea eax, [ebp - 0x2a0]
push eax
mov eax, dword [ebp - 0x2a4]
push eax
lea eax, [ebp - 0x298]
push eax
push 0x2c
lea eax, [ebp - 0x298]
push eax
push 0x4d004
mov eax, dword [ebp - 0x2a8]
push eax
call sub.KERNEL32.DLL_DeviceIoControl
test eax, eax
je 0x5055b7
mov eax, 0x515f80
call fcn.0048cf1c
test al, al
je 0x504be9
cmp dword [ebp - 0x2ac], 0x63
jge 0x504be9
mov byte [ebp - 0x24c], 0
mov byte [ebp - 0x24b], 0x8d
mov byte [ebp - 0x24a], 6
mov byte [ebp - 0x249], 2
mov byte [ebp - 0x248], 0x5b
mov byte [ebp - 0x247], 2
mov byte [ebp - 0x246], 0
mov byte [ebp - 0x245], 0
mov byte [ebp - 0x24c], 0
mov byte [ebp - 0x24b], 0
mov byte [ebp - 0x24a], 5
mov byte [ebp - 0x249], 0x12
mov byte [ebp - 0x248], 0xbb
mov byte [ebp - 0x247], 0
mov byte [ebp - 0x246], 0
mov byte [ebp - 0x245], 2
mov byte [ebp - 0x24c], 0
mov byte [ebp - 0x24b], 4
mov byte [ebp - 0x24a], 0xff
mov byte [ebp - 0x249], 0x3f
mov byte [ebp - 0x248], 0x37
mov byte [ebp - 0x247], 0xc8
mov byte [ebp - 0x246], 0x10
mov byte [ebp - 0x245], 0
mov byte [ebp - 0x24c], 0
mov byte [ebp - 0x24b], 0
mov byte [ebp - 0x24a], 0
mov byte [ebp - 0x249], 2
mov byte [ebp - 0x248], 0x37
mov byte [ebp - 0x247], 0
mov byte [ebp - 0x246], 0
mov byte [ebp - 0x245], 0
mov byte [ebp - 0x24c], 0
mov byte [ebp - 0x24b], 0
mov byte [ebp - 0x24a], 5
mov byte [ebp - 0x249], 2
mov byte [ebp - 0x248], 0x63
mov byte [ebp - 0x247], 0
mov byte [ebp - 0x246], 0
mov byte [ebp - 0x245], 2
mov byte [ebp - 0x24c], 0
mov byte [ebp - 0x24b], 0
mov byte [ebp - 0x24a], 5
mov byte [ebp - 0x249], 2
mov byte [ebp - 0x248], 0x1f
mov byte [ebp - 0x247], 0
mov byte [ebp - 0x246], 0
mov byte [ebp - 0x245], 2
mov byte [ebp - 0x24c], 0
mov byte [ebp - 0x24b], 0
mov byte [ebp - 0x24a], 5
mov byte [ebp - 0x249], 0x12
mov byte [ebp - 0x248], 0x37
mov byte [ebp - 0x247], 0
mov byte [ebp - 0x246], 0x10
mov byte [ebp - 0x245], 2
mov byte [ebp - 0x24c], 0
mov byte [ebp - 0x24b], 0
mov byte [ebp - 0x24a], 6
mov byte [ebp - 0x249], 0x12
mov byte [ebp - 0x248], 0x5f
mov byte [ebp - 0x247], 0
mov byte [ebp - 0x246], 0x20
mov byte [ebp - 0x245], 2
mov byte [ebp - 0x24c], 0
mov byte [ebp - 0x24b], 0
mov byte [ebp - 0x24a], 6
mov byte [ebp - 0x249], 2
mov byte [ebp - 0x248], 0x47
mov byte [ebp - 0x247], 0
mov byte [ebp - 0x246], 0x20
mov byte [ebp - 0x245], 0
push ebp
call fcn.00501960
pop ecx
mov byte [ebp - 0x24c], 0
mov byte [ebp - 0x24b], 0
mov byte [ebp - 0x24a], 6
mov byte [ebp - 0x249], 2
mov byte [ebp - 0x248], 0x34
mov byte [ebp - 0x247], 0
mov byte [ebp - 0x246], 0
mov byte [ebp - 0x245], 2
cmp byte [ebp - 0x24c], 0
jne 0x504c4b
cmp byte [ebp - 0x24b], 0
jne 0x504c4b
cmp byte [ebp - 0x24a], 5
jne 0x504c4b
cmp byte [ebp - 0x249], 2
jne 0x504c4b
cmp byte [ebp - 0x248], 0x63
je 0x504c1f
cmp byte [ebp - 0x248], 0x3f
jne 0x504c4b
cmp byte [ebp - 0x247], 0
jne 0x504c4b
cmp byte [ebp - 0x246], 0
jne 0x504c4b
cmp byte [ebp - 0x245], 2
jne 0x504c4b
mov eax, 0x515f94
call fcn.0049839c
mov byte [ebp - 0x595], 1
push ebp
mov eax, dword [ebp - 0x29c]
add eax, 0x19f
xor edx, edx
call fcn.00503168
pop ecx
push ebp
mov eax, dword [ebp - 0x29c]
add eax, 0x1e6
mov edx, 0x10
call fcn.00503168
pop ecx
push ebp
mov eax, dword [ebp - 0x29c]
add eax, 0x22d
mov edx, 0x20
call fcn.00503168
pop ecx
push ebp
mov eax, dword [ebp - 0x29c]
add eax, 0x274
mov edx, 0x30
call fcn.00503168
pop ecx
lea eax, [ebp - 0x4e4]
call fcn.00405108
xor eax, eax
mov dword [ebp - 0x52c], eax
push dword [ebp - 0x4e4]
lea ecx, [ebp - 0xd08]
mov eax, dword [ebp - 0x52c]
movzx eax, byte [ebp + eax - 0x24c]
mov edx, 2
call fcn.0040a3ec
push dword [ebp - 0xd08]
push 0x515fac
lea eax, [ebp - 0x4e4]
mov edx, 3
call fcn.00405488
inc dword [ebp - 0x52c]
cmp dword [ebp - 0x52c], 0x40
jne 0x504cb7
lea eax, [ebp - 0x4e4]
mov edx, 0x515fb8
call fcn.004053d0
xor eax, eax
mov dword [ebp - 0x52c], eax
mov eax, dword [ebp - 0x52c]
cmp byte [ebp + eax - 0x24c], 0x20
jb 0x504d68
mov eax, dword [ebp - 0x52c]
cmp byte [ebp + eax - 0x24c], 0x80
ja 0x504d68
lea eax, [ebp - 0xd0c]
mov edx, dword [ebp - 0x52c]
mov dl, byte [ebp + edx - 0x24c]
call fcn.004052f0
mov edx, dword [ebp - 0xd0c]
lea eax, [ebp - 0x4e4]
call fcn.004053d0
jmp 0x504d78
lea eax, [ebp - 0x4e4]
mov edx, 0x515fc4
call fcn.004053d0
inc dword [ebp - 0x52c]
cmp dword [ebp - 0x52c], 0x40
jne 0x504d1d
lea eax, [ebp - 0xd10]
mov ecx, dword [ebp - 0x4e4]
mov edx, 0x515fd0
call fcn.00405414
mov eax, dword [ebp - 0xd10]
call fcn.0049839c
cmp byte [ebp - 0x248], 0x30
jb 0x504dcc
cmp byte [ebp - 0x247], 0
jne 0x504dd3
test byte [ebp - 0x246], 0xdf
jne 0x504dd3
test byte [ebp - 0x245], 0xfe
jne 0x504dd3
mov byte [ebp - 0x4b5], 1
cmp byte [ebp - 0x248], 0x5b
jne 0x504e3d
cmp byte [ebp - 0x247], 0
jne 0x504e3d
cmp byte [ebp - 0x246], 0
jne 0x504e3d
cmp byte [ebp - 0x245], 0x13
jne 0x504dfe
mov byte [ebp - 0x4b5], 1
cmp byte [ebp - 0x245], 2
jne 0x504e3d
mov byte [ebp - 0x4b5], 1
mov edx, dword [ebp - 0x4e4]
mov eax, 0x515fe4
call fcn.0040570c
test eax, eax
jle 0x504e3d
mov edx, dword [ebp - 0x4e4]
mov eax, 0x515ff4
call fcn.0040570c
test eax, eax
jle 0x504e3d
mov byte [ebp - 0x4b5], 0
cmp byte [ebp - 0x248], 0x5b
jne 0x504e76
cmp byte [ebp - 0x247], 0
jne 0x504e76
cmp byte [ebp - 0x246], 0x80
jne 0x504e76
cmp byte [ebp - 0x245], 2
jne 0x504e76
mov eax, 0x516004
call fcn.00492b74
test al, al
je 0x504e76
mov byte [ebp - 0x4b5], 1
cmp byte [ebp - 0x248], 0x5b
jne 0x504ebc
cmp byte [ebp - 0x247], 2
jne 0x504ebc
cmp byte [ebp - 0x246], 0
jne 0x504ebc
cmp byte [ebp - 0x245], 0
jne 0x504ebc
cmp byte [ebp - 0x249], 2
jne 0x504ebc
cmp byte [ebp - 0x24a], 6
jne 0x504ebc
cmp byte [ebp - 0x24b], 0x8d
jne 0x504ebc
mov byte [ebp - 0x4b5], 1
cmp byte [ebp - 0x248], 0x47
jne 0x504ed5
cmp byte [ebp - 0x245], 2
jne 0x504ed5
mov byte [ebp - 0x4b5], 1
cmp byte [ebp - 0x248], 0x46
ja 0x504f00
cmp byte [ebp - 0x247], 0
jne 0x504f00
cmp byte [ebp - 0x246], 0
jne 0x504f00
cmp byte [ebp - 0x245], 2
jne 0x504f00
mov byte [ebp - 0x4b5], 1
cmp byte [ebp - 0x248], 0x33
jne 0x504f22
test byte [ebp - 0x246], 0xdf
jne 0x504f22
cmp byte [ebp - 0x245], 2
jne 0x504f22
mov byte [ebp - 0x4b5], 1
cmp byte [ebp - 0x24a], 5
jne 0x504f5f
cmp byte [ebp - 0x249], 0x12
jne 0x504f5f
cmp byte [ebp - 0x248], 0xbb
jne 0x504f5f
cmp byte [ebp - 0x247], 0
jne 0x504f5f
cmp byte [ebp - 0x246], 0
jne 0x504f5f
cmp byte [ebp - 0x245], 2
jne 0x504f5f
mov byte [ebp - 0x4b5], 1
cmp byte [ebp - 0x24b], 4
jne 0x504f81
cmp byte [ebp - 0x24a], 0xff
jne 0x504f81
cmp byte [ebp - 0x249], 0x3f
jne 0x504f81
mov byte [ebp - 0x4b5], 1
cmp byte [ebp - 0x24a], 6
jne 0x504fa3
cmp byte [ebp - 0x249], 0x12
jne 0x504fa3
cmp byte [ebp - 0x248], 0x5f
jne 0x504fa3
mov byte [ebp - 0x4b5], 1
cmp byte [ebp - 0x24a], 6
jne 0x504fc5
cmp byte [ebp - 0x249], 0x32
jne 0x504fc5
cmp byte [ebp - 0x248], 0x4b
jne 0x504fc5
mov byte [ebp - 0x4b5], 1
cmp byte [ebp - 0x24a], 0xff
jne 0x504ff0
cmp byte [ebp - 0x249], 0x3f
jne 0x504ff0
cmp byte [ebp - 0x248], 0x37
jne 0x504ff0
cmp byte [ebp - 0x247], 0xc8
jne 0x504ff0
cmp byte [ebp - 0x246], 0x10
cmp byte [ebp - 0x24a], 6
jne 0x50502d
cmp byte [ebp - 0x249], 2
jne 0x50502d
cmp byte [ebp - 0x248], 0x34
jne 0x50502d
cmp byte [ebp - 0x247], 0
jne 0x50502d
cmp byte [ebp - 0x246], 0
jne 0x50502d
cmp byte [ebp - 0x245], 2
jne 0x50502d
mov byte [ebp - 0x4b5], 0
mov eax, 0x516018
call fcn.0048cf1c
test al, al
je 0x505076
lea ecx, [ebp - 0xd18]
xor edx, edx
mov al, byte [ebp - 0x4b5]
call fcn.0040a6b8
mov ecx, dword [ebp - 0xd18]
lea eax, [ebp - 0xd14]
mov edx, 0x51602c
call fcn.00405414
mov eax, dword [ebp - 0xd14]
call fcn.0049839c
mov byte [ebp - 0x4b5], 0
push 0x516048
lea edx, [ebp - 0xd20]
mov eax, dword [ebp - 0x2ac]
call fcn.0040a2d8
push dword [ebp - 0xd20]
push 0x515fac
lea edx, [ebp - 0xd24]
xor eax, eax
mov al, byte [ebp - 0x248]
call fcn.0040a2d8
push dword [ebp - 0xd24]
push 0x515fac
lea edx, [ebp - 0xd28]
xor eax, eax
mov al, byte [ebp - 0x247]
call fcn.0040a2d8
push dword [ebp - 0xd28]
push 0x515fac
lea edx, [ebp - 0xd2c]
xor eax, eax
mov al, byte [ebp - 0x246]
call fcn.0040a2d8
push dword [ebp - 0xd2c]
push 0x515fac
lea edx, [ebp - 0xd30]
xor eax, eax
mov al, byte [ebp - 0x245]
call fcn.0040a2d8
push dword [ebp - 0xd30]
push 0x515fac
lea ecx, [ebp - 0xd34]
xor edx, edx
mov al, byte [ebp - 0x4b5]
call fcn.0040a6b8
push dword [ebp - 0xd34]
lea eax, [ebp - 0xd1c]
mov edx, 0xc
call fcn.00405488
mov eax, dword [ebp - 0xd1c]
call fcn.0049839c
xor eax, eax
mov dword [ebp - 0x52c], eax
lea eax, [ebp - 0xd38]
mov edx, dword [ebp - 0x52c]
mov dl, byte [ebp + edx - 0x24c]
call fcn.004052f0
mov eax, dword [ebp - 0xd38]
push eax
mov ecx, dword [ebp - 0x29c]
add ecx, 0x551c
mov eax, dword [ebp - 0x29c]
add eax, 0x5130
mov edx, 0x3e8
call fcn.0048e934
inc dword [ebp - 0x52c]
cmp dword [ebp - 0x52c], 0xc0
jne 0x50514b
mov eax, dword [ebp - 0x29c]
mov dl, byte [ebp - 0x24c]
mov byte [eax + 0xdf], dl
test byte [ebp - 0x24b], 0x80
setne al
mov edx, dword [ebp - 0x29c]
mov byte [edx + 0xe1], al
mov eax, dword [ebp - 0x29c]
mov dl, byte [ebp - 0x24a]
mov byte [eax + 0xe0], dl
mov dword [ebp - 0x52c], 8
mov eax, dword [ebp - 0x52c]
cmp byte [ebp + eax - 0x24c], 0
je 0x50523c
mov eax, dword [ebp - 0x52c]
cmp byte [ebp + eax - 0x24c], 0x20
jb 0x50522d
lea eax, [ebp - 0xd3c]
mov edx, dword [ebp - 0x52c]
mov dl, byte [ebp + edx - 0x24c]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0xd3c]
mov eax, dword [ebp - 0x29c]
mov cl, 0x19
call fcn.0040328c
inc dword [ebp - 0x52c]
cmp dword [ebp - 0x52c], 0x10
jne 0x5051e1
lea eax, [ebp - 0x4e4]
call fcn.00405108
mov dword [ebp - 0x52c], 0x10
mov eax, dword [ebp - 0x52c]
cmp byte [ebp + eax - 0x24c], 0
je 0x5052a9
mov eax, dword [ebp - 0x52c]
cmp byte [ebp + eax - 0x24c], 0x20
jb 0x50529a
lea eax, [ebp - 0xd40]
mov edx, dword [ebp - 0x52c]
mov dl, byte [ebp + edx - 0x24c]
call fcn.004052f0
mov edx, dword [ebp - 0xd40]
lea eax, [ebp - 0x4e4]
call fcn.004053d0
inc dword [ebp - 0x52c]
cmp dword [ebp - 0x52c], 0x20
jne 0x505251
lea eax, [ebp - 0xd5c]
push eax
mov edx, dword [ebp - 0x29c]
movzx edx, byte [edx]
mov eax, dword [ebp - 0x29c]
mov ecx, 1
call fcn.004029cc
lea eax, [ebp - 0xd5c]
mov edx, 0x516058
xor ecx, ecx
mov cl, byte [eax]
inc ecx
call fcn.00403368
je 0x505356
lea eax, [ebp - 0xd60]
push eax
mov ecx, 1
mov edx, 1
mov eax, dword [ebp - 0x4e4]
call fcn.00405628
mov eax, dword [ebp - 0xd60]
mov edx, 0x515fac
call fcn.00405514
je 0x505356
lea eax, [ebp - 0xd68]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0xd68]
lea edx, [ebp - 0xd64]
call fcn.00409b94
mov edx, dword [ebp - 0xd64]
mov eax, 0x516064
call fcn.0040570c
test eax, eax
jne 0x505356
mov eax, dword [ebp - 0x29c]
mov edx, 0x516058
mov cl, 0x19
call fcn.0040328c
lea eax, [ebp - 0xd6c]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
lea eax, [ebp - 0xd6c]
mov edx, dword [ebp - 0x4e4]
call fcn.004053d0
mov edx, dword [ebp - 0xd6c]
lea eax, [ebp - 0xaf4]
mov ecx, 0xff
call fcn.004053a4
lea edx, [ebp - 0xaf4]
mov eax, dword [ebp - 0x29c]
mov cl, 0x19
call fcn.004032c8
mov dword [ebp - 0x52c], 0x20
mov eax, dword [ebp - 0x52c]
cmp byte [ebp + eax - 0x24c], 0
je 0x5053f9
lea eax, [ebp - 0xd3c]
mov edx, dword [ebp - 0x52c]
mov dl, byte [ebp + edx - 0x24c]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0xd3c]
mov eax, dword [ebp - 0x29c]
add eax, 0x1a
mov cl, 0x14
call fcn.0040328c
inc dword [ebp - 0x52c]
cmp dword [ebp - 0x52c], 0x24
jne 0x5053ab
mov dword [ebp - 0x52c], 0x24
mov eax, dword [ebp - 0x52c]
cmp byte [ebp + eax - 0x24c], 0
je 0x505451
lea eax, [ebp - 0xd3c]
mov edx, dword [ebp - 0x52c]
mov dl, byte [ebp + edx - 0x24c]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0xd3c]
mov eax, dword [ebp - 0x29c]
add eax, 0x2f
mov cl, 0x14
call fcn.0040328c
inc dword [ebp - 0x52c]
cmp dword [ebp - 0x52c], 0x38
jne 0x505403
mov dword [ebp - 0x52c], 0x60
mov eax, dword [ebp - 0x52c]
cmp byte [ebp + eax - 0x24c], 0x20
jb 0x50549a
lea eax, [ebp - 0xd3c]
mov edx, dword [ebp - 0x52c]
mov dl, byte [ebp + edx - 0x24c]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0xd3c]
mov eax, dword [ebp - 0x29c]
add eax, 0x44
mov cl, 0x32
call fcn.0040328c
inc dword [ebp - 0x52c]
cmp dword [ebp - 0x52c], 0x92
jne 0x50545b
mov edx, dword [ebp - 0x29c]
lea eax, [ebp - 0xd9c]
call fcn.004032bc
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
lea eax, [ebp - 0xd9c]
mov cl, 0x2d
call fcn.0040328c
lea edx, [ebp - 0xd9c]
lea eax, [ebp - 0xde0]
call fcn.004032bc
mov edx, dword [ebp - 0x29c]
add edx, 0x1a
lea eax, [ebp - 0xde0]
mov cl, 0x41
call fcn.0040328c
lea edx, [ebp - 0xde0]
lea eax, [ebp - 0x4e4]
call fcn.0040536c
xor eax, eax
mov dword [ebp - 0x530], eax
mov eax, dword [ebp - 0x4e4]
call fcn.004053c8
test eax, eax
jle 0x50556c
mov dword [ebp - 0x5a4], eax
mov dword [ebp - 0x52c], 1
mov eax, dword [ebp - 0x4e4]
mov edx, dword [ebp - 0x52c]
cmp byte [eax + edx - 1], 0x20
jb 0x505558
mov eax, dword [ebp - 0x4e4]
mov edx, dword [ebp - 0x52c]
cmp byte [eax + edx - 1], 0x7f
jbe 0x50555e
inc dword [ebp - 0x530]
inc dword [ebp - 0x52c]
dec dword [ebp - 0x5a4]
jne 0x505532
cmp dword [ebp - 0x530], 8
jle 0x5057c9
lea edx, [ebp - 0xde8]
mov eax, dword [ebp - 0x530]
call fcn.0040a2d8
mov ecx, dword [ebp - 0xde8]
lea eax, [ebp - 0xde4]
mov edx, 0x516078
call fcn.00405414
mov eax, dword [ebp - 0xde4]
call fcn.0049839c
push ebp
call fcn.00502cc0
pop ecx
jmp 0x5057c9
call sub.KERNEL32.DLL_GetLastError
mov dword [ebp - 0x52c], eax
cmp byte [0x61414c], 0
je 0x5055d5
mov dword [ebp - 0x52c], 0x79
imul eax, dword [ebp - 0x2ac], 0x83
cmp byte [eax + 0x63fa34], 0x32
jbe 0x505606
imul eax, dword [ebp - 0x2ac], 0x83
add eax, 0x63fa34
mov ecx, 0xc8
mov edx, 0x1f
call fcn.00402a10
imul eax, dword [ebp - 0x2ac], 0x83
lea edx, [eax + 0x63fa34]
lea eax, [ebp - 0xe78]
call fcn.004032bc
mov edx, 0x516080
lea eax, [ebp - 0xe78]
mov cl, 0x88
call fcn.0040328c
lea edx, [ebp - 0xe78]
lea eax, [ebp - 0xdec]
call fcn.0040536c
lea eax, [ebp - 0xdec]
push eax
lea edx, [ebp - 0xe7c]
mov eax, dword [ebp - 0x52c]
call fcn.0040a2d8
mov edx, dword [ebp - 0xe7c]
pop eax
call fcn.004053d0
mov edx, dword [ebp - 0xdec]
lea eax, [ebp - 0xaf4]
mov ecx, 0xff
call fcn.004053a4
lea edx, [ebp - 0xaf4]
imul eax, dword [ebp - 0x2ac], 0x83
add eax, 0x63fa34
mov cl, 0x82
call fcn.004032c8
lea edx, [ebp - 0xe84]
mov eax, dword [ebp - 0x52c]
call fcn.0040a2d8
mov ecx, dword [ebp - 0xe84]
lea eax, [ebp - 0xe80]
mov edx, 0x516090
call fcn.00405414
mov eax, dword [ebp - 0xe80]
call fcn.0049839c
imul eax, dword [ebp - 0x2ac], 0x97
lea edx, [eax + 0x646294]
lea eax, [ebp - 0xf30]
call fcn.004032bc
mov edx, 0x51609c
lea eax, [ebp - 0xf30]
mov cl, 0xa0
call fcn.0040328c
lea edx, [ebp - 0xf30]
lea eax, [ebp - 0xe8c]
call fcn.0040536c
push dword [ebp - 0xe8c]
lea edx, [ebp - 0xf34]
mov eax, dword [ebp - 0x59c]
call fcn.0040a2d8
push dword [ebp - 0xf34]
push 0x5160b0
lea edx, [ebp - 0xf38]
mov eax, dword [ebp - 0x52c]
call fcn.0040a2d8
push dword [ebp - 0xf38]
lea eax, [ebp - 0xe88]
mov edx, 4
call fcn.00405488
mov edx, dword [ebp - 0xe88]
lea eax, [ebp - 0xaf4]
mov ecx, 0xff
call fcn.004053a4
lea edx, [ebp - 0xaf4]
imul eax, dword [ebp - 0x2ac], 0x97
add eax, 0x646294
mov cl, 0x96
call fcn.004032c8
cmp dword [ebp - 0x52c], 0x79
je 0x5057a0
cmp dword [ebp - 0x52c], 0x37
je 0x5057a0
cmp dword [ebp - 0x52c], 0x32
jne 0x5057c2
cmp dword [ebp - 0x59c], 0xa
jge 0x5057c2
mov eax, 0x5160bc
call fcn.0049839c
mov dword [ebp - 0x59c], 0xa
jmp 0x5048a7
push ebp
call fcn.00502cc0
pop ecx
lea edx, [ebp - 0xf40]
mov eax, dword [ebp - 0x2ac]
call fcn.0040a2d8
mov ecx, dword [ebp - 0xf40]
lea eax, [ebp - 0xf3c]
mov edx, 0x5160d8
call fcn.00405414
mov eax, dword [ebp - 0xf3c]
call fcn.0049839c
lea ecx, [ebp - 0x578]
lea edx, [ebp - 0x570]
mov eax, dword [ebp - 0x2a8]
call fcn.005011b8
mov dword [ebp - 0x568], eax
mov dword [ebp - 0x564], edx
cmp dword [ebp - 0x564], 0
jne 0x505832
cmp dword [ebp - 0x568], 0
jbe 0x505876
jmp 0x505834
jle 0x505876
mov eax, dword [ebp - 0x570]
mov edx, dword [ebp - 0x56c]
add eax, 1
adc edx, 0
mov ecx, dword [ebp - 0x29c]
mov dword [ecx + 0x2e8], eax
mov dword [ecx + 0x2ec], edx
mov eax, dword [ebp - 0x29c]
mov edx, dword [ebp - 0x578]
mov dword [eax + 0x2f0], edx
mov edx, dword [ebp - 0x574]
mov dword [eax + 0x2f4], edx
push dword [ebp - 0x564]
push dword [ebp - 0x568]
lea eax, [ebp - 0xf48]
call fcn.0040a3c4
mov ecx, dword [ebp - 0xf48]
lea eax, [ebp - 0xf44]
mov edx, 0x5160f4
call fcn.00405414
mov eax, dword [ebp - 0xf44]
call fcn.0049839c
push dword [ebp - 0x56c]
push dword [ebp - 0x570]
lea eax, [ebp - 0xf50]
call fcn.0040a3c4
mov ecx, dword [ebp - 0xf50]
lea eax, [ebp - 0xf4c]
mov edx, 0x516108
call fcn.00405414
mov eax, dword [ebp - 0xf4c]
call fcn.0049839c
push dword [ebp - 0x574]
push dword [ebp - 0x578]
lea eax, [ebp - 0xf58]
call fcn.0040a3c4
mov ecx, dword [ebp - 0xf58]
lea eax, [ebp - 0xf54]
mov edx, 0x51611c
call fcn.00405414
mov eax, dword [ebp - 0xf54]
call fcn.0049839c
mov eax, 0x516130
call fcn.0048cf1c
test al, al
je 0x505941
mov eax, dword [ebp - 0x29c]
mov edi, eax
mov esi, 0x516138
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
lea eax, [ebp - 0xf60]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0xf60]
lea edx, [ebp - 0xf5c]
call fcn.00409b94
mov edx, dword [ebp - 0xf5c]
mov eax, 0x51615c
call fcn.0040570c
test eax, eax
jle 0x505d05
mov eax, 0x51616c
call fcn.0049839c
mov byte [ebp - 0x4b5], 0
mov eax, dword [ebp - 0x29c]
cmp byte [eax + 0x2f], 2
jae 0x505b9b
mov edx, 0x51617c
lea eax, [ebp - 0xf8c]
call fcn.004032bc
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
lea eax, [ebp - 0xf8c]
mov cl, 0x24
call fcn.0040328c
lea edx, [ebp - 0xf8c]
lea eax, [ebp - 0xf64]
call fcn.0040536c
mov eax, dword [ebp - 0xf64]
call fcn.0049839c
mov eax, 0x646094
xor ecx, ecx
mov edx, 0x200
call fcn.0040345c
lea eax, [ebp - 0x298]
xor ecx, ecx
mov edx, 0x298
call fcn.0040345c
mov word [ebp - 0x298], 0x2c
mov byte [ebp - 0x294], 1
mov byte [ebp - 0x292], 6
mov byte [ebp - 0x291], 0x18
mov byte [ebp - 0x290], 1
mov dword [ebp - 0x28c], 0xc0
mov eax, dword [ebp - 0x59c]
mov dword [ebp - 0x288], eax
lea eax, [ebp - 0x24c]
lea edx, [ebp - 0x298]
sub eax, edx
mov dword [ebp - 0x284], eax
lea eax, [ebp - 0x26c]
lea edx, [ebp - 0x298]
sub eax, edx
mov dword [ebp - 0x280], eax
mov byte [ebp - 0x27c], 0x12
mov byte [ebp - 0x27b], 1
mov byte [ebp - 0x27a], 0x80
mov byte [ebp - 0x278], 0xc0
mov eax, dword [ebp - 0x284]
add eax, dword [ebp - 0x28c]
mov dword [ebp - 0x2a4], eax
push 0
lea eax, [ebp - 0x2a0]
push eax
mov eax, dword [ebp - 0x2a4]
push eax
lea eax, [ebp - 0x298]
push eax
push 0x2c
lea eax, [ebp - 0x298]
push eax
push 0x4d004
mov eax, dword [ebp - 0x2a8]
push eax
call sub.KERNEL32.DLL_DeviceIoControl
test eax, eax
je 0x505b9b
cmp byte [ebp - 0x24b], 0x80
jne 0x505b9b
lea eax, [ebp - 0x4e4]
call fcn.00405108
xor eax, eax
mov al, byte [ebp - 0x249]
dec eax
test eax, eax
jl 0x505b3b
inc eax
mov dword [ebp - 0x5a4], eax
mov dword [ebp - 0x52c], 0
lea eax, [ebp - 0xf90]
mov edx, dword [ebp - 0x52c]
add edx, 4
mov dl, byte [ebp + edx - 0x24c]
call fcn.004052f0
mov edx, dword [ebp - 0xf90]
lea eax, [ebp - 0x4e4]
call fcn.004053d0
inc dword [ebp - 0x52c]
dec dword [ebp - 0x5a4]
jne 0x505b01
lea eax, [ebp - 0xf94]
mov ecx, dword [ebp - 0x4e4]
mov edx, 0x516198
call fcn.00405414
mov eax, dword [ebp - 0xf94]
call fcn.0049839c
lea eax, [ebp - 0xaf4]
mov edx, dword [ebp - 0x4e4]
mov ecx, 0xff
call fcn.004053a4
lea edx, [ebp - 0xaf4]
mov eax, dword [ebp - 0x29c]
add eax, 0x2f
mov cl, 0x14
call fcn.004032c8
mov eax, dword [ebp - 0x29c]
add eax, 0x2f
mov edx, 0x14
call fcn.0050081c
lea eax, [ebp - 0xf9c]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0xf9c]
lea edx, [ebp - 0xf98]
call fcn.00409b94
mov edx, dword [ebp - 0xf98]
mov eax, 0x5161b0
call fcn.0040570c
test eax, eax
jg 0x505c2b
lea eax, [ebp - 0xfa4]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0xfa4]
lea edx, [ebp - 0xfa0]
call fcn.00409b94
mov edx, dword [ebp - 0xfa0]
mov eax, 0x5161c0
call fcn.0040570c
test eax, eax
jg 0x505c2b
lea eax, [ebp - 0xfa8]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0xfa8]
call fcn.004c3870
test al, al
je 0x505d05
mov edx, 0x5161c8
lea eax, [ebp - 0xfd0]
call fcn.004032bc
mov edx, dword [ebp - 0x29c]
lea eax, [ebp - 0xfd0]
mov cl, 0x23
call fcn.0040328c
lea edx, [ebp - 0xfd0]
lea eax, [ebp - 0xffc]
call fcn.004032bc
mov edx, 0x5161d4
lea eax, [ebp - 0xffc]
mov cl, 0x28
call fcn.0040328c
lea edx, [ebp - 0xffc]
lea eax, [ebp - 0xfac]
call fcn.0040536c
mov eax, dword [ebp - 0xfac]
call fcn.0049839c
lea eax, [ebp - 0x1000]
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
call fcn.0040536c
mov eax, dword [ebp - 0x1000]
push eax
lea eax, [ebp - 0x1004]
mov edx, dword [ebp - 0x29c]
add edx, 0x1a
call fcn.0040536c
mov eax, dword [ebp - 0x1004]
push eax
lea eax, [ebp - 0x1008]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov ecx, dword [ebp - 0x1008]
mov edx, dword [ebp - 0x2a8]
mov eax, dword [ebp - 0x2ac]
call fcn.004c2388
test al, al
je 0x505d05
mov eax, 0x5161e4
call fcn.0049839c
mov byte [ebp - 0x4c1], 1
jmp 0x515a05
mov eax, 0x516200
call fcn.0048cf1c
test al, al
je 0x505d33
cmp byte [ebp - 0x4b5], 0
je 0x505d33
mov eax, dword [ebp - 0x29c]
mov edi, eax
mov esi, 0x51620c
mov ecx, 5
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov eax, 0x51622c
call fcn.0048cf1c
test al, al
je 0x505d60
cmp dword [ebp - 0x2ac], 6
jne 0x505d60
mov eax, dword [ebp - 0x29c]
mov edi, eax
mov esi, 0x516238
mov ecx, 5
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
lea eax, [ebp - 0x1010]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1010]
lea edx, [ebp - 0x100c]
call fcn.00409b94
mov edx, dword [ebp - 0x100c]
mov eax, 0x516258
call fcn.0040570c
test eax, eax
jle 0x505ec9
lea eax, [ebp - 0x1018]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1018]
lea edx, [ebp - 0x1014]
call fcn.00409b94
mov edx, dword [ebp - 0x1014]
mov eax, 0x516268
call fcn.0040570c
test eax, eax
jle 0x505ec9
lea eax, [ebp - 0x4f4]
push eax
lea eax, [ebp - 0x4f0]
push eax
lea ecx, [ebp - 0x4ec]
mov edx, dword [ebp - 0x2ac]
mov eax, dword [ebp - 0x2a8]
call fcn.0050135c
test eax, eax
jne 0x505ec9
lea edx, [ebp - 0x101c]
mov eax, dword [ebp - 0x4ec]
call fcn.00409de4
mov edx, dword [ebp - 0x101c]
lea eax, [ebp - 0xaf4]
mov ecx, 0xff
call fcn.004053a4
lea edx, [ebp - 0xaf4]
mov eax, dword [ebp - 0x29c]
add eax, 0x77
mov cl, 0x32
call fcn.004032c8
lea edx, [ebp - 0x1020]
mov eax, dword [ebp - 0x4f4]
call fcn.00409de4
mov edx, dword [ebp - 0x1020]
lea eax, [ebp - 0xaf4]
mov ecx, 0xff
call fcn.004053a4
lea edx, [ebp - 0xaf4]
mov eax, dword [ebp - 0x29c]
add eax, 0xaa
mov cl, 0x1e
call fcn.004032c8
lea edx, [ebp - 0x1024]
mov eax, dword [ebp - 0x4f0]
call fcn.00409de4
mov edx, dword [ebp - 0x1024]
lea eax, [ebp - 0xaf4]
mov ecx, 0xff
call fcn.004053a4
lea edx, [ebp - 0xaf4]
mov eax, dword [ebp - 0x29c]
add eax, 0xc9
mov cl, 0x14
call fcn.004032c8
mov eax, dword [ebp - 0x29c]
mov byte [eax + 0xde], 1
lea eax, [ebp - 0x102c]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x102c]
lea edx, [ebp - 0x1028]
call fcn.00409de4
mov edx, dword [ebp - 0x1028]
lea eax, [ebp - 0xaf4]
mov ecx, 0xff
call fcn.004053a4
lea edx, [ebp - 0xaf4]
mov eax, dword [ebp - 0x29c]
mov cl, 0x19
call fcn.004032c8
mov edx, 0x516274
lea eax, [ebp - 0x1058]
call fcn.004032bc
mov edx, dword [ebp - 0x29c]
lea eax, [ebp - 0x1058]
mov cl, 0x27
call fcn.0040328c
lea edx, [ebp - 0x1058]
lea eax, [ebp - 0x1088]
call fcn.004032bc
mov edx, 0x515f20
lea eax, [ebp - 0x1088]
mov cl, 0x2e
call fcn.0040328c
lea edx, [ebp - 0x1088]
lea eax, [ebp - 0x10cc]
call fcn.004032bc
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
lea eax, [ebp - 0x10cc]
mov cl, 0x42
call fcn.0040328c
lea edx, [ebp - 0x10cc]
lea eax, [ebp - 0x1118]
call fcn.004032bc
mov edx, 0x515f28
lea eax, [ebp - 0x1118]
mov cl, 0x49
call fcn.0040328c
lea edx, [ebp - 0x1118]
lea eax, [ebp - 0x1178]
call fcn.004032bc
mov edx, dword [ebp - 0x29c]
add edx, 0x1a
lea eax, [ebp - 0x1178]
mov cl, 0x5d
call fcn.0040328c
lea edx, [ebp - 0x1178]
lea eax, [ebp - 0x1030]
call fcn.0040536c
mov eax, dword [ebp - 0x1030]
call fcn.0049839c
mov edx, dword [ebp - 0x29c]
mov eax, 0x516284
call fcn.00402c78
test eax, eax
jle 0x506015
cmp byte [ebp - 0x4b5], 0
je 0x506015
mov eax, 0x516294
call fcn.0049839c
mov byte [ebp - 0x4b5], 0
imul eax, dword [ebp - 0x2ac], 0x83
lea edx, [eax + 0x63fa34]
mov eax, 0x51629c
call fcn.00402c78
test eax, eax
jne 0x506086
cmp byte [ebp - 0x248], 2
jae 0x506086
mov eax, dword [ebp - 0x29c]
cmp byte [eax], 8
jae 0x506086
mov eax, 0x5162ac
call fcn.0049839c
mov eax, 0x5162f4
call fcn.0048cf1c
test al, al
jne 0x506086
imul eax, dword [ebp - 0x2ac], 0x83
add eax, 0x63fa34
mov edx, 0x515f70
mov cl, 0x82
call fcn.0040328c
mov byte [ebp - 0x4c1], 1
jmp 0x515a05
lea eax, [ebp - 0x1180]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1180]
lea edx, [ebp - 0x117c]
call fcn.00409b94
mov edx, dword [ebp - 0x117c]
mov eax, 0x516304
call fcn.0040570c
test eax, eax
jle 0x5060ed
mov eax, 0x516314
call fcn.0049839c
imul eax, dword [ebp - 0x2ac], 0x83
add eax, 0x63fa34
mov edx, 0x515f70
mov cl, 0x82
call fcn.0040328c
mov byte [ebp - 0x4c1], 1
jmp 0x515a05
lea eax, [ebp - 0x1188]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1188]
lea edx, [ebp - 0x1184]
call fcn.00409b94
mov edx, dword [ebp - 0x1184]
mov eax, 0x516340
call fcn.0040570c
test eax, eax
jg 0x506159
lea eax, [ebp - 0x1190]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1190]
lea edx, [ebp - 0x118c]
call fcn.00409b94
mov edx, dword [ebp - 0x118c]
mov eax, 0x516350
call fcn.0040570c
test eax, eax
jle 0x5061d1
lea eax, [ebp - 0x1198]
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
call fcn.0040536c
mov eax, dword [ebp - 0x1198]
lea edx, [ebp - 0x1194]
call fcn.00409de4
mov edx, dword [ebp - 0x1194]
lea eax, [ebp - 0xaf4]
mov ecx, 0xff
call fcn.004053a4
lea edx, [ebp - 0xaf4]
mov eax, dword [ebp - 0x29c]
add eax, 0x2f
mov cl, 0x14
call fcn.004032c8
imul eax, dword [ebp - 0x2ac], 0x83
add eax, 0x63fa34
mov edx, 0x515f70
mov cl, 0x82
call fcn.0040328c
mov byte [ebp - 0x4c1], 1
jmp 0x515a05
mov eax, 0x516364
call fcn.0048cf1c
test al, al
je 0x5061f0
mov eax, dword [ebp - 0x29c]
mov edi, eax
mov esi, 0x51636c
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0x11a0]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x11a0]
lea edx, [ebp - 0x119c]
call fcn.00409b94
mov edx, dword [ebp - 0x119c]
mov eax, 0x516384
call fcn.0040570c
test eax, eax
jle 0x506263
lea eax, [ebp - 0x11a8]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x11a8]
lea edx, [ebp - 0x11a4]
call fcn.00409b94
mov edx, dword [ebp - 0x11a4]
mov eax, 0x516394
call fcn.0040570c
test eax, eax
jle 0x506263
mov byte [ebp - 0x4b5], 1
lea eax, [ebp - 0x11b0]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x11b0]
lea edx, [ebp - 0x11ac]
call fcn.00409b94
mov edx, dword [ebp - 0x11ac]
mov eax, 0x5163a4
call fcn.0040570c
test eax, eax
jle 0x5062d6
lea eax, [ebp - 0x11b8]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x11b8]
lea edx, [ebp - 0x11b4]
call fcn.00409b94
mov edx, dword [ebp - 0x11b4]
mov eax, 0x5163b4
call fcn.0040570c
test eax, eax
jle 0x5062d6
mov byte [ebp - 0x4b5], 1
lea eax, [ebp - 0x11c0]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x11c0]
lea edx, [ebp - 0x11bc]
call fcn.00409b94
mov edx, dword [ebp - 0x11bc]
mov eax, 0x5163c4
call fcn.0040570c
test eax, eax
jle 0x506349
lea eax, [ebp - 0x11c8]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x11c8]
lea edx, [ebp - 0x11c4]
call fcn.00409b94
mov edx, dword [ebp - 0x11c4]
mov eax, 0x5163d4
call fcn.0040570c
test eax, eax
jle 0x506349
mov byte [ebp - 0x4b5], 1
lea eax, [ebp - 0x11d0]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x11d0]
lea edx, [ebp - 0x11cc]
call fcn.00409b94
mov edx, dword [ebp - 0x11cc]
mov eax, 0x5163e4
call fcn.0040570c
test eax, eax
jle 0x506470
lea eax, [ebp - 0x11d8]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x11d8]
lea edx, [ebp - 0x11d4]
call fcn.00409b94
mov edx, dword [ebp - 0x11d4]
mov eax, 0x5163f4
call fcn.0040570c
test eax, eax
jle 0x5063c0
mov byte [ebp - 0x4b5], 1
lea eax, [ebp - 0x11e0]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x11e0]
lea edx, [ebp - 0x11dc]
call fcn.00409b94
mov edx, dword [ebp - 0x11dc]
mov eax, 0x516404
call fcn.0040570c
test eax, eax
jle 0x5063fd
mov byte [ebp - 0x4b5], 1
lea eax, [ebp - 0x11e8]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x11e8]
lea edx, [ebp - 0x11e4]
call fcn.00409b94
mov edx, dword [ebp - 0x11e4]
mov eax, 0x516414
call fcn.0040570c
test eax, eax
jle 0x506470
lea eax, [ebp - 0x11f0]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x11f0]
lea edx, [ebp - 0x11ec]
call fcn.00409b94
mov edx, dword [ebp - 0x11ec]
mov eax, 0x516420
call fcn.0040570c
test eax, eax
jle 0x506470
mov byte [ebp - 0x4b5], 1
lea eax, [ebp - 0x11f8]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x11f8]
lea edx, [ebp - 0x11f4]
call fcn.00409b94
mov edx, dword [ebp - 0x11f4]
mov eax, 0x516268
call fcn.0040570c
test eax, eax
jle 0x5064ad
mov byte [ebp - 0x4b5], 1
lea eax, [ebp - 0x1200]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1200]
lea edx, [ebp - 0x11fc]
call fcn.00409b94
mov edx, dword [ebp - 0x11fc]
mov eax, 0x51642c
call fcn.0040570c
test eax, eax
jle 0x5064ea
mov byte [ebp - 0x4b5], 1
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
mov eax, 0x516434
call fcn.00402c78
test eax, eax
jle 0x506508
mov byte [ebp - 0x4b5], 1
lea eax, [ebp - 0x1208]
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
call fcn.0040536c
mov eax, dword [ebp - 0x1208]
lea edx, [ebp - 0x1204]
call fcn.00409b94
mov edx, dword [ebp - 0x1204]
mov eax, 0x516444
call fcn.0040570c
test eax, eax
jle 0x506548
mov byte [ebp - 0x4b5], 1
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
mov eax, 0x516450
call fcn.00402c78
test eax, eax
jle 0x506566
mov byte [ebp - 0x4b5], 1
lea eax, [ebp - 0x1210]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1210]
lea edx, [ebp - 0x120c]
call fcn.00409b94
mov edx, dword [ebp - 0x120c]
mov eax, 0x516258
call fcn.0040570c
test eax, eax
jle 0x50660f
lea eax, [ebp - 0x1218]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1218]
lea edx, [ebp - 0x1214]
call fcn.00409b94
mov edx, dword [ebp - 0x1214]
mov eax, 0x516460
call fcn.0040570c
test eax, eax
jle 0x50660f
lea eax, [ebp - 0x1220]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1220]
lea edx, [ebp - 0x121c]
call fcn.00409b94
mov edx, dword [ebp - 0x121c]
mov eax, 0x51646c
call fcn.0040570c
test eax, eax
jle 0x50660f
mov byte [ebp - 0x4b5], 1
lea eax, [ebp - 0xd5c]
push eax
mov eax, dword [ebp - 0x29c]
mov ecx, 3
mov edx, 1
call fcn.004029cc
lea eax, [ebp - 0xd5c]
mov edx, 0x516474
xor ecx, ecx
mov cl, byte [eax]
inc ecx
call fcn.00403368
jne 0x5066cd
call fcn.004c0444
test al, al
je 0x5066cd
lea eax, [ebp - 0x503]
push eax
lea eax, [ebp - 0x504]
push eax
lea ecx, [ebp - 0x502]
lea edx, [ebp - 0x501]
mov eax, dword [ebp - 0x2a8]
call fcn.00525490
mov byte [ebp - 0x53e], al
cmp byte [ebp - 0x53e], 0
je 0x5066cd
xor eax, eax
mov al, byte [ebp - 0x501]
call fcn.004e5390
test al, al
je 0x5066cd
mov eax, dword [ebp - 0x2ac]
call fcn.00524050
mov ecx, eax
mov edx, dword [ebp - 0x2ac]
mov eax, dword [ebp - 0x2a8]
call fcn.004e5b34
mov dword [ebp - 0x52c], eax
cmp dword [ebp - 0x52c], 0
jle 0x5066cd
mov byte [ebp - 0x4c1], 1
jmp 0x515a05
lea eax, [ebp - 0xd5c]
push eax
mov eax, dword [ebp - 0x29c]
mov ecx, 4
mov edx, 1
call fcn.004029cc
lea eax, [ebp - 0xd5c]
mov edx, 0x516478
xor ecx, ecx
mov cl, byte [eax]
inc ecx
call fcn.00403368
jne 0x506a1d
mov byte [ebp - 0x4b5], 0
mov edx, dword [ebp - 0x4bc]
mov eax, 0x516488
call fcn.0040570c
test eax, eax
jne 0x506a1d
mov eax, 0x516498
call fcn.0048cf1c
test al, al
je 0x506807
mov edx, 0x5164a0
lea eax, [ebp - 0x1058]
call fcn.004032bc
mov edx, dword [ebp - 0x29c]
lea eax, [ebp - 0x1058]
mov cl, 0x27
call fcn.0040328c
lea edx, [ebp - 0x1058]
lea eax, [ebp - 0xd9c]
call fcn.004032bc
mov edx, 0x5164b0
lea eax, [ebp - 0xd9c]
mov cl, 0x2d
call fcn.0040328c
lea edx, [ebp - 0xd9c]
lea eax, [ebp - 0xde0]
call fcn.004032bc
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
lea eax, [ebp - 0xde0]
mov cl, 0x41
call fcn.0040328c
lea edx, [ebp - 0xde0]
lea eax, [ebp - 0x126c]
call fcn.004032bc
mov edx, 0x5164b8
lea eax, [ebp - 0x126c]
mov cl, 0x47
call fcn.0040328c
lea edx, [ebp - 0x126c]
lea eax, [ebp - 0x1224]
call fcn.0040536c
lea eax, [ebp - 0x1224]
push eax
lea edx, [ebp - 0x1270]
mov eax, dword [ebp - 0x2ac]
call fcn.0040a2d8
mov edx, dword [ebp - 0x1270]
pop eax
call fcn.004053d0
mov eax, dword [ebp - 0x1224]
xor edx, edx
call fcn.004e5d18
lea eax, [ebp - 0x503]
push eax
lea eax, [ebp - 0x504]
push eax
lea ecx, [ebp - 0x502]
lea edx, [ebp - 0x501]
mov eax, dword [ebp - 0x2a8]
call fcn.00525490
mov byte [ebp - 0x53e], al
mov eax, 0x516498
call fcn.0048cf1c
test al, al
je 0x506876
lea ecx, [ebp - 0x1278]
xor edx, edx
mov al, byte [ebp - 0x53e]
call fcn.0040a6b8
mov ecx, dword [ebp - 0x1278]
lea eax, [ebp - 0x1274]
mov edx, 0x5164c8
call fcn.00405414
mov eax, dword [ebp - 0x1274]
xor edx, edx
call fcn.004e5d18
mov eax, 0x516498
call fcn.0048cf1c
test al, al
je 0x50691d
push 0x5164e0
lea edx, [ebp - 0x1280]
xor eax, eax
mov al, byte [ebp - 0x501]
call fcn.0040a2d8
push dword [ebp - 0x1280]
push 0x5164fc
lea edx, [ebp - 0x1284]
xor eax, eax
mov al, byte [ebp - 0x502]
call fcn.0040a2d8
push dword [ebp - 0x1284]
push 0x516510
lea edx, [ebp - 0x1288]
xor eax, eax
mov al, byte [ebp - 0x503]
call fcn.0040a2d8
push dword [ebp - 0x1288]
push 0x516524
lea edx, [ebp - 0x128c]
xor eax, eax
mov al, byte [ebp - 0x504]
call fcn.0040a2d8
push dword [ebp - 0x128c]
lea eax, [ebp - 0x127c]
mov edx, 8
call fcn.00405488
mov eax, dword [ebp - 0x127c]
xor edx, edx
call fcn.004e5d18
cmp byte [ebp - 0x53e], 0
je 0x506a1d
xor eax, eax
mov al, byte [ebp - 0x501]
xor edx, edx
call fcn.004e7034
test al, al
je 0x506a03
mov eax, 0x516498
call fcn.0048cf1c
test al, al
je 0x50695b
xor edx, edx
mov eax, 0x516534
call fcn.004e5d18
push 0
xor eax, eax
mov al, byte [ebp - 0x501]
push eax
push 0xffffffffffffffff
push 0
push 0
mov eax, dword [ebp - 0x2ac]
call fcn.00524050
mov ecx, eax
lea eax, [ebp - 0x4cc]
mov edx, dword [ebp - 0x2ac]
call fcn.004ef5cc
mov dword [ebp - 0x52c], eax
mov eax, 0x516498
call fcn.0048cf1c
test al, al
je 0x5069d2
lea edx, [ebp - 0x1294]
mov eax, dword [ebp - 0x52c]
call fcn.0040a2d8
mov ecx, dword [ebp - 0x1294]
lea eax, [ebp - 0x1290]
mov edx, 0x516550
call fcn.00405414
mov eax, dword [ebp - 0x1290]
xor edx, edx
call fcn.004e5d18
cmp dword [ebp - 0x52c], 0
jle 0x5069e7
mov byte [ebp - 0x4c1], 1
jmp 0x515a05
mov eax, 0x516498
call fcn.0048cf1c
test al, al
je 0x506a1d
xor edx, edx
mov eax, 0x516568
call fcn.004e5d18
jmp 0x506a1d
mov eax, 0x516498
call fcn.0048cf1c
test al, al
je 0x506a1d
xor edx, edx
mov eax, 0x516590
call fcn.004e5d18
lea eax, [ebp - 0xd5c]
push eax
mov eax, dword [ebp - 0x29c]
mov ecx, 5
mov edx, 1
call fcn.004029cc
lea eax, [ebp - 0xd5c]
mov edx, 0x5165a8
xor ecx, ecx
mov cl, byte [eax]
inc ecx
call fcn.00403368
jne 0x506d8a
mov al, byte [ebp - 0x4b5]
mov byte [ebp - 0x53c], al
mov byte [ebp - 0x4b5], 0
mov edx, dword [ebp - 0x4bc]
mov eax, 0x516488
call fcn.0040570c
test eax, eax
jne 0x506d8a
mov eax, 0x516498
call fcn.0048cf1c
test al, al
je 0x506b63
mov edx, 0x5165b0
lea eax, [ebp - 0xffc]
call fcn.004032bc
mov edx, dword [ebp - 0x29c]
lea eax, [ebp - 0xffc]
mov cl, 0x28
call fcn.0040328c
lea edx, [ebp - 0xffc]
lea eax, [ebp - 0x1088]
call fcn.004032bc
mov edx, 0x5164b0
lea eax, [ebp - 0x1088]
mov cl, 0x2e
call fcn.0040328c
lea edx, [ebp - 0x1088]
lea eax, [ebp - 0x10cc]
call fcn.004032bc
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
lea eax, [ebp - 0x10cc]
mov cl, 0x42
call fcn.0040328c
lea edx, [ebp - 0x10cc]
lea eax, [ebp - 0x12e4]
call fcn.004032bc
mov edx, 0x5164b8
lea eax, [ebp - 0x12e4]
mov cl, 0x48
call fcn.0040328c
lea edx, [ebp - 0x12e4]
lea eax, [ebp - 0x1298]
call fcn.0040536c
lea eax, [ebp - 0x1298]
push eax
lea edx, [ebp - 0x12e8]
mov eax, dword [ebp - 0x2ac]
call fcn.0040a2d8
mov edx, dword [ebp - 0x12e8]
pop eax
call fcn.004053d0
mov eax, dword [ebp - 0x1298]
xor edx, edx
call fcn.004e5d18
lea eax, [ebp - 0x503]
push eax
lea eax, [ebp - 0x504]
push eax
lea ecx, [ebp - 0x502]
lea edx, [ebp - 0x501]
mov eax, dword [ebp - 0x2a8]
call fcn.00525490
mov byte [ebp - 0x53e], al
mov eax, 0x516498
call fcn.0048cf1c
test al, al
je 0x506bd2
lea ecx, [ebp - 0x12f0]
xor edx, edx
mov al, byte [ebp - 0x53e]
call fcn.0040a6b8
mov ecx, dword [ebp - 0x12f0]
lea eax, [ebp - 0x12ec]
mov edx, 0x5165c8
call fcn.00405414
mov eax, dword [ebp - 0x12ec]
xor edx, edx
call fcn.004e5d18
mov eax, 0x516498
call fcn.0048cf1c
test al, al
je 0x506c79
push 0x5165e0
lea edx, [ebp - 0x12f8]
xor eax, eax
mov al, byte [ebp - 0x501]
call fcn.0040a2d8
push dword [ebp - 0x12f8]
push 0x5164fc
lea edx, [ebp - 0x12fc]
xor eax, eax
mov al, byte [ebp - 0x502]
call fcn.0040a2d8
push dword [ebp - 0x12fc]
push 0x516510
lea edx, [ebp - 0x1300]
xor eax, eax
mov al, byte [ebp - 0x503]
call fcn.0040a2d8
push dword [ebp - 0x1300]
push 0x516524
lea edx, [ebp - 0x1304]
xor eax, eax
mov al, byte [ebp - 0x504]
call fcn.0040a2d8
push dword [ebp - 0x1304]
lea eax, [ebp - 0x12f4]
mov edx, 8
call fcn.00405488
mov eax, dword [ebp - 0x12f4]
xor edx, edx
call fcn.004e5d18
cmp byte [ebp - 0x53e], 0
je 0x506d7e
xor eax, eax
mov al, byte [ebp - 0x501]
xor edx, edx
call fcn.004ebfc8
test al, al
je 0x506d64
mov eax, 0x516498
call fcn.0048cf1c
test al, al
je 0x506cb7
xor edx, edx
mov eax, 0x516600
call fcn.004e5d18
push 0
xor eax, eax
mov al, byte [ebp - 0x501]
add eax, 0x3e8
push eax
push 0xffffffffffffffff
push 0
push 0
mov eax, dword [ebp - 0x2ac]
call fcn.00524050
mov ecx, eax
lea eax, [ebp - 0x4cc]
mov edx, dword [ebp - 0x2ac]
call fcn.004ef5cc
mov dword [ebp - 0x52c], eax
mov eax, 0x516498
call fcn.0048cf1c
test al, al
je 0x506d33
lea edx, [ebp - 0x130c]
mov eax, dword [ebp - 0x52c]
call fcn.0040a2d8
mov ecx, dword [ebp - 0x130c]
lea eax, [ebp - 0x1308]
mov edx, 0x51661c
call fcn.00405414
mov eax, dword [ebp - 0x1308]
xor edx, edx
call fcn.004e5d18
cmp dword [ebp - 0x52c], 0
jle 0x506d48
mov byte [ebp - 0x4c1], 1
jmp 0x515a05
mov eax, 0x516498
call fcn.0048cf1c
test al, al
je 0x506d7e
xor edx, edx
mov eax, 0x516634
call fcn.004e5d18
jmp 0x506d7e
mov eax, 0x516498
call fcn.0048cf1c
test al, al
je 0x506d7e
xor edx, edx
mov eax, 0x51665c
call fcn.004e5d18
mov al, byte [ebp - 0x53c]
mov byte [ebp - 0x4b5], al
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
mov eax, 0x516450
call fcn.00402c78
dec eax
jne 0x506dc0
mov eax, dword [ebp - 0x2ac]
cmp dword [eax*4 + 0xbc29ac], 2
jne 0x506dc0
mov eax, dword [ebp - 0x29c]
lea edi, [eax + 0x2f]
mov esi, 0x516674
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov byte [ebp - 0x507], 0
mov eax, 0x516684
call fcn.0048cf1c
test al, al
je 0x506df4
mov eax, dword [ebp - 0x29c]
mov edi, eax
mov esi, 0x516694
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x29c]
lea edi, [eax + 0x1a]
mov esi, 0x51669c
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov edx, dword [ebp - 0x29c]
mov eax, 0x516694
call fcn.00402c78
test eax, eax
jle 0x506e36
mov edx, dword [ebp - 0x29c]
add edx, 0x1a
mov eax, 0x51669c
call fcn.00402c78
test eax, eax
jle 0x506e36
mov dl, 1
mov eax, dword [ebp - 0x2ac]
call fcn.004c0478
dec eax
jne 0x506e36
mov byte [ebp - 0x507], 1
cmp byte [ebp - 0x507], 0
jne 0x506e59
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
mov eax, 0x516450
call fcn.00402c78
dec eax
jne 0x506fd1
mov dl, 1
mov eax, dword [ebp - 0x2ac]
call fcn.004c0478
dec eax
jne 0x506fd1
mov eax, 0x5166ac
call fcn.0049839c
call fcn.004e18f0
mov eax, dword [ebp - 0x2ac]
call fcn.00524050
mov ecx, eax
mov edx, dword [ebp - 0x2ac]
mov eax, dword [ebp - 0x2a8]
call fcn.004e4238
mov dword [ebp - 0x52c], eax
cmp dword [ebp - 0x52c], 0
jle 0x506fd1
mov byte [ebp - 0x4c1], 1
mov edx, dword [ebp - 0x29c]
mov eax, 0x516694
call fcn.00402c78
test eax, eax
jne 0x515a05
mov byte [ebp - 0x508], 0
mov eax, dword [ebp - 0x2ac]
mov edx, dword [ebp - 0x2ac]
add edx, dword [ebp - 0x52c]
dec edx
sub edx, eax
jl 0x515a05
inc edx
mov dword [ebp - 0x5a4], edx
mov dword [ebp - 0x530], eax
mov eax, dword [ebp - 0x530]
mov eax, dword [eax*4 + 0xbc29ac]
mov dword [ebp - 0x534], eax
mov eax, dword [ebp - 0x530]
mov dword [eax*4 + 0xbc29ac], 2
push 0
imul eax, dword [ebp - 0x530], 0x651
lea edx, [eax*2 + 0xb1fc34]
mov cl, 1
mov eax, dword [ebp - 0x530]
call fcn.0052bbcc
test eax, eax
jle 0x506fa7
mov eax, dword [ebp - 0x530]
mov edx, eax
shl eax, 4
add eax, edx
mov byte [eax + 0xbc49b4], 0
mov eax, dword [ebp - 0x530]
mov edx, eax
shl eax, 4
add eax, edx
mov byte [eax + 0xbc49b8], 0
imul eax, dword [ebp - 0x530], 0x65
lea edi, [eax + 0xbbdac4]
mov esi, 0x5166b8
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
imul eax, dword [ebp - 0x530], 0xaa4
mov dword [eax*8 + 0x6525c8], 2
mov eax, 0x5166c8
call fcn.0049839c
mov byte [ebp - 0x508], 1
jmp 0x506fba
mov eax, dword [ebp - 0x530]
mov edx, dword [ebp - 0x534]
mov dword [eax*4 + 0xbc29ac], edx
inc dword [ebp - 0x530]
dec dword [ebp - 0x5a4]
jne 0x506efb
jmp 0x515a05
lea eax, [ebp - 0xd5c]
push eax
mov eax, dword [ebp - 0x29c]
mov ecx, 8
mov edx, 1
call fcn.004029cc
lea edx, [ebp - 0xd5c]
lea eax, [ebp - 0x1314]
call fcn.0040536c
mov eax, dword [ebp - 0x1314]
lea edx, [ebp - 0x1310]
call fcn.00409b94
mov eax, dword [ebp - 0x1310]
mov edx, 0x5166d4
call fcn.00405514
jne 0x507228
mov al, byte [ebp - 0x4b5]
mov byte [ebp - 0x53c], al
mov byte [ebp - 0x4b5], 0
mov edx, dword [ebp - 0x4bc]
mov eax, 0x516488
call fcn.0040570c
test eax, eax
jne 0x507213
mov eax, 0x516498
call fcn.0048cf1c
test al, al
je 0x507134
mov edx, 0x5166e0
lea eax, [ebp - 0x1344]
call fcn.004032bc
mov edx, dword [ebp - 0x29c]
lea eax, [ebp - 0x1344]
mov cl, 0x2a
call fcn.0040328c
lea edx, [ebp - 0x1344]
lea eax, [ebp - 0x1378]
call fcn.004032bc
mov edx, 0x5164b0
lea eax, [ebp - 0x1378]
mov cl, 0x30
call fcn.0040328c
lea edx, [ebp - 0x1378]
lea eax, [ebp - 0x13c0]
call fcn.004032bc
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
lea eax, [ebp - 0x13c0]
mov cl, 0x44
call fcn.0040328c
lea edx, [ebp - 0x13c0]
lea eax, [ebp - 0x140c]
call fcn.004032bc
mov edx, 0x5164b8
lea eax, [ebp - 0x140c]
mov cl, 0x4a
call fcn.0040328c
lea edx, [ebp - 0x140c]
lea eax, [ebp - 0x1318]
call fcn.0040536c
lea eax, [ebp - 0x1318]
push eax
lea edx, [ebp - 0x1410]
mov eax, dword [ebp - 0x2ac]
call fcn.0040a2d8
mov edx, dword [ebp - 0x1410]
pop eax
call fcn.004053d0
mov eax, dword [ebp - 0x1318]
xor edx, edx
call fcn.004e5d18
mov eax, dword [ebp - 0x2ac]
call fcn.00524050
mov edx, dword [ebp - 0x2a8]
call fcn.004fceac
test al, al
je 0x507213
mov eax, 0x516498
call fcn.0048cf1c
test al, al
je 0x50716c
xor edx, edx
mov eax, 0x5166fc
call fcn.004e5d18
mov eax, dword [ebp - 0x2a8]
push eax
push 0x1388
push 0xffffffffffffffff
push 0
push 0
mov eax, dword [ebp - 0x2ac]
call fcn.00524050
mov ecx, eax
lea eax, [ebp - 0x4cc]
mov edx, dword [ebp - 0x2ac]
call fcn.004ef5cc
mov dword [ebp - 0x52c], eax
mov eax, 0x516498
call fcn.0048cf1c
test al, al
je 0x5071e4
lea edx, [ebp - 0x1418]
mov eax, dword [ebp - 0x52c]
call fcn.0040a2d8
mov ecx, dword [ebp - 0x1418]
lea eax, [ebp - 0x1414]
mov edx, 0x516718
call fcn.00405414
mov eax, dword [ebp - 0x1414]
xor edx, edx
call fcn.004e5d18
cmp dword [ebp - 0x52c], 0
jle 0x5071f9
mov byte [ebp - 0x4c1], 1
jmp 0x515a05
mov eax, 0x516498
call fcn.0048cf1c
test al, al
je 0x507213
xor edx, edx
mov eax, 0x516730
call fcn.004e5d18
call fcn.004c03b4
test al, al
je 0x507228
mov al, byte [ebp - 0x53c]
mov byte [ebp - 0x4b5], al
lea eax, [ebp - 0xd5c]
push eax
mov eax, dword [ebp - 0x29c]
mov ecx, 6
mov edx, 1
call fcn.004029cc
lea edx, [ebp - 0xd5c]
lea eax, [ebp - 0x1420]
call fcn.0040536c
mov eax, dword [ebp - 0x1420]
lea edx, [ebp - 0x141c]
call fcn.00409b94
mov eax, dword [ebp - 0x141c]
mov edx, 0x516758
call fcn.00405514
je 0x5072aa
mov edx, dword [ebp - 0x2ac]
mov eax, 0x516768
call fcn.004fd644
test al, al
jne 0x5072aa
mov eax, dword [ebp - 0x29c]
add eax, 0x1a
mov edx, 0x516774
xor ecx, ecx
mov cl, byte [eax]
inc ecx
call fcn.00403368
jne 0x50763a
mov byte [ebp - 0x4b5], 0
mov eax, dword [0x61a858]
mov byte [eax], 1
mov edx, dword [ebp - 0x4bc]
mov eax, 0x516488
call fcn.0040570c
test eax, eax
jne 0x50763a
mov eax, 0x516498
call fcn.0048cf1c
test al, al
je 0x5073b5
mov edx, 0x51677c
lea eax, [ebp - 0x1344]
call fcn.004032bc
mov edx, dword [ebp - 0x29c]
lea eax, [ebp - 0x1344]
mov cl, 0x2a
call fcn.0040328c
lea edx, [ebp - 0x1344]
lea eax, [ebp - 0x1378]
call fcn.004032bc
mov edx, 0x5164b0
lea eax, [ebp - 0x1378]
mov cl, 0x30
call fcn.0040328c
lea edx, [ebp - 0x1378]
lea eax, [ebp - 0x13c0]
call fcn.004032bc
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
lea eax, [ebp - 0x13c0]
mov cl, 0x44
call fcn.0040328c
lea edx, [ebp - 0x13c0]
lea eax, [ebp - 0x140c]
call fcn.004032bc
mov edx, 0x5164b8
lea eax, [ebp - 0x140c]
mov cl, 0x4a
call fcn.0040328c
lea edx, [ebp - 0x140c]
lea eax, [ebp - 0x1424]
call fcn.0040536c
lea eax, [ebp - 0x1424]
push eax
lea edx, [ebp - 0x1428]
mov eax, dword [ebp - 0x2ac]
call fcn.0040a2d8
mov edx, dword [ebp - 0x1428]
pop eax
call fcn.004053d0
mov eax, dword [ebp - 0x1424]
xor edx, edx
call fcn.004e5d18
lea eax, [ebp - 0x503]
push eax
lea eax, [ebp - 0x504]
push eax
lea ecx, [ebp - 0x502]
lea edx, [ebp - 0x501]
mov eax, dword [ebp - 0x2a8]
call fcn.00525490
mov byte [ebp - 0x53e], al
mov eax, 0x516498
call fcn.0048cf1c
test al, al
je 0x507424
lea ecx, [ebp - 0x1430]
xor edx, edx
mov al, byte [ebp - 0x53e]
call fcn.0040a6b8
mov ecx, dword [ebp - 0x1430]
lea eax, [ebp - 0x142c]
mov edx, 0x516798
call fcn.00405414
mov eax, dword [ebp - 0x142c]
xor edx, edx
call fcn.004e5d18
mov eax, 0x516498
call fcn.0048cf1c
test al, al
je 0x5074cb
push 0x5167b4
lea edx, [ebp - 0x1438]
xor eax, eax
mov al, byte [ebp - 0x501]
call fcn.0040a2d8
push dword [ebp - 0x1438]
push 0x5164fc
lea edx, [ebp - 0x143c]
xor eax, eax
mov al, byte [ebp - 0x502]
call fcn.0040a2d8
push dword [ebp - 0x143c]
push 0x516510
lea edx, [ebp - 0x1440]
xor eax, eax
mov al, byte [ebp - 0x503]
call fcn.0040a2d8
push dword [ebp - 0x1440]
push 0x516524
lea edx, [ebp - 0x1444]
xor eax, eax
mov al, byte [ebp - 0x504]
call fcn.0040a2d8
push dword [ebp - 0x1444]
lea eax, [ebp - 0x1434]
mov edx, 8
call fcn.00405488
mov eax, dword [ebp - 0x1434]
xor edx, edx
call fcn.004e5d18
cmp byte [ebp - 0x53e], 0
je 0x50763a
xor eax, eax
mov al, byte [ebp - 0x501]
mov ecx, dword [ebp - 0x2ac]
xor edx, edx
call fcn.004e7b08
test al, al
je 0x507620
xor eax, eax
mov al, byte [ebp - 0x501]
call fcn.004eb234
mov dword [ebp - 0x52c], eax
lea eax, [ebp - 0x4f4]
push eax
lea eax, [ebp - 0x4f0]
push eax
lea ecx, [ebp - 0x4ec]
mov edx, dword [ebp - 0x2ac]
mov eax, dword [ebp - 0x2a8]
call fcn.0050135c
test eax, eax
je 0x507541
lea eax, [ebp - 0x4f4]
mov edx, 0x5167d4
call fcn.004051a0
mov dword [ebp - 0x51c], 0xffffffff
push 0
xor eax, eax
mov al, byte [ebp - 0x501]
add eax, 0x7d0
push eax
mov eax, dword [ebp - 0x51c]
push eax
mov eax, dword [ebp - 0x4ec]
push eax
mov eax, dword [ebp - 0x4f4]
push eax
mov eax, dword [ebp - 0x2ac]
call fcn.00524050
mov ecx, eax
lea eax, [ebp - 0x4cc]
mov edx, dword [ebp - 0x2ac]
call fcn.004ef5cc
mov dword [ebp - 0x52c], eax
mov eax, 0x516498
call fcn.0048cf1c
test al, al
je 0x5075d6
lea edx, [ebp - 0x144c]
mov eax, dword [ebp - 0x52c]
call fcn.0040a2d8
mov ecx, dword [ebp - 0x144c]
lea eax, [ebp - 0x1448]
mov edx, 0x5167e0
call fcn.00405414
mov eax, dword [ebp - 0x1448]
xor edx, edx
call fcn.004e5d18
cmp dword [ebp - 0x52c], 0
jle 0x5075eb
mov byte [ebp - 0x4c1], 1
jmp 0x515a05
mov al, byte [ebp - 0x52c]
mov edx, dword [ebp - 0x2ac]
mov ecx, edx
shl edx, 4
add edx, ecx
mov byte [edx + 0xbc49b8], al
mov eax, 0x516498
call fcn.0048cf1c
test al, al
je 0x50763a
xor edx, edx
mov eax, 0x5167fc
call fcn.004e5d18
jmp 0x50763a
mov eax, 0x516498
call fcn.0048cf1c
test al, al
je 0x50763a
xor edx, edx
mov eax, 0x516828
call fcn.004e5d18
mov eax, 0x516848
call fcn.0048cf1c
test al, al
je 0x507663
cmp dword [ebp - 0x2ac], 0xf
jg 0x507663
mov eax, dword [ebp - 0x29c]
mov edi, eax
mov esi, 0x516854
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov eax, 0x51686c
call fcn.0048cf1c
test al, al
je 0x507685
mov eax, dword [ebp - 0x29c]
mov edi, eax
mov esi, 0x516878
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov eax, 0x516894
call fcn.0048cf1c
test al, al
je 0x5076ec
cmp dword [ebp - 0x2ac], 0x14
jg 0x5076ec
lea edx, [ebp - 0x1454]
mov eax, dword [ebp - 0x2ac]
call fcn.0040a2d8
mov ecx, dword [ebp - 0x1454]
lea eax, [ebp - 0x1450]
mov edx, 0x5168a4
call fcn.00405414
mov edx, dword [ebp - 0x1450]
lea eax, [ebp - 0xaf4]
mov ecx, 0xff
call fcn.004053a4
lea edx, [ebp - 0xaf4]
mov eax, dword [ebp - 0x29c]
mov cl, 0x19
call fcn.004032c8
mov eax, 0x5168bc
call fcn.0048cf1c
test al, al
je 0x507715
cmp dword [ebp - 0x2ac], 4
jg 0x507715
mov eax, dword [ebp - 0x29c]
mov edi, eax
mov esi, 0x5168cc
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, 0x5168e8
call fcn.0048cf1c
test al, al
je 0x50773f
cmp dword [ebp - 0x2ac], 0xa
jg 0x50773f
mov eax, dword [ebp - 0x29c]
mov edi, eax
mov esi, 0x5168f0
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov eax, 0x51690c
call fcn.0048cf1c
test al, al
jne 0x50775f
mov eax, 0x51691c
call fcn.0048cf1c
test al, al
je 0x507859
cmp dword [ebp - 0x2ac], 0x96
jg 0x507859
mov edx, dword [ebp - 0x29c]
mov eax, 0x516928
call fcn.00402c78
test eax, eax
jne 0x507859
cmp dword [ebp - 0x2ac], 1
jg 0x5077a5
mov eax, dword [ebp - 0x29c]
mov edi, eax
mov esi, 0x516930
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
jmp 0x5077f5
lea edx, [ebp - 0x145c]
mov eax, dword [ebp - 0x2ac]
call fcn.0040a2d8
mov ecx, dword [ebp - 0x145c]
lea eax, [ebp - 0x1458]
mov edx, 0x516948
call fcn.00405414
mov edx, dword [ebp - 0x1458]
lea eax, [ebp - 0xaf4]
mov ecx, 0xff
call fcn.004053a4
lea edx, [ebp - 0xaf4]
mov eax, dword [ebp - 0x29c]
mov cl, 0x19
call fcn.004032c8
mov eax, dword [ebp - 0x29c]
mov edi, eax
mov esi, 0x516950
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov eax, dword [ebp - 0x29c]
mov edi, eax
mov esi, 0x516964
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
cmp dword [ebp - 0x2ac], 6
jne 0x507859
mov eax, dword [ebp - 0x29c]
mov edi, eax
mov esi, 0x516974
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov eax, dword [ebp - 0x29c]
lea edi, [eax + 0x1a]
mov esi, 0x516990
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov eax, dword [ebp - 0x29c]
lea edi, [eax + 0x2f]
mov esi, 0x516998
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov eax, 0x5169b0
call fcn.0048cf1c
test al, al
je 0x5078c0
cmp dword [ebp - 0x2ac], 4
jg 0x5078c0
lea edx, [ebp - 0x1464]
mov eax, dword [ebp - 0x2ac]
call fcn.0040a2d8
mov ecx, dword [ebp - 0x1464]
lea eax, [ebp - 0x1460]
mov edx, 0x5169c0
call fcn.00405414
mov edx, dword [ebp - 0x1460]
lea eax, [ebp - 0xaf4]
mov ecx, 0xff
call fcn.004053a4
lea edx, [ebp - 0xaf4]
mov eax, dword [ebp - 0x29c]
mov cl, 0x19
call fcn.004032c8
mov eax, 0x5169d8
call fcn.0048cf1c
test al, al
je 0x507927
cmp dword [ebp - 0x2ac], 0x14
jg 0x507927
lea edx, [ebp - 0x146c]
mov eax, dword [ebp - 0x2ac]
call fcn.0040a2d8
mov ecx, dword [ebp - 0x146c]
lea eax, [ebp - 0x1468]
mov edx, 0x5169ec
call fcn.00405414
mov edx, dword [ebp - 0x1468]
lea eax, [ebp - 0xaf4]
mov ecx, 0xff
call fcn.004053a4
lea edx, [ebp - 0xaf4]
mov eax, dword [ebp - 0x29c]
mov cl, 0x19
call fcn.004032c8
mov eax, 0x516a08
call fcn.0048cf1c
test al, al
je 0x507948
mov eax, dword [ebp - 0x29c]
mov edi, eax
mov esi, 0x516a14
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov eax, 0x516a08
call fcn.0048cf1c
test al, al
je 0x50796b
mov eax, dword [ebp - 0x29c]
mov edi, eax
mov esi, 0x516a28
mov ecx, 5
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov eax, 0x516a08
call fcn.0048cf1c
test al, al
je 0x50798d
mov eax, dword [ebp - 0x29c]
mov edi, eax
mov esi, 0x516a40
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov eax, 0x516a08
call fcn.0048cf1c
test al, al
je 0x5079ae
mov eax, dword [ebp - 0x29c]
mov edi, eax
mov esi, 0x516a54
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov eax, 0x516a08
call fcn.0048cf1c
test al, al
je 0x5079cf
mov eax, dword [ebp - 0x29c]
mov edi, eax
mov esi, 0x516a64
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
lea eax, [ebp - 0x1474]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1474]
lea edx, [ebp - 0x1470]
call fcn.00409b94
mov edx, dword [ebp - 0x1470]
mov eax, 0x516a80
call fcn.0040570c
test eax, eax
jle 0x507cb7
mov edx, 0x516a88
lea eax, [ebp - 0xf8c]
call fcn.004032bc
mov edx, dword [ebp - 0x29c]
lea eax, [ebp - 0xf8c]
mov cl, 0x24
call fcn.0040328c
lea edx, [ebp - 0xf8c]
lea eax, [ebp - 0x14a4]
call fcn.004032bc
mov edx, 0x516a94
lea eax, [ebp - 0x14a4]
mov cl, 0x29
call fcn.0040328c
lea edx, [ebp - 0x14a4]
lea eax, [ebp - 0x1478]
call fcn.0040536c
lea eax, [ebp - 0x1478]
push eax
lea edx, [ebp - 0x14a8]
mov al, byte [ebp - 0x4b5]
call fcn.0048dfc0
mov edx, dword [ebp - 0x14a8]
pop eax
call fcn.004053d0
mov eax, dword [ebp - 0x1478]
call fcn.0049839c
lea eax, [ebp - 0x14b0]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x14b0]
lea edx, [ebp - 0x14ac]
call fcn.00409b94
mov edx, dword [ebp - 0x14ac]
mov eax, 0x5161b0
call fcn.0040570c
test eax, eax
jle 0x507ba3
mov byte [ebp - 0x4b5], 0
mov edx, 0x516a9c
lea eax, [ebp - 0x14dc]
call fcn.004032bc
mov edx, dword [ebp - 0x29c]
lea eax, [ebp - 0x14dc]
mov cl, 0x25
call fcn.0040328c
lea edx, [ebp - 0x14dc]
lea eax, [ebp - 0x1344]
call fcn.004032bc
mov edx, 0x516a94
lea eax, [ebp - 0x1344]
mov cl, 0x2a
call fcn.0040328c
lea edx, [ebp - 0x1344]
lea eax, [ebp - 0x14b4]
call fcn.0040536c
lea eax, [ebp - 0x14b4]
push eax
lea edx, [ebp - 0x14e0]
mov al, byte [ebp - 0x4b5]
call fcn.0048dfc0
mov edx, dword [ebp - 0x14e0]
pop eax
call fcn.004053d0
mov eax, dword [ebp - 0x14b4]
call fcn.0049839c
mov byte [ebp - 0x4b6], 1
mov al, byte [ebp - 0x4b6]
call fcn.0048e914
mov edx, eax
lea eax, [ebp - 0x14e8]
call fcn.004052f0
mov ecx, dword [ebp - 0x14e8]
lea eax, [ebp - 0x14e4]
mov edx, 0x516ab4
call fcn.00405414
mov eax, dword [ebp - 0x14e4]
call fcn.0049839c
call fcn.004ca5d8
test al, al
jne 0x50b673
lea eax, [ebp - 0x14f0]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x14f0]
lea edx, [ebp - 0x14ec]
call fcn.00409b94
mov edx, dword [ebp - 0x14ec]
mov eax, 0x516ad0
call fcn.0040570c
test eax, eax
jle 0x507cb7
mov byte [ebp - 0x4b5], 0
mov edx, 0x516ad4
lea eax, [ebp - 0x14dc]
call fcn.004032bc
mov edx, dword [ebp - 0x29c]
lea eax, [ebp - 0x14dc]
mov cl, 0x25
call fcn.0040328c
lea edx, [ebp - 0x14dc]
lea eax, [ebp - 0x1344]
call fcn.004032bc
mov edx, 0x516a94
lea eax, [ebp - 0x1344]
mov cl, 0x2a
call fcn.0040328c
lea edx, [ebp - 0x1344]
lea eax, [ebp - 0x14f4]
call fcn.0040536c
lea eax, [ebp - 0x14f4]
push eax
lea edx, [ebp - 0x14f8]
mov al, byte [ebp - 0x4b5]
call fcn.0048dfc0
mov edx, dword [ebp - 0x14f8]
pop eax
call fcn.004053d0
mov eax, dword [ebp - 0x14f4]
call fcn.0049839c
mov byte [ebp - 0x4b6], 1
mov al, byte [ebp - 0x4b6]
call fcn.0048e914
mov edx, eax
lea eax, [ebp - 0x1500]
call fcn.004052f0
mov ecx, dword [ebp - 0x1500]
lea eax, [ebp - 0x14fc]
mov edx, 0x516ab4
call fcn.00405414
mov eax, dword [ebp - 0x14fc]
call fcn.0049839c
call fcn.004ca5d8
test al, al
jne 0x50b673
mov eax, 0x516aec
call fcn.0048cf1c
test al, al
je 0x507cd9
mov eax, dword [ebp - 0x29c]
mov edi, eax
mov esi, 0x516af8
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
call fcn.004c473c
mov byte [ebp - 0x507], al
cmp byte [ebp - 0x507], 0
je 0x507d39
mov eax, dword [ebp - 0x2a8]
call fcn.00525d98
mov dword [ebp - 0x52c], eax
cmp dword [ebp - 0x52c], 0xa
sete byte [ebp - 0x507]
cmp byte [ebp - 0x507], 0
jne 0x507d39
mov edx, dword [ebp - 0x29c]
mov eax, 0x516b0c
call fcn.00402c78
test eax, eax
jle 0x507d39
cmp dword [ebp - 0x52c], 8
jne 0x507d39
mov byte [ebp - 0x507], 1
cmp byte [ebp - 0x507], 0
jne 0x508710
lea eax, [ebp - 0xd5c]
push eax
mov eax, dword [ebp - 0x29c]
mov ecx, 6
mov edx, 1
call fcn.004029cc
lea edx, [ebp - 0xd5c]
lea eax, [ebp - 0x1508]
call fcn.0040536c
mov eax, dword [ebp - 0x1508]
lea edx, [ebp - 0x1504]
call fcn.00409b94
mov eax, dword [ebp - 0x1504]
mov edx, 0x516b1c
call fcn.00405514
je 0x508710
lea eax, [ebp - 0xd5c]
push eax
mov eax, dword [ebp - 0x29c]
mov ecx, 6
mov edx, 1
call fcn.004029cc
lea edx, [ebp - 0xd5c]
lea eax, [ebp - 0x1510]
call fcn.0040536c
mov eax, dword [ebp - 0x1510]
lea edx, [ebp - 0x150c]
call fcn.00409b94
mov eax, dword [ebp - 0x150c]
mov edx, 0x516b2c
call fcn.00405514
je 0x508710
lea eax, [ebp - 0xd5c]
push eax
mov eax, dword [ebp - 0x29c]
mov ecx, 4
mov edx, 1
call fcn.004029cc
lea edx, [ebp - 0xd5c]
lea eax, [ebp - 0x1518]
call fcn.0040536c
mov eax, dword [ebp - 0x1518]
lea edx, [ebp - 0x1514]
call fcn.00409b94
mov eax, dword [ebp - 0x1514]
mov edx, 0x516948
call fcn.00405514
je 0x508710
lea eax, [ebp - 0x1520]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1520]
lea edx, [ebp - 0x151c]
call fcn.00409b94
mov edx, dword [ebp - 0x151c]
mov eax, 0x516b3c
call fcn.0040570c
test eax, eax
jg 0x508710
lea eax, [ebp - 0x1528]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1528]
lea edx, [ebp - 0x1524]
call fcn.00409b94
mov edx, dword [ebp - 0x1524]
mov eax, 0x516b50
call fcn.0040570c
test eax, eax
jg 0x508710
lea eax, [ebp - 0x1530]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1530]
lea edx, [ebp - 0x152c]
call fcn.00409b94
mov edx, dword [ebp - 0x152c]
mov eax, 0x516b60
call fcn.0040570c
test eax, eax
jg 0x508710
lea eax, [ebp - 0x1538]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1538]
lea edx, [ebp - 0x1534]
call fcn.00409b94
mov edx, dword [ebp - 0x1534]
mov eax, 0x516b6c
call fcn.0040570c
test eax, eax
jg 0x508710
lea eax, [ebp - 0x1540]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1540]
lea edx, [ebp - 0x153c]
call fcn.00409b94
mov edx, dword [ebp - 0x153c]
mov eax, 0x516b7c
call fcn.0040570c
test eax, eax
jg 0x508710
lea eax, [ebp - 0x1548]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1548]
lea edx, [ebp - 0x1544]
call fcn.00409b94
mov edx, dword [ebp - 0x1544]
mov eax, 0x516b8c
call fcn.0040570c
test eax, eax
jg 0x508710
lea eax, [ebp - 0x1550]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1550]
lea edx, [ebp - 0x154c]
call fcn.00409b94
mov edx, dword [ebp - 0x154c]
mov eax, 0x516ba0
call fcn.0040570c
test eax, eax
jg 0x508710
lea eax, [ebp - 0x1558]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1558]
lea edx, [ebp - 0x1554]
call fcn.00409b94
mov edx, dword [ebp - 0x1554]
mov eax, 0x516bb4
call fcn.0040570c
test eax, eax
jg 0x508710
lea eax, [ebp - 0x1560]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1560]
lea edx, [ebp - 0x155c]
call fcn.00409b94
mov edx, dword [ebp - 0x155c]
mov eax, 0x516bc8
call fcn.0040570c
test eax, eax
jg 0x508710
lea eax, [ebp - 0x1568]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1568]
lea edx, [ebp - 0x1564]
call fcn.00409b94
mov edx, dword [ebp - 0x1564]
mov eax, 0x516bdc
call fcn.0040570c
test eax, eax
jg 0x508710
lea eax, [ebp - 0x1570]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1570]
lea edx, [ebp - 0x156c]
call fcn.00409b94
mov edx, dword [ebp - 0x156c]
mov eax, 0x516bf0
call fcn.0040570c
test eax, eax
jg 0x508710
lea eax, [ebp - 0x1578]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1578]
lea edx, [ebp - 0x1574]
call fcn.00409b94
mov edx, dword [ebp - 0x1574]
mov eax, 0x516c00
call fcn.0040570c
test eax, eax
jg 0x508710
lea eax, [ebp - 0x1580]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1580]
lea edx, [ebp - 0x157c]
call fcn.00409b94
mov edx, dword [ebp - 0x157c]
mov eax, 0x516c10
call fcn.0040570c
test eax, eax
jg 0x508710
lea eax, [ebp - 0x1588]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1588]
lea edx, [ebp - 0x1584]
call fcn.00409b94
mov edx, dword [ebp - 0x1584]
mov eax, 0x516c24
call fcn.0040570c
test eax, eax
jg 0x508710
lea eax, [ebp - 0x1590]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1590]
lea edx, [ebp - 0x158c]
call fcn.00409b94
mov edx, dword [ebp - 0x158c]
mov eax, 0x516c38
call fcn.0040570c
test eax, eax
jg 0x508710
lea eax, [ebp - 0x1598]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1598]
lea edx, [ebp - 0x1594]
call fcn.00409b94
mov edx, dword [ebp - 0x1594]
mov eax, 0x516c48
call fcn.0040570c
test eax, eax
jg 0x508710
lea eax, [ebp - 0x15a0]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x15a0]
lea edx, [ebp - 0x159c]
call fcn.00409b94
mov edx, dword [ebp - 0x159c]
mov eax, 0x516c5c
call fcn.0040570c
test eax, eax
jg 0x508710
lea eax, [ebp - 0x15a8]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x15a8]
lea edx, [ebp - 0x15a4]
call fcn.00409b94
mov edx, dword [ebp - 0x15a4]
mov eax, 0x516c6c
call fcn.0040570c
test eax, eax
jg 0x508710
lea eax, [ebp - 0x15b0]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x15b0]
lea edx, [ebp - 0x15ac]
call fcn.00409b94
mov edx, dword [ebp - 0x15ac]
mov eax, 0x516c80
call fcn.0040570c
test eax, eax
jg 0x508710
lea eax, [ebp - 0x15b8]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x15b8]
lea edx, [ebp - 0x15b4]
call fcn.00409b94
mov edx, dword [ebp - 0x15b4]
mov eax, 0x516c94
call fcn.0040570c
test eax, eax
jg 0x508710
lea eax, [ebp - 0x15c0]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x15c0]
lea edx, [ebp - 0x15bc]
call fcn.00409b94
mov edx, dword [ebp - 0x15bc]
mov eax, 0x516ca8
call fcn.0040570c
test eax, eax
jg 0x508710
lea eax, [ebp - 0x15c8]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x15c8]
lea edx, [ebp - 0x15c4]
call fcn.00409b94
mov edx, dword [ebp - 0x15c4]
mov eax, 0x516cb8
call fcn.0040570c
test eax, eax
jg 0x508710
lea eax, [ebp - 0x15d0]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x15d0]
lea edx, [ebp - 0x15cc]
call fcn.00409b94
mov edx, dword [ebp - 0x15cc]
mov eax, 0x516cc8
call fcn.0040570c
test eax, eax
jg 0x508710
lea eax, [ebp - 0x15d8]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x15d8]
lea edx, [ebp - 0x15d4]
call fcn.00409b94
mov edx, dword [ebp - 0x15d4]
mov eax, 0x516cd8
call fcn.0040570c
test eax, eax
jg 0x508710
lea eax, [ebp - 0x15e0]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x15e0]
lea edx, [ebp - 0x15dc]
call fcn.00409b94
mov edx, dword [ebp - 0x15dc]
mov eax, 0x516ce8
call fcn.0040570c
test eax, eax
jg 0x508710
lea eax, [ebp - 0x15e8]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x15e8]
lea edx, [ebp - 0x15e4]
call fcn.00409b94
mov edx, dword [ebp - 0x15e4]
mov eax, 0x516cf8
call fcn.0040570c
test eax, eax
jg 0x508710
lea eax, [ebp - 0x15f0]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x15f0]
lea edx, [ebp - 0x15ec]
call fcn.00409b94
mov edx, dword [ebp - 0x15ec]
mov eax, 0x516d08
call fcn.0040570c
test eax, eax
jg 0x508710
lea eax, [ebp - 0x15f8]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x15f8]
lea edx, [ebp - 0x15f4]
call fcn.00409b94
mov edx, dword [ebp - 0x15f4]
mov eax, 0x516d18
call fcn.0040570c
test eax, eax
jg 0x508710
lea eax, [ebp - 0x1600]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1600]
lea edx, [ebp - 0x15fc]
call fcn.00409b94
mov edx, dword [ebp - 0x15fc]
mov eax, 0x516d28
call fcn.0040570c
test eax, eax
jg 0x508710
lea eax, [ebp - 0x1608]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1608]
lea edx, [ebp - 0x1604]
call fcn.00409b94
mov edx, dword [ebp - 0x1604]
mov eax, 0x516d38
call fcn.0040570c
test eax, eax
jg 0x508710
lea eax, [ebp - 0x1610]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1610]
lea edx, [ebp - 0x160c]
call fcn.00409b94
mov edx, dword [ebp - 0x160c]
mov eax, 0x516d48
call fcn.0040570c
test eax, eax
jg 0x508710
lea eax, [ebp - 0x1618]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1618]
lea edx, [ebp - 0x1614]
call fcn.00409b94
mov edx, dword [ebp - 0x1614]
mov eax, 0x516d58
call fcn.0040570c
test eax, eax
jg 0x508710
lea eax, [ebp - 0x1620]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1620]
lea edx, [ebp - 0x161c]
call fcn.00409b94
mov edx, dword [ebp - 0x161c]
mov eax, 0x516d68
call fcn.0040570c
test eax, eax
jg 0x508710
lea eax, [ebp - 0x1628]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1628]
lea edx, [ebp - 0x1624]
call fcn.00409b94
mov edx, dword [ebp - 0x1624]
mov eax, 0x516d78
call fcn.0040570c
test eax, eax
jg 0x508710
lea eax, [ebp - 0x1630]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1630]
lea edx, [ebp - 0x162c]
call fcn.00409b94
mov edx, dword [ebp - 0x162c]
mov eax, 0x516d88
call fcn.0040570c
test eax, eax
jg 0x508710
lea eax, [ebp - 0x1638]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1638]
lea edx, [ebp - 0x1634]
call fcn.00409b94
mov edx, dword [ebp - 0x1634]
mov eax, 0x516d98
call fcn.0040570c
test eax, eax
jg 0x508710
lea eax, [ebp - 0x1640]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1640]
lea edx, [ebp - 0x163c]
call fcn.00409b94
mov edx, dword [ebp - 0x163c]
mov eax, 0x516da8
call fcn.0040570c
test eax, eax
jg 0x508710
lea eax, [ebp - 0x1648]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1648]
lea edx, [ebp - 0x1644]
call fcn.00409b94
mov edx, dword [ebp - 0x1644]
mov eax, 0x516db8
call fcn.0040570c
test eax, eax
jg 0x508710
lea eax, [ebp - 0x1650]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1650]
lea edx, [ebp - 0x164c]
call fcn.00409b94
mov edx, dword [ebp - 0x164c]
mov eax, 0x516dc8
call fcn.0040570c
test eax, eax
jle 0x5090f0
lea eax, [ebp - 0x1658]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1658]
lea edx, [ebp - 0x1654]
call fcn.00409b94
mov edx, dword [ebp - 0x1654]
mov eax, 0x516dd8
call fcn.0040570c
test eax, eax
jne 0x5090f0
mov al, byte [ebp - 0x4b5]
mov byte [ebp - 0x53c], al
mov byte [ebp - 0x4b5], 0
mov edx, dword [ebp - 0x29c]
mov eax, 0x516de4
call fcn.00402c78
test eax, eax
jg 0x508785
mov edx, dword [ebp - 0x29c]
mov eax, 0x516de8
call fcn.00402c78
test eax, eax
jle 0x50878e
mov byte [ebp - 0x53e], 1
jmp 0x508799
call fcn.004c473c
mov byte [ebp - 0x53e], al
lea eax, [ebp - 0x1660]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1660]
lea edx, [ebp - 0x165c]
call fcn.00409b94
mov edx, dword [ebp - 0x165c]
mov eax, 0x516a80
call fcn.0040570c
test eax, eax
jle 0x508859
lea eax, [ebp - 0x1668]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1668]
lea edx, [ebp - 0x1664]
call fcn.00409b94
mov edx, dword [ebp - 0x1664]
mov eax, 0x5161b0
call fcn.0040570c
test eax, eax
jle 0x508816
call fcn.004ca5d8
xor al, 1
mov byte [ebp - 0x53e], al
lea eax, [ebp - 0x1670]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1670]
lea edx, [ebp - 0x166c]
call fcn.00409b94
mov edx, dword [ebp - 0x166c]
mov eax, 0x516ad0
call fcn.0040570c
test eax, eax
jle 0x508859
call fcn.004ca5d8
xor al, 1
mov byte [ebp - 0x53e], al
cmp byte [ebp - 0x53e], 0
jne 0x508cfd
mov edx, dword [ebp - 0x29c]
mov eax, 0x516df4
call fcn.00402c78
test eax, eax
jle 0x508993
lea eax, [ebp - 0x1678]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1678]
lea edx, [ebp - 0x1674]
call fcn.00409b94
mov edx, dword [ebp - 0x1674]
mov eax, 0x516b8c
call fcn.0040570c
test eax, eax
jle 0x5088bb
mov byte [ebp - 0x53e], 1
mov edx, dword [ebp - 0x29c]
mov eax, 0x516df8
call fcn.00402c78
test eax, eax
jle 0x5088d6
mov byte [ebp - 0x53e], 1
mov edx, dword [ebp - 0x29c]
mov eax, 0x516e00
call fcn.00402c78
test eax, eax
jle 0x5088f1
mov byte [ebp - 0x53e], 1
mov edx, dword [ebp - 0x29c]
mov eax, 0x516e08
call fcn.00402c78
test eax, eax
jle 0x50890c
mov byte [ebp - 0x53e], 1
mov edx, dword [ebp - 0x29c]
mov eax, 0x516e10
call fcn.00402c78
test eax, eax
jle 0x508927
mov byte [ebp - 0x53e], 1
mov edx, dword [ebp - 0x29c]
mov eax, 0x516e18
call fcn.00402c78
test eax, eax
jle 0x508942
mov byte [ebp - 0x53e], 1
mov edx, dword [ebp - 0x29c]
mov eax, 0x516e20
call fcn.00402c78
test eax, eax
jle 0x50895d
mov byte [ebp - 0x53e], 1
mov edx, dword [ebp - 0x29c]
mov eax, 0x516e28
call fcn.00402c78
test eax, eax
jle 0x508978
mov byte [ebp - 0x53e], 1
mov edx, dword [ebp - 0x29c]
mov eax, 0x516e30
call fcn.00402c78
test eax, eax
jle 0x508993
mov byte [ebp - 0x53e], 1
lea eax, [ebp - 0x1680]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1680]
lea edx, [ebp - 0x167c]
call fcn.00409b94
mov edx, dword [ebp - 0x167c]
mov eax, 0x516e40
call fcn.0040570c
test eax, eax
jle 0x5089ff
mov edx, dword [ebp - 0x29c]
mov eax, 0x516e48
call fcn.00402c78
test eax, eax
jle 0x5089e4
mov byte [ebp - 0x53e], 1
mov edx, dword [ebp - 0x29c]
mov eax, 0x516e4c
call fcn.00402c78
test eax, eax
jle 0x5089ff
mov byte [ebp - 0x53e], 1
lea eax, [ebp - 0x1688]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1688]
lea edx, [ebp - 0x1684]
call fcn.00409b94
mov edx, dword [ebp - 0x1684]
mov eax, 0x516d88
call fcn.0040570c
test eax, eax
jle 0x508a50
mov edx, dword [ebp - 0x29c]
mov eax, 0x516e50
call fcn.00402c78
test eax, eax
jle 0x508a50
mov byte [ebp - 0x53e], 1
mov edx, dword [ebp - 0x29c]
mov eax, 0x516e54
call fcn.00402c78
test eax, eax
jle 0x508a7f
mov edx, dword [ebp - 0x29c]
mov eax, 0x516e5c
call fcn.00402c78
test eax, eax
jle 0x508a7f
mov byte [ebp - 0x53e], 1
lea eax, [ebp - 0x1690]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1690]
lea edx, [ebp - 0x168c]
call fcn.00409b94
mov edx, dword [ebp - 0x168c]
mov eax, 0x5161b0
call fcn.0040570c
test eax, eax
jle 0x508c18
mov edx, dword [ebp - 0x29c]
mov eax, 0x516e64
call fcn.00402c78
test eax, eax
jle 0x508ad4
mov byte [ebp - 0x53e], 1
mov edx, dword [ebp - 0x29c]
mov eax, 0x516e70
call fcn.00402c78
test eax, eax
jle 0x508aef
mov byte [ebp - 0x53e], 1
mov edx, dword [ebp - 0x29c]
mov eax, 0x516e7c
call fcn.00402c78
test eax, eax
jle 0x508b0a
mov byte [ebp - 0x53e], 1
mov edx, dword [ebp - 0x29c]
mov eax, 0x516e88
call fcn.00402c78
test eax, eax
jle 0x508b25
mov byte [ebp - 0x53e], 1
mov edx, dword [ebp - 0x29c]
mov eax, 0x516e90
call fcn.00402c78
test eax, eax
jle 0x508b40
mov byte [ebp - 0x53e], 1
mov edx, dword [ebp - 0x29c]
mov eax, 0x516e9c
call fcn.00402c78
test eax, eax
jle 0x508b5b
mov byte [ebp - 0x53e], 1
mov edx, dword [ebp - 0x29c]
mov eax, 0x516ea8
call fcn.00402c78
test eax, eax
jle 0x508b76
mov byte [ebp - 0x53e], 1
mov edx, dword [ebp - 0x29c]
mov eax, 0x516eb4
call fcn.00402c78
test eax, eax
jle 0x508b91
mov byte [ebp - 0x53e], 1
mov edx, dword [ebp - 0x29c]
mov eax, 0x516ebc
call fcn.00402c78
test eax, eax
jle 0x508bac
mov byte [ebp - 0x53e], 1
mov edx, dword [ebp - 0x29c]
mov eax, 0x516ec8
call fcn.00402c78
test eax, eax
jle 0x508bc7
mov byte [ebp - 0x53e], 1
mov edx, dword [ebp - 0x29c]
mov eax, 0x516ed0
call fcn.00402c78
test eax, eax
jle 0x508be2
mov byte [ebp - 0x53e], 1
mov edx, dword [ebp - 0x29c]
mov eax, 0x516ed8
call fcn.00402c78
test eax, eax
jle 0x508bfd
mov byte [ebp - 0x53e], 1
mov edx, dword [ebp - 0x29c]
mov eax, 0x516ee0
call fcn.00402c78
test eax, eax
jle 0x508c18
mov byte [ebp - 0x53e], 1
mov edx, dword [ebp - 0x29c]
mov eax, 0x516ee8
call fcn.00402c78
test eax, eax
jle 0x508c7d
mov edx, dword [ebp - 0x29c]
mov eax, 0x516ef0
call fcn.00402c78
test eax, eax
jle 0x508c47
mov byte [ebp - 0x53e], 1
mov edx, dword [ebp - 0x29c]
mov eax, 0x516ef8
call fcn.00402c78
test eax, eax
jle 0x508c62
mov byte [ebp - 0x53e], 1
mov edx, dword [ebp - 0x29c]
mov eax, 0x516f00
call fcn.00402c78
test eax, eax
jle 0x508c7d
mov byte [ebp - 0x53e], 1
lea eax, [ebp - 0x1698]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1698]
lea edx, [ebp - 0x1694]
call fcn.00409b94
mov edx, dword [ebp - 0x1694]
mov eax, 0x516f10
call fcn.0040570c
test eax, eax
jle 0x508cce
mov edx, dword [ebp - 0x29c]
mov eax, 0x516f1c
call fcn.00402c78
test eax, eax
jle 0x508cce
mov byte [ebp - 0x53e], 1
mov edx, dword [ebp - 0x29c]
mov eax, 0x516f24
call fcn.00402c78
test eax, eax
jle 0x508cfd
mov edx, dword [ebp - 0x29c]
mov eax, 0x516f28
call fcn.00402c78
test eax, eax
jle 0x508cfd
mov byte [ebp - 0x53e], 1
cmp byte [ebp - 0x53e], 0
je 0x5090e4
mov edx, dword [ebp - 0x29c]
mov eax, 0x516f30
call fcn.00402c78
test eax, eax
jle 0x508d26
mov eax, dword [0x61ad88]
mov byte [eax], 1
mov eax, 0x516f40
call fcn.00492b74
test al, al
je 0x508d3c
mov eax, dword [0x61ad88]
mov byte [eax], 1
call fcn.004ca7d0
cmp dword [ebp - 0x2ac], 0xc
jne 0x508d54
mov dword [ebp - 0x52c], 1
lea eax, [ebp - 0x4ec]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
lea eax, [ebp - 0x4f4]
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
call fcn.0040536c
lea eax, [ebp - 0x16a0]
mov edx, dword [ebp - 0x29c]
add edx, 0x1a
call fcn.0040536c
mov eax, dword [ebp - 0x16a0]
lea edx, [ebp - 0x169c]
call fcn.00409de4
mov eax, dword [ebp - 0x169c]
push eax
lea eax, [ebp - 0x16a8]
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
call fcn.0040536c
mov eax, dword [ebp - 0x16a8]
lea edx, [ebp - 0x16a4]
call fcn.00409de4
mov eax, dword [ebp - 0x16a4]
push eax
lea eax, [ebp - 0x16b0]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x16b0]
lea edx, [ebp - 0x16ac]
call fcn.00409de4
mov eax, dword [ebp - 0x16ac]
push eax
mov eax, dword [ebp - 0x2ac]
call fcn.00524050
mov edx, eax
mov eax, dword [ebp - 0x2ac]
pop ecx
call fcn.004d2d04
mov dword [ebp - 0x52c], eax
lea edx, [ebp - 0x16b8]
mov eax, dword [ebp - 0x52c]
call fcn.0040a2d8
mov ecx, dword [ebp - 0x16b8]
lea eax, [ebp - 0x16b4]
mov edx, 0x516f5c
call fcn.00405414
mov eax, dword [ebp - 0x16b4]
call fcn.0049839c
xor eax, eax
push ebp
push 0x508eb5
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [ebp - 0x52c], 0
jne 0x508eab
call fcn.004cb2b0
test al, al
jne 0x508eab
mov byte [ebp - 0x4b6], 1
mov al, byte [ebp - 0x4b6]
call fcn.0048e914
mov edx, eax
lea eax, [ebp - 0x16c0]
call fcn.004052f0
mov ecx, dword [ebp - 0x16c0]
lea eax, [ebp - 0x16bc]
mov edx, 0x516ab4
call fcn.00405414
mov eax, dword [ebp - 0x16bc]
call fcn.0049839c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x508ebf
mov eax, 0x516498
call fcn.0048cf1c
test al, al
je 0x508f01
lea edx, [ebp - 0x16c8]
mov eax, dword [ebp - 0x52c]
call fcn.0040a2d8
mov ecx, dword [ebp - 0x16c8]
lea eax, [ebp - 0x16c4]
mov edx, 0x516f5c
call fcn.00405414
mov eax, dword [ebp - 0x16c4]
xor edx, edx
call fcn.004e5d18
cmp dword [ebp - 0x52c], 0
jle 0x5090c0
cmp dword [ebp - 0x52c], 1
jne 0x5090b4
lea eax, [ebp - 0x16cc]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov edx, dword [ebp - 0x16cc]
mov eax, dword [ebp - 0x4ec]
call fcn.00405514
jne 0x5090b4
lea eax, [ebp - 0x16d0]
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
call fcn.0040536c
mov edx, dword [ebp - 0x16d0]
mov eax, dword [ebp - 0x4f4]
call fcn.00405514
jne 0x5090b4
mov eax, dword [ebp - 0x4ec]
call fcn.004053c8
cmp eax, 0xa
jle 0x5090b4
mov eax, dword [ebp - 0x4f4]
call fcn.004053c8
cmp eax, 5
jle 0x5090b4
lea edx, [ebp - 0x16d4]
mov eax, dword [ebp - 0x2ac]
call fcn.004ba9dc
mov edx, dword [ebp - 0x16d4]
mov eax, 0x516ad0
call fcn.0040570c
test eax, eax
jle 0x5090b4
imul eax, dword [ebp - 0x2ac], 0x83
lea edx, [eax + 0x63fa34]
mov eax, 0x516f6c
call fcn.00402c78
test eax, eax
jle 0x5090b4
lea eax, [ebp - 0x4b4]
xor ecx, ecx
mov edx, 0x200
call fcn.0040345c
lea edx, [ebp - 0x4b4]
mov ecx, 0x1ff
mov eax, dword [ebp - 0x2a8]
call fcn.004bbf90
mov dword [ebp - 0x534], eax
cmp dword [ebp - 0x534], 0
jne 0x5090b4
cmp byte [ebp - 0x4b1], 5
jb 0x5090b4
mov eax, dword [ebp - 0x2ac]
mov edx, eax
shl eax, 4
add eax, edx
mov byte [eax + 0xbc49b4], 0
mov eax, dword [ebp - 0x2ac]
mov edx, eax
shl eax, 4
add eax, edx
mov byte [eax + 0xbc49b8], 0
lea eax, [ebp - 0x4e4]
imul edx, dword [ebp - 0x2ac], 0x65
add edx, 0xbbdac4
call fcn.0040536c
push 0
lea eax, [ebp - 0x4e4]
mov ecx, 0x516f7c
mov edx, 0x516f8c
call fcn.0048d458
lea eax, [ebp - 0xaf4]
mov edx, dword [ebp - 0x4e4]
mov ecx, 0xff
call fcn.004053a4
lea edx, [ebp - 0xaf4]
imul eax, dword [ebp - 0x2ac], 0x65
add eax, 0xbbdac4
mov cl, 0x64
call fcn.004032c8
jmp 0x512d4a
mov byte [ebp - 0x4c1], 1
jmp 0x515a05
mov eax, 0x516498
call fcn.0048cf1c
test al, al
je 0x5090da
xor edx, edx
mov eax, 0x516f9c
call fcn.004e5d18
mov eax, 0x516f9c
call fcn.0049839c
mov al, byte [ebp - 0x53c]
mov byte [ebp - 0x4b5], al
mov edx, dword [ebp - 0x29c]
mov eax, 0x516fbc
call fcn.00402c78
test eax, eax
jle 0x5091b0
mov edx, dword [ebp - 0x29c]
mov eax, 0x516fc0
call fcn.00402c78
test eax, eax
jle 0x5091b0
mov eax, 0x516fd0
call fcn.0049839c
call fcn.004db3e0
mov eax, dword [ebp - 0x2ac]
call fcn.00524050
mov edx, eax
mov ecx, dword [0x614778]
mov eax, dword [ebp - 0x2ac]
call fcn.004deea8
mov dword [ebp - 0x52c], eax
mov eax, 0x516498
call fcn.0048cf1c
test al, al
je 0x509195
lea edx, [ebp - 0x16dc]
mov eax, dword [ebp - 0x52c]
call fcn.0040a2d8
mov ecx, dword [ebp - 0x16dc]
lea eax, [ebp - 0x16d8]
mov edx, 0x516fe0
call fcn.00405414
mov eax, dword [ebp - 0x16d8]
xor edx, edx
call fcn.004e5d18
cmp dword [ebp - 0x52c], 0
jle 0x5091b0
inc dword [0x614778]
mov byte [ebp - 0x4c1], 1
jmp 0x515a05
mov edx, dword [ebp - 0x29c]
mov eax, 0x516fec
call fcn.00402c78
test eax, eax
jle 0x50923e
call fcn.004ccc28
mov eax, dword [ebp - 0x2ac]
call fcn.00524050
mov edx, eax
mov eax, dword [ebp - 0x2ac]
call fcn.004da994
mov dword [ebp - 0x52c], eax
mov eax, 0x516498
call fcn.0048cf1c
test al, al
je 0x509229
lea edx, [ebp - 0x16e4]
mov eax, dword [ebp - 0x52c]
call fcn.0040a2d8
mov ecx, dword [ebp - 0x16e4]
lea eax, [ebp - 0x16e0]
mov edx, 0x517000
call fcn.00405414
mov eax, dword [ebp - 0x16e0]
xor edx, edx
call fcn.004e5d18
cmp dword [ebp - 0x52c], 0
jle 0x50923e
mov byte [ebp - 0x4c1], 1
jmp 0x515a05
mov edx, dword [ebp - 0x29c]
mov eax, 0x517014
call fcn.00402c78
test eax, eax
jle 0x509266
mov edx, dword [ebp - 0x29c]
mov eax, 0x51701c
call fcn.00402c78
test eax, eax
jg 0x509296
mov edx, dword [ebp - 0x29c]
mov eax, 0x517020
call fcn.00402c78
test eax, eax
jle 0x50936d
mov edx, dword [ebp - 0x29c]
mov eax, 0x51701c
call fcn.00402c78
test eax, eax
jle 0x50936d
call fcn.004cb2f4
mov eax, dword [ebp - 0x2ac]
call fcn.00524050
push eax
lea eax, [ebp - 0x16e8]
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
call fcn.0040536c
mov ecx, dword [ebp - 0x16e8]
mov eax, dword [ebp - 0x2ac]
pop edx
call fcn.004d42ac
mov dword [ebp - 0x52c], eax
mov eax, 0x516498
call fcn.0048cf1c
test al, al
je 0x509315
lea edx, [ebp - 0x16f0]
mov eax, dword [ebp - 0x52c]
call fcn.0040a2d8
mov ecx, dword [ebp - 0x16f0]
lea eax, [ebp - 0x16ec]
mov edx, 0x517030
call fcn.00405414
mov eax, dword [ebp - 0x16ec]
xor edx, edx
call fcn.004e5d18
cmp dword [ebp - 0x52c], 0
jle 0x50932a
mov byte [ebp - 0x4c1], 1
jmp 0x515a05
mov eax, 0x516498
call fcn.0048cf1c
test al, al
je 0x509344
xor edx, edx
mov eax, 0x517048
call fcn.004e5d18
imul eax, dword [ebp - 0x2ac], 0xaa4
lea edi, [eax*8 + 0x652454]
mov esi, 0x51705c
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov byte [ebp - 0x4c1], 1
jmp 0x515a05
lea eax, [ebp - 0x16f8]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x16f8]
lea edx, [ebp - 0x16f4]
call fcn.00409b94
mov edx, dword [ebp - 0x16f4]
mov eax, 0x517078
call fcn.0040570c
test eax, eax
jle 0x509417
lea eax, [ebp - 0x1700]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1700]
lea edx, [ebp - 0x16fc]
call fcn.00409b94
mov edx, dword [ebp - 0x16fc]
mov eax, 0x51708c
call fcn.0040570c
test eax, eax
jg 0x509581
lea eax, [ebp - 0x1708]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1708]
lea edx, [ebp - 0x1704]
call fcn.00409b94
mov edx, dword [ebp - 0x1704]
mov eax, 0x516f8c
call fcn.0040570c
test eax, eax
jg 0x509581
lea eax, [ebp - 0x1710]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1710]
lea edx, [ebp - 0x170c]
call fcn.00409b94
mov edx, dword [ebp - 0x170c]
mov eax, 0x51709c
call fcn.0040570c
test eax, eax
jle 0x509487
lea eax, [ebp - 0x1718]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1718]
lea edx, [ebp - 0x1714]
call fcn.00409b94
mov edx, dword [ebp - 0x1714]
mov eax, 0x516b8c
call fcn.0040570c
test eax, eax
jg 0x509581
lea eax, [ebp - 0x1720]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1720]
lea edx, [ebp - 0x171c]
call fcn.00409b94
mov edx, dword [ebp - 0x171c]
mov eax, 0x5170a8
call fcn.0040570c
test eax, eax
jle 0x5094fa
lea eax, [ebp - 0x1728]
mov edx, dword [ebp - 0x29c]
add edx, 0x1a
call fcn.0040536c
mov eax, dword [ebp - 0x1728]
lea edx, [ebp - 0x1724]
call fcn.00409b94
mov edx, dword [ebp - 0x1724]
mov eax, 0x5170b8
call fcn.0040570c
test eax, eax
jg 0x509581
lea eax, [ebp - 0x1730]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1730]
lea edx, [ebp - 0x172c]
call fcn.00409b94
mov edx, dword [ebp - 0x172c]
mov eax, 0x516b1c
call fcn.0040570c
test eax, eax
jg 0x509581
lea eax, [ebp - 0x1738]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1738]
lea edx, [ebp - 0x1734]
call fcn.00409b94
mov edx, dword [ebp - 0x1734]
mov eax, 0x5170c4
call fcn.0040570c
test eax, eax
jg 0x509581
call fcn.004d9524
test al, al
jne 0x509581
mov eax, 0x5170d4
call fcn.0048cf1c
test al, al
je 0x509651
mov eax, 0x5170ec
call fcn.0049839c
call fcn.004cc83c
mov eax, dword [ebp - 0x2ac]
call fcn.00524050
mov edx, eax
mov eax, dword [ebp - 0x2ac]
call fcn.004d5a78
mov dword [ebp - 0x52c], eax
mov eax, 0x516498
call fcn.0048cf1c
test al, al
je 0x5095f0
lea edx, [ebp - 0x1740]
mov eax, dword [ebp - 0x52c]
call fcn.0040a2d8
mov ecx, dword [ebp - 0x1740]
lea eax, [ebp - 0x173c]
mov edx, 0x5170fc
call fcn.00405414
mov eax, dword [ebp - 0x173c]
xor edx, edx
call fcn.004e5d18
cmp dword [ebp - 0x52c], 0
jle 0x509605
mov byte [ebp - 0x4c1], 1
jmp 0x515a05
call fcn.004cb630
test al, al
je 0x509651
mov eax, 0x516498
call fcn.0048cf1c
test al, al
je 0x509628
xor edx, edx
mov eax, 0x517118
call fcn.004e5d18
imul eax, dword [ebp - 0x2ac], 0xaa4
lea edi, [eax*8 + 0x652454]
mov esi, 0x51705c
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov byte [ebp - 0x4c1], 1
jmp 0x515a05
mov byte [ebp - 0x53b], 0
mov byte [ebp - 0x53a], 0
lea eax, [ebp - 0x1748]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1748]
lea edx, [ebp - 0x1744]
call fcn.00409b94
mov edx, dword [ebp - 0x1744]
mov eax, 0x517138
call fcn.0040570c
test eax, eax
jle 0x509750
lea eax, [ebp - 0x1750]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1750]
lea edx, [ebp - 0x174c]
call fcn.00409b94
mov edx, dword [ebp - 0x174c]
mov eax, 0x51714c
call fcn.0040570c
test eax, eax
jle 0x5096d6
mov byte [ebp - 0x53b], 1
lea eax, [ebp - 0x1758]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1758]
lea edx, [ebp - 0x1754]
call fcn.00409b94
mov edx, dword [ebp - 0x1754]
mov eax, 0x51715c
call fcn.0040570c
test eax, eax
jle 0x509713
mov byte [ebp - 0x53b], 1
lea eax, [ebp - 0x1760]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1760]
lea edx, [ebp - 0x175c]
call fcn.00409b94
mov edx, dword [ebp - 0x175c]
mov eax, 0x516f8c
call fcn.0040570c
test eax, eax
jle 0x509750
mov byte [ebp - 0x53b], 1
cmp byte [ebp - 0x53b], 0
jne 0x509790
mov eax, 0x51716c
call fcn.00492b74
test al, al
je 0x50976e
mov byte [ebp - 0x53a], 1
cmp byte [ebp - 0x248], 0x37
jne 0x509790
cmp byte [ebp - 0x249], 0x12
jne 0x509790
cmp byte [ebp - 0x24a], 5
jne 0x509790
mov byte [ebp - 0x53a], 1
lea eax, [ebp - 0x1768]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1768]
lea edx, [ebp - 0x1764]
call fcn.00409b94
mov edx, dword [ebp - 0x1764]
mov eax, 0x517180
call fcn.0040570c
test eax, eax
jle 0x5097cd
mov byte [ebp - 0x53b], 1
cmp byte [ebp - 0x53a], 0
jne 0x5098c3
lea eax, [ebp - 0x1770]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1770]
lea edx, [ebp - 0x176c]
call fcn.00409b94
mov edx, dword [ebp - 0x176c]
mov eax, 0x517194
call fcn.0040570c
test eax, eax
jg 0x50984a
lea eax, [ebp - 0x1778]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1778]
lea edx, [ebp - 0x1774]
call fcn.00409b94
mov edx, dword [ebp - 0x1774]
mov eax, 0x517138
call fcn.0040570c
test eax, eax
jle 0x509cbc
lea eax, [ebp - 0x1780]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1780]
lea edx, [ebp - 0x177c]
call fcn.00409b94
mov edx, dword [ebp - 0x177c]
mov eax, 0x5171a4
call fcn.0040570c
test eax, eax
jg 0x5098c3
lea eax, [ebp - 0x1788]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1788]
lea edx, [ebp - 0x1784]
call fcn.00409b94
mov edx, dword [ebp - 0x1784]
mov eax, 0x5171b0
call fcn.0040570c
test eax, eax
jg 0x5098c3
cmp byte [ebp - 0x53b], 0
je 0x509cbc
mov eax, 0x5171bc
call fcn.0049839c
call fcn.004cd45c
call fcn.004ce4e0
lea eax, [ebp - 0x1790]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1790]
lea edx, [ebp - 0x178c]
call fcn.00409b94
mov edx, dword [ebp - 0x178c]
mov eax, 0x5171cc
call fcn.0040570c
test eax, eax
jg 0x50b2c0
mov eax, dword [ebp - 0x2ac]
call fcn.00524050
mov edx, eax
mov ecx, 0x61476c
mov eax, dword [ebp - 0x2ac]
call fcn.004d6054
mov dword [ebp - 0x52c], eax
cmp dword [ebp - 0x52c], 0
jle 0x509945
inc dword [0x61476c]
jmp 0x509992
lea eax, [ebp - 0x1794]
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
call fcn.0040536c
mov eax, dword [ebp - 0x1794]
push eax
mov eax, dword [ebp - 0x2ac]
call fcn.00524050
mov edx, eax
mov ecx, 0x614770
mov eax, dword [ebp - 0x2ac]
call fcn.004d6870
mov dword [ebp - 0x52c], eax
cmp dword [ebp - 0x52c], 0
jle 0x509992
inc dword [0x614770]
mov eax, 0x516498
call fcn.0048cf1c
test al, al
je 0x5099d4
lea edx, [ebp - 0x179c]
mov eax, dword [ebp - 0x52c]
call fcn.0040a2d8
mov ecx, dword [ebp - 0x179c]
lea eax, [ebp - 0x1798]
mov edx, 0x5171e0
call fcn.00405414
mov eax, dword [ebp - 0x1798]
xor edx, edx
call fcn.004e5d18
cmp dword [ebp - 0x52c], 0
jle 0x509c70
mov byte [ebp - 0x4c1], 1
mov edx, dword [ebp - 0x29c]
mov eax, 0x5171f4
call fcn.00402c78
test eax, eax
jle 0x515a05
mov byte [ebp - 0x508], 0
mov eax, dword [ebp - 0x2ac]
mov edx, dword [ebp - 0x2ac]
add edx, dword [ebp - 0x52c]
dec edx
sub edx, eax
jl 0x509b38
inc edx
mov dword [ebp - 0x5a4], edx
mov dword [ebp - 0x530], eax
push 0
imul eax, dword [ebp - 0x530], 0x651
lea edx, [eax*2 + 0xb1fc34]
mov cl, 1
mov eax, dword [ebp - 0x530]
call fcn.0052bbcc
test eax, eax
jle 0x509ac8
mov eax, dword [ebp - 0x530]
mov edx, eax
shl eax, 4
add eax, edx
mov byte [eax + 0xbc49b4], 0
mov eax, dword [ebp - 0x530]
mov edx, eax
shl eax, 4
add eax, edx
mov byte [eax + 0xbc49b8], 0
imul eax, dword [ebp - 0x530], 0x65
lea edi, [eax + 0xbbdac4]
mov esi, 0x5171f8
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
imul eax, dword [ebp - 0x530], 0xaa4
mov dword [eax*8 + 0x6525c8], 0xa
mov eax, dword [ebp - 0x530]
mov dword [eax*4 + 0xbc29ac], 0xa
mov eax, 0x5166c8
call fcn.0049839c
mov byte [ebp - 0x508], 1
jmp 0x509b26
lea eax, [ebp - 0x4e4]
imul edx, dword [ebp - 0x530], 0x65
add edx, 0xbbdac4
call fcn.0040536c
push 0
lea eax, [ebp - 0x4e4]
mov ecx, 0x517208
mov edx, 0x517214
call fcn.0048d458
lea eax, [ebp - 0xaf4]
mov edx, dword [ebp - 0x4e4]
mov ecx, 0xff
call fcn.004053a4
lea edx, [ebp - 0xaf4]
imul eax, dword [ebp - 0x530], 0x65
add eax, 0xbbdac4
mov cl, 0x64
call fcn.004032c8
inc dword [ebp - 0x530]
dec dword [ebp - 0x5a4]
jne 0x509a2f
cmp byte [ebp - 0x508], 0
jne 0x515a05
push 0x517224
lea edx, [ebp - 0x17a4]
mov eax, dword [ebp - 0x2ac]
call fcn.0040a2d8
push dword [ebp - 0x17a4]
push 0x515fac
lea edx, [ebp - 0x17a8]
mov eax, dword [ebp - 0x52c]
call fcn.0040a2d8
push dword [ebp - 0x17a8]
lea eax, [ebp - 0x17a0]
mov edx, 4
call fcn.00405488
mov eax, dword [ebp - 0x17a0]
call fcn.0049839c
lea edx, [ebp - 0x4e4]
mov eax, dword [ebp - 0x2ac]
call fcn.0052abd0
lea eax, [ebp - 0x17ac]
mov ecx, dword [ebp - 0x4e4]
mov edx, 0x517238
call fcn.00405414
mov eax, dword [ebp - 0x17ac]
call fcn.0049839c
cmp dword [ebp - 0x4e4], 0
je 0x515a05
push 1
imul eax, dword [ebp - 0x2ac], 0x651
lea edx, [eax*2 + 0xb1fc34]
mov cl, 1
mov eax, dword [ebp - 0x2ac]
call fcn.0052bbcc
test eax, eax
jle 0x515a05
mov eax, dword [ebp - 0x2ac]
mov edx, eax
shl eax, 4
add eax, edx
mov byte [eax + 0xbc49b4], 0
mov eax, dword [ebp - 0x2ac]
mov edx, eax
shl eax, 4
add eax, edx
mov byte [eax + 0xbc49b8], 0
imul eax, dword [ebp - 0x2ac], 0x65
lea edi, [eax + 0xbbdac4]
mov esi, 0x5171f8
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
imul eax, dword [ebp - 0x2ac], 0xaa4
mov dword [eax*8 + 0x6525c8], 0xa
mov eax, dword [ebp - 0x2ac]
mov dword [eax*4 + 0xbc29ac], 0xa
mov eax, 0x51724c
call fcn.0049839c
jmp 0x515a05
call fcn.004cd3b4
test al, al
je 0x509cbc
mov eax, 0x516498
call fcn.0048cf1c
test al, al
je 0x509c93
xor edx, edx
mov eax, 0x517264
call fcn.004e5d18
imul eax, dword [ebp - 0x2ac], 0xaa4
lea edi, [eax*8 + 0x652454]
mov esi, 0x51705c
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov byte [ebp - 0x4c1], 1
jmp 0x515a05
mov eax, 0x5162f4
call fcn.0048cf1c
test al, al
je 0x509d01
cmp dword [ebp - 0x2ac], 6
jg 0x509ce8
mov eax, dword [ebp - 0x29c]
mov edi, eax
mov esi, 0x51727c
mov ecx, 5
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
cmp dword [ebp - 0x2ac], 6
jg 0x509d01
mov eax, dword [ebp - 0x29c]
lea edi, [eax + 0x2f]
mov esi, 0x517294
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
lea eax, [ebp - 0x17b4]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x17b4]
lea edx, [ebp - 0x17b0]
call fcn.00409b94
mov edx, dword [ebp - 0x17b0]
mov eax, 0x5172a4
call fcn.0040570c
test eax, eax
jle 0x509dd0
lea eax, [ebp - 0x17bc]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x17bc]
lea edx, [ebp - 0x17b8]
call fcn.00409b94
mov edx, dword [ebp - 0x17b8]
mov eax, 0x5172b4
call fcn.0040570c
test eax, eax
jle 0x509dd0
mov edx, dword [ebp - 0x29c]
add edx, 0x1a
mov eax, 0x5172bc
call fcn.00402c78
test eax, eax
jle 0x509dd0
lea eax, [ebp - 0x17c4]
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
call fcn.0040536c
mov eax, dword [ebp - 0x17c4]
lea edx, [ebp - 0x17c0]
call fcn.00409b94
mov edx, dword [ebp - 0x17c0]
mov eax, 0x5172cc
call fcn.0040570c
test eax, eax
jle 0x509dd0
mov dword [ebp - 0x2b4], 2
jmp 0x50f3a4
mov byte [ebp - 0x509], 0
lea eax, [ebp - 0x17d0]
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
call fcn.0040536c
mov eax, dword [ebp - 0x17d0]
lea edx, [ebp - 0x17cc]
call fcn.00409b94
mov eax, dword [ebp - 0x17cc]
lea edx, [ebp - 0x17c8]
call fcn.00409de4
mov eax, dword [ebp - 0x17c8]
mov edx, 0x5172dc
call fcn.00405514
jne 0x509e26
mov byte [ebp - 0x509], 1
lea eax, [ebp - 0x17dc]
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
call fcn.0040536c
mov eax, dword [ebp - 0x17dc]
lea edx, [ebp - 0x17d8]
call fcn.00409b94
mov eax, dword [ebp - 0x17d8]
lea edx, [ebp - 0x17d4]
call fcn.00409de4
mov eax, dword [ebp - 0x17d4]
mov edx, 0x5172ec
call fcn.00405514
jne 0x509e75
mov byte [ebp - 0x509], 1
lea eax, [ebp - 0x17e0]
push eax
lea eax, [ebp - 0x17ec]
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
call fcn.0040536c
mov eax, dword [ebp - 0x17ec]
lea edx, [ebp - 0x17e8]
call fcn.00409b94
mov eax, dword [ebp - 0x17e8]
lea edx, [ebp - 0x17e4]
call fcn.00409de4
mov eax, dword [ebp - 0x17e4]
mov ecx, 3
mov edx, 1
call fcn.00405628
mov eax, dword [ebp - 0x17e0]
mov edx, 0x5172fc
call fcn.00405514
jne 0x509f8a
lea eax, [ebp - 0x17f0]
push eax
lea eax, [ebp - 0x17f8]
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
call fcn.0040536c
mov eax, dword [ebp - 0x17f8]
lea edx, [ebp - 0x17f4]
call fcn.00409de4
mov eax, dword [ebp - 0x17f4]
mov ecx, 1
mov edx, 4
call fcn.00405628
mov eax, dword [ebp - 0x17f0]
mov edx, 0x517308
call fcn.00405514
jb 0x509f8a
lea eax, [ebp - 0x17fc]
push eax
lea eax, [ebp - 0x1804]
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
call fcn.0040536c
mov eax, dword [ebp - 0x1804]
lea edx, [ebp - 0x1800]
call fcn.00409de4
mov eax, dword [ebp - 0x1800]
mov ecx, 1
mov edx, 4
call fcn.00405628
mov eax, dword [ebp - 0x17fc]
mov edx, 0x517314
call fcn.00405514
ja 0x509f8a
mov byte [ebp - 0x509], 1
lea eax, [ebp - 0x180c]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x180c]
lea edx, [ebp - 0x1808]
call fcn.00409b94
mov edx, dword [ebp - 0x1808]
mov eax, 0x517320
call fcn.0040570c
test eax, eax
jle 0x509ffd
lea eax, [ebp - 0x1814]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1814]
lea edx, [ebp - 0x1810]
call fcn.00409b94
mov edx, dword [ebp - 0x1810]
mov eax, 0x517330
call fcn.0040570c
test eax, eax
jle 0x509ffd
mov byte [ebp - 0x509], 1
cmp byte [ebp - 0x509], 0
je 0x50a075
lea edx, [ebp - 0x4e4]
mov eax, dword [ebp - 0x2ac]
call fcn.005016d8
mov edx, dword [ebp - 0x4e4]
mov eax, 0x517340
call fcn.0040570c
test eax, eax
jle 0x50a046
mov edx, dword [ebp - 0x4e4]
mov eax, 0x517350
call fcn.0040570c
test eax, eax
jle 0x50a046
mov byte [ebp - 0x509], 0
mov edx, dword [ebp - 0x4e4]
mov eax, 0x517360
call fcn.0040570c
test eax, eax
jle 0x50a075
mov edx, dword [ebp - 0x4e4]
mov eax, 0x517370
call fcn.0040570c
test eax, eax
jle 0x50a075
mov byte [ebp - 0x509], 0
mov eax, 0x517380
call fcn.0048cf1c
test al, al
je 0x50a08a
mov byte [ebp - 0x509], 1
mov byte [ebp - 0x50a], 1
lea eax, [ebp - 0x181c]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x181c]
lea edx, [ebp - 0x1818]
call fcn.00409b94
mov eax, dword [ebp - 0x1818]
mov edx, 0x5172a4
call fcn.00405514
jne 0x50a0e6
mov eax, dword [ebp - 0x29c]
add eax, 0x1a
mov edx, 0x517390
xor ecx, ecx
mov cl, byte [eax]
inc ecx
call fcn.00403368
jne 0x50a0e6
mov byte [ebp - 0x50a], 0
lea eax, [ebp - 0x1824]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1824]
lea edx, [ebp - 0x1820]
call fcn.00409b94
mov edx, dword [ebp - 0x1820]
mov eax, 0x5172a4
call fcn.0040570c
test eax, eax
jle 0x50a133
mov edx, dword [ebp - 0x29c]
add edx, 0x1a
mov eax, 0x517398
call fcn.00402c78
test eax, eax
je 0x50a1b2
lea eax, [ebp - 0x182c]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x182c]
lea edx, [ebp - 0x1828]
call fcn.00409b94
mov edx, dword [ebp - 0x1828]
mov eax, 0x5173a8
call fcn.0040570c
test eax, eax
jg 0x50a1b2
lea eax, [ebp - 0x1834]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1834]
lea edx, [ebp - 0x1830]
call fcn.00409b94
mov edx, dword [ebp - 0x1830]
mov eax, 0x5173b8
call fcn.0040570c
test eax, eax
jg 0x50a1b2
cmp dword [ebp + 8], 1
je 0x50a1b2
cmp byte [ebp - 0x509], 0
je 0x50a3a2
cmp byte [ebp - 0x50a], 0
je 0x50a3a2
lea eax, [ebp - 0x1838]
mov edx, dword [ebp - 0x29c]
add edx, 0x1a
call fcn.0040536c
mov edx, dword [ebp - 0x1838]
mov eax, dword [ebp - 0x2ac]
call fcn.0052c6c8
mov al, byte [ebp - 0x509]
call fcn.004d72c8
mov eax, dword [ebp - 0x2ac]
call fcn.00524050
mov edx, eax
mov eax, dword [ebp - 0x2ac]
call fcn.004d7d14
mov dword [ebp - 0x52c], eax
mov eax, 0x516498
call fcn.0048cf1c
test al, al
je 0x50a24f
lea eax, [ebp - 0xd5c]
push eax
mov eax, dword [ebp - 0x29c]
mov ecx, 6
mov edx, 1
call fcn.004029cc
lea edx, [ebp - 0xd5c]
lea eax, [ebp - 0x1850]
call fcn.0040536c
mov eax, dword [ebp - 0x1850]
lea edx, [ebp - 0x184c]
call fcn.00409b94
mov eax, dword [ebp - 0x184c]
mov edx, 0x517424
call fcn.00405514
jne 0x50a5b3
mov byte [ebp - 0x4b5], 0
mov edx, dword [ebp - 0x4bc]
mov eax, 0x516488
call fcn.0040570c
test eax, eax
jne 0x50a5b3
mov eax, 0x516498
call fcn.0048cf1c
test al, al
je 0x50a4f9
mov edx, 0x51742c
lea eax, [ebp - 0x14a4]
call fcn.004032bc
mov edx, dword [ebp - 0x29c]
lea eax, [ebp - 0x14a4]
mov cl, 0x29
call fcn.0040328c
lea edx, [ebp - 0x14a4]
lea eax, [ebp - 0x1884]
call fcn.004032bc
mov edx, 0x5164b0
lea eax, [ebp - 0x1884]
mov cl, 0x2f
call fcn.0040328c
lea edx, [ebp - 0x1884]
lea eax, [ebp - 0x18c8]
call fcn.004032bc
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
lea eax, [ebp - 0x18c8]
mov cl, 0x43
call fcn.0040328c
lea edx, [ebp - 0x18c8]
lea eax, [ebp - 0x1118]
call fcn.004032bc
mov edx, 0x5164b8
lea eax, [ebp - 0x1118]
mov cl, 0x49
call fcn.0040328c
lea edx, [ebp - 0x1118]
lea eax, [ebp - 0x1854]
call fcn.0040536c
lea eax, [ebp - 0x1854]
push eax
lea edx, [ebp - 0x18cc]
mov eax, dword [ebp - 0x2ac]
call fcn.0040a2d8
mov edx, dword [ebp - 0x18cc]
pop eax
call fcn.004053d0
mov eax, dword [ebp - 0x1854]
xor edx, edx
call fcn.004e5d18
mov eax, dword [ebp - 0x2ac]
call fcn.00524050
call fcn.004f5330
test al, al
je 0x50a5b3
push 0
push 0xbb8
push 0xffffffffffffffff
push 0
push 0
mov eax, dword [ebp - 0x2ac]
call fcn.00524050
mov ecx, eax
lea eax, [ebp - 0x4cc]
mov edx, dword [ebp - 0x2ac]
call fcn.004ef5cc
mov dword [ebp - 0x52c], eax
mov eax, 0x516498
call fcn.0048cf1c
test al, al
je 0x50a584
lea edx, [ebp - 0x18d4]
mov eax, dword [ebp - 0x52c]
call fcn.0040a2d8
mov ecx, dword [ebp - 0x18d4]
lea eax, [ebp - 0x18d0]
mov edx, 0x517448
call fcn.00405414
mov eax, dword [ebp - 0x18d0]
xor edx, edx
call fcn.004e5d18
cmp dword [ebp - 0x52c], 0
jle 0x50a599
mov byte [ebp - 0x4c1], 1
jmp 0x515a05
mov eax, 0x516498
call fcn.0048cf1c
test al, al
je 0x50a5b3
xor edx, edx
mov eax, 0x517460
call fcn.004e5d18
mov eax, 0x517488
call fcn.0048cf1c
test al, al
je 0x50a5ce
mov eax, dword [ebp - 0x29c]
mov dword [eax + 0x2f], 0x41544103
cmp byte [ebp - 0x592], 0
je 0x50a5e9
mov eax, dword [ebp - 0x29c]
mov edi, eax
mov esi, 0x517494
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x18dc]
xor edx, edx
mov al, byte [ebp - 0x595]
call fcn.0040a6b8
mov ecx, dword [ebp - 0x18dc]
lea eax, [ebp - 0x18d8]
mov edx, 0x5174a8
call fcn.00405414
mov eax, dword [ebp - 0x18d8]
call fcn.0049839c
mov eax, 0x516a08
call fcn.0048cf1c
test al, al
je 0x50a642
mov eax, dword [ebp - 0x29c]
mov edi, eax
mov esi, 0x5174bc
mov ecx, 5
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
lea eax, [ebp - 0xd5c]
push eax
mov eax, dword [ebp - 0x29c]
mov ecx, 5
mov edx, 1
call fcn.004029cc
lea edx, [ebp - 0xd5c]
lea eax, [ebp - 0x18e4]
call fcn.0040536c
mov eax, dword [ebp - 0x18e4]
lea edx, [ebp - 0x18e0]
call fcn.00409b94
mov eax, dword [ebp - 0x18e0]
mov edx, 0x5161b0
call fcn.00405514
je 0x50a751
lea eax, [ebp - 0x18ec]
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
call fcn.0040536c
mov eax, dword [ebp - 0x18ec]
lea edx, [ebp - 0x18e8]
call fcn.00409de4
mov eax, dword [ebp - 0x18e8]
mov edx, 0x5174dc
call fcn.00405514
je 0x50a751
cmp byte [ebp - 0x595], 0
jne 0x50a751
lea eax, [ebp - 0x18f0]
mov edx, dword [ebp - 0x29c]
add edx, 0x1a
call fcn.0040536c
mov eax, dword [ebp - 0x18f0]
push eax
lea eax, [ebp - 0x18f4]
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
call fcn.0040536c
mov eax, dword [ebp - 0x18f4]
push eax
lea eax, [ebp - 0x18f8]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov edx, dword [ebp - 0x18f8]
mov eax, dword [ebp - 0x2ac]
pop ecx
call fcn.004fd8d0
test al, al
jne 0x50a751
cmp dword [ebp + 8], 0xf4240
jl 0x50b2c0
cmp dword [ebp + 8], 0x1e8480
jge 0x50b2c0
mov edx, 0x5174e0
lea eax, [ebp - 0x1920]
call fcn.004032bc
mov edx, dword [ebp - 0x29c]
lea eax, [ebp - 0x1920]
mov cl, 0x21
call fcn.0040328c
lea edx, [ebp - 0x1920]
lea eax, [ebp - 0x1948]
call fcn.004032bc
mov edx, 0x5174ec
lea eax, [ebp - 0x1948]
mov cl, 0x26
call fcn.0040328c
lea edx, [ebp - 0x1948]
lea eax, [ebp - 0x1984]
call fcn.004032bc
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
lea eax, [ebp - 0x1984]
mov cl, 0x3a
call fcn.0040328c
lea edx, [ebp - 0x1984]
lea eax, [ebp - 0x18fc]
call fcn.0040536c
mov eax, dword [ebp - 0x18fc]
call fcn.0049839c
call fcn.0052c49c
mov al, byte [ebp - 0x4b5]
mov byte [ebp - 0x53c], al
mov byte [ebp - 0x4b5], 0
mov edx, dword [ebp - 0x4bc]
mov eax, 0x516488
call fcn.0040570c
test eax, eax
jne 0x50b1e7
mov eax, 0x516498
call fcn.0048cf1c
test al, al
je 0x50a8ee
mov edx, 0x5174f4
lea eax, [ebp - 0xffc]
call fcn.004032bc
mov edx, dword [ebp - 0x29c]
lea eax, [ebp - 0xffc]
mov cl, 0x28
call fcn.0040328c
lea edx, [ebp - 0xffc]
lea eax, [ebp - 0x1088]
call fcn.004032bc
mov edx, 0x5164b0
lea eax, [ebp - 0x1088]
mov cl, 0x2e
call fcn.0040328c
lea edx, [ebp - 0x1088]
lea eax, [ebp - 0x10cc]
call fcn.004032bc
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
lea eax, [ebp - 0x10cc]
mov cl, 0x42
call fcn.0040328c
lea edx, [ebp - 0x10cc]
lea eax, [ebp - 0x12e4]
call fcn.004032bc
mov edx, 0x5164b8
lea eax, [ebp - 0x12e4]
mov cl, 0x48
call fcn.0040328c
lea edx, [ebp - 0x12e4]
lea eax, [ebp - 0x1988]
call fcn.0040536c
lea eax, [ebp - 0x1988]
push eax
lea edx, [ebp - 0x198c]
mov eax, dword [ebp - 0x2ac]
call fcn.0040a2d8
mov edx, dword [ebp - 0x198c]
pop eax
call fcn.004053d0
mov eax, dword [ebp - 0x1988]
xor edx, edx
call fcn.004e5d18
cmp dword [ebp + 8], 0xf4240
jl 0x50a95e
cmp dword [ebp + 8], 0x1e8480
jge 0x50a95e
lea edx, [ebp - 0x1994]
mov eax, dword [ebp + 8]
call fcn.0040a2d8
mov ecx, dword [ebp - 0x1994]
lea eax, [ebp - 0x1990]
mov edx, 0x51750c
call fcn.00405414
mov eax, dword [ebp - 0x1990]
call fcn.0049839c
mov eax, dword [ebp + 8]
mov ecx, 0xf4240
cdq
idiv ecx
mov byte [ebp - 0x501], dl
mov byte [ebp - 0x502], 0xff
mov byte [ebp - 0x503], 0xff
mov byte [ebp - 0x504], 0xff
mov byte [ebp - 0x53e], 1
jmp 0x50a989
lea eax, [ebp - 0x503]
push eax
lea eax, [ebp - 0x504]
push eax
lea ecx, [ebp - 0x502]
lea edx, [ebp - 0x501]
mov eax, dword [ebp - 0x2a8]
call fcn.00525490
mov byte [ebp - 0x53e], al
mov eax, 0x516498
call fcn.0048cf1c
test al, al
je 0x50a9cd
lea ecx, [ebp - 0x199c]
xor edx, edx
mov al, byte [ebp - 0x53e]
call fcn.0040a6b8
mov ecx, dword [ebp - 0x199c]
lea eax, [ebp - 0x1998]
mov edx, 0x517520
call fcn.00405414
mov eax, dword [ebp - 0x1998]
xor edx, edx
call fcn.004e5d18
mov eax, 0x516498
call fcn.0048cf1c
test al, al
je 0x50aa74
push 0x51753c
lea edx, [ebp - 0x19a4]
xor eax, eax
mov al, byte [ebp - 0x501]
call fcn.0040a2d8
push dword [ebp - 0x19a4]
push 0x5164fc
lea edx, [ebp - 0x19a8]
xor eax, eax
mov al, byte [ebp - 0x502]
call fcn.0040a2d8
push dword [ebp - 0x19a8]
push 0x516510
lea edx, [ebp - 0x19ac]
xor eax, eax
mov al, byte [ebp - 0x503]
call fcn.0040a2d8
push dword [ebp - 0x19ac]
push 0x516524
lea edx, [ebp - 0x19b0]
xor eax, eax
mov al, byte [ebp - 0x504]
call fcn.0040a2d8
push dword [ebp - 0x19b0]
lea eax, [ebp - 0x19a0]
mov edx, 8
call fcn.00405488
mov eax, dword [ebp - 0x19a0]
xor edx, edx
call fcn.004e5d18
lea ecx, [ebp - 0x19b8]
xor edx, edx
mov al, byte [ebp - 0x53e]
call fcn.0040a6b8
mov ecx, dword [ebp - 0x19b8]
lea eax, [ebp - 0x19b4]
mov edx, 0x517520
call fcn.00405414
mov eax, dword [ebp - 0x19b4]
call fcn.0049839c
push 0x51753c
lea edx, [ebp - 0x19c0]
xor eax, eax
mov al, byte [ebp - 0x501]
call fcn.0040a2d8
push dword [ebp - 0x19c0]
push 0x5164fc
lea edx, [ebp - 0x19c4]
xor eax, eax
mov al, byte [ebp - 0x502]
call fcn.0040a2d8
push dword [ebp - 0x19c4]
push 0x516510
lea edx, [ebp - 0x19c8]
xor eax, eax
mov al, byte [ebp - 0x503]
call fcn.0040a2d8
push dword [ebp - 0x19c8]
push 0x516524
lea edx, [ebp - 0x19cc]
xor eax, eax
mov al, byte [ebp - 0x504]
call fcn.0040a2d8
push dword [ebp - 0x19cc]
lea eax, [ebp - 0x19bc]
mov edx, 8
call fcn.00405488
mov eax, dword [ebp - 0x19bc]
call fcn.0049839c
cmp byte [ebp - 0x53e], 0
je 0x50b1e7
xor eax, eax
mov al, byte [ebp - 0x501]
cmp eax, dword [0x614764]
je 0x50ab6e
xor eax, eax
mov al, byte [ebp - 0x501]
mov dword [0x614764], eax
xor eax, eax
mov dword [0x614768], eax
jmp 0x50ab74
inc dword [0x614768]
mov eax, 0x51755c
call fcn.0048cf1c
test al, al
je 0x50ab90
mov byte [ebp - 0x501], 1
mov byte [ebp - 0x502], 0
xor eax, eax
mov dword [ebp - 0x530], eax
mov eax, 0x51755c
call fcn.0048cf1c
test al, al
je 0x50abb6
cmp byte [ebp - 0x501], 0xd
jne 0x50abb6
mov byte [ebp - 0x502], 6
lea eax, [ebp - 0x19d0]
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
call fcn.0040536c
mov eax, dword [ebp - 0x19d0]
push eax
lea eax, [ebp - 0x19d4]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov ecx, dword [ebp - 0x19d4]
xor edx, edx
mov dl, byte [ebp - 0x502]
xor eax, eax
mov al, byte [ebp - 0x501]
call fcn.004f7aa8
or al, byte [ebp - 0x595]
je 0x50b14e
mov eax, 0x516498
call fcn.0048cf1c
test al, al
je 0x50ac23
xor edx, edx
mov eax, 0x51756c
call fcn.004e5d18
push 0
imul eax, dword [0x614768], 0x3e8
add eax, 0xf4240
xor edx, edx
mov dl, byte [ebp - 0x501]
add eax, edx
push eax
push 0xffffffffffffffff
push 0
push 0
mov eax, dword [ebp - 0x2ac]
call fcn.00524050
mov ecx, eax
lea eax, [ebp - 0x4cc]
mov edx, dword [ebp - 0x2ac]
call fcn.004ef5cc
mov dword [ebp - 0x52c], eax
lea edx, [ebp - 0x19dc]
mov eax, dword [ebp - 0x52c]
call fcn.0040a2d8
mov ecx, dword [ebp - 0x19dc]
lea eax, [ebp - 0x19d8]
mov edx, 0x517588
call fcn.00405414
mov eax, dword [ebp - 0x19d8]
call fcn.0049839c
mov eax, 0x516498
call fcn.0048cf1c
test al, al
je 0x50acdd
lea edx, [ebp - 0x19e4]
mov eax, dword [ebp - 0x52c]
call fcn.0040a2d8
mov ecx, dword [ebp - 0x19e4]
lea eax, [ebp - 0x19e0]
mov edx, 0x51759c
call fcn.00405414
mov eax, dword [ebp - 0x19e0]
xor edx, edx
call fcn.004e5d18
cmp dword [ebp - 0x52c], 0
jle 0x50ae96
imul eax, dword [ebp - 0x2ac], 0x83
lea edx, [eax + 0x63fa34]
mov eax, 0x5175b0
call fcn.00402c78
mov dword [ebp - 0x534], eax
cmp dword [ebp - 0x534], 0
jle 0x50ae8a
lea eax, [ebp - 0x1a6c]
push eax
mov edx, dword [ebp - 0x534]
add edx, 3
imul eax, dword [ebp - 0x2ac], 0x83
add eax, 0x63fa34
mov ecx, 4
call fcn.004029cc
lea edx, [ebp - 0x1a6c]
lea eax, [ebp - 0x19e8]
call fcn.0040536c
mov eax, dword [ebp - 0x19e8]
or edx, 0xffffffff
call fcn.0040a480
mov dword [ebp - 0x528], eax
push 0x5175bc
lea edx, [ebp - 0x1a74]
mov eax, dword [ebp - 0x2ac]
call fcn.0040a2d8
push dword [ebp - 0x1a74]
push 0x515fb8
lea edx, [ebp - 0x1a78]
mov eax, dword [ebp - 0x528]
call fcn.0040a2d8
push dword [ebp - 0x1a78]
lea eax, [ebp - 0x1a70]
mov edx, 4
call fcn.00405488
mov eax, dword [ebp - 0x1a70]
call fcn.0049839c
cmp dword [ebp - 0x528], 0
jle 0x50ae8a
lea eax, [ebp - 0x1a6c]
push eax
imul eax, dword [ebp - 0x528], 0x83
add eax, 0x63fa34
mov ecx, 4
mov edx, 1
call fcn.004029cc
lea eax, [ebp - 0x1a6c]
mov edx, 0x5175cc
xor ecx, ecx
mov cl, byte [eax]
inc ecx
call fcn.00403368
je 0x50ae8a
push 0x5175dc
lea edx, [ebp - 0x1a80]
mov eax, dword [ebp - 0x2ac]
call fcn.0040a2d8
push dword [ebp - 0x1a80]
push 0x515fb8
lea edx, [ebp - 0x1a84]
mov eax, dword [ebp - 0x528]
call fcn.0040a2d8
push dword [ebp - 0x1a84]
lea eax, [ebp - 0x1a7c]
mov edx, 4
call fcn.00405488
mov eax, dword [ebp - 0x1a7c]
call fcn.0049839c
mov eax, dword [ebp - 0x528]
cmp eax, 0xc7
jg 0x50ae8a
mov dword [ebp - 0x534], eax
mov eax, dword [ebp - 0x534]
inc dword [eax*4 + 0xbc4694]
inc dword [ebp - 0x534]
cmp dword [ebp - 0x534], 0xc8
jne 0x50ae6b
mov byte [ebp - 0x4c1], 1
jmp 0x515a05
mov eax, 0x5175f4
call fcn.0049839c
cmp dword [0x614768], 1
jl 0x50aebc
inc dword [0x614768]
cmp dword [0x614768], 0x10
jl 0x50ab98
lea eax, [ebp - 0x1a8c]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1a8c]
lea edx, [ebp - 0x1a88]
call fcn.00409b94
mov edx, dword [ebp - 0x1a88]
mov eax, 0x517608
call fcn.0040570c
test eax, eax
jg 0x50af3b
lea eax, [ebp - 0x1a94]
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
call fcn.0040536c
mov eax, dword [ebp - 0x1a94]
lea edx, [ebp - 0x1a90]
call fcn.00409de4
mov eax, dword [ebp - 0x1a90]
mov edx, 0x5174dc
call fcn.00405514
je 0x50af3b
mov eax, 0x51761c
call fcn.0048cf1c
test al, al
je 0x50b0a5
lea eax, [ebp - 0x1a9c]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1a9c]
lea edx, [ebp - 0x1a98]
call fcn.00409b94
mov edx, dword [ebp - 0x1a98]
mov eax, 0x517630
call fcn.0040570c
test eax, eax
jg 0x50afba
lea eax, [ebp - 0x1aa4]
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
call fcn.0040536c
mov eax, dword [ebp - 0x1aa4]
lea edx, [ebp - 0x1aa0]
call fcn.00409de4
mov eax, dword [ebp - 0x1aa0]
mov edx, 0x5174dc
call fcn.00405514
je 0x50afba
mov eax, 0x51761c
call fcn.0048cf1c
test al, al
je 0x50b0a5
mov byte [ebp - 0x506], 0
mov eax, dword [ebp - 0x2ac]
dec eax
test eax, eax
jl 0x50b020
inc eax
mov dword [ebp - 0x5a4], eax
mov dword [ebp - 0x538], 0
mov eax, dword [ebp - 0x538]
mov edx, eax
shl eax, 4
add eax, edx
cmp byte [eax + 0xbc49b4], 0
je 0x50b012
mov eax, dword [ebp - 0x538]
mov edx, eax
shl eax, 4
add eax, edx
cmp byte [eax + 0xbc49b8], 0xb
jne 0x50b012
mov byte [ebp - 0x506], 1
jmp 0x50b020
inc dword [ebp - 0x538]
dec dword [ebp - 0x5a4]
jne 0x50afdd
cmp byte [ebp - 0x506], 0
je 0x50b037
mov eax, 0x51761c
call fcn.0048cf1c
test al, al
je 0x50b0a5
mov al, byte [ebp - 0x53c]
mov byte [ebp - 0x4b5], al
cmp byte [ebp - 0x4b5], 0
jne 0x50b2c0
lea eax, [ebp - 0x1aac]
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
call fcn.0040536c
mov eax, dword [ebp - 0x1aac]
lea edx, [ebp - 0x1aa8]
call fcn.00409de4
mov eax, dword [ebp - 0x1aa8]
mov edx, 0x5174dc
call fcn.00405514
je 0x50b099
mov eax, 0x51763c
call fcn.0049839c
lea edx, [ebp - 0x1ab0]
mov eax, dword [ebp - 0x4cc]
call fcn.00409de4
cmp dword [ebp - 0x1ab0], 0
je 0x50b10b
mov eax, 0x517690
call fcn.0049839c
mov eax, 0x516498
call fcn.0048cf1c
test al, al
je 0x50b172
xor edx, edx
mov eax, 0x5176a4
call fcn.004e5d18
mov eax, 0x516498
call fcn.0048cf1c
test al, al
je 0x50b1b4
lea edx, [ebp - 0x1ac0]
mov eax, dword [ebp - 0x530]
call fcn.0040a2d8
mov ecx, dword [ebp - 0x1ac0]
lea eax, [ebp - 0x1abc]
mov edx, 0x5176c4
call fcn.00405414
mov eax, dword [ebp - 0x1abc]
xor edx, edx
call fcn.004e5d18
mov edx, dword [0x61b0c4]
mov eax, 0x5176dc
call fcn.00402c78
test eax, eax
jne 0x50b1e7
mov al, byte [ebp - 0x530]
mov byte [ebp - 0x501], al
inc dword [ebp - 0x530]
cmp dword [ebp - 0x530], 0x10
jl 0x50ab98
cmp byte [ebp - 0x4b5], 0
jne 0x50b2c0
mov eax, 0x5176ec
call fcn.0049839c
mov edx, dword [ebp - 0x29c]
mov eax, 0x5176f8
call fcn.00402c78
test eax, eax
jle 0x50b219
mov byte [ebp - 0x4b5], 1
mov edx, dword [ebp - 0x29c]
mov eax, 0x517704
call fcn.00402c78
test eax, eax
jle 0x50b248
mov edx, dword [ebp - 0x29c]
mov eax, 0x517708
call fcn.00402c78
test eax, eax
jle 0x50b248
mov byte [ebp - 0x4b5], 1
mov edx, dword [ebp - 0x29c]
mov eax, 0x517710
call fcn.00402c78
test eax, eax
jle 0x50b263
mov byte [ebp - 0x4b5], 1
mov edx, dword [ebp - 0x29c]
mov eax, 0x517718
call fcn.00402c78
test eax, eax
jle 0x50b27e
mov byte [ebp - 0x4b5], 1
mov eax, dword [ebp - 0x29c]
add eax, 0x1a
mov edx, 0x517720
xor ecx, ecx
mov cl, byte [eax]
inc ecx
call fcn.00403368
jne 0x50b29f
mov byte [ebp - 0x4b5], 1
mov eax, dword [ebp - 0x29c]
add eax, 0x1a
mov edx, 0x517728
xor ecx, ecx
mov cl, byte [eax]
inc ecx
call fcn.00403368
jne 0x50b2c0
mov byte [ebp - 0x4b5], 1
lea eax, [ebp - 0x1ae0]
push eax
mov eax, dword [ebp - 0x29c]
add eax, 0x1a
mov ecx, 4
mov edx, 1
call fcn.004029cc
lea edx, [ebp - 0x1ae0]
lea eax, [ebp - 0x1ac8]
call fcn.0040536c
mov eax, dword [ebp - 0x1ac8]
lea edx, [ebp - 0x1ac4]
call fcn.00409b94
mov eax, dword [ebp - 0x1ac4]
mov edx, 0x517738
call fcn.00405514
je 0x50b36a
lea eax, [ebp - 0x1ae0]
push eax
mov eax, dword [ebp - 0x29c]
add eax, 0x1a
mov ecx, 4
mov edx, 1
call fcn.004029cc
lea edx, [ebp - 0x1ae0]
lea eax, [ebp - 0x1ae8]
call fcn.0040536c
mov eax, dword [ebp - 0x1ae8]
lea edx, [ebp - 0x1ae4]
call fcn.00409b94
mov eax, dword [ebp - 0x1ae4]
mov edx, 0x517748
call fcn.00405514
jne 0x50b582
mov edx, dword [ebp - 0x4bc]
mov eax, 0x516488
call fcn.0040570c
test eax, eax
jne 0x50b582
mov eax, 0x516498
call fcn.0048cf1c
test al, al
je 0x50b466
mov edx, 0x517750
lea eax, [ebp - 0x14dc]
call fcn.004032bc
mov edx, dword [ebp - 0x29c]
lea eax, [ebp - 0x14dc]
mov cl, 0x25
call fcn.0040328c
lea edx, [ebp - 0x14dc]
lea eax, [ebp - 0xbd4]
call fcn.004032bc
mov edx, 0x5164b0
lea eax, [ebp - 0xbd4]
mov cl, 0x2b
call fcn.0040328c
lea edx, [ebp - 0xbd4]
lea eax, [ebp - 0x1b2c]
call fcn.004032bc
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
lea eax, [ebp - 0x1b2c]
mov cl, 0x3f
call fcn.0040328c
lea edx, [ebp - 0x1b2c]
lea eax, [ebp - 0x1b74]
call fcn.004032bc
mov edx, 0x5164b8
lea eax, [ebp - 0x1b74]
mov cl, 0x45
call fcn.0040328c
lea edx, [ebp - 0x1b74]
lea eax, [ebp - 0x1aec]
call fcn.0040536c
lea eax, [ebp - 0x1aec]
push eax
lea edx, [ebp - 0x1b78]
mov eax, dword [ebp - 0x2ac]
call fcn.0040a2d8
mov edx, dword [ebp - 0x1b78]
pop eax
call fcn.004053d0
mov eax, dword [ebp - 0x1aec]
xor edx, edx
call fcn.004e5d18
mov eax, dword [ebp - 0x2ac]
call fcn.00524050
mov edx, dword [ebp - 0x2a8]
call fcn.004f9020
test al, al
jne 0x50b4ba
lea eax, [ebp - 0x1b80]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1b80]
lea edx, [ebp - 0x1b7c]
call fcn.00409b94
mov edx, dword [ebp - 0x1b7c]
mov eax, 0x517768
call fcn.0040570c
test eax, eax
jle 0x50b582
mov byte [ebp - 0x4b5], 0
mov eax, 0x516498
call fcn.0048cf1c
test al, al
je 0x50b4db
xor edx, edx
mov eax, 0x517778
call fcn.004e5d18
mov eax, dword [ebp - 0x2a8]
push eax
push 0xfa0
push 0xffffffffffffffff
push 0
push 0
mov eax, dword [ebp - 0x2ac]
call fcn.00524050
mov ecx, eax
lea eax, [ebp - 0x4cc]
mov edx, dword [ebp - 0x2ac]
call fcn.004ef5cc
mov dword [ebp - 0x52c], eax
mov eax, 0x516498
call fcn.0048cf1c
test al, al
je 0x50b553
lea edx, [ebp - 0x1b88]
mov eax, dword [ebp - 0x52c]
call fcn.0040a2d8
mov ecx, dword [ebp - 0x1b88]
lea eax, [ebp - 0x1b84]
mov edx, 0x517790
call fcn.00405414
mov eax, dword [ebp - 0x1b84]
xor edx, edx
call fcn.004e5d18
cmp dword [ebp - 0x52c], 0
jle 0x50b568
mov byte [ebp - 0x4c1], 1
jmp 0x515a05
mov eax, 0x516498
call fcn.0048cf1c
test al, al
je 0x50b582
xor edx, edx
mov eax, 0x5177a4
call fcn.004e5d18
mov eax, dword [ebp - 0x2ac]
call fcn.0052687c
test al, al
je 0x50b673
lea eax, [ebp - 0x503]
push eax
lea eax, [ebp - 0x504]
push eax
lea ecx, [ebp - 0x502]
lea edx, [ebp - 0x501]
mov eax, dword [ebp - 0x2a8]
call fcn.00525490
mov byte [ebp - 0x53e], al
cmp byte [ebp - 0x53e], 0
je 0x50b673
mov eax, dword [ebp - 0x2ac]
dec eax
test eax, eax
jl 0x50b673
inc eax
mov dword [ebp - 0x5a4], eax
mov dword [ebp - 0x52c], 0
mov eax, dword [ebp - 0x52c]
mov edx, eax
shl eax, 4
add eax, edx
cmp byte [eax + 0xbc49b4], 0
je 0x50b661
mov eax, dword [ebp - 0x52c]
mov edx, eax
shl eax, 4
add eax, edx
cmp byte [eax + 0xbc49b8], 6
jne 0x50b661
mov eax, dword [ebp - 0x52c]
mov edx, eax
shl eax, 4
add eax, edx
mov eax, dword [eax + 0xbc49b9]
xor edx, edx
mov dl, byte [ebp - 0x501]
cmp eax, edx
jne 0x50b661
imul eax, dword [ebp - 0x2ac], 0xaa4
lea edi, [eax*8 + 0x652454]
mov esi, 0x51705c
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov byte [ebp - 0x4c1], 1
jmp 0x515a05
inc dword [ebp - 0x52c]
dec dword [ebp - 0x5a4]
jne 0x50b5ed
mov al, byte [ebp - 0x4b5]
call fcn.0048e914
mov edx, eax
lea eax, [ebp - 0x1b90]
call fcn.004052f0
mov ecx, dword [ebp - 0x1b90]
lea eax, [ebp - 0x1b8c]
mov edx, 0x5177c8
call fcn.00405414
mov eax, dword [ebp - 0x1b8c]
call fcn.0049839c
mov eax, dword [ebp - 0x29c]
mov edx, 0x19
call fcn.0050081c
mov eax, dword [ebp - 0x29c]
add eax, 0x44
mov edx, 0x32
call fcn.0050092c
mov eax, dword [ebp - 0x29c]
add eax, 0x2f
mov edx, 0x14
call fcn.0050092c
mov eax, dword [ebp - 0x29c]
add eax, 0x1a
mov edx, 0x14
call fcn.0050081c
mov edx, 0x5177d0
lea eax, [ebp - 0xf8c]
call fcn.004032bc
mov edx, dword [ebp - 0x29c]
lea eax, [ebp - 0xf8c]
mov cl, 0x24
call fcn.0040328c
lea edx, [ebp - 0xf8c]
lea eax, [ebp - 0x1b94]
call fcn.0040536c
mov eax, dword [ebp - 0x1b94]
call fcn.0049839c
mov edx, 0x5177dc
lea eax, [ebp - 0x1bd8]
call fcn.004032bc
mov edx, dword [ebp - 0x29c]
add edx, 0x44
lea eax, [ebp - 0x1bd8]
mov cl, 0x3e
call fcn.0040328c
lea edx, [ebp - 0x1bd8]
lea eax, [ebp - 0x1b98]
call fcn.0040536c
mov eax, dword [ebp - 0x1b98]
call fcn.0049839c
mov edx, 0x5177ec
lea eax, [ebp - 0x1c00]
call fcn.004032bc
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
lea eax, [ebp - 0x1c00]
mov cl, 0x20
call fcn.0040328c
lea edx, [ebp - 0x1c00]
lea eax, [ebp - 0x1bdc]
call fcn.0040536c
mov eax, dword [ebp - 0x1bdc]
call fcn.0049839c
mov edx, 0x5177fc
lea eax, [ebp - 0x1c28]
call fcn.004032bc
mov edx, dword [ebp - 0x29c]
add edx, 0x1a
lea eax, [ebp - 0x1c28]
mov cl, 0x22
call fcn.0040328c
lea edx, [ebp - 0x1c28]
lea eax, [ebp - 0x1c04]
call fcn.0040536c
mov eax, dword [ebp - 0x1c04]
call fcn.0049839c
imul eax, dword [ebp - 0x2ac], 0x97
lea edx, [eax + 0x646294]
lea eax, [ebp - 0x1cd4]
call fcn.004032bc
mov edx, 0x51780c
lea eax, [ebp - 0x1cd4]
mov cl, 0xa1
call fcn.0040328c
lea edx, [ebp - 0x1cd4]
lea eax, [ebp - 0x1c30]
call fcn.0040536c
push dword [ebp - 0x1c30]
push dword [ebp - 0x55c]
push dword [ebp - 0x560]
call fcn.0040c8dc
add esp, 0xfffffff8
fstp qword [esp]
wait
call fcn.00491438
push edx
push eax
lea eax, [ebp - 0x1cd8]
call fcn.0040a3c4
push dword [ebp - 0x1cd8]
push 0x517820
lea eax, [ebp - 0x1c2c]
mov edx, 3
call fcn.00405488
mov edx, dword [ebp - 0x1c2c]
lea eax, [ebp - 0xaf4]
mov ecx, 0xff
call fcn.004053a4
lea edx, [ebp - 0xaf4]
imul eax, dword [ebp - 0x2ac], 0x97
add eax, 0x646294
mov cl, 0x96
call fcn.004032c8
call fcn.0040c8dc
fstp qword [ebp - 0x560]
wait
mov eax, dword [ebp - 0x29c]
cmp byte [eax], 3
jae 0x50b8d8
mov byte [ebp - 0x4c1], 1
jmp 0x515a05
lea eax, [ebp - 0x1cdc]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x1cdc]
lea edx, [ebp - 0x4d0]
call fcn.00409b94
mov edx, dword [ebp - 0x4d0]
mov eax, 0x51782c
call fcn.0040570c
test eax, eax
jle 0x50b91a
mov byte [ebp - 0x4b5], 0
jmp 0x512d4a
mov edx, dword [ebp - 0x4d0]
mov eax, 0x51783c
call fcn.0040570c
test eax, eax
jle 0x50b962
mov edx, dword [ebp - 0x4d0]
mov eax, 0x51784c
call fcn.0040570c
test eax, eax
jg 0x50b956
mov edx, dword [ebp - 0x4d0]
mov eax, 0x51785c
call fcn.0040570c
test eax, eax
jle 0x50b962
mov byte [ebp - 0x4b5], 0
jmp 0x512d4a
push ebp
call fcn.005032f4
pop ecx
test al, al
jne 0x512d4a
mov eax, 0x51786c
call fcn.0048cf1c
and al, byte [ebp - 0x4b5]
je 0x50b993
lea eax, [ebp - 0x4d0]
mov edx, 0x51787c
call fcn.004051a0
mov edx, dword [ebp - 0x4d0]
mov eax, 0x517898
call fcn.0040570c
test eax, eax
jle 0x50ba4d
mov edx, dword [ebp - 0x4d0]
mov eax, 0x5178a8
call fcn.0040570c
test eax, eax
jle 0x50ba4d
mov edx, dword [ebp - 0x4d0]
mov eax, 0x5178b8
call fcn.0040570c
test eax, eax
jle 0x50ba4d
mov edx, dword [ebp - 0x4d0]
mov eax, 0x5178c8
call fcn.0040570c
test eax, eax
jle 0x50ba2e
lea ecx, [ebp - 0x578]
lea edx, [ebp - 0x570]
mov eax, dword [ebp - 0x2a8]
call fcn.005011b8
mov dword [ebp - 0x568], eax
mov dword [ebp - 0x564], edx
cmp dword [ebp - 0x564], 8
jne 0x50ba28
cmp dword [ebp - 0x568], 0x26299e00
jae 0x50ba2e
jmp 0x512d4a
jl 0x512d4a
mov eax, dword [ebp - 0x2ac]
cmp dword [eax*4 + 0xbc29ac], 0
jge 0x50ba4d
mov dword [ebp - 0x2b4], 2
jmp 0x50f3a4
mov edx, dword [ebp - 0x4d0]
mov eax, 0x5178d4
call fcn.0040570c
test eax, eax
jle 0x50baac
mov edx, dword [ebp - 0x4d0]
mov eax, 0x5178e4
call fcn.0040570c
test eax, eax
jle 0x50baac
mov eax, dword [ebp - 0x29c]
add eax, 0x1a
mov edx, 0x5178f0
call fcn.004032e4
jb 0x512d4a
mov eax, dword [ebp - 0x29c]
add eax, 0x1a
mov edx, 0x5178f8
xor ecx, ecx
mov cl, byte [eax]
inc ecx
call fcn.00403368
je 0x512d4a
lea eax, [ebp - 0x1ce4]
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
call fcn.0040536c
mov eax, dword [ebp - 0x1ce4]
lea edx, [ebp - 0x1ce0]
call fcn.00409b94
mov edx, dword [ebp - 0x1ce0]
mov eax, 0x517908
call fcn.0040570c
test eax, eax
jg 0x512d4a
lea eax, [ebp - 0x1cec]
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
call fcn.0040536c
mov eax, dword [ebp - 0x1cec]
lea edx, [ebp - 0x1ce8]
call fcn.00409b94
mov edx, dword [ebp - 0x1ce8]
mov eax, 0x517918
call fcn.0040570c
test eax, eax
jg 0x512d4a
lea eax, [ebp - 0x1cf4]
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
call fcn.0040536c
mov eax, dword [ebp - 0x1cf4]
lea edx, [ebp - 0x1cf0]
call fcn.00409b94
mov edx, dword [ebp - 0x1cf0]
mov eax, 0x51792c
call fcn.0040570c
test eax, eax
jg 0x512d4a
lea eax, [ebp - 0x1cfc]
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
call fcn.0040536c
mov eax, dword [ebp - 0x1cfc]
lea edx, [ebp - 0x1cf8]
call fcn.00409b94
mov edx, dword [ebp - 0x1cf8]
mov eax, 0x517940
call fcn.0040570c
test eax, eax
jg 0x512d4a
lea eax, [ebp - 0x1d04]
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
call fcn.0040536c
mov eax, dword [ebp - 0x1d04]
lea edx, [ebp - 0x1d00]
call fcn.00409b94
mov edx, dword [ebp - 0x1d00]
mov eax, 0x517954
call fcn.0040570c
test eax, eax
jg 0x512d4a
lea eax, [ebp - 0x1d0c]
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
call fcn.0040536c
mov eax, dword [ebp - 0x1d0c]
lea edx, [ebp - 0x1d08]
call fcn.00409b94
mov edx, dword [ebp - 0x1d08]
mov eax, 0x517968
call fcn.0040570c
test eax, eax
jg 0x512d4a
lea eax, [ebp - 0x1d14]
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
call fcn.0040536c
mov eax, dword [ebp - 0x1d14]
lea edx, [ebp - 0x1d10]
call fcn.00409b94
mov edx, dword [ebp - 0x1d10]
mov eax, 0x517978
call fcn.0040570c
test eax, eax
jg 0x512d4a
lea eax, [ebp - 0x1d1c]
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
call fcn.0040536c
mov eax, dword [ebp - 0x1d1c]
lea edx, [ebp - 0x1d18]
call fcn.00409b94
mov edx, dword [ebp - 0x1d18]
mov eax, 0x51798c
call fcn.0040570c
test eax, eax
jg 0x512d4a
lea eax, [ebp - 0x1d24]
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
call fcn.0040536c
mov eax, dword [ebp - 0x1d24]
lea edx, [ebp - 0x1d20]
call fcn.00409b94
mov edx, dword [ebp - 0x1d20]
mov eax, 0x5179a0
call fcn.0040570c
test eax, eax
jg 0x512d4a
lea eax, [ebp - 0x1d2c]
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
call fcn.0040536c
mov eax, dword [ebp - 0x1d2c]
lea edx, [ebp - 0x1d28]
call fcn.00409b94
mov edx, dword [ebp - 0x1d28]
mov eax, 0x5179b4
call fcn.0040570c
test eax, eax
jg 0x512d4a
mov edx, dword [ebp - 0x4d0]
mov eax, 0x5179c8
call fcn.0040570c
test eax, eax
jle 0x50bd3a
mov edx, dword [ebp - 0x4d0]
mov eax, 0x5179d8
call fcn.0040570c
test eax, eax
jg 0x512d4a
mov edx, dword [ebp - 0x4d0]
mov eax, 0x5179e8
call fcn.0040570c
test eax, eax
jle 0x50bd66
mov edx, dword [ebp - 0x4d0]
mov eax, 0x5179f8
call fcn.0040570c
test eax, eax
jg 0x512d4a
mov edx, dword [ebp - 0x4d0]
mov eax, 0x517a08
call fcn.0040570c
test eax, eax
jg 0x512d4a
mov edx, dword [ebp - 0x4d0]
mov eax, 0x517a1c
call fcn.0040570c
test eax, eax
jle 0x50bdaa
mov edx, dword [ebp - 0x4d0]
mov eax, 0x517a28
call fcn.0040570c
test eax, eax
jg 0x512d4a
mov edx, dword [ebp - 0x4d0]
mov eax, 0x517a38
call fcn.0040570c
test eax, eax
jg 0x512d4a
mov edx, dword [ebp - 0x4d0]
mov eax, 0x517a4c
call fcn.0040570c
test eax, eax
jg 0x512d4a
mov edx, dword [ebp - 0x4d0]
mov eax, 0x517a60
call fcn.0040570c
test eax, eax
jg 0x512d4a
mov edx, dword [ebp - 0x4d0]
mov eax, 0x517954
call fcn.0040570c
test eax, eax
jg 0x512d4a
mov edx, dword [ebp - 0x4d0]
mov eax, 0x517a74
call fcn.0040570c
test eax, eax
jg 0x512d4a
mov edx, dword [ebp - 0x4d0]
mov eax, 0x517a8c
call fcn.0040570c
test eax, eax
jg 0x512d4a
mov edx, dword [ebp - 0x4d0]
mov eax, 0x517aa0
call fcn.0040570c
test eax, eax
jg 0x512d4a
mov edx, dword [ebp - 0x4d0]
mov eax, 0x517ab4
call fcn.0040570c
test eax, eax
jle 0x50be7e
mov edx, dword [ebp - 0x4d0]
mov eax, 0x517ac4
call fcn.0040570c
test eax, eax
jg 0x512d4a
mov edx, dword [ebp - 0x4d0]
mov eax, 0x517ad4
call fcn.0040570c
test eax, eax
jg 0x512d4a
mov edx, dword [ebp - 0x4d0]
mov eax, 0x517ae8
call fcn.0040570c
test eax, eax
jg 0x512d4a
mov edx, dword [ebp - 0x4d0]
mov eax, 0x517af8
call fcn.0040570c
test eax, eax
jg 0x512d4a
mov edx, dword [ebp - 0x4d0]
mov eax, 0x517b0c
call fcn.0040570c
test eax, eax
jg 0x512d4a
mov edx, dword [ebp - 0x4d0]
mov eax, 0x5178c8
call fcn.0040570c
test eax, eax
jle 0x50bf4e
mov edx, dword [ebp - 0x4d0]
mov eax, 0x517b24
call fcn.0040570c
test eax, eax
jle 0x50bf1e
mov edx, dword [ebp - 0x4d0]
mov eax, 0x517b34
call fcn.0040570c
test eax, eax
je 0x512d4a
mov edx, dword [ebp - 0x4d0]
mov eax, 0x517b44
call fcn.0040570c
test eax, eax
jg 0x512d4a
mov edx, dword [ebp - 0x4d0]
mov eax, 0x517b58
call fcn.0040570c
test eax, eax
jg 0x512d4a
mov edx, dword [ebp - 0x4d0]
mov eax, 0x517b68
call fcn.0040570c
test eax, eax
jle 0x50bf7a
mov edx, dword [ebp - 0x4d0]
mov eax, 0x517b24
call fcn.0040570c
test eax, eax
jg 0x512d4a
mov edx, dword [ebp - 0x4d0]
mov eax, 0x517b78
call fcn.0040570c
test eax, eax
jle 0x50c022
mov edx, dword [ebp - 0x4d0]
mov eax, 0x517b88
call fcn.0040570c
test eax, eax
jg 0x512d4a
mov edx, dword [ebp - 0x4d0]
mov eax, 0x517b98
call fcn.0040570c
test eax, eax
jg 0x512d4a
mov edx, dword [ebp - 0x4d0]
mov eax, 0x517ba8
call fcn.0040570c
test eax, eax
jg 0x512d4a
mov edx, dword [ebp - 0x4d0]
mov eax, 0x517bb8
call fcn.0040570c
test eax, eax
jg 0x512d4a
mov edx, dword [ebp - 0x4d0]
mov eax, 0x517bc8
call fcn.0040570c
test eax, eax
jg 0x512d4a
mov edx, dword [ebp - 0x4d0]
mov eax, 0x517bd4
call fcn.0040570c
test eax, eax
jg 0x512d4a
mov edx, dword [ebp - 0x4d0]
mov eax, 0x517be4
call fcn.0040570c
test eax, eax
jle 0x50c04e
mov edx, dword [ebp - 0x4d0]
mov eax, 0x517bf4
call fcn.0040570c
test eax, eax
jg 0x512d4a
mov edx, dword [ebp - 0x4d0]
mov eax, 0x517c00
call fcn.0040570c
test eax, eax
jg 0x512d4a
mov edx, dword [ebp - 0x4d0]
mov eax, 0x5163f4
call fcn.0040570c
test eax, eax
jle 0x50c092
mov edx, dword [ebp - 0x4d0]
mov eax, 0x517330
call fcn.0040570c
test eax, eax
jg 0x512d4a
mov edx, dword [ebp - 0x4d0]
mov eax, 0x517c14
call fcn.0040570c
test eax, eax
jg 0x512d4a
mov edx, dword [ebp - 0x4d0]
mov eax, 0x517c24
call fcn.0040570c
test eax, eax
jle 0x50c0d6
mov edx, dword [ebp - 0x4d0]
mov eax, 0x517c34
call fcn.0040570c
test eax, eax
jg 0x512d4a
mov edx, dword [ebp - 0x4d0]
mov eax, 0x517c44
call fcn.0040570c
test eax, eax
jg 0x512d4a
mov edx, dword [ebp - 0x4d0]
mov eax, 0x517c54
call fcn.0040570c
test eax, eax
jg 0x512d4a
mov edx, dword [ebp - 0x4d0]
mov eax, 0x517c64
call fcn.0040570c
test eax, eax
jle 0x50c132
cmp dword [ebp - 0x2b4], 0
jne 0x50f317
mov eax, 0x5191bc
call fcn.0049839c
lea eax, [ebp - 0x24c]
xor ecx, ecx
mov edx, 0x200
call fcn.0040345c
lea eax, [ebp - 0x503]
push eax
lea eax, [ebp - 0x504]
push eax
lea ecx, [ebp - 0x502]
lea edx, [ebp - 0x501]
mov eax, dword [ebp - 0x4c8]
call fcn.005252b8
test al, al
je 0x50f317
cmp dword [ebp - 0x2b4], 1
jne 0x50f392
lea eax, [ebp - 0x5bc]
xor ecx, ecx
mov edx, 0x10
call fcn.0040345c
mov byte [ebp - 0x5bc], 0xa1
mov byte [ebp - 0x5bb], 8
mov byte [ebp - 0x5ba], 0xe
mov byte [ebp - 0x5b9], 0
mov byte [ebp - 0x5b8], 1
mov byte [ebp - 0x5b7], 0
mov byte [ebp - 0x5b6], 0
mov byte [ebp - 0x5b5], 0
mov al, byte [ebp - 0x59e]
mov byte [ebp - 0x5b4], al
cmp dword [ebp - 0x2b4], 9
jne 0x50f40a
mov byte [ebp - 0x5b4], 0xb0
mov byte [ebp - 0x5b3], 0xec
cmp dword [ebp - 0x2b4], 3
je 0x50f423
cmp dword [ebp - 0x2b4], 4
jne 0x50f499
lea eax, [ebp - 0x5bc]
xor ecx, ecx
mov edx, 0x10
call fcn.0040345c
mov byte [ebp - 0x5bc], 0xdf
mov byte [ebp - 0x5bb], 0x10
mov byte [ebp - 0x5ba], 0
mov byte [ebp - 0x5b9], 2
mov byte [ebp - 0x5b8], 0
mov byte [ebp - 0x5b7], 0
mov byte [ebp - 0x5b6], 1
mov byte [ebp - 0x5b5], 1
mov byte [ebp - 0x5b4], 0
mov byte [ebp - 0x5b3], 0
mov byte [ebp - 0x5b2], 0xa0
cmp dword [ebp - 0x2b4], 4
jne 0x50f492
mov byte [ebp - 0x5b2], 0xb0
mov byte [ebp - 0x5b1], 0xec
cmp dword [ebp - 0x2b4], 5
jne 0x50f50d
lea eax, [ebp - 0x5bc]
xor ecx, ecx
mov edx, 0x10
call fcn.0040345c
mov byte [ebp - 0x5bc], 0xf8
mov al, byte [ebp - 0x2b0]
mov byte [ebp - 0x5bb], al
mov byte [ebp - 0x5ba], 0x22
mov byte [ebp - 0x5b9], 0x10
mov byte [ebp - 0x5b8], 1
mov byte [ebp - 0x5b7], 0
mov byte [ebp - 0x5b6], 1
mov byte [ebp - 0x5b5], 0
mov byte [ebp - 0x5b4], 0
mov byte [ebp - 0x5b3], 0
mov byte [ebp - 0x5b2], 0xa0
mov byte [ebp - 0x5b1], 0xec
cmp dword [ebp - 0x2b4], 6
jne 0x50f56e
lea eax, [ebp - 0x5bc]
xor ecx, ecx
mov edx, 0x10
call fcn.0040345c
mov byte [ebp - 0x5bc], 0xa1
mov byte [ebp - 0x5bb], 8
mov byte [ebp - 0x5ba], 8
mov byte [ebp - 0x5b9], 0
mov byte [ebp - 0x5b8], 1
mov byte [ebp - 0x5b7], 0
mov byte [ebp - 0x5b6], 0
mov byte [ebp - 0x5b5], 0
mov byte [ebp - 0x5b4], 0xa0
mov byte [ebp - 0x5b3], 0xec
cmp dword [ebp - 0x2b4], 7
jne 0x50f612
lea eax, [ebp - 0x5bc]
xor ecx, ecx
mov edx, 0x10
call fcn.0040345c
mov byte [ebp - 0x5bc], 0xd8
mov byte [ebp - 0x5bb], 0x15
mov al, byte [ebp - 0x590]
mov byte [ebp - 0x5ba], al
cmp byte [ebp - 0x59e], 0xb0
jne 0x50f5b7
mov byte [ebp - 0x5ba], 2
mov byte [ebp - 0x5b9], 0
mov byte [ebp - 0x5b8], 6
mov byte [ebp - 0x5b7], 0x7b
mov byte [ebp - 0x5b6], 0
mov byte [ebp - 0x5b5], 0
mov byte [ebp - 0x5b4], 2
mov byte [ebp - 0x5b3], 0
mov byte [ebp - 0x5b2], 1
mov byte [ebp - 0x5b1], 1
mov byte [ebp - 0x5b0], 0
mov byte [ebp - 0x5af], 0
mov byte [ebp - 0x5ae], 0xa0
mov byte [ebp - 0x5ad], 0xec
cmp dword [ebp - 0x2b4], 8
jne 0x50f650
lea eax, [ebp - 0x5bc]
xor ecx, ecx
mov edx, 0x10
call fcn.0040345c
mov byte [ebp - 0x5bc], 0xee
mov byte [ebp - 0x5bb], 0xee
mov byte [ebp - 0x5ba], 0xee
mov byte [ebp - 0x5b9], 0xee
mov byte [ebp - 0x5b8], 1
push 0x51940c
lea edx, [ebp - 0x1ef8]
mov eax, dword [ebp - 0x2b4]
call fcn.0040a2d8
push dword [ebp - 0x1ef8]
push 0x519428
lea edx, [ebp - 0x1efc]
mov eax, dword [ebp - 0x2ac]
call fcn.0040a2d8
push dword [ebp - 0x1efc]
push 0x515fac
lea ecx, [ebp - 0x1f00]
xor eax, eax
mov al, byte [ebp - 0x5b4]
mov edx, 2
call fcn.0040a3ec
push dword [ebp - 0x1f00]
lea eax, [ebp - 0x1ef4]
mov edx, 6
call fcn.00405488
mov eax, dword [ebp - 0x1ef4]
call fcn.0049839c
cmp dword [ebp - 0x2b4], 0
je 0x50f723
cmp dword [ebp - 0x2b4], 0xa
je 0x50f723
push ebp
push 1
push 0
lea edx, [ebp - 0x1f08]
mov eax, dword [ebp - 0x2b4]
call fcn.0040a2d8
mov ecx, dword [ebp - 0x1f08]
lea eax, [ebp - 0x1f04]
mov edx, 0x51943c
call fcn.00405414
mov eax, dword [ebp - 0x1f04]
mov ecx, 0x200
lea edx, [ebp - 0x5bc]
call fcn.00501fc0
pop ecx
test al, al
je 0x510c2d
imul eax, dword [ebp - 0x2ac], 0x97
lea edx, [eax + 0x646294]
lea eax, [ebp - 0x1fb0]
call fcn.004032bc
mov edx, 0x519444
lea eax, [ebp - 0x1fb0]
mov cl, 0x9d
call fcn.0040328c
lea edx, [ebp - 0x1fb0]
lea eax, [ebp - 0x1f10]
call fcn.0040536c
push dword [ebp - 0x1f10]
lea edx, [ebp - 0x1fb4]
mov eax, dword [ebp - 0x2b4]
call fcn.0040a2d8
push dword [ebp - 0x1fb4]
push 0x519454
push dword [ebp - 0x55c]
push dword [ebp - 0x560]
call fcn.0040c8dc
add esp, 0xfffffff8
fstp qword [esp]
wait
call fcn.00491438
push edx
push eax
lea eax, [ebp - 0x1fb8]
call fcn.0040a3c4
push dword [ebp - 0x1fb8]
push 0x517820
lea eax, [ebp - 0x1f0c]
mov edx, 5
call fcn.00405488
mov edx, dword [ebp - 0x1f0c]
lea eax, [ebp - 0xaf4]
mov ecx, 0xff
call fcn.004053a4
lea edx, [ebp - 0xaf4]
imul eax, dword [ebp - 0x2ac], 0x97
add eax, 0x646294
mov cl, 0x96
call fcn.004032c8
call fcn.0040c8dc
fstp qword [ebp - 0x560]
wait
mov byte [ebp - 0x593], 0
mov eax, 0x519460
call fcn.0048cf1c
test al, al
je 0x50f834
cmp dword [ebp - 0x2b4], 2
jne 0x50f834
lea eax, [ebp - 0x24c]
mov edx, 0x1ff
call fcn.00500f48
lea eax, [ebp - 0x4e0]
call fcn.00405108
xor eax, eax
mov dword [ebp - 0x52c], eax
lea eax, [ebp - 0x1fbc]
mov edx, dword [ebp - 0x52c]
mov dl, byte [ebp + edx - 0x24c]
call fcn.004052f0
mov edx, dword [ebp - 0x1fbc]
lea eax, [ebp - 0x4e0]
call fcn.004053d0
inc dword [ebp - 0x52c]
cmp dword [ebp - 0x52c], 0x200
jne 0x50f847
lea eax, [ebp - 0x4e0]
xor edx, edx
call fcn.005240e8
mov edx, dword [ebp - 0x4e0]
mov eax, 0x519474
call fcn.0040570c
test eax, eax
jg 0x50f8bc
lea eax, [ebp - 0x24c]
mov ecx, 0x200
mov edx, 0x1ff
call fcn.004d864c
test al, al
je 0x50f8fe
cmp byte [ebp - 0x591], 0
je 0x50f8fe
mov byte [ebp - 0x591], 0
lea eax, [ebp - 0x1fc0]
push eax
mov ecx, 8
mov edx, 0x2f
mov eax, dword [ebp - 0x4e0]
call fcn.00405628
mov edx, dword [ebp - 0x1fc0]
mov eax, dword [ebp - 0x2ac]
call fcn.0052c6c8
jmp 0x50a1bf
mov byte [ebp - 0x53d], 0
cmp byte [ebp - 0x248], 0x37
jne 0x50f917
cmp byte [ebp - 0x247], 0xc8
je 0x50f95f
cmp byte [ebp - 0x248], 0x73
jne 0x50f929
imul eax, dword [ebp - 0x2ac], 0x97
lea edx, [eax + 0x646294]
lea eax, [ebp - 0x218c]
call fcn.004032bc
mov edx, 0x519708
lea eax, [ebp - 0x218c]
mov cl, 0x9f
call fcn.0040328c
lea edx, [ebp - 0x218c]
lea eax, [ebp - 0x20ec]
call fcn.0040536c
push dword [ebp - 0x20ec]
lea edx, [ebp - 0x2190]
mov eax, dword [ebp - 0x2b4]
call fcn.0040a2d8
push dword [ebp - 0x2190]
push 0x51971c
lea eax, [ebp - 0x20e8]
mov edx, 3
call fcn.00405488
mov edx, dword [ebp - 0x20e8]
lea eax, [ebp - 0xaf4]
mov ecx, 0xff
call fcn.004053a4
lea edx, [ebp - 0xaf4]
imul eax, dword [ebp - 0x2ac], 0x97
add eax, 0x646294
mov cl, 0x96
call fcn.004032c8
inc dword [ebp - 0x2b4]
cmp byte [ebp - 0x59e], 0xb0
jne 0x510ceb
cmp dword [ebp - 0x2b4], 3
jge 0x512d4a
cmp dword [ebp - 0x2b4], 9
jl 0x50eb96
cmp dword [ebp - 0x2b4], 2
jne 0x510d3c
cmp byte [ebp - 0x59e], 0xb0
jne 0x510d3c
cmp dword [ebp - 0x2b4], 7
jne 0x510d8f
cmp byte [ebp - 0x248], 0xbb
jne 0x512fe3
cmp byte [ebp - 0x247], 0
jne 0x512fe3
cmp byte [ebp - 0x246], 2
jne 0x512fe3
push 0x5199b0
lea edx, [ebp - 0x231c]
mov eax, dword [ebp - 0x2ac]
call fcn.0040a2d8
push dword [ebp - 0x231c]
push 0x515fac
lea eax, [ebp - 0x2320]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
push dword [ebp - 0x2320]
lea eax, [ebp - 0x2318]
mov edx, 4
call fcn.00405488
mov eax, dword [ebp - 0x2318]
call fcn.0049839c
lea eax, [ebp - 0x2328]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x2328]
lea edx, [ebp - 0x2324]
call fcn.00409b94
mov edx, dword [ebp - 0x2324]
mov eax, 0x518df8
call fcn.0040570c
test eax, eax
jne 0x512fe3
lea eax, [ebp - 0x2330]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x2330]
lea edx, [ebp - 0x232c]
call fcn.00409b94
mov edx, dword [ebp - 0x232c]
mov eax, 0x516f8c
call fcn.0040570c
test eax, eax
jne 0x512fe3
mov eax, dword [ebp - 0x29c]
add eax, 0x2f
mov edx, 0x5199cc
xor ecx, ecx
mov cl, byte [eax]
inc ecx
call fcn.00403368
jne 0x512fe3
push 0x5199d8
lea edx, [ebp - 0x2338]
mov eax, dword [ebp - 0x2ac]
call fcn.0040a2d8
push dword [ebp - 0x2338]
push 0x515fac
lea eax, [ebp - 0x233c]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
push dword [ebp - 0x233c]
lea eax, [ebp - 0x2334]
mov edx, 4
call fcn.00405488
mov eax, dword [ebp - 0x2334]
call fcn.0049839c
push 0x1ff
lea eax, [ebp - 0x4e4]
push eax
lea ecx, [ebp - 0x24c]
mov edx, dword [ebp - 0x2ac]
mov eax, dword [ebp - 0x2a8]
call fcn.0052591c
mov eax, dword [ebp - 0x29c]
mov byte [eax + 0x2f], 0
mov dword [ebp - 0x52c], 0x14
mov eax, dword [ebp - 0x52c]
mov al, byte [ebp + eax - 0x24c]
add al, 0xe0
sub al, 0x60
jae 0x512f22
lea eax, [ebp - 0xd3c]
mov edx, dword [ebp - 0x52c]
mov dl, byte [ebp + edx - 0x24c]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0xd3c]
mov eax, dword [ebp - 0x29c]
add eax, 0x2f
mov cl, 0x14
call fcn.0040328c
inc dword [ebp - 0x52c]
cmp dword [ebp - 0x52c], 0x28
jne 0x512ee0
lea eax, [ebp - 0x2344]
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
call fcn.0040536c
mov eax, dword [ebp - 0x2344]
lea edx, [ebp - 0x2340]
call fcn.00409de4
mov edx, dword [ebp - 0x2340]
lea eax, [ebp - 0xaf4]
mov ecx, 0xff
call fcn.004053a4
lea edx, [ebp - 0xaf4]
mov eax, dword [ebp - 0x29c]
add eax, 0x2f
mov cl, 0x14
call fcn.004032c8
mov eax, dword [ebp - 0x29c]
cmp byte [eax + 0x2f], 4
jae 0x512f9a
mov eax, dword [ebp - 0x29c]
mov word [eax + 0x2f], 0x3f01
mov edx, 0x519a04
lea eax, [ebp - 0xbd4]
call fcn.004032bc
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
lea eax, [ebp - 0xbd4]
mov cl, 0x2b
call fcn.0040328c
lea edx, [ebp - 0xbd4]
lea eax, [ebp - 0x2348]
call fcn.0040536c
mov eax, dword [ebp - 0x2348]
call fcn.0049839c
mov byte [ebp - 0x4b5], 1
mov al, byte [ebp - 0x4b5]
call fcn.0048e914
mov edx, eax
lea eax, [ebp - 0x2350]
call fcn.004052f0
mov ecx, dword [ebp - 0x2350]
lea eax, [ebp - 0x234c]
mov edx, 0x519a24
call fcn.00405414
mov eax, dword [ebp - 0x234c]
call fcn.0049839c
mov byte [ebp - 0x59d], 1
mov byte [ebp - 0x507], 1
cmp byte [ebp - 0x59e], 0xb0
jne 0x51303a
mov byte [ebp - 0x507], 0
cmp byte [ebp - 0x507], 0
je 0x513065
mov eax, dword [ebp - 0x2ac]
call fcn.005307d4
test al, al
je 0x513065
mov byte [ebp - 0x59d], 2
mov byte [ebp - 0x4c1], 1
jmp 0x515a05
cmp byte [ebp - 0x4b5], 0
je 0x513a1c
mov eax, 0x519a38
call fcn.0048cf1c
test al, al
jne 0x513a1c
lea eax, [ebp - 0x2358]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x2358]
lea edx, [ebp - 0x2354]
call fcn.00409b94
mov edx, dword [ebp - 0x2354]
mov eax, 0x5190e0
call fcn.0040570c
test eax, eax
jle 0x51316f
mov eax, dword [ebp - 0x2ac]
cmp dword [eax*4 + 0xbc29ac], 7
jne 0x51316f
mov eax, 0x5190f4
call fcn.00493290
test al, al
je 0x51316f
lea edx, [ebp - 0x235c]
mov eax, dword [ebp - 0x2ac]
call fcn.004fff48
mov eax, dword [ebp - 0x235c]
call fcn.004053c8
cmp eax, 8
jle 0x51316f
cmp byte [ebp - 0x59e], 0xa0
jne 0x51316f
cmp dword [ebp - 0x2ac], 0xc6
jge 0x51316f
mov eax, dword [ebp - 0x2ac]
cmp eax, dword [0x614160]
jl 0x51316f
cmp dword [ebp - 0x590], 1
jne 0x51315d
mov eax, dword [ebp - 0x2ac]
mov edx, eax
shl eax, 4
add eax, edx
mov word [eax + 0xbc49c1], 0x51
mov eax, dword [ebp - 0x2ac]
mov edx, eax
shl eax, 4
add eax, edx
mov word [eax + 0xbc49c3], 0x51
mov byte [ebp - 0x59e], 0xb0
inc dword [ebp - 0x2ac]
jmp 0x50f3a4
mov eax, dword [ebp - 0x2ac]
cmp dword [eax*4 + 0xbc29ac], 7
jne 0x513220
cmp byte [ebp - 0x59e], 0xb0
jne 0x513220
lea edx, [ebp - 0x2360]
mov eax, dword [ebp - 0x2ac]
call fcn.004fff48
mov eax, dword [ebp - 0x2360]
call fcn.004053c8
cmp eax, 8
jle 0x513220
mov eax, dword [ebp - 0x29c]
cmp dword [eax + 0x174], 7
jne 0x513220
mov eax, dword [ebp - 0x2ac]
call fcn.0052cc7c
test al, al
jne 0x513220
mov eax, dword [0x61b4ac]
cmp dword [eax], 2
jne 0x5131f4
mov eax, dword [ebp - 0x2ac]
inc eax
cmp eax, dword [0x614160]
jl 0x5131f4
mov eax, dword [ebp - 0x2ac]
inc eax
mov dword [0x614160], eax
mov eax, dword [ebp - 0x2ac]
mov edx, eax
shl eax, 4
add eax, edx
mov word [eax + 0xbc49c1], 0x52
mov eax, dword [ebp - 0x2ac]
mov edx, eax
shl eax, 4
add eax, edx
mov word [eax + 0xbc49c3], 0x52
mov eax, dword [ebp - 0x2ac]
cmp dword [eax*4 + 0xbc29ac], 2
jne 0x513893
cmp byte [ebp - 0x59e], 0xa0
jne 0x513893
cmp dword [ebp - 0x2ac], 0xc6
jge 0x513893
mov eax, dword [ebp - 0x2ac]
cmp eax, dword [0x614160]
jl 0x513893
mov byte [ebp - 0x507], 1
push 1
mov edx, dword [ebp - 0x29c]
lea eax, [ebp - 0x2384]
call fcn.004032bc
mov edx, 0x519a40
lea eax, [ebp - 0x2384]
mov cl, 0x1b
call fcn.0040328c
lea edx, [ebp - 0x2384]
lea eax, [ebp - 0x1884]
call fcn.004032bc
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
lea eax, [ebp - 0x1884]
mov cl, 0x2f
call fcn.0040328c
lea edx, [ebp - 0x1884]
lea eax, [ebp - 0xc08]
call fcn.004032bc
mov edx, 0x519a44
lea eax, [ebp - 0xc08]
mov cl, 0x32
call fcn.0040328c
lea edx, [ebp - 0xc08]
lea eax, [ebp - 0x2368]
call fcn.0040536c
push dword [ebp - 0x2368]
lea edx, [ebp - 0x2388]
mov eax, dword [ebp - 0x2ac]
call fcn.0040a2d8
push dword [ebp - 0x2388]
push 0x519a50
lea eax, [ebp - 0x2364]
mov edx, 3
call fcn.00405488
mov ecx, dword [ebp - 0x2364]
mov edx, 0x519a5c
mov eax, 0x519a70
call fcn.0048d9bc
mov eax, 0x519a90
call fcn.00493290
test al, al
je 0x5133ad
mov byte [ebp - 0x507], 0
xor eax, eax
push ebp
push 0x5133a3
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [0x64608c], 0
je 0x513399
lea edx, [ebp - 0x2390]
mov eax, dword [0x64608c]
mov ecx, dword [eax]
call dword [ecx + 0x1c]
mov eax, dword [ebp - 0x2390]
lea edx, [ebp - 0x238c]
call fcn.00409b94
mov edx, dword [ebp - 0x238c]
mov eax, 0x519a90
call fcn.0040570c
test eax, eax
jne 0x513399
mov byte [ebp - 0x507], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5133ad
lea eax, [ebp - 0x2398]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x2398]
lea edx, [ebp - 0x2394]
call fcn.00409b94
mov edx, dword [ebp - 0x2394]
mov eax, 0x518e08
call fcn.0040570c
test eax, eax
jle 0x5133ea
mov byte [ebp - 0x507], 0
lea eax, [ebp - 0x23a0]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x23a0]
lea edx, [ebp - 0x239c]
call fcn.00409b94
mov edx, dword [ebp - 0x239c]
mov eax, 0x519aac
call fcn.0040570c
test eax, eax
jle 0x513427
mov byte [ebp - 0x507], 0
lea eax, [ebp - 0x23a8]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x23a8]
lea edx, [ebp - 0x23a4]
call fcn.00409b94
mov edx, dword [ebp - 0x23a4]
mov eax, 0x519abc
call fcn.0040570c
test eax, eax
jle 0x513464
mov byte [ebp - 0x507], 0
lea eax, [ebp - 0x23b0]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x23b0]
lea edx, [ebp - 0x23ac]
call fcn.00409b94
mov edx, dword [ebp - 0x23ac]
mov eax, 0x519acc
call fcn.0040570c
test eax, eax
jle 0x5134a1
mov byte [ebp - 0x507], 0
lea eax, [ebp - 0x23b8]
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
call fcn.0040536c
mov eax, dword [ebp - 0x23b8]
lea edx, [ebp - 0x23b4]
call fcn.00409b94
mov edx, dword [ebp - 0x23b4]
mov eax, 0x519ae0
call fcn.0040570c
test eax, eax
jle 0x5134e1
mov byte [ebp - 0x507], 0
lea eax, [ebp - 0x23c0]
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
call fcn.0040536c
mov eax, dword [ebp - 0x23c0]
lea edx, [ebp - 0x23bc]
call fcn.00409b94
mov edx, dword [ebp - 0x23bc]
mov eax, 0x519af0
call fcn.0040570c
test eax, eax
jle 0x513521
mov byte [ebp - 0x507], 0
lea eax, [ebp - 0x23c8]
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
call fcn.0040536c
mov eax, dword [ebp - 0x23c8]
lea edx, [ebp - 0x23c4]
call fcn.00409b94
mov edx, dword [ebp - 0x23c4]
mov eax, 0x5172cc
call fcn.0040570c
test eax, eax
jle 0x513561
mov byte [ebp - 0x507], 0
lea eax, [ebp - 0x23d0]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x23d0]
lea edx, [ebp - 0x23cc]
call fcn.00409b94
mov edx, dword [ebp - 0x23cc]
mov eax, 0x519b00
call fcn.0040570c
test eax, eax
jle 0x51359e
mov byte [ebp - 0x507], 0
lea eax, [ebp - 0x23d8]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x23d8]
lea edx, [ebp - 0x23d4]
call fcn.00409b94
mov edx, dword [ebp - 0x23d4]
mov eax, 0x519b14
call fcn.0040570c
test eax, eax
jle 0x5135db
mov byte [ebp - 0x507], 0
lea eax, [ebp - 0x23e0]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x23e0]
lea edx, [ebp - 0x23dc]
call fcn.00409b94
mov edx, dword [ebp - 0x23dc]
mov eax, 0x518128
call fcn.0040570c
test eax, eax
jle 0x513684
lea eax, [ebp - 0x23e8]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x23e8]
lea edx, [ebp - 0x23e4]
call fcn.00409b94
mov edx, dword [ebp - 0x23e4]
mov eax, 0x516dd8
call fcn.0040570c
test eax, eax
jle 0x513684
lea eax, [ebp - 0x23f0]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x23f0]
lea edx, [ebp - 0x23ec]
call fcn.00409b94
mov edx, dword [ebp - 0x23ec]
mov eax, 0x519b2c
call fcn.0040570c
test eax, eax
jle 0x513684
mov byte [ebp - 0x507], 0
lea eax, [ebp - 0x23f8]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x23f8]
lea edx, [ebp - 0x23f4]
call fcn.00409b94
mov edx, dword [ebp - 0x23f4]
mov eax, 0x516258
call fcn.0040570c
test eax, eax
jle 0x513856
lea eax, [ebp - 0x2400]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x2400]
lea edx, [ebp - 0x23fc]
call fcn.00409b94
mov edx, dword [ebp - 0x23fc]
mov eax, 0x516268
call fcn.0040570c
test eax, eax
jle 0x513856
lea eax, [ebp - 0x2408]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x2408]
lea edx, [ebp - 0x2404]
call fcn.00409b94
mov edx, dword [ebp - 0x2404]
mov eax, 0x519164
call fcn.0040570c
test eax, eax
jle 0x513856
mov edx, 0x519b30
lea eax, [ebp - 0x1920]
call fcn.004032bc
mov edx, dword [ebp - 0x29c]
lea eax, [ebp - 0x1920]
mov cl, 0x21
call fcn.0040328c
lea edx, [ebp - 0x1920]
lea eax, [ebp - 0x240c]
call fcn.0040536c
mov eax, dword [ebp - 0x240c]
call fcn.0049839c
mov eax, dword [ebp - 0x2ac]
cmp eax, 0
jl 0x513856
mov dword [ebp - 0x52c], eax
push 0x519b44
lea edx, [ebp - 0x2414]
mov eax, dword [ebp - 0x52c]
call fcn.0040a2d8
push dword [ebp - 0x2414]
push 0x519b54
lea edx, [ebp - 0x2418]
mov eax, dword [ebp - 0x52c]
call fcn.005001c8
push dword [ebp - 0x2418]
lea eax, [ebp - 0x2410]
mov edx, 4
call fcn.00405488
mov eax, dword [ebp - 0x2410]
call fcn.0049839c
lea edx, [ebp - 0x241c]
mov eax, dword [ebp - 0x52c]
call fcn.005001c8
mov edx, dword [ebp - 0x241c]
mov eax, 0x519b64
call fcn.0040570c
test eax, eax
jle 0x513843
mov byte [ebp - 0x507], 0
push 0x519b44
lea edx, [ebp - 0x2424]
mov eax, dword [ebp - 0x52c]
call fcn.0040a2d8
push dword [ebp - 0x2424]
push 0x519b78
lea eax, [ebp - 0x2420]
mov edx, 3
call fcn.00405488
mov eax, dword [ebp - 0x2420]
call fcn.0049839c
jmp 0x513856
dec dword [ebp - 0x52c]
cmp dword [ebp - 0x52c], 0xffffffff
jne 0x513786
push ebp
mov eax, dword [ebp - 0x2ac]
call fcn.00503704
pop ecx
test al, al
je 0x51386e
mov byte [ebp - 0x507], 0
cmp byte [ebp - 0x507], 0
je 0x513893
mov byte [ebp - 0x59e], 0xb0
mov dword [ebp - 0x2b4], 2
inc dword [ebp - 0x2ac]
jmp 0x50f3a4
mov eax, dword [ebp - 0x2ac]
cmp dword [eax*4 + 0xbc29ac], 2
jne 0x5138bd
cmp byte [ebp - 0x59e], 0xb0
jne 0x5138bd
mov eax, dword [ebp - 0x2ac]
mov dword [eax*4 + 0xbc29ac], 9
push 0x519b88
mov ecx, dword [ebp - 0x29c]
add ecx, 0x551c
mov eax, dword [ebp - 0x29c]
add eax, 0x5130
mov edx, 0x3e8
call fcn.0048e934
xor eax, eax
mov dword [ebp - 0x52c], eax
push 0x519ba8
mov ecx, dword [ebp - 0x29c]
add ecx, 0x551c
mov eax, dword [ebp - 0x29c]
add eax, 0x5130
mov edx, 0x3e8
call fcn.0048e934
inc dword [ebp - 0x52c]
cmp dword [ebp - 0x52c], 0x10
jne 0x5138eb
mov eax, dword [ebp - 0x2a8]
push eax
call sub.KERNEL32.DLL_CloseHandle
mov eax, dword [ebp - 0x29c]
xor edx, edx
mov dword [eax + 0x128], edx
cmp byte [ebp - 0x24c], 0x47
jne 0x513a08
cmp byte [ebp - 0x24b], 0x4c
jne 0x513a08
cmp byte [ebp - 0x24a], 0x38
jne 0x513a08
cmp byte [ebp - 0x249], 0x31
jne 0x513a08
cmp byte [ebp - 0x248], 0x31
jne 0x513a08
lea eax, [ebp - 0x4e0]
mov edx, 0x519bb4
call fcn.004051a0
cmp byte [ebp - 0x247], 0x53
je 0x5139c6
push dword [ebp - 0x4e0]
push 0x519bc0
lea eax, [ebp - 0x2428]
mov dl, byte [ebp - 0x247]
call fcn.004052f0
push dword [ebp - 0x2428]
lea eax, [ebp - 0x4e0]
mov edx, 3
call fcn.00405488
lea eax, [ebp - 0x242c]
mov ecx, dword [ebp - 0x4e0]
mov edx, 0x519bcc
call fcn.00405414
mov edx, dword [ebp - 0x242c]
lea eax, [ebp - 0xaf4]
mov ecx, 0xff
call fcn.004053a4
lea edx, [ebp - 0xaf4]
mov eax, dword [ebp - 0x29c]
add eax, 0x44
mov cl, 0x32
call fcn.004032c8
mov byte [ebp - 0x4c1], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x515b5d
lea eax, [ebp - 0xd5c]
push eax
mov eax, dword [ebp - 0x29c]
mov ecx, 4
mov edx, 1
call fcn.004029cc
lea eax, [ebp - 0xd5c]
mov edx, 0x516478
xor ecx, ecx
mov cl, byte [eax]
inc ecx
call fcn.00403368
jne 0x513af2
mov byte [ebp - 0x4c1], 1
push 0x519bdc
mov ecx, dword [ebp - 0x29c]
add ecx, 0x551c
mov eax, dword [ebp - 0x29c]
add eax, 0x5130
mov edx, 0x3e8
call fcn.0048e934
xor eax, eax
mov dword [ebp - 0x52c], eax
push 0x519ba8
mov ecx, dword [ebp - 0x29c]
add ecx, 0x551c
mov eax, dword [ebp - 0x29c]
add eax, 0x5130
mov edx, 0x3e8
call fcn.0048e934
inc dword [ebp - 0x52c]
cmp dword [ebp - 0x52c], 0x10
jne 0x513a88
mov eax, dword [ebp - 0x2a8]
push eax
call sub.KERNEL32.DLL_CloseHandle
mov eax, dword [ebp - 0x29c]
xor edx, edx
mov dword [eax + 0x128], edx
mov eax, dword [ebp - 0x29c]
xor edx, edx
mov dword [eax + 0x12c], edx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x515b5d
mov eax, 0x519bfc
call fcn.0049839c
mov byte [ebp - 0x541], 1
lea eax, [ebp - 0x5bc]
xor ecx, ecx
mov edx, 0x10
call fcn.0040345c
mov byte [ebp - 0x5bc], 0x4d
mov byte [ebp - 0x5ba], 0x40
mov byte [ebp - 0x5b5], 0
mov byte [ebp - 0x5b4], 0xfc
push ebp
lea edx, [ebp - 0x5bc]
mov eax, 0x519c10
call fcn.00501e24
pop ecx
test al, al
je 0x513d39
imul eax, dword [ebp - 0x2ac], 0x97
lea edx, [eax + 0x646294]
lea eax, [ebp - 0x24d4]
call fcn.004032bc
mov edx, 0x519c1c
lea eax, [ebp - 0x24d4]
mov cl, 0x9e
call fcn.0040328c
lea edx, [ebp - 0x24d4]
lea eax, [ebp - 0x2434]
call fcn.0040536c
push dword [ebp - 0x2434]
push dword [ebp - 0x55c]
push dword [ebp - 0x560]
call fcn.0040c8dc
add esp, 0xfffffff8
fstp qword [esp]
wait
call fcn.00491438
push edx
push eax
lea eax, [ebp - 0x24d8]
call fcn.0040a3c4
push dword [ebp - 0x24d8]
push 0x517820
lea eax, [ebp - 0x2430]
mov edx, 3
call fcn.00405488
mov edx, dword [ebp - 0x2430]
lea eax, [ebp - 0xaf4]
mov ecx, 0xff
call fcn.004053a4
lea edx, [ebp - 0xaf4]
imul eax, dword [ebp - 0x2ac], 0x97
add eax, 0x646294
mov cl, 0x96
call fcn.004032c8
call fcn.0040c8dc
fstp qword [ebp - 0x560]
wait
xor eax, eax
mov dword [ebp - 0x52c], eax
mov eax, dword [ebp - 0x29c]
mov edx, dword [ebp - 0x52c]
mov byte [eax + edx + 0x134], 0
inc dword [ebp - 0x52c]
cmp dword [ebp - 0x52c], 0x40
jne 0x513c1a
xor eax, eax
mov al, byte [ebp - 0x249]
mov dword [ebp - 0x530], eax
cmp dword [ebp - 0x530], 1
jle 0x513c5d
cmp dword [ebp - 0x530], 0x3f
jle 0x513c64
mov byte [ebp - 0x541], 0
mov eax, dword [ebp - 0x530]
dec eax
test eax, eax
jl 0x513cb7
inc eax
mov dword [ebp - 0x5a4], eax
mov dword [ebp - 0x52c], 0
mov eax, dword [ebp - 0x52c]
add eax, 4
movzx eax, byte [ebp + eax - 0x24c]
mov dword [ebp - 0x530], eax
cmp dword [ebp - 0x530], 0x3f
jle 0x513ca9
mov byte [ebp - 0x541], 0
jmp 0x513cb7
inc dword [ebp - 0x52c]
dec dword [ebp - 0x5a4]
jne 0x513c80
cmp byte [ebp - 0x541], 0
je 0x513d39
xor eax, eax
mov al, byte [ebp - 0x249]
dec eax
test eax, eax
jl 0x513d39
inc eax
mov dword [ebp - 0x5a4], eax
mov dword [ebp - 0x52c], 0
mov eax, dword [ebp - 0x52c]
add eax, 4
cmp eax, 0x200
jge 0x513d2b
mov eax, dword [ebp - 0x52c]
add eax, 4
movzx eax, byte [ebp + eax - 0x24c]
mov dword [ebp - 0x530], eax
cmp dword [ebp - 0x530], 0
jl 0x513d2b
cmp dword [ebp - 0x530], 0x3f
jg 0x513d2b
mov eax, dword [ebp - 0x29c]
mov edx, dword [ebp - 0x530]
mov byte [eax + edx + 0x134], 1
inc dword [ebp - 0x52c]
dec dword [ebp - 0x5a4]
jne 0x513cde
mov al, byte [ebp - 0x541]
call fcn.0048e914
mov edx, eax
lea eax, [ebp - 0x24e0]
call fcn.004052f0
mov ecx, dword [ebp - 0x24e0]
lea eax, [ebp - 0x24dc]
mov edx, 0x519c30
call fcn.00405414
mov eax, dword [ebp - 0x24dc]
call fcn.0049839c
cmp byte [ebp - 0x541], 0
jne 0x513f60
mov eax, 0x519c44
call fcn.00492b74
test al, al
je 0x513eb7
mov eax, dword [ebp - 0x29c]
cmp byte [eax + 0xe0], 5
jb 0x513eb7
push 0
push 0x400
push 0
push 0x400
lea ecx, [ebp - 0x578]
lea edx, [ebp - 0x570]
mov eax, dword [ebp - 0x2a8]
call fcn.005011b8
call fcn.0040623c
call fcn.004061f4
mov dword [ebp - 0x568], eax
mov dword [ebp - 0x564], edx
cmp dword [ebp - 0x564], 0
jne 0x513def
cmp dword [ebp - 0x568], 0
je 0x513eb7
mov edx, dword [ebp - 0x29c]
mov eax, 0x5165a8
call fcn.00402c78
test eax, eax
jne 0x513eb7
lea eax, [ebp - 0x24e8]
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
call fcn.0040536c
mov eax, dword [ebp - 0x24e8]
lea edx, [ebp - 0x24e4]
call fcn.00409b94
mov edx, dword [ebp - 0x24e4]
mov eax, 0x5172fc
call fcn.0040570c
test eax, eax
jne 0x513eb7
mov eax, dword [ebp - 0x29c]
cmp byte [eax + 0xe0], 0xff
je 0x513eb7
push ebp
call fcn.00504144
pop ecx
test al, al
je 0x513eb7
cmp byte [ebp - 0x592], 0
jne 0x513eb7
mov edx, 0x519c50
lea eax, [ebp - 0x14a4]
call fcn.004032bc
mov edx, dword [ebp - 0x29c]
add edx, 0x2f
lea eax, [ebp - 0x14a4]
mov cl, 0x29
call fcn.0040328c
lea edx, [ebp - 0x14a4]
lea eax, [ebp - 0x24ec]
call fcn.0040536c
mov eax, dword [ebp - 0x24ec]
call fcn.0049839c
mov byte [ebp - 0x592], 1
jmp 0x50a5ce
mov byte [ebp - 0x4c1], 1
push 0x519c70
push dword [ebp - 0x554]
push dword [ebp - 0x558]
call fcn.0040c8dc
add esp, 0xfffffff8
fstp qword [esp]
wait
call fcn.00491438
push edx
push eax
lea eax, [ebp - 0x24f4]
call fcn.0040a3c4
push dword [ebp - 0x24f4]
push 0x519c8c
lea eax, [ebp - 0x24f8]
imul edx, dword [ebp - 0x2ac], 0x97
add edx, 0x646294
call fcn.0040536c
push dword [ebp - 0x24f8]
lea eax, [ebp - 0x24f0]
mov edx, 4
call fcn.00405488
mov edx, dword [ebp - 0x24f0]
lea eax, [ebp - 0xaf4]
mov ecx, 0xff
call fcn.004053a4
lea edx, [ebp - 0xaf4]
imul eax, dword [ebp - 0x2ac], 0x97
add eax, 0x646294
mov cl, 0x96
call fcn.004032c8
jmp 0x515a05
cmp byte [ebp - 0x24c], 0
jne 0x513f76
cmp byte [ebp - 0x24b], 0
je 0x51401f
mov byte [ebp - 0x4c1], 1
push 0x519c9c
push dword [ebp - 0x554]
push dword [ebp - 0x558]
call fcn.0040c8dc
add esp, 0xfffffff8
fstp qword [esp]
wait
call fcn.00491438
push edx
push eax
lea eax, [ebp - 0x2500]
call fcn.0040a3c4
push dword [ebp - 0x2500]
push 0x519c8c
lea eax, [ebp - 0x2504]
imul edx, dword [ebp - 0x2ac], 0x97
add edx, 0x646294
call fcn.0040536c
push dword [ebp - 0x2504]
lea eax, [ebp - 0x24fc]
mov edx, 4
call fcn.00405488
mov edx, dword [ebp - 0x24fc]
lea eax, [ebp - 0xaf4]
mov ecx, 0xff
call fcn.004053a4
lea edx, [ebp - 0xaf4]
imul eax, dword [ebp - 0x2ac], 0x97
add eax, 0x646294
mov cl, 0x96
call fcn.004032c8
jmp 0x515a05
mov byte [ebp - 0x539], 0xa
mov eax, 0x646094
xor ecx, ecx
mov edx, 0x200
call fcn.0040345c
lea eax, [ebp - 0x298]
xor ecx, ecx
mov edx, 0x298
call fcn.0040345c
mov word [ebp - 0x298], 0x2c
mov byte [ebp - 0x294], 1
mov byte [ebp - 0x292], 0xa
mov byte [ebp - 0x291], 0x18
mov byte [ebp - 0x290], 1
mov dword [ebp - 0x28c], 0xfc
mov dword [ebp - 0x288], 2
lea eax, [ebp - 0x24c]
lea edx, [ebp - 0x298]
sub eax, edx
mov dword [ebp - 0x284], eax
lea eax, [ebp - 0x26c]
lea edx, [ebp - 0x298]
sub eax, edx
mov dword [ebp - 0x280], eax
mov byte [ebp - 0x27c], 0x5a
mov byte [ebp - 0x27a], 0x1c
mov byte [ebp - 0x275], 0
mov byte [ebp - 0x274], 0xfc
mov eax, dword [ebp - 0x284]
add eax, dword [ebp - 0x28c]
mov dword [ebp - 0x2a4], eax
push 0
lea eax, [ebp - 0x2a0]
push eax
mov eax, dword [ebp - 0x2a4]
push eax
lea eax, [ebp - 0x298]
push eax
push 0x2c
lea eax, [ebp - 0x298]
push eax
push 0x4d004
mov eax, dword [ebp - 0x2a8]
push eax
call sub.KERNEL32.DLL_DeviceIoControl
test eax, eax
je 0x515a05
imul eax, dword [ebp - 0x2ac], 0x97
lea edx, [eax + 0x646294]
lea eax, [ebp - 0x25b4]
call fcn.004032bc
mov edx, 0x519ca8
lea eax, [ebp - 0x25b4]
mov cl, 0xa5
call fcn.0040328c
lea edx, [ebp - 0x25b4]
lea eax, [ebp - 0x250c]
call fcn.0040536c
push dword [ebp - 0x250c]
push dword [ebp - 0x55c]
push dword [ebp - 0x560]
call fcn.0040c8dc
add esp, 0xfffffff8
fstp qword [esp]
wait
call fcn.00491438
push edx
push eax
lea eax, [ebp - 0x25b8]
call fcn.0040a3c4
push dword [ebp - 0x25b8]
push 0x517820
lea eax, [ebp - 0x2508]
mov edx, 3
call fcn.00405488
mov edx, dword [ebp - 0x2508]
lea eax, [ebp - 0xaf4]
mov ecx, 0xff
call fcn.004053a4
lea edx, [ebp - 0xaf4]
imul eax, dword [ebp - 0x2ac], 0x97
add eax, 0x646294
mov cl, 0x96
call fcn.004032c8
call fcn.0040c8dc
fstp qword [ebp - 0x560]
wait
push 0x519cc0
lea edx, [ebp - 0x25c0]
xor eax, eax
mov al, byte [ebp - 0x539]
call fcn.0040a2d8
push dword [ebp - 0x25c0]
push 0x519454
lea eax, [ebp - 0x25bc]
mov edx, 3
call fcn.00405488
mov eax, dword [ebp - 0x25bc]
push eax
mov ecx, dword [ebp - 0x29c]
add ecx, 0x551c
mov eax, dword [ebp - 0x29c]
add eax, 0x5130
mov edx, 0x3e8
call fcn.0048e934
xor eax, eax
mov dword [ebp - 0x52c], eax
lea eax, [ebp - 0x25c4]
mov edx, dword [ebp - 0x52c]
mov dl, byte [ebp + edx - 0x26c]
call fcn.004052f0
mov eax, dword [ebp - 0x25c4]
push eax
mov ecx, dword [ebp - 0x29c]
add ecx, 0x551c
mov eax, dword [ebp - 0x29c]
add eax, 0x5130
mov edx, 0x3e8
call fcn.0048e934
inc dword [ebp - 0x52c]
cmp dword [ebp - 0x52c], 0x20
jne 0x51423b
push 0x519cd4
mov ecx, dword [ebp - 0x29c]
add ecx, 0x551c
mov eax, dword [ebp - 0x29c]
add eax, 0x5130
mov edx, 0x3e8
call fcn.0048e934
xor eax, eax
mov dword [ebp - 0x52c], eax
lea eax, [ebp - 0x25c8]
mov edx, dword [ebp - 0x52c]
mov dl, byte [ebp + edx - 0x24c]
call fcn.004052f0
mov eax, dword [ebp - 0x25c8]
push eax
mov ecx, dword [ebp - 0x29c]
add ecx, 0x551c
mov eax, dword [ebp - 0x29c]
add eax, 0x5130
mov edx, 0x3e8
call fcn.0048e934
inc dword [ebp - 0x52c]
cmp dword [ebp - 0x52c], 0xc0
jne 0x5142b8
push 0x519ce8
mov ecx, dword [ebp - 0x29c]
add ecx, 0x551c
mov eax, dword [ebp - 0x29c]
add eax, 0x5130
mov edx, 0x3e8
call fcn.0048e934
xor eax, eax
mov dword [ebp - 0x52c], eax
lea eax, [ebp - 0x25cc]
mov edx, dword [ebp - 0x52c]
mov dl, byte [ebp + edx - 0x4c]
call fcn.004052f0
mov eax, dword [ebp - 0x25cc]
push eax
mov ecx, dword [ebp - 0x29c]
add ecx, 0x551c
mov eax, dword [ebp - 0x29c]
add eax, 0x5130
mov edx, 0x3e8
call fcn.0048e934
inc dword [ebp - 0x52c]
cmp dword [ebp - 0x52c], 0x20
jne 0x514338
xor eax, eax
mov dword [ebp - 0x550], eax
mov dword [ebp - 0x548], 0xff
xor eax, eax
mov dword [ebp - 0x54c], eax
mov dword [ebp - 0x530], 2
mov eax, dword [ebp - 0x530]
cmp byte [ebp + eax - 0x24c], 0
je 0x5144be
mov al, byte [ebp - 0x539]
sub al, 0xa
jne 0x514410
xor eax, eax
mov al, byte [ebp - 0x24c]
shl eax, 8
xor edx, edx
mov dl, byte [ebp - 0x24b]
add eax, edx
add eax, 2
mov dword [ebp - 0x548], eax
xor eax, eax
mov al, byte [ebp - 0x246]
shl eax, 8
xor edx, edx
mov dl, byte [ebp - 0x245]
add eax, edx
mov dword [ebp - 0x54c], eax
mov eax, dword [ebp - 0x54c]
add eax, 8
mov dword [ebp - 0x550], eax
jmp 0x51443c
xor eax, eax
mov al, byte [ebp - 0x24c]
inc eax
mov dword [ebp - 0x548], eax
xor eax, eax
mov al, byte [ebp - 0x249]
mov dword [ebp - 0x54c], eax
mov eax, dword [ebp - 0x54c]
add eax, 4
mov dword [ebp - 0x550], eax
cmp dword [ebp - 0x548], 0x32
jge 0x5144be
cmp dword [ebp - 0x54c], 0
jle 0x5144be
mov eax, dword [ebp - 0x550]
add eax, 2
cmp eax, 0x200
jge 0x5144be
mov eax, dword [ebp - 0x550]
add eax, 2
cmp eax, dword [ebp - 0x548]
jge 0x5144be
mov eax, dword [ebp - 0x550]
movzx eax, byte [ebp + eax - 0x24a]
mov dword [ebp - 0x52c], eax
mov eax, dword [ebp - 0x29c]
mov byte [eax + 0xe2], 1
test byte [ebp - 0x52c], 8
sete al
mov edx, dword [ebp - 0x29c]
mov byte [edx + 0xe3], al
test byte [ebp - 0x52c], 0x10
setne al
mov edx, dword [ebp - 0x29c]
mov byte [edx + 0x125], al
jmp 0x5144d1
inc dword [ebp - 0x530]
cmp dword [ebp - 0x530], 0xb
jne 0x5143a8
mov edx, dword [ebp - 0x29c]
mov eax, 0x519cf4
call fcn.00402c78
test eax, eax
jle 0x5144ff
mov eax, dword [ebp - 0x29c]
mov byte [eax + 0xe2], 1
mov eax, dword [ebp - 0x29c]
mov byte [eax + 0xe3], 1
mov eax, 0x646094
xor ecx, ecx
mov edx, 0x200
call fcn.0040345c
lea eax, [ebp - 0x298]
xor ecx, ecx
mov edx, 0x298
call fcn.0040345c
mov word [ebp - 0x298], 0x2c
mov byte [ebp - 0x294], 1
mov byte [ebp - 0x292], 0xa
mov byte [ebp - 0x291], 0x18
mov byte [ebp - 0x290], 1
mov dword [ebp - 0x28c], 0xfc
mov dword [ebp - 0x288], 2
lea eax, [ebp - 0x24c]
lea edx, [ebp - 0x298]
sub eax, edx
mov dword [ebp - 0x284], eax
lea eax, [ebp - 0x26c]
lea edx, [ebp - 0x298]
sub eax, edx
mov dword [ebp - 0x280], eax
mov byte [ebp - 0x27c], 0x4d
mov byte [ebp - 0x27a], 0x6f
mov byte [ebp - 0x275], 0
mov byte [ebp - 0x274], 0xfc
mov eax, dword [ebp - 0x284]
add eax, dword [ebp - 0x28c]
mov dword [ebp - 0x2a4], eax
mov byte [ebp - 0x542], 1
push 0
lea eax, [ebp - 0x2a0]
push eax
mov eax, dword [ebp - 0x2a4]
push eax
lea eax, [ebp - 0x298]
push eax
push 0x2c
lea eax, [ebp - 0x298]
push eax
push 0x4d004
mov eax, dword [ebp - 0x2a8]
push eax
call sub.KERNEL32.DLL_DeviceIoControl
test eax, eax
je 0x514902
imul eax, dword [ebp - 0x2ac], 0x97
lea edx, [eax + 0x646294]
lea eax, [ebp - 0x2680]
call fcn.004032bc
mov edx, 0x519d00
lea eax, [ebp - 0x2680]
mov cl, 0xab
call fcn.0040328c
lea edx, [ebp - 0x2680]
lea eax, [ebp - 0x25d4]
call fcn.0040536c
push dword [ebp - 0x25d4]
push dword [ebp - 0x55c]
push dword [ebp - 0x560]
call fcn.0040c8dc
add esp, 0xfffffff8
fstp qword [esp]
wait
call fcn.00491438
push edx
push eax
lea eax, [ebp - 0x2684]
call fcn.0040a3c4
push dword [ebp - 0x2684]
push 0x517820
lea eax, [ebp - 0x25d0]
mov edx, 3
call fcn.00405488
mov edx, dword [ebp - 0x25d0]
lea eax, [ebp - 0xaf4]
mov ecx, 0xff
call fcn.004053a4
lea edx, [ebp - 0xaf4]
imul eax, dword [ebp - 0x2ac], 0x97
add eax, 0x646294
mov cl, 0x96
call fcn.004032c8
call fcn.0040c8dc
fstp qword [ebp - 0x560]
wait
push 0x519d20
mov ecx, dword [ebp - 0x29c]
add ecx, 0x551c
mov eax, dword [ebp - 0x29c]
add eax, 0x5130
mov edx, 0x3e8
call fcn.0048e934
xor eax, eax
mov dword [ebp - 0x52c], eax
lea eax, [ebp - 0x2688]
mov edx, dword [ebp - 0x52c]
mov dl, byte [ebp + edx - 0x26c]
call fcn.004052f0
mov eax, dword [ebp - 0x2688]
push eax
mov ecx, dword [ebp - 0x29c]
add ecx, 0x551c
mov eax, dword [ebp - 0x29c]
add eax, 0x5130
mov edx, 0x3e8
call fcn.0048e934
inc dword [ebp - 0x52c]
cmp dword [ebp - 0x52c], 0x20
jne 0x5146e6
push 0x519d38
mov ecx, dword [ebp - 0x29c]
add ecx, 0x551c
mov eax, dword [ebp - 0x29c]
add eax, 0x5130
mov edx, 0x3e8
call fcn.0048e934
xor eax, eax
mov dword [ebp - 0x52c], eax
lea eax, [ebp - 0x268c]
mov edx, dword [ebp - 0x52c]
mov dl, byte [ebp + edx - 0x24c]
call fcn.004052f0
mov eax, dword [ebp - 0x268c]
push eax
mov ecx, dword [ebp - 0x29c]
add ecx, 0x551c
mov eax, dword [ebp - 0x29c]
add eax, 0x5130
mov edx, 0x3e8
call fcn.0048e934
inc dword [ebp - 0x52c]
cmp dword [ebp - 0x52c], 0xc0
jne 0x514763
push 0x519d4c
mov ecx, dword [ebp - 0x29c]
add ecx, 0x551c
mov eax, dword [ebp - 0x29c]
add eax, 0x5130
mov edx, 0x3e8
call fcn.0048e934
xor eax, eax
mov dword [ebp - 0x52c], eax
lea eax, [ebp - 0x2690]
mov edx, dword [ebp - 0x52c]
mov dl, byte [ebp + edx - 0x4c]
call fcn.004052f0
mov eax, dword [ebp - 0x2690]
push eax
mov ecx, dword [ebp - 0x29c]
add ecx, 0x551c
mov eax, dword [ebp - 0x29c]
add eax, 0x5130
mov edx, 0x3e8
call fcn.0048e934
inc dword [ebp - 0x52c]
cmp dword [ebp - 0x52c], 0x20
jne 0x5147e3
mov al, byte [ebp - 0x24c]
and al, 0x3f
cmp al, 0x2f
jne 0x514902
cmp byte [ebp - 0x248], 0
jne 0x514902
cmp byte [ebp - 0x247], 0
jne 0x514902
cmp byte [ebp - 0x245], 1
jbe 0x514902
mov byte [ebp - 0x542], 0
xor eax, eax
mov al, byte [ebp - 0x244]
mov edx, dword [ebp - 0x29c]
mov dword [edx + 0x128], eax
xor eax, eax
mov al, byte [ebp - 0x243]
mov edx, dword [ebp - 0x29c]
mov dword [edx + 0x12c], eax
cmp byte [ebp - 0x245], 2
jbe 0x5148b2
xor eax, eax
mov al, byte [ebp - 0x242]
mov edx, dword [ebp - 0x29c]
mov dword [edx + 0x130], eax
lea eax, [ebp - 0x2698]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
mov eax, dword [ebp - 0x2698]
lea edx, [ebp - 0x2694]
call fcn.00409b94
mov edx, dword [ebp - 0x2694]
mov eax, 0x51615c
call fcn.0040570c
test eax, eax
jle 0x514902
mov eax, dword [ebp - 0x29c]
mov byte [eax + 0xe2], 1
mov eax, dword [ebp - 0x29c]
mov byte [eax + 0xe3], 1
mov eax, 0x646094
xor ecx, ecx
mov edx, 0x200
call fcn.0040345c
lea eax, [ebp - 0x298]
xor ecx, ecx
mov edx, 0x298
call fcn.0040345c
mov word [ebp - 0x298], 0x2c
mov byte [ebp - 0x294], 1
mov byte [ebp - 0x292], 6
mov byte [ebp - 0x291], 0x18
mov byte [ebp - 0x290], 1
mov dword [ebp - 0x28c], 0xfc
mov dword [ebp - 0x288], 2
lea eax, [ebp - 0x24c]
lea edx, [ebp - 0x298]
sub eax, edx
mov dword [ebp - 0x284], eax
lea eax, [ebp - 0x26c]
lea edx, [ebp - 0x298]
sub eax, edx
mov dword [ebp - 0x280], eax
mov byte [ebp - 0x27c], 3
mov byte [ebp - 0x278], 0xfc
mov eax, dword [ebp - 0x284]
add eax, dword [ebp - 0x28c]
mov dword [ebp - 0x2a4], eax
mov eax, dword [ebp - 0x29c]
mov word [eax + 0x19c], 0
mov eax, dword [ebp - 0x29c]
mov byte [eax + 0x19e], 0
push 0
lea eax, [ebp - 0x2a0]
push eax
mov eax, dword [ebp - 0x2a4]
push eax
lea eax, [ebp - 0x298]
push eax
push 0x2c
lea eax, [ebp - 0x298]
push eax
push 0x4d004
mov eax, dword [ebp - 0x2a8]
push eax
call sub.KERNEL32.DLL_DeviceIoControl
test eax, eax
je 0x514d18
imul eax, dword [ebp - 0x2ac], 0x97
lea edx, [eax + 0x646294]
lea eax, [ebp - 0x2744]
call fcn.004032bc
mov edx, 0x519d58
lea eax, [ebp - 0x2744]
mov cl, 0xa2
call fcn.0040328c
lea edx, [ebp - 0x2744]
lea eax, [ebp - 0x26a0]
call fcn.0040536c
push dword [ebp - 0x26a0]
push dword [ebp - 0x55c]
push dword [ebp - 0x560]
call fcn.0040c8dc
add esp, 0xfffffff8
fstp qword [esp]
wait
call fcn.00491438
push edx
push eax
lea eax, [ebp - 0x2748]
call fcn.0040a3c4
push dword [ebp - 0x2748]
push 0x517820
lea eax, [ebp - 0x269c]
mov edx, 3
call fcn.00405488
mov edx, dword [ebp - 0x269c]
lea eax, [ebp - 0xaf4]
mov ecx, 0xff
call fcn.004053a4
lea edx, [ebp - 0xaf4]
imul eax, dword [ebp - 0x2ac], 0x97
add eax, 0x646294
mov cl, 0x96
call fcn.004032c8
call fcn.0040c8dc
fstp qword [ebp - 0x560]
wait
push 0x519d70
mov ecx, dword [ebp - 0x29c]
add ecx, 0x551c
mov eax, dword [ebp - 0x29c]
add eax, 0x5130
mov edx, 0x3e8
call fcn.0048e934
xor eax, eax
mov dword [ebp - 0x52c], eax
lea eax, [ebp - 0x274c]
mov edx, dword [ebp - 0x52c]
mov dl, byte [ebp + edx - 0x26c]
call fcn.004052f0
mov eax, dword [ebp - 0x274c]
push eax
mov ecx, dword [ebp - 0x29c]
add ecx, 0x551c
mov eax, dword [ebp - 0x29c]
add eax, 0x5130
mov edx, 0x3e8
call fcn.0048e934
inc dword [ebp - 0x52c]
cmp dword [ebp - 0x52c], 0x20
jne 0x514af0
push 0x519d88
mov ecx, dword [ebp - 0x29c]
add ecx, 0x551c
mov eax, dword [ebp - 0x29c]
add eax, 0x5130
mov edx, 0x3e8
call fcn.0048e934
xor eax, eax
mov dword [ebp - 0x52c], eax
lea eax, [ebp - 0x2750]
mov edx, dword [ebp - 0x52c]
mov dl, byte [ebp + edx - 0x24c]
call fcn.004052f0
mov eax, dword [ebp - 0x2750]
push eax
mov ecx, dword [ebp - 0x29c]
add ecx, 0x551c
mov eax, dword [ebp - 0x29c]
add eax, 0x5130
mov edx, 0x3e8
call fcn.0048e934
inc dword [ebp - 0x52c]
cmp dword [ebp - 0x52c], 0xc0
jne 0x514b6d
push 0x519d9c
mov ecx, dword [ebp - 0x29c]
add ecx, 0x551c
mov eax, dword [ebp - 0x29c]
add eax, 0x5130
mov edx, 0x3e8
call fcn.0048e934
xor eax, eax
mov dword [ebp - 0x52c], eax
lea eax, [ebp - 0x2754]
mov edx, dword [ebp - 0x52c]
mov dl, byte [ebp + edx - 0x4c]
call fcn.004052f0
mov eax, dword [ebp - 0x2754]
push eax
mov ecx, dword [ebp - 0x29c]
add ecx, 0x551c
mov eax, dword [ebp - 0x29c]
add eax, 0x5130
mov edx, 0x3e8
call fcn.0048e934
inc dword [ebp - 0x52c]
cmp dword [ebp - 0x52c], 0x20
jne 0x514bed
cmp byte [ebp - 0x24c], 0x70
jb 0x514c58
cmp byte [ebp - 0x24c], 0x73
ja 0x514c58
mov eax, dword [ebp - 0x29c]
mov byte [eax + 0x19e], 1
cmp byte [ebp - 0x240], 4
jne 0x514c96
cmp byte [ebp - 0x23f], 9
jne 0x514c96
cmp byte [ebp - 0x23d], 0x80
jne 0x514c96
xor eax, eax
mov al, byte [ebp - 0x23c]
shl eax, 8
xor edx, edx
mov dl, byte [ebp - 0x23b]
add ax, dx
mov edx, dword [ebp - 0x29c]
mov word [edx + 0x19c], ax
cmp byte [ebp - 0x542], 0
je 0x514d18
xor eax, eax
mov dword [ebp - 0x52c], eax
mov eax, dword [ebp - 0x52c]
cmp byte [ebp + eax - 0x24c], 0
je 0x514d09
mov eax, dword [ebp - 0x29c]
xor edx, edx
mov dword [eax + 0x128], edx
mov eax, dword [ebp - 0x29c]
xor edx, edx
mov dword [eax + 0x12c], edx
mov al, byte [ebp - 0x24c]
and al, 0x7e
cmp al, 0x70
jne 0x514d18
xor eax, eax
mov al, byte [ebp - 0x24a]
mov edx, dword [ebp - 0x29c]
mov dword [edx + 0x128], eax
xor eax, eax
mov al, byte [ebp - 0x249]
mov edx, dword [ebp - 0x29c]
mov dword [edx + 0x12c], eax
jmp 0x514d18
inc dword [ebp - 0x52c]
cmp dword [ebp - 0x52c], 0xb
jne 0x514ca7
lea ecx, [ebp - 0x2758]
mov edx, dword [ebp - 0x29c]
mov edx, dword [edx + 0x12c]
mov eax, dword [ebp - 0x29c]
mov eax, dword [eax + 0x128]
call fcn.0051ecbc
mov edx, dword [ebp - 0x2758]
lea eax, [ebp - 0xaf4]
mov ecx, 0xff
call fcn.004053a4
lea edx, [ebp - 0xaf4]
mov eax, dword [ebp - 0x29c]
add eax, 0xe4
mov cl, 0x40
call fcn.004032c8
mov byte [ebp - 0x507], 0
mov eax, 0x646094
xor ecx, ecx
mov edx, 0x200
call fcn.0040345c
lea eax, [ebp - 0x298]
xor ecx, ecx
mov edx, 0x298
call fcn.0040345c
mov word [ebp - 0x298], 0x2c
mov byte [ebp - 0x294], 1
mov byte [ebp - 0x292], 6
mov byte [ebp - 0x291], 0x18
mov byte [ebp - 0x290], 1
mov dword [ebp - 0x28c], 0xc0
mov eax, dword [ebp - 0x59c]
mov dword [ebp - 0x288], eax
lea eax, [ebp - 0x24c]
lea edx, [ebp - 0x298]
sub eax, edx
mov dword [ebp - 0x284], eax
lea eax, [ebp - 0x26c]
lea edx, [ebp - 0x298]
sub eax, edx
mov dword [ebp - 0x280], eax
mov byte [ebp - 0x27c], 0x12
mov byte [ebp - 0x27b], 1
mov byte [ebp - 0x27a], 0x86
mov byte [ebp - 0x278], 0xc0
mov eax, dword [ebp - 0x284]
add eax, dword [ebp - 0x28c]
mov dword [ebp - 0x2a4], eax
push 0
lea eax, [ebp - 0x2a0]
push eax
mov eax, dword [ebp - 0x2a4]
push eax
lea eax, [ebp - 0x298]
push eax
push 0x2c
lea eax, [ebp - 0x298]
push eax
push 0x4d004
mov eax, dword [ebp - 0x2a8]
push eax
call sub.KERNEL32.DLL_DeviceIoControl
test eax, eax
je 0x514e90
xor eax, eax
mov dword [ebp - 0x52c], eax
mov eax, dword [ebp - 0x29c]
mov edx, dword [ebp - 0x52c]
mov ecx, dword [ebp - 0x52c]
mov cl, byte [ebp + ecx - 0x24c]
mov byte [eax + edx + 0x178], cl
inc dword [ebp - 0x52c]
cmp dword [ebp - 0x52c], 0x10
jne 0x514e61
mov byte [ebp - 0x539], 0xa
mov eax, 0x646094
xor ecx, ecx
mov edx, 0x200
call fcn.0040345c
lea eax, [ebp - 0x298]
xor ecx, ecx
mov edx, 0x298
call fcn.0040345c
mov word [ebp - 0x298], 0x2c
mov byte [ebp - 0x294], 1
mov byte [ebp - 0x292], 0xa
mov byte [ebp - 0x291], 0x18
mov byte [ebp - 0x290], 1
mov dword [ebp - 0x28c], 0xfc
mov dword [ebp - 0x288], 2
lea eax, [ebp - 0x24c]
lea edx, [ebp - 0x298]
sub eax, edx
mov dword [ebp - 0x284], eax
lea eax, [ebp - 0x26c]
lea edx, [ebp - 0x298]
sub eax, edx
mov dword [ebp - 0x280], eax
mov byte [ebp - 0x27c], 0x5a
mov byte [ebp - 0x27a], 0xa
mov byte [ebp - 0x275], 0
mov byte [ebp - 0x274], 0xfc
mov eax, dword [ebp - 0x284]
add eax, dword [ebp - 0x28c]
mov dword [ebp - 0x2a4], eax
push 0
lea eax, [ebp - 0x2a0]
push eax
mov eax, dword [ebp - 0x2a4]
push eax
lea eax, [ebp - 0x298]
push eax
push 0x2c
lea eax, [ebp - 0x298]
push eax
push 0x4d004
mov eax, dword [ebp - 0x2a8]
push eax
call sub.KERNEL32.DLL_DeviceIoControl
test eax, eax
je 0x515091
xor eax, eax
mov dword [ebp - 0x550], eax
mov dword [ebp - 0x548], 0xff
xor eax, eax
mov dword [ebp - 0x54c], eax
mov dword [ebp - 0x530], 2
mov eax, dword [ebp - 0x530]
cmp byte [ebp + eax - 0x24c], 0
je 0x51507e
mov al, byte [ebp - 0x539]
sub al, 0xa
jne 0x51500c
xor eax, eax
mov al, byte [ebp - 0x24c]
shl eax, 8
xor edx, edx
mov dl, byte [ebp - 0x24b]
add eax, edx
add eax, 2
mov dword [ebp - 0x548], eax
xor eax, eax
mov al, byte [ebp - 0x246]
shl eax, 8
xor edx, edx
mov dl, byte [ebp - 0x245]
add eax, edx
mov dword [ebp - 0x54c], eax
mov eax, dword [ebp - 0x54c]
add eax, 8
mov dword [ebp - 0x550], eax
cmp dword [ebp - 0x548], 0x32
jge 0x51507e
cmp dword [ebp - 0x54c], 0
jle 0x51507e
mov eax, dword [ebp - 0x550]
add eax, 2
cmp eax, 0x200
jge 0x51507e
mov eax, dword [ebp - 0x550]
add eax, 0xb
cmp eax, dword [ebp - 0x548]
jge 0x51507e
xor eax, eax
mov dword [ebp - 0x52c], eax
mov eax, dword [ebp - 0x29c]
mov edx, dword [ebp - 0x52c]
mov ecx, dword [ebp - 0x550]
add ecx, dword [ebp - 0x52c]
mov cl, byte [ebp + ecx - 0x24c]
mov byte [eax + edx + 0x188], cl
inc dword [ebp - 0x52c]
cmp dword [ebp - 0x52c], 0xc
jne 0x515047
jmp 0x515091
inc dword [ebp - 0x530]
cmp dword [ebp - 0x530], 0xb
jne 0x514fa6
mov eax, dword [ebp - 0x29c]
xor edx, edx
mov dword [eax + 0x198], edx
mov eax, dword [ebp - 0x29c]
mov al, byte [eax + 0x188]
and al, 0x7f
cmp al, 0xa
jne 0x5150f2
mov eax, dword [ebp - 0x29c]
cmp byte [eax + 0x189], 0xa
jne 0x5150f2
mov eax, dword [ebp - 0x29c]
movzx eax, byte [eax + 0x192]
shl eax, 8
mov edx, dword [ebp - 0x29c]
movzx edx, byte [edx + 0x193]
add eax, edx
mov edx, dword [ebp - 0x29c]
mov dword [edx + 0x198], eax
mov byte [ebp - 0x507], 1
mov eax, dword [ebp - 0x29c]
mov al, byte [eax + 0x19e]
and al, byte [ebp - 0x507]
mov edx, dword [ebp - 0x29c]
mov byte [edx + 0x19e], al
mov eax, dword [ebp - 0x29c]
mov byte [eax + 0x163], 0
mov eax, dword [ebp - 0x29c]
cmp byte [eax + 0x134], 0
je 0x5152f3
mov dword [ebp - 0x52c], 1
cmp dword [ebp - 0x52c], 1
je 0x5152e0
mov eax, dword [ebp - 0x29c]
mov edx, dword [ebp - 0x52c]
cmp byte [eax + edx + 0x134], 0
je 0x5152e0
lea eax, [ebp - 0x5bc]
xor ecx, ecx
mov edx, 0x10
call fcn.0040345c
mov byte [ebp - 0x5bc], 0x4d
mov al, byte [ebp - 0x52c]
add al, 0x40
mov byte [ebp - 0x5ba], al
mov byte [ebp - 0x5b5], 0
mov byte [ebp - 0x5b4], 0xfc
push ebp
lea ecx, [ebp - 0x2760]
mov edx, 2
mov eax, dword [ebp - 0x52c]
call fcn.0040a3ec
mov ecx, dword [ebp - 0x2760]
lea eax, [ebp - 0x275c]
mov edx, 0x519db0
call fcn.00405414
mov eax, dword [ebp - 0x275c]
lea edx, [ebp - 0x5bc]
call fcn.00501e24
pop ecx
test al, al
je 0x5151f8
xor eax, eax
mov al, byte [ebp - 0x24c]
cmp eax, dword [ebp - 0x52c]
jne 0x5151f8
push ebp
xor edx, edx
mov eax, dword [ebp - 0x52c]
call fcn.0050274c
pop ecx
imul eax, dword [ebp - 0x2ac], 0x97
lea edx, [eax + 0x646294]
lea eax, [ebp - 0x2258]
call fcn.004032bc
mov edx, 0x519dbc
lea eax, [ebp - 0x2258]
mov cl, 0x9b
call fcn.0040328c
lea edx, [ebp - 0x2258]
lea eax, [ebp - 0x2768]
call fcn.0040536c
push dword [ebp - 0x2768]
lea ecx, [ebp - 0x276c]
mov edx, 2
mov eax, dword [ebp - 0x52c]
call fcn.0040a3ec
push dword [ebp - 0x276c]
push 0x519454
push dword [ebp - 0x55c]
push dword [ebp - 0x560]
call fcn.0040c8dc
add esp, 0xfffffff8
fstp qword [esp]
wait
call fcn.00491438
push edx
push eax
lea eax, [ebp - 0x2770]
call fcn.0040a3c4
push dword [ebp - 0x2770]
push 0x517820
lea eax, [ebp - 0x2764]
mov edx, 5
call fcn.00405488
mov edx, dword [ebp - 0x2764]
lea eax, [ebp - 0xaf4]
mov ecx, 0xff
call fcn.004053a4
lea edx, [ebp - 0xaf4]
imul eax, dword [ebp - 0x2ac], 0x97
add eax, 0x646294
mov cl, 0x96
call fcn.004032c8
call fcn.0040c8dc
fstp qword [ebp - 0x560]
wait
inc dword [ebp - 0x52c]
cmp dword [ebp - 0x52c], 0x40
jne 0x51513a
mov eax, dword [ebp - 0x29c]
cmp byte [eax + 0x134], 0
je 0x5154bd
mov dword [ebp - 0x52c], 1
mov eax, dword [ebp - 0x29c]
mov edx, dword [ebp - 0x52c]
cmp byte [eax + edx + 0x134], 0
je 0x5154aa
lea eax, [ebp - 0x5bc]
xor ecx, ecx
mov edx, 0x10
call fcn.0040345c
mov byte [ebp - 0x5bc], 0x4d
mov al, byte [ebp - 0x52c]
mov byte [ebp - 0x5ba], al
mov byte [ebp - 0x5b5], 0
mov byte [ebp - 0x5b4], 0xfc
push ebp
lea ecx, [ebp - 0x2778]
mov edx, 2
mov eax, dword [ebp - 0x52c]
call fcn.0040a3ec
mov ecx, dword [ebp - 0x2778]
lea eax, [ebp - 0x2774]
mov edx, 0x519db0
call fcn.00405414
mov eax, dword [ebp - 0x2774]
lea edx, [ebp - 0x5bc]
call fcn.00501e24
pop ecx
test al, al
je 0x5153c2
xor eax, eax
mov al, byte [ebp - 0x24c]
cmp eax, dword [ebp - 0x52c]
jne 0x5153c2
push ebp
mov edx, 1
mov eax, dword [ebp - 0x52c]
call fcn.0050274c
pop ecx
imul eax, dword [ebp - 0x2ac], 0x97
lea edx, [eax + 0x646294]
lea eax, [ebp - 0x2258]
call fcn.004032bc
mov edx, 0x519dc4
lea eax, [ebp - 0x2258]
mov cl, 0x9b
call fcn.0040328c
lea edx, [ebp - 0x2258]
lea eax, [ebp - 0x2780]
call fcn.0040536c
push dword [ebp - 0x2780]
lea ecx, [ebp - 0x2784]
mov edx, 2
mov eax, dword [ebp - 0x52c]
call fcn.0040a3ec
push dword [ebp - 0x2784]
push 0x519454
push dword [ebp - 0x55c]
push dword [ebp - 0x560]
call fcn.0040c8dc
add esp, 0xfffffff8
fstp qword [esp]
wait
call fcn.00491438
push edx
push eax
lea eax, [ebp - 0x2788]
call fcn.0040a3c4
push dword [ebp - 0x2788]
push 0x517820
lea eax, [ebp - 0x277c]
mov edx, 5
call fcn.00405488
mov edx, dword [ebp - 0x277c]
lea eax, [ebp - 0xaf4]
mov ecx, 0xff
call fcn.004053a4
lea edx, [ebp - 0xaf4]
imul eax, dword [ebp - 0x2ac], 0x97
add eax, 0x646294
mov cl, 0x96
call fcn.004032c8
call fcn.0040c8dc
fstp qword [ebp - 0x560]
wait
inc dword [ebp - 0x52c]
cmp dword [ebp - 0x52c], 0x40
jne 0x515310
mov eax, dword [ebp - 0x29c]
mov eax, dword [eax + 0x2a14]
dec eax
mov dword [ebp - 0x530], eax
cmp dword [ebp - 0x530], 0x2711
jge 0x515518
mov eax, dword [ebp - 0x29c]
mov edx, dword [ebp - 0x530]
cmp byte [eax + edx + 0x300], 0x2c
jne 0x515518
mov eax, dword [ebp - 0x29c]
mov edx, dword [ebp - 0x530]
mov byte [eax + edx + 0x300], 0
mov eax, dword [ebp - 0x29c]
mov edx, dword [ebp - 0x530]
mov dword [eax + 0x2a14], edx
mov eax, dword [ebp - 0x29c]
mov eax, dword [eax + 0x512c]
dec eax
mov dword [ebp - 0x530], eax
cmp dword [ebp - 0x530], 0x2711
jge 0x515573
mov eax, dword [ebp - 0x29c]
mov edx, dword [ebp - 0x530]
cmp byte [eax + edx + 0x2a18], 0x2c
jne 0x515573
mov eax, dword [ebp - 0x29c]
mov edx, dword [ebp - 0x530]
mov byte [eax + edx + 0x2a18], 0
mov eax, dword [ebp - 0x29c]
mov edx, dword [ebp - 0x530]
mov dword [eax + 0x512c], edx
mov eax, dword [ebp - 0x29c]
cmp dword [eax + 0x130], 0xff
jne 0x515595
mov eax, dword [ebp - 0x29c]
mov dword [eax + 0x130], 0xffffffff
mov eax, dword [ebp - 0x29c]
cmp dword [eax + 0x130], 0
jg 0x515708
lea eax, [ebp - 0x278c]
mov edx, dword [ebp - 0x29c]
add edx, 0x300
mov ecx, 0x2711
call fcn.00405378
mov eax, dword [ebp - 0x278c]
mov dl, 0x2c
call fcn.0048c2b0
test eax, eax
jle 0x515708
mov dword [ebp - 0x5a4], eax
mov dword [ebp - 0x530], 1
lea eax, [ebp - 0x4d4]
push eax
lea eax, [ebp - 0x2790]
mov edx, dword [ebp - 0x29c]
add edx, 0x300
mov ecx, 0x2711
call fcn.00405378
mov eax, dword [ebp - 0x2790]
mov cl, 0x2c
mov edx, dword [ebp - 0x530]
call fcn.0048c32c
lea eax, [ebp - 0x2798]
push eax
mov ecx, 7
mov edx, 1
mov eax, dword [ebp - 0x4d4]
call fcn.00405628
mov eax, dword [ebp - 0x2798]
lea edx, [ebp - 0x2794]
call fcn.00409b94
mov eax, dword [ebp - 0x2794]
mov edx, 0x519dd4
call fcn.00405514
jne 0x5156f6
mov edx, dword [ebp - 0x2ac]
mov eax, dword [ebp - 0x4d4]
call fcn.0051f4b4
mov byte [ebp - 0x540], al
mov al, byte [ebp - 0x540]
push eax
push 0
lea ecx, [ebp - 0x4dc]
lea edx, [ebp - 0x4d8]
mov eax, dword [ebp - 0x4d4]
call fcn.0051ee14
cmp dword [ebp - 0x4dc], 0
je 0x5156f6
lea edx, [ebp - 0x52c]
mov eax, dword [ebp - 0x4dc]
call fcn.004038ac
mov edx, dword [ebp - 0x29c]
mov dword [edx + 0x130], eax
mov eax, dword [ebp - 0x29c]
cmp dword [eax + 0x130], 0
jle 0x5156e6
mov eax, dword [ebp - 0x29c]
cmp dword [eax + 0x130], 0x63
jg 0x5156e6
cmp dword [ebp - 0x52c], 0
je 0x5156f6
mov eax, dword [ebp - 0x29c]
mov dword [eax + 0x130], 0xffffffff
inc dword [ebp - 0x530]
dec dword [ebp - 0x5a4]
jne 0x5155e9
mov eax, dword [ebp - 0x29c]
cmp dword [eax + 0x130], 0xff
jne 0x51572a
mov eax, dword [ebp - 0x29c]
mov dword [eax + 0x130], 0xffffffff
mov eax, dword [ebp - 0x29c]
mov al, byte [eax + 0xdf]
and al, 0x1f
cmp al, 1
jne 0x5157ac
mov eax, dword [ebp - 0x29c]
cmp dword [eax + 0x130], 0
jge 0x5157ac
push 0x519de4
lea edx, [ebp - 0x27a0]
mov eax, dword [ebp - 0x29c]
movzx eax, byte [eax + 0xdf]
call fcn.0040a2d8
push dword [ebp - 0x27a0]
push 0x515fac
lea eax, [ebp - 0x27a4]
mov edx, dword [ebp - 0x29c]
call fcn.0040536c
push dword [ebp - 0x27a4]
lea eax, [ebp - 0x279c]
mov edx, 4
call fcn.00405488
mov eax, dword [ebp - 0x279c]
call fcn.0049839c
push ebp
call fcn.005039d0
pop ecx
mov eax, dword [ebp - 0x29c]
test byte [eax + 0xdf], 0x1f
jne 0x51585e
mov eax, dword [ebp - 0x29c]
cmp dword [eax + 0x2a14], 0x64
jle 0x51585e
lea eax, [ebp - 0x4b4]
xor ecx, ecx
mov edx, 0x200
call fcn.0040345c
push 0x1ff
lea ecx, [ebp - 0x4b4]
mov edx, 3
mov eax, dword [ebp - 0x2a8]
call fcn.004bbdc4
mov dword [ebp - 0x530], eax
cmp dword [ebp - 0x530], 0
jne 0x515845
mov al, byte [ebp - 0x4a4]
and al, 0x7f
cmp al, 3
jne 0x51585e
xor eax, eax
mov al, byte [ebp - 0x498]
shl eax, 8
xor edx, edx
mov dl, byte [ebp - 0x497]
add eax, edx
xor edx, edx
mov ecx, dword [ebp - 0x29c]
mov dword [ecx + 0x2f8], eax
mov dword [ecx + 0x2fc], edx
jmp 0x51585e
mov eax, dword [ebp - 0x530]
cdq
mov ecx, dword [ebp - 0x29c]
mov dword [ecx + 0x2f8], eax
mov dword [ecx + 0x2fc], edx
mov eax, dword [ebp - 0x29c]
cmp byte [eax + 0x2f], 2
jae 0x515961
mov eax, dword [ebp - 0x29c]
mov al, byte [eax + 0xdf]
and al, 0x1f
cmp al, 1
jne 0x515961
lea eax, [ebp - 0x4d4]
push eax
lea eax, [ebp - 0x27a8]
mov edx, dword [ebp - 0x29c]
add edx, 0x300
mov ecx, 0x2711
call fcn.00405378
mov edx, dword [ebp - 0x27a8]
xor ecx, ecx
mov eax, 0x519e08
call fcn.0048e6dc
cmp dword [ebp - 0x4d4], 0
je 0x515961
mov byte [ebp - 0x540], 0
lea eax, [ebp - 0x4d4]
mov ecx, dword [ebp - 0x4d4]
mov edx, 0x519e18
call fcn.00405414
mov al, byte [ebp - 0x540]
push eax
push 0
lea ecx, [ebp - 0x4dc]
lea edx, [ebp - 0x4d8]
mov eax, dword [ebp - 0x4d4]
call fcn.0051ee14
lea edx, [ebp - 0x27ac]
mov eax, dword [ebp - 0x4dc]
call fcn.00409de4
mov edx, dword [ebp - 0x27ac]
lea eax, [ebp - 0x4dc]
call fcn.004051a0
mov eax, dword [ebp - 0x4dc]
call fcn.004053c8
cmp eax, 2
jle 0x515961
lea eax, [ebp - 0xaf4]
mov edx, dword [ebp - 0x4dc]
mov ecx, 0xff
call fcn.004053a4
lea edx, [ebp - 0xaf4]
mov eax, dword [ebp - 0x29c]
add eax, 0x2f
mov cl, 0x14
call fcn.004032c8
mov byte [ebp - 0x4c1], 1
push 0x519c9c
push dword [ebp - 0x554]
push dword [ebp - 0x558]
call fcn.0040c8dc
add esp, 0xfffffff8
fstp qword [esp]
wait
call fcn.00491438
push edx
push eax
lea eax, [ebp - 0x27b4]
call fcn.0040a3c4
push dword [ebp - 0x27b4]
push 0x519c8c
lea eax, [ebp - 0x27b8]
imul edx, dword [ebp - 0x2ac], 0x97
add edx, 0x646294
call fcn.0040536c
push dword [ebp - 0x27b8]
lea eax, [ebp - 0x27b0]
mov edx, 4
call fcn.00405488
mov edx, dword [ebp - 0x27b0]
lea eax, [ebp - 0xaf4]
mov ecx, 0xff
call fcn.004053a4
lea edx, [ebp - 0xaf4]
imul eax, dword [ebp - 0x2ac], 0x97
add eax, 0x646294
mov cl, 0x96
call fcn.004032c8
cmp byte [ebp - 0x59d], 0
jne 0x515a2b
mov eax, dword [ebp - 0x2ac]
call fcn.005307d4
test al, al
je 0x515a2b
mov byte [ebp - 0x59d], 3
mov byte [ebp - 0x4c1], 1
mov eax, 0x519e2c
call fcn.0049839c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x515a49
cmp dword [ebp - 0x2a8], 0xffffffff
je 0x515a5e
mov eax, dword [ebp - 0x2a8]
push eax
call sub.KERNEL32.DLL_CloseHandle
xor eax, eax
mov dword [ebp - 0x52c], eax
push 0x519ba8
mov ecx, dword [ebp - 0x29c]
add ecx, 0x551c
mov eax, dword [ebp - 0x29c]
add eax, 0x5130
mov edx, 0x3e8
call fcn.0048e934
inc dword [ebp - 0x52c]
cmp dword [ebp - 0x52c], 0x10
jne 0x515a66
mov eax, 0x519e40
call fcn.0048cf1c
test al, al
je 0x515b5d
mov eax, dword [ebp - 0x29c]
mov edi, eax
mov esi, 0x519e4c
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x29c]
lea edi, [eax + 0x2f]
mov esi, 0x519e64
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov eax, dword [ebp - 0x29c]
lea edi, [eax + 0x1a]
mov esi, 0x519e64
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov eax, dword [ebp - 0x29c]
lea edi, [eax + 0x300]
mov esi, 0x519e6c
mov ecx, 0x9c4
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov eax, dword [ebp - 0x29c]
mov edi, eax
mov esi, 0x51c580
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov eax, dword [ebp - 0x29c]
mov edi, eax
mov esi, 0x51c594
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov eax, dword [ebp - 0x29c]
lea edi, [eax + 0x2f]
mov esi, 0x519e64
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov eax, dword [ebp - 0x29c]
lea edi, [eax + 0x1a]
mov esi, 0x519e64
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov eax, dword [ebp - 0x29c]
lea edi, [eax + 0x300]
mov esi, 0x51c5a8
mov ecx, 0x9c4
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x515e5d
lea eax, [ebp - 0x27b8]
mov edx, 0x1d
call fcn.0040512c
lea eax, [ebp - 0x26a0]
mov edx, 8
call fcn.0040512c
lea eax, [ebp - 0x25d4]
mov edx, 8
call fcn.0040512c
lea eax, [ebp - 0x250c]
mov edx, 0xe
call fcn.0040512c
lea eax, [ebp - 0x2434]
mov edx, 0x29
call fcn.0040512c
lea eax, [ebp - 0x2390]
mov edx, 3
call fcn.0040512c
lea eax, [ebp - 0x2368]
mov edx, 0x44
call fcn.0040512c
lea eax, [ebp - 0x21bc]
mov edx, 0xc
call fcn.0040512c
lea eax, [ebp - 0x20ec]
mov edx, 0x11
call fcn.0040512c
lea eax, [ebp - 0x20a8]
mov edx, 0xd
call fcn.0040512c
lea eax, [ebp - 0x1fe4]
mov edx, 0xd
call fcn.0040512c
lea eax, [ebp - 0x1f10]
mov edx, 0x36
call fcn.0040512c
lea eax, [ebp - 0x1ddc]
mov edx, 0x14
call fcn.0040512c
lea eax, [ebp - 0x1d8c]
mov edx, 0x2e
call fcn.0040512c
lea eax, [ebp - 0x1c30]
mov edx, 2
call fcn.0040512c
lea eax, [ebp - 0x1c04]
call fcn.00405108
lea eax, [ebp - 0x1bdc]
call fcn.00405108
lea eax, [ebp - 0x1b98]
mov edx, 9
call fcn.0040512c
lea eax, [ebp - 0x1aec]
mov edx, 3
call fcn.0040512c
lea eax, [ebp - 0x1ac8]
mov edx, 0x17
call fcn.0040512c
lea eax, [ebp - 0x19e8]
mov edx, 0xe
call fcn.0040512c
lea eax, [ebp - 0x19a0]
call fcn.00405108
lea eax, [ebp - 0x19b0]
mov edx, 4
call fcn.0040512c
lea eax, [ebp - 0x199c]
mov edx, 6
call fcn.0040512c
lea eax, [ebp - 0x18fc]
mov edx, 0xd
call fcn.0040512c
lea eax, [ebp - 0x1854]
mov edx, 0x4d
call fcn.0040512c
lea eax, [ebp - 0x1720]
mov edx, 0x64
call fcn.0040512c
lea eax, [ebp - 0x1590]
mov edx, 0x2d
call fcn.0040512c
lea eax, [ebp - 0x14b4]
mov edx, 4
call fcn.0040512c
lea eax, [ebp - 0x1478]
mov edx, 0x1b
call fcn.0040512c
lea eax, [ebp - 0x1318]
mov edx, 0xd
call fcn.0040512c
lea eax, [ebp - 0x1298]
mov edx, 0xa
call fcn.0040512c
lea eax, [ebp - 0x1224]
call fcn.00405108
lea eax, [ebp - 0x1270]
call fcn.00405108
lea eax, [ebp - 0x1220]
mov edx, 0x2a
call fcn.0040512c
lea eax, [ebp - 0x1030]
mov edx, 0xd
call fcn.0040512c
lea eax, [ebp - 0xfac]
mov edx, 8
call fcn.0040512c
lea eax, [ebp - 0xf64]
mov edx, 0xd
call fcn.0040512c
lea eax, [ebp - 0xe8c]
mov edx, 5
call fcn.0040512c
lea eax, [ebp - 0xdec]
mov edx, 3
call fcn.0040512c
lea eax, [ebp - 0xd6c]
mov edx, 4
call fcn.0040512c
lea eax, [ebp - 0xd40]
call fcn.00405108
lea eax, [ebp - 0xd38]
mov edx, 0xa
call fcn.0040512c
lea eax, [ebp - 0xd10]
mov edx, 3
call fcn.0040512c
lea eax, [ebp - 0xba8]
mov edx, 5
call fcn.0040512c
lea eax, [ebp - 0xaf8]
call fcn.00405108
lea eax, [ebp - 0x9f4]
mov edx, 3
call fcn.0040512c
lea eax, [ebp - 0x500]
mov edx, 0xf
call fcn.0040512c
lea eax, [ebp - 0x4bc]
call fcn.00405108
ret