Function at 0x518060
Capabilities:
Clear windows event logs
Delete volume shadow copies
Disable automatic windows recovery features
Resolve function by parsing pe exports

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x2b8]
cmp eax, dword [ecx + 8]
jbe 0x51aadd
sub esp, 0x338
mov eax, dword [esp + 0x33c]
mov dword [esp], eax
mov ecx, dword [esp + 0x340]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x344]
mov dword [esp + 8], edx
call fcn.004a75f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0xc]
mov esi, dword [esp + 0x34c]
mov edi, dword [esp + 0x354]
cmp esi, edi
jne 0x518174
mov eax, dword [esp + 0x33c]
mov dword [esp], eax
mov eax, dword [esp + 0x340]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x344]
mov dword [esp + 8], eax
lea edi, [esp + 0xc]
lea esi, [esp + 0x358]
call fcn.0045fac4
call fcn.0051aaf0
movzx eax, byte [esp + 0x24]
test al, al
je 0x518116
xor eax, eax
xor ecx, ecx
jmp 0x518151
lea eax, [0x54b49d]
mov dword [esp + 0x1dc], eax
mov dword [esp + 0x1e0], 0x12
mov eax, dword [esp + 0x1dc]
mov dword [esp], eax
mov dword [esp + 4], 0x12
call fcn.00408c10
mov eax, dword [esp + 8]
mov ecx, eax
lea eax, [0x57dc2c]
mov edx, dword [esp + 0x354]
mov dword [esp + 0x370], edx
mov dword [esp + 0x374], eax
mov dword [esp + 0x378], ecx
add esp, 0x338
ret
mov dword [esp + 0x120], eax
mov dword [esp + 0xe8], ecx
mov dword [esp + 0x11c], ebp
mov dword [esp + 0xe4], ebx
mov dword [esp + 0x68], edx
mov eax, dword [edx + 0x50]
mov dword [esp], ecx
call eax
cmp dword [esp + 4], 0x14
je 0x5181a7
xor eax, eax
jmp 0x5181c3
mov eax, dword [esp + 0x68]
mov ecx, dword [eax + 0x6c]
mov edx, dword [esp + 0xe8]
mov dword [esp], edx
call ecx
mov eax, dword [esp + 4]
test eax, eax
sete al
test al, al
je 0x51892e
mov eax, dword [esp + 0x348]
mov dword [esp], eax
mov ecx, dword [esp + 0x34c]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x350]
mov dword [esp + 8], edx
mov ebx, dword [esp + 0x354]
mov dword [esp + 0xc], ebx
call fcn.00517600
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
movzx ebp, byte [esp + 0x1c]
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x24]
mov dword [esp + 0x120], edi
mov edi, dword [esp + 0x28]
mov dword [esp + 0xb4], ebx
mov dword [esp + 0xb8], edx
mov dword [esp + 0xbc], ecx
xchg ebp, eax
mov byte [esp + 0xc0], al
xchg ebp, eax
test esi, esi
jne 0x51890b
mov dword [esp + 0x54], eax
mov dword [esp + 0xa8], esi
lea esi, [ecx + eax]
cmp eax, esi
jg 0x5188b2
mov dword [esp + 0xa4], ebx
mov ebx, dword [esp + 0x34c]
cmp ebx, esi
jl 0x5188b2
mov dword [esp + 0xa0], esi
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x5188a2
mov ebx, dword [esp + 0xa4]
test ebx, ebx
jne 0x5188a2
mov ebx, dword [esp + 0x350]
cmp ebx, esi
jb 0x51aad3
cmp eax, esi
ja 0x51aacc
mov dword [esp + 0x58], ecx
sub ebx, eax
mov ebp, ebx
neg ebx
sar ebx, 0x1f
and ebx, eax
mov dword [esp + 0xa4], ebx
mov eax, esi
mov esi, dword [esp + 0x348]
add ebx, esi
cmp edx, 0x12
jg 0x518624
cmp edx, 4
jle 0x51841f
cmp edx, 6
je 0x5183b7
cmp edx, 0xc
je 0x5182fd
cmp edx, 0x12
jne 0x5186fe
xor edx, edx
jmp 0x51aa14
mov dword [esp + 0xe0], ebx
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
call fcn.00483e70
movzx eax, byte [esp + 0xc]
test al, al
je 0x51834a
mov dword [esp], 0
mov eax, dword [esp + 0xe0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 8], eax
call fcn.0044d0d0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
xor edx, edx
xor ebx, ebx
jmp 0x518377
lea eax, [0x537a20]
mov dword [esp], eax
call fcn.0040b1a0
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x1a
lea ecx, [0x54def3]
mov dword [eax], ecx
xor ecx, ecx
lea edx, [0x57dac4]
mov ebx, eax
xor eax, eax
mov dword [esp + 0x100], ebx
mov dword [esp + 0x84], edx
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00408c10
mov eax, dword [esp + 8]
lea ecx, [0x535040]
mov edx, dword [esp + 0x84]
mov ebx, eax
mov edi, dword [esp + 0x100]
mov eax, dword [esp + 0xa0]
jmp 0x51a95b
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
call fcn.00516910
mov eax, dword [esp + 0x18]
mov dword [esp + 0xa8], eax
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x120], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
call fcn.00408c90
mov eax, dword [esp + 0xc]
lea ecx, [0x538fc0]
mov edx, dword [esp + 0xa8]
mov ebx, eax
mov edi, dword [esp + 0x120]
mov eax, dword [esp + 0xa0]
jmp 0x51a95b
cmp edx, 2
je 0x5185c4
cmp edx, 3
jne 0x51857e
test ecx, ecx
je 0x5184d4
mov edx, dword [esp + 0xa4]
movzx edx, byte [edx + esi]
movzx esi, dl
cmp esi, 7
jg 0x51846c
cmp ecx, 1
jne 0x518455
test esi, esi
jne 0x51846c
movzx edi, byte [ecx + ebx - 1]
mov ecx, edx
mov eax, 1
shl eax, cl
dec eax
xchg edi, ebx
test al, bl
xchg edi, ebx
je 0x5184af
lea eax, [0x550225]
mov dword [esp + 0x1b4], eax
mov dword [esp + 0x1b8], 0x22
mov eax, dword [esp + 0x1b4]
mov dword [esp], eax
mov dword [esp + 4], 0x22
call fcn.00408c10
mov eax, dword [esp + 8]
xor esi, esi
xor edx, edx
xor ecx, ecx
lea ebx, [0x57dc2c]
xor ebp, ebp
jmp 0x518515
mov ecx, dword [esp + 0x58]
dec ecx
mov edx, ecx
shl ecx, 3
sub ecx, esi
dec ebp
mov esi, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, 1
add ebx, ebp
mov ebp, ebx
xor eax, eax
xor ebx, ebx
jmp 0x518515
lea eax, [0x54cc29]
mov dword [esp + 0x1bc], eax
mov dword [esp + 0x1c0], 0x16
mov eax, dword [esp + 0x1bc]
mov dword [esp], eax
mov dword [esp + 4], 0x16
call fcn.00408c10
mov eax, dword [esp + 8]
xor esi, esi
xor edx, edx
xor ecx, ecx
lea ebx, [0x57dc2c]
xor ebp, ebp
mov dword [esp + 0xfc], eax
mov dword [esp + 0x80], ebx
mov dword [esp + 0x1ec], ebp
mov dword [esp + 0x1f0], edx
mov dword [esp + 0x1f4], esi
mov dword [esp + 0x1f8], ecx
lea ecx, [0x53e020]
mov dword [esp], ecx
lea edx, [esp + 0x1ec]
mov dword [esp + 4], edx
call fcn.00408a30
mov eax, dword [esp + 8]
lea ecx, [0x53e020]
mov edx, dword [esp + 0x80]
mov ebx, eax
mov edi, dword [esp + 0xfc]
mov eax, dword [esp + 0xa0]
jmp 0x51a95b
cmp edx, 4
jne 0x5186fe
mov dword [esp + 0x118], edi
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
call fcn.00408c90
mov eax, dword [esp + 0xc]
lea ecx, [0x531a40]
mov edx, dword [esp + 0xa8]
mov ebx, eax
mov edi, dword [esp + 0x118]
mov eax, dword [esp + 0xa0]
jmp 0x51a95b
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
call fcn.00516180
mov eax, dword [esp + 0x14]
mov dword [esp + 0xa8], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x120], ecx
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0xc]
mov dword [esp + 4], edx
mov dword [esp], ebx
call fcn.00408b60
mov eax, dword [esp + 8]
lea ecx, [0x5349c0]
mov edx, dword [esp + 0xa8]
mov ebx, eax
mov edi, dword [esp + 0x120]
mov eax, dword [esp + 0xa0]
jmp 0x51a95b
cmp edx, 0x16
jg 0x5186eb
cmp edx, 0x13
je 0x51868b
cmp edx, 0x14
je 0x518647
cmp edx, 0x16
jne 0x5186fe
xor edx, edx
jmp 0x51a967
mov dword [esp], 0
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
call fcn.0044d0d0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00408c10
mov eax, dword [esp + 8]
lea ecx, [0x535040]
xor edx, edx
mov ebx, eax
xor edi, edi
mov eax, dword [esp + 0xa0]
jmp 0x51a95b
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
call fcn.00517300
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov dword [esp + 0xa8], edx
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x120], ebx
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00408c10
mov eax, dword [esp + 8]
lea ecx, [0x535040]
mov edx, dword [esp + 0xa8]
mov ebx, eax
mov edi, dword [esp + 0x120]
mov eax, dword [esp + 0xa0]
jmp 0x51a95b
cmp edx, 0x17
je 0x518808
cmp edx, 0x18
je 0x51876e
cmp edx, 0x1e
je 0x51870e
xor ecx, ecx
mov edx, dword [esp + 0xa8]
xor ebx, ebx
jmp 0x51a95b
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
call fcn.00517410
mov eax, dword [esp + 0x14]
mov dword [esp + 0xa8], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x120], ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov dword [esp], edx
mov dword [esp + 4], ebx
call fcn.00408c10
mov eax, dword [esp + 8]
lea ecx, [0x535040]
mov edx, dword [esp + 0xa8]
mov ebx, eax
mov edi, dword [esp + 0x120]
mov eax, dword [esp + 0xa0]
jmp 0x51a95b
lea edi, [esp + 0x224]
xor eax, eax
call fcn.0045f5eb
mov dword [esp], ebx
mov ecx, dword [esp + 0x58]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
call fcn.005170c0
mov ecx, dword [esp + 0x20]
mov dword [esp + 0xa8], ecx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x120], edx
lea edi, [esp + 0x224]
lea esi, [esp + 0xc]
call fcn.0045face
lea edi, [esp + 0x1fc]
lea esi, [esp + 0x224]
call fcn.0045face
lea ecx, [0x545a80]
mov dword [esp], ecx
lea ecx, [esp + 0x1fc]
mov dword [esp + 4], ecx
call fcn.00408a30
mov eax, dword [esp + 8]
lea ecx, [0x545a80]
mov edx, dword [esp + 0xa8]
mov ebx, eax
mov edi, dword [esp + 0x120]
mov eax, dword [esp + 0xa0]
jmp 0x51a95b
lea edi, [esp + 0x224]
xor eax, eax
call fcn.0045f5eb
mov dword [esp], ebx
mov ecx, dword [esp + 0x58]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
call fcn.00516d70
mov ecx, dword [esp + 0x20]
mov dword [esp + 0xa8], ecx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x120], edx
lea edi, [esp + 0x224]
lea esi, [esp + 0xc]
call fcn.0045face
lea edi, [esp + 0x210]
lea esi, [esp + 0x224]
call fcn.0045face
lea ecx, [0x545a80]
mov dword [esp], ecx
lea ecx, [esp + 0x210]
mov dword [esp + 4], ecx
call fcn.00408a30
mov eax, dword [esp + 8]
lea ecx, [0x545a80]
mov edx, dword [esp + 0xa8]
mov ebx, eax
mov edi, dword [esp + 0x120]
mov eax, dword [esp + 0xa0]
jmp 0x51a95b
mov eax, dword [esp + 0xa8]
xor ecx, ecx
xor edx, edx
jmp 0x51a84e
lea eax, [0x54a279]
mov dword [esp + 0x1d4], eax
mov dword [esp + 0x1d8], 0xe
mov eax, dword [esp + 0x1d4]
mov dword [esp], eax
mov dword [esp + 4], 0xe
call fcn.00408c10
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x370], ecx
lea ecx, [0x57dc2c]
mov dword [esp + 0x374], ecx
mov dword [esp + 0x378], eax
add esp, 0x338
ret
mov dword [esp + 0x370], eax
mov eax, dword [esp + 0x120]
mov dword [esp + 0x374], eax
mov dword [esp + 0x378], edi
add esp, 0x338
ret
mov eax, dword [esp + 0x348]
mov dword [esp], eax
mov ecx, dword [esp + 0x34c]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x350]
mov dword [esp + 8], edx
mov ebx, dword [esp + 0x354]
mov dword [esp + 0xc], ebx
call fcn.00517600
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x118], edx
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0x18]
movzx esi, byte [esp + 0x1c]
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov dword [esp + 0xb4], edi
mov dword [esp + 0xb8], edx
mov dword [esp + 0xbc], ebp
xchg esi, eax
mov byte [esp + 0xc0], al
xchg esi, eax
test ecx, ecx
jne 0x51a1c7
mov dword [esp + 0xa4], eax
movzx eax, byte [esp + 0x359]
test al, al
je 0x518d59
movzx eax, byte [esp + 0x35a]
test al, al
je 0x5189d6
mov eax, 1
jmp 0x5189db
mov eax, 2
mov dword [esp + 0xa8], ecx
mov dword [esp + 0x114], ebx
mov ecx, dword [esp + 0x34c]
mov ebx, dword [esp + 0xa4]
cmp ecx, ebx
je 0x518cfd
cmp eax, edi
jne 0x518c4c
mov eax, dword [esp + 0x360]
cmp dword [eax], edx
jne 0x518c4c
test ebp, ebp
je 0x518a24
xchg esi, eax
test al, al
xchg esi, eax
je 0x518c4c
mov eax, dword [0x630b8c]
mov ecx, dword [esp + 0x11c]
cmp dword [0x630b88], ecx
jne 0x518ac5
mov dword [esp + 0xa0], edi
mov dword [esp + 0x9c], edx
xchg esi, eax
mov byte [esp + 0x43], al
xchg esi, eax
mov dword [esp + 0x98], ebp
mov dword [esp], ecx
mov edx, dword [esp + 0xe4]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.00403220
movzx eax, byte [esp + 0xc]
test al, al
je 0x518aac
mov ebp, dword [esp + 0x98]
mov ecx, dword [esp + 0x9c]
mov ebx, dword [esp + 0xa0]
mov eax, dword [esp + 0xa4]
mov edx, dword [esp + 0xa8]
movzx esi, byte [esp + 0x43]
mov edi, dword [esp + 0x114]
jmp 0x518d7a
mov eax, dword [esp + 0x98]
test eax, eax
mov ecx, dword [esp + 0x11c]
mov ebx, dword [esp + 0xa4]
jmp 0x518ac7
test ebp, ebp
jg 0x518bb2
mov eax, dword [0x630b74]
cmp dword [0x630b70], ecx
jne 0x518afb
mov dword [esp], ecx
mov ecx, dword [esp + 0xe4]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.00403220
movzx eax, byte [esp + 0xc]
test al, al
jne 0x518b57
lea eax, [0x5522fe]
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x1a8], 0x2d
mov eax, dword [esp + 0x1a4]
mov dword [esp], eax
mov dword [esp + 4], 0x2d
call fcn.00408c10
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0x370], ecx
lea ecx, [0x57dc18]
mov dword [esp + 0x374], ecx
mov dword [esp + 0x378], eax
add esp, 0x338
ret
mov eax, dword [esp + 0x33c]
mov dword [esp], eax
mov eax, dword [esp + 0x340]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x344]
mov dword [esp + 8], eax
mov byte [esp + 0xc], 1
call fcn.004a7030
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x370], eax
mov eax, dword [esp + 0x118]
mov dword [esp + 0x374], eax
mov eax, dword [esp + 0x114]
mov dword [esp + 0x378], eax
add esp, 0x338
ret
mov eax, dword [esp + 0x348]
mov dword [esp], eax
mov ecx, dword [esp + 0x34c]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x350]
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
call fcn.00517600
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
movzx esi, byte [esp + 0x1c]
mov edi, dword [esp + 0x24]
mov dword [esp + 0x118], edi
mov edi, dword [esp + 0x28]
mov dword [esp + 0xb4], ebx
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xbc], ebp
xchg esi, eax
mov byte [esp + 0xc0], al
xchg esi, eax
test edx, edx
je 0x518d7a
mov dword [esp + 0x370], eax
mov eax, dword [esp + 0x118]
mov dword [esp + 0x374], eax
mov dword [esp + 0x378], edi
add esp, 0x338
ret
mov eax, dword [esp + 0x33c]
mov dword [esp], eax
mov eax, dword [esp + 0x340]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x344]
mov dword [esp + 8], eax
lea edi, [esp + 0xc]
lea esi, [esp + 0x358]
call fcn.0045fac4
call fcn.0051aaf0
movzx eax, byte [esp + 0x24]
test al, al
je 0x518ca1
mov eax, dword [esp + 0x354]
mov ecx, dword [esp + 0xa8]
mov ebx, dword [esp + 0x114]
jmp 0x518ce1
lea eax, [0x550d12]
mov dword [esp + 0x19c], eax
mov dword [esp + 0x1a0], 0x25
mov eax, dword [esp + 0x19c]
mov dword [esp], eax
mov dword [esp + 4], 0x25
call fcn.00408c10
mov ebx, dword [esp + 8]
mov eax, dword [esp + 0xa4]
lea ecx, [0x57dc18]
mov dword [esp + 0x370], eax
mov dword [esp + 0x374], ecx
mov dword [esp + 0x378], ebx
add esp, 0x338
ret
lea eax, [0x54daad]
mov dword [esp + 0x1ac], eax
mov dword [esp + 0x1b0], 0x19
mov eax, dword [esp + 0x1ac]
mov dword [esp], eax
mov dword [esp + 4], 0x19
call fcn.00408c10
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0x370], ecx
lea ecx, [0x57dc18]
mov dword [esp + 0x374], ecx
mov dword [esp + 0x378], eax
add esp, 0x338
ret
mov eax, dword [esp + 0xa4]
mov eax, ecx
mov ecx, edx
mov edx, eax
mov eax, dword [esp + 0xa4]
mov eax, ebx
mov ebx, edi
mov edi, eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x118], edi
mov dword [esp + 0xa8], edx
xchg esi, eax
mov byte [esp + 0x41], al
xchg esi, eax
mov dword [esp + 0x48], ebp
mov dword [esp + 0x44], ecx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], eax
mov edx, dword [esp + 0x120]
mov dword [esp], edx
mov edx, dword [esp + 0xe8]
mov dword [esp + 4], edx
call fcn.0051b430
mov eax, dword [esp + 0xc]
movzx ecx, byte [esp + 8]
movzx edx, byte [esp + 0x11]
movzx ebx, byte [esp + 0x10]
test dl, dl
je 0x51a106
cmp eax, 0x13
jne 0x518e2c
mov ebp, dword [esp + 0x4c]
test ebp, ebp
jne 0x518e17
mov edx, ebx
mov ebx, dword [esp + 0x44]
cmp ebx, 0x14
jg 0x518dfc
cmp ebx, 0xc
je 0x518e0b
cmp ebx, 0x12
je 0x518e0b
cmp ebx, 0x14
je 0x518e0b
jmp 0x518e0f
cmp ebx, 0x16
je 0x518e0b
cmp ebx, 0x1b
je 0x518e0b
cmp ebx, 0x1e
jne 0x518e0f
mov eax, ebx
jmp 0x518e38
mov ebx, eax
mov eax, dword [esp + 0x44]
jmp 0x518e38
mov edx, ebx
mov ebx, dword [esp + 0x364]
test ebx, ebx
jne 0x518e26
mov ebx, eax
mov eax, dword [esp + 0x44]
jmp 0x518e38
mov edx, ebx
mov ebp, dword [esp + 0x4c]
mov ebx, eax
mov eax, dword [esp + 0x44]
cmp ebx, 0x17
jne 0x518e4b
cmp eax, 0x18
jne 0x518e4b
test ebp, ebp
jne 0x518e4b
mov ebx, 0x18
mov esi, ebp
movzx ebp, byte [esp + 0x36c]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x518e60
mov ebx, 0x11
mov byte [esp + 0x42], cl
movzx ebp, byte [esp + 0x359]
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x518ea9
mov edi, ebx
mov ebx, dword [esp + 0x360]
test ebx, ebx
je 0x518ea3
mov ebx, dword [ebx]
xchg ebp, eax
test al, al
xchg ebp, eax
mov dword [esp + 0xac], eax
mov eax, 2
mov dword [esp + 0x70], eax
mov ecx, 0
mov eax, dword [esp + 0xac]
jmp 0x518eb6
xchg ebp, eax
test al, al
xchg ebp, eax
mov ebx, edi
mov edi, ebx
mov ebx, 0
mov dword [esp + 0x70], ebx
mov ebx, edi
jne 0x518ef7
mov dword [esp + 0x6c], ebx
movzx ebx, byte [esp + 0x35a]
test bl, bl
je 0x518eef
mov ebx, dword [esp + 0x360]
test ebx, ebx
je 0x518ee5
mov ebx, dword [ebx]
xchg ebp, eax
test al, al
xchg ebp, eax
mov ecx, 1
mov ebp, 0
jmp 0x518efd
xchg ebp, eax
test al, al
xchg ebp, eax
mov ebx, dword [esp + 0x6c]
jmp 0x518ef7
xchg ebp, eax
test al, al
xchg ebp, eax
mov ebx, dword [esp + 0x6c]
mov ebp, ecx
mov ecx, dword [esp + 0x70]
jne 0x518f38
mov dword [esp + 0x94], ebx
movzx ebx, byte [esp + 0x35b]
test bl, bl
je 0x518f31
mov ebx, dword [esp + 0x360]
test ebx, ebx
je 0x518f28
mov ebx, dword [ebx]
xor ebp, ebp
mov ecx, 3
jmp 0x518f38
mov ebx, dword [esp + 0x94]
jmp 0x518f38
mov ebx, dword [esp + 0x94]
mov dword [esp + 0x6c], ebx
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x518f52
cmp ecx, esi
jne 0x519ed7
cmp ebx, eax
jne 0x519ed7
movzx ebp, byte [esp + 0x42]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x518f64
movzx ebp, byte [esp + 0x41]
jmp 0x518f73
movzx ebp, byte [esp + 0x41]
xchg ebp, eax
cmp al, dl
xchg ebp, eax
jne 0x519ed7
mov ebx, dword [esp + 0x48]
mov ebp, dword [esp + 0x50]
lea esi, [ebp + ebx]
cmp ebp, esi
jg 0x519e7e
mov ebx, dword [esp + 0x34c]
cmp ebx, esi
jl 0x519e7e
mov ebx, dword [esp + 0x350]
cmp ebx, esi
jb 0x51a845
cmp ebp, esi
ja 0x51a83c
mov dword [esp + 0xa4], esi
mov dword [esp + 0xa0], edi
mov eax, dword [esp + 0x33c]
mov dword [esp], eax
mov ecx, dword [esp + 0x340]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x344]
mov dword [esp + 8], edx
call fcn.004a5130
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov byte [esp + 0xc], 1
call fcn.004a6520
mov eax, dword [esp + 0x350]
mov ecx, dword [esp + 0x50]
mov edx, eax
sub eax, ecx
mov ebx, eax
neg eax
sar eax, 0x1f
and eax, ecx
mov dword [esp + 0x9c], eax
mov ecx, dword [esp + 0x348]
lea ebp, [eax + ecx]
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov dword [esp + 0xd8], edi
mov edi, dword [esp + 0x14]
mov dword [esp + 0xd4], edi
mov edi, dword [esp + 0x14]
mov dword [esp + 0xd0], edi
mov edi, dword [esp + 0x14]
mov dword [esp + 0xcc], edi
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
test esi, esi
je 0x51966c
mov edx, dword [esi + 8]
cmp edx, 0x4c618499
ja 0x51930f
cmp edx, 0x1c87085b
jne 0x5190f2
lea eax, [0x52e800]
cmp edi, eax
jne 0x519665
mov dword [esp], ebp
mov eax, dword [esp + 0x48]
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call fcn.005163f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
test ecx, ecx
jne 0x5190cf
mov ecx, dword [esp + 0xc8]
mov dword [ecx], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x370], eax
mov dword [esp + 0x374], edx
mov dword [esp + 0x378], ebx
add esp, 0x338
ret
cmp edx, 0x26ca392d
jne 0x51928a
lea ecx, [0x546720]
cmp edi, ecx
jne 0x519665
mov ecx, dword [esp + 0xa0]
cmp ecx, 0x17
jne 0x5191d3
lea edi, [esp + 0x224]
xor eax, eax
call fcn.0045f5eb
mov dword [esp], ebp
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
call fcn.00516d70
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x120], ecx
mov edx, dword [esp + 0x24]
lea edi, [esp + 0x224]
lea esi, [esp + 0xc]
call fcn.0045face
mov edi, dword [esp + 0xcc]
test byte [edi], al
mov ecx, dword [0x6573b0]
test ecx, ecx
jne 0x51917e
lea esi, [esp + 0x224]
call fcn.0045face
jmp 0x5191a9
mov dword [esp + 0x118], edx
lea eax, [0x545a80]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x224]
mov dword [esp + 8], eax
call fcn.0040f2a0
mov edx, dword [esp + 0x118]
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x370], eax
mov eax, dword [esp + 0x120]
mov dword [esp + 0x374], eax
mov dword [esp + 0x378], edx
add esp, 0x338
ret
lea edi, [esp + 0x224]
xor eax, eax
call fcn.0045f5eb
mov dword [esp], ebp
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
call fcn.005170c0
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x120], ecx
mov edx, dword [esp + 0x24]
lea edi, [esp + 0x224]
lea esi, [esp + 0xc]
call fcn.0045face
mov edi, dword [esp + 0xcc]
test byte [edi], al
mov ecx, dword [0x6573b0]
test ecx, ecx
jne 0x519235
lea esi, [esp + 0x224]
call fcn.0045face
jmp 0x519260
mov dword [esp + 0x118], edx
lea eax, [0x545a80]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x224]
mov dword [esp + 8], eax
call fcn.0040f2a0
mov edx, dword [esp + 0x118]
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x370], eax
mov eax, dword [esp + 0x120]
mov dword [esp + 0x374], eax
mov dword [esp + 0x378], edx
add esp, 0x338
ret
cmp edx, 0x4c618499
jne 0x519665
lea eax, [0x538300]
cmp edi, eax
jne 0x519665
mov dword [esp], ebp
mov eax, dword [esp + 0x48]
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call fcn.00516910
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0xd4]
mov dword [edi + 4], ecx
mov dword [edi + 8], edx
mov ecx, dword [0x6573b0]
test ecx, ecx
jne 0x5192e7
mov dword [edi], eax
jmp 0x5192ec
call fcn.0045f3d0
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x370], eax
mov dword [esp + 0x374], ebx
mov dword [esp + 0x378], ebp
add esp, 0x338
ret
cmp edx, 0x7418f6b4
ja 0x5193ed
cmp edx, 0x4d10f6f9
jne 0x519365
lea ecx, [0x52e840]
cmp edi, ecx
jne 0x519665
mov byte [eax], 1
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x370], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x374], eax
mov eax, dword [esp + 0x118]
mov dword [esp + 0x378], eax
add esp, 0x338
ret
cmp edx, 0x7418f6b4
jne 0x519665
lea eax, [0x52e300]
cmp edi, eax
jne 0x519665
mov dword [esp + 0xc4], ecx
mov dword [esp], ebp
mov eax, dword [esp + 0x48]
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call fcn.005165a0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
test ecx, ecx
jne 0x5193ca
mov edi, dword [esp + 0xc4]
test byte [edi], al
mov ecx, dword [0x6573b0]
test ecx, ecx
jne 0x5193c5
mov dword [edi], eax
jmp 0x5193ca
call fcn.0045f3d0
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x370], eax
mov dword [esp + 0x374], edx
mov dword [esp + 0x378], ebx
add esp, 0x338
ret
cmp edx, 0x8faab972
jne 0x519512
lea edx, [0x52e8c0]
cmp edi, edx
jne 0x519665
mov eax, dword [esp + 0x354]
mov ecx, dword [esp + 0xa4]
cmp eax, ecx
ja 0x51a837
lea edi, [esp + 0x250]
mov edx, eax
xor eax, eax
call fcn.0045f5e7
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x250], ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x254], ecx
movzx ecx, byte [esp + 0x41]
mov byte [esp + 0x258], cl
mov dword [esp + 0x25c], ebp
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x260], ecx
mov dword [esp + 0x264], ebx
mov ecx, dword [esp + 0x350]
sub ecx, edx
mov ebx, ecx
neg ecx
sar ecx, 0x1f
and ecx, edx
mov ebp, dword [esp + 0x348]
add ecx, ebp
mov dword [esp + 0x268], ecx
mov ecx, dword [esp + 0xa4]
mov ebp, ecx
sub ecx, edx
mov dword [esp + 0x26c], ecx
mov dword [esp + 0x270], ebx
mov edi, dword [esp + 0xd8]
test byte [edi], al
mov ecx, dword [0x6573b0]
test ecx, ecx
jne 0x5194c4
lea esi, [esp + 0x250]
call fcn.0045faa6
jmp 0x5194e8
lea eax, [0x53e320]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x250]
mov dword [esp + 8], eax
call fcn.0040f2a0
mov ebp, dword [esp + 0xa4]
mov dword [esp + 0x370], ebp
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x374], eax
mov eax, dword [esp + 0x118]
mov dword [esp + 0x378], eax
add esp, 0x338
ret
cmp edx, 0xeb2625b9
jne 0x519665
lea edx, [0x5382a0]
cmp edi, edx
jne 0x519665
mov edx, dword [esp + 0x48]
test edx, edx
je 0x5195d8
mov esi, dword [esp + 0x348]
mov eax, ebx
mov ebx, dword [esp + 0x9c]
movzx ecx, byte [ebx + esi]
movzx ebx, cl
cmp ebx, 7
jg 0x519576
cmp edx, 1
jne 0x51955d
test ebx, ebx
jne 0x519576
movzx esi, byte [edx + ebp - 1]
mov edi, ebp
mov ebp, 1
shl ebp, cl
dec ebp
xchg esi, eax
xchg ebp, ebx
test bl, al
xchg ebp, ebx
xchg esi, eax
je 0x5195b9
lea eax, [0x550225]
mov dword [esp + 0x174], eax
mov dword [esp + 0x178], 0x22
mov eax, dword [esp + 0x174]
mov dword [esp], eax
mov dword [esp + 4], 0x22
call fcn.00408c10
mov eax, dword [esp + 8]
xor ebx, ebx
xor ebp, ebp
xor edx, edx
xor ecx, ecx
lea esi, [0x57dc2c]
jmp 0x519619
lea ecx, [edx - 1]
mov edx, ecx
shl ecx, 3
sub ecx, ebx
lea ebx, [eax - 1]
mov ebp, ebx
neg ebx
sar ebx, 0x1f
and ebx, 1
add ebx, edi
xor esi, esi
xor eax, eax
jmp 0x519619
lea eax, [0x54cc29]
mov dword [esp + 0x17c], eax
mov dword [esp + 0x180], 0x16
mov eax, dword [esp + 0x17c]
mov dword [esp], eax
mov dword [esp + 4], 0x16
call fcn.00408c10
mov eax, dword [esp + 8]
xor ebx, ebx
xor ebp, ebp
xor edx, edx
xor ecx, ecx
lea esi, [0x57dc2c]
mov edi, dword [esp + 0xd0]
mov dword [edi + 4], edx
mov dword [edi + 8], ebp
mov dword [edi + 0xc], ecx
mov ecx, dword [0x6573b0]
test ecx, ecx
jne 0x519637
mov dword [edi], ebx
jmp 0x519642
mov ecx, eax
mov eax, ebx
call fcn.0045f3d0
mov eax, ecx
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0x370], ecx
mov dword [esp + 0x374], esi
mov dword [esp + 0x378], eax
add esp, 0x338
ret
mov edx, dword [esp + 0x350]
mov dword [esp + 0x98], ebx
mov dword [esp + 0xdc], ebp
nop
mov eax, dword [esp + 0x344]
mov ecx, eax
and eax, 0x1f
cmp eax, 6
jbe 0x519b45
cmp eax, 0x17
je 0x5198d2
cmp eax, 0x18
jne 0x5198c2
mov eax, dword [esp + 0xa0]
cmp eax, 0x13
jg 0x519778
cmp eax, 0xc
je 0x5196f9
cmp eax, 0x12
jne 0x5196c7
mov eax, dword [esp + 0x48]
xor edx, edx
jmp 0x51a7b4
cmp eax, 0x13
jne 0x5197cd
mov dword [esp], ebp
mov eax, dword [esp + 0x48]
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call fcn.00517300
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
jmp 0x51a6ca
mov dword [esp], ebp
mov eax, dword [esp + 0x48]
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call fcn.00483e70
movzx eax, byte [esp + 0xc]
test al, al
je 0x519746
mov dword [esp], 0
mov eax, dword [esp + 0xdc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 8], eax
call fcn.0044d0d0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
xor edx, edx
xor ebx, ebx
jmp 0x51a6ca
lea eax, [0x537a20]
mov dword [esp], eax
call fcn.0040b1a0
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x1a
lea ecx, [0x54def3]
mov dword [eax], ecx
xor ecx, ecx
lea edx, [0x57dac4]
mov ebx, eax
xor eax, eax
jmp 0x51a6ca
cmp eax, 0x16
jg 0x5197bb
cmp eax, 0x14
je 0x519792
cmp eax, 0x16
jne 0x5197cd
mov eax, dword [esp + 0x48]
xor edx, edx
jmp 0x51a73b
mov dword [esp], 0
mov dword [esp + 4], ebp
mov eax, dword [esp + 0x48]
mov dword [esp + 8], eax
call fcn.0044d0d0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
xor edx, edx
xor ebx, ebx
jmp 0x51a6ca
cmp eax, 0x1b
je 0x519899
cmp eax, 0x1e
je 0x519870
mov dword [esp + 0x1e4], 0
mov dword [esp + 0x1e8], 0
mov dword [esp], eax
call fcn.00408b00
mov eax, dword [esp + 4]
lea ecx, [0x534900]
mov dword [esp + 0x1e4], ecx
mov dword [esp + 0x1e8], eax
lea eax, [0x551104]
mov dword [esp], eax
mov dword [esp + 4], 0x26
lea eax, [esp + 0x1e4]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.004ad020
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x144], ecx
mov dword [esp + 0x148], eax
mov ecx, dword [esp + 0x144]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00408c10
mov ebx, dword [esp + 8]
lea edx, [0x57dc2c]
xor ecx, ecx
xor eax, eax
jmp 0x51a6ca
mov dword [esp], ebp
mov eax, dword [esp + 0x48]
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call fcn.00517410
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
jmp 0x51a6ca
mov dword [esp], 0
mov dword [esp + 4], ebp
mov eax, dword [esp + 0x48]
mov dword [esp + 8], eax
call fcn.0044d0d0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
xor edx, edx
xor ebx, ebx
jmp 0x51a6ca
cmp eax, 0x19
jne 0x519dc9
xor eax, eax
jmp 0x51a1f1
mov eax, dword [esp + 0x68]
mov ecx, dword [eax + 0x28]
mov edx, dword [esp + 0xe8]
mov dword [esp], edx
call ecx
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov eax, dword [eax + 0x50]
mov dword [esp], ecx
call eax
cmp dword [esp + 4], 8
jne 0x519a5e
mov eax, dword [esp + 0x120]
mov dword [esp], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 8], eax
mov dword [esp + 0xc], eax
call fcn.004a7b80
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x33c]
mov dword [esp], ebx
mov ebp, dword [esp + 0x340]
mov dword [esp + 4], ebp
mov esi, dword [esp + 0x344]
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
call fcn.004a6f20
mov eax, dword [esp + 0xdc]
mov dword [esp], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 8], eax
call fcn.00408c90
mov eax, dword [esp + 0xc]
nop
movzx ecx, byte [0x630fa0]
test cl, cl
je 0x5199c0
lea ecx, [0x531a40]
mov dword [0x630fa4], ecx
mov edx, dword [0x6573b0]
test edx, edx
jne 0x5199b3
mov dword [0x630fa8], eax
jmp 0x5199c6
lea edi, [0x630fa8]
call fcn.0045f3d0
jmp 0x5199c6
lea ecx, [0x531a40]
mov dword [esp + 0x124], ecx
mov dword [esp + 0x128], eax
mov ecx, dword [esp + 0x124]
test ecx, ecx
je 0x5199f6
nop
movzx edx, byte [ecx + 0xf]
mov ebx, edx
and edx, 0x1f
test bl, 0x20
jne 0x5199fc
or edx, 0x80
jmp 0x5199fc
xor edx, edx
xor ecx, ecx
xor eax, eax
mov ebx, dword [esp + 0x33c]
mov dword [esp], ebx
mov ebx, dword [esp + 0x340]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x344]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
call fcn.004a7860
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x370], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x374], eax
mov eax, dword [esp + 0x118]
mov dword [esp + 0x378], eax
add esp, 0x338
ret
mov eax, dword [esp + 0x68]
mov eax, dword [eax + 0x28]
mov ecx, dword [esp + 0xe8]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xdc]
mov dword [esp], edx
mov edx, dword [esp + 0x48]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x98]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x120]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0xe8]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ecx
call fcn.00517c10
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
test ebx, ebx
jne 0x519b22
mov dword [esp + 0x120], ebp
mov dword [esp + 0xec], esi
mov ebx, dword [esp + 0x33c]
mov dword [esp], ebx
mov ebx, dword [esp + 0x340]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x344]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
call fcn.004a6f20
mov ebp, dword [esp + 0x120]
mov esi, dword [esp + 0xec]
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x370], eax
mov dword [esp + 0x374], ebp
mov dword [esp + 0x378], esi
add esp, 0x338
ret
cmp eax, 1
jne 0x519c72
mov eax, dword [esp + 0x48]
cmp eax, 1
jne 0x519bd1
mov eax, dword [esp + 0x348]
mov edx, dword [esp + 0x9c]
movzx eax, byte [edx + eax]
test al, al
jne 0x519b78
xor eax, eax
xor edx, edx
xor ebx, ebx
jmp 0x519c13
cmp al, 0xff
jne 0x519b8b
mov eax, 1
xor edx, edx
xor ebx, ebx
jmp 0x519c13
lea eax, [0x54a662]
mov dword [esp + 0x164], eax
mov dword [esp + 0x168], 0xf
mov eax, dword [esp + 0x164]
mov dword [esp], eax
mov dword [esp + 4], 0xf
call fcn.00408c10
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x344]
lea edx, [0x57dc2c]
mov ebx, eax
xor eax, eax
jmp 0x519c13
lea eax, [0x54a662]
mov dword [esp + 0x16c], eax
mov dword [esp + 0x170], 0xf
mov eax, dword [esp + 0x16c]
mov dword [esp], eax
mov dword [esp + 4], 0xf
call fcn.00408c10
mov ebx, dword [esp + 8]
mov ecx, dword [esp + 0x344]
lea edx, [0x57dc2c]
xor eax, eax
test edx, edx
jne 0x519c4f
mov dword [esp + 0xf8], ebx
mov dword [esp + 0x7c], edx
mov edx, dword [esp + 0x33c]
mov dword [esp], edx
mov edx, dword [esp + 0x340]
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov byte [esp + 0xc], al
call fcn.004a7030
mov edx, dword [esp + 0x7c]
mov ebx, dword [esp + 0xf8]
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x370], eax
mov dword [esp + 0x374], edx
mov dword [esp + 0x378], ebx
add esp, 0x338
ret
cmp eax, 2
je 0x519c80
cmp eax, 5
jb 0x519dc9
mov eax, dword [esp + 0x33c]
mov dword [esp], eax
mov edx, dword [esp + 0x340]
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.004a75f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov eax, dword [eax + 0x7c]
mov dword [esp], ecx
call eax
cmp dword [esp + 4], 4
jne 0x519d39
mov eax, dword [esp + 0xdc]
mov dword [esp], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 8], eax
call fcn.005163f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
test ecx, ecx
jne 0x519da6
mov dword [esp + 0xf4], edx
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0x33c]
mov dword [esp], ecx
mov ecx, dword [esp + 0x340]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x344]
mov dword [esp + 8], ecx
mov ecx, eax
sar eax, 0x1f
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ecx
call fcn.004a70f0
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0xf4]
jmp 0x519da6
mov eax, dword [esp + 0xdc]
mov dword [esp], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 8], eax
call fcn.00516180
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
test eax, eax
jne 0x519da2
mov dword [esp + 0xf0], ecx
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x33c]
mov dword [esp], eax
mov eax, dword [esp + 0x340]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x344]
mov dword [esp + 8], eax
call fcn.004a70f0
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0xf0]
mov edx, ecx
mov ecx, eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x370], eax
mov dword [esp + 0x374], ecx
mov dword [esp + 0x378], edx
add esp, 0x338
ret
mov eax, dword [esp + 0x33c]
mov dword [esp], eax
mov eax, dword [esp + 0x340]
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.004a75f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov eax, dword [eax + 0x80]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov dword [esp], 0
lea edx, [0x54a04e]
mov dword [esp + 4], edx
mov dword [esp + 8], 0xd
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
call fcn.0044ce20
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x13c], ecx
mov dword [esp + 0x140], eax
mov ecx, dword [esp + 0x13c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00408c10
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0x370], ecx
lea ecx, [0x57dc18]
mov dword [esp + 0x374], ecx
mov dword [esp + 0x378], eax
add esp, 0x338
ret
lea eax, [0x54a279]
mov dword [esp + 0x184], eax
mov dword [esp + 0x188], 0xe
mov eax, dword [esp + 0x184]
mov dword [esp], eax
mov dword [esp + 4], 0xe
call fcn.00408c10
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x370], ecx
lea ecx, [0x57dc2c]
mov dword [esp + 0x374], ecx
mov dword [esp + 0x378], eax
add esp, 0x338
ret
mov eax, dword [esp + 0x33c]
mov dword [esp], eax
mov eax, dword [esp + 0x340]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x344]
mov dword [esp + 8], eax
lea edi, [esp + 0xc]
lea esi, [esp + 0x358]
call fcn.0045fac4
call fcn.0051aaf0
movzx eax, byte [esp + 0x24]
test al, al
je 0x519f2f
mov eax, dword [esp + 0x354]
mov ecx, dword [esp + 0xa8]
mov edi, dword [esp + 0x118]
jmp 0x51a0ea
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0xbc], eax
movzx eax, byte [esp + 0x41]
mov byte [esp + 0xc0], al
lea edi, [esp + 0x238]
lea esi, [esp + 0x358]
call fcn.0045fac4
mov eax, dword [esp + 0x68]
mov eax, dword [eax + 0x60]
mov ecx, dword [esp + 0xe8]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 4]
mov dword [esp + 0x120], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0xa4], ecx
lea edi, [esp + 0x274]
xor eax, eax
call fcn.0045f5e6
mov eax, dword [esp + 0x6c]
mov dword [esp], eax
call fcn.00408b00
mov eax, dword [esp + 4]
lea ecx, [0x534900]
mov dword [esp + 0x274], ecx
mov dword [esp + 0x278], eax
lea eax, [0x53d0a0]
mov dword [esp], eax
lea edx, [esp + 0xb4]
mov dword [esp + 4], edx
call fcn.00408a90
mov eax, dword [esp + 8]
lea ecx, [0x53d0a0]
mov dword [esp + 0x27c], ecx
mov dword [esp + 0x280], eax
lea eax, [0x541140]
mov dword [esp], eax
lea ecx, [esp + 0x238]
mov dword [esp + 4], ecx
call fcn.00408a30
mov eax, dword [esp + 8]
lea ecx, [0x541140]
mov dword [esp + 0x284], ecx
mov dword [esp + 0x288], eax
mov eax, dword [esp + 0x120]
mov dword [esp], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 4], eax
call fcn.00408c10
mov eax, dword [esp + 8]
lea ecx, [0x535040]
mov dword [esp + 0x28c], ecx
mov dword [esp + 0x290], eax
mov eax, dword [esp + 0x50]
mov dword [esp], eax
call fcn.00408b00
mov eax, dword [esp + 4]
lea ecx, [0x534900]
mov dword [esp + 0x294], ecx
mov dword [esp + 0x298], eax
lea eax, [0x551409]
mov dword [esp], eax
mov dword [esp + 4], 0x27
lea eax, [esp + 0x274]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 5
mov dword [esp + 0x10], 5
call fcn.004ad020
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x18c], ecx
mov dword [esp + 0x190], eax
mov ecx, dword [esp + 0x18c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00408c10
mov edi, dword [esp + 8]
mov eax, dword [esp + 0x50]
lea ecx, [0x57dc18]
mov dword [esp + 0x370], eax
mov dword [esp + 0x374], ecx
mov dword [esp + 0x378], edi
add esp, 0x338
ret
mov dword [esp + 0x1e4], 0
mov dword [esp + 0x1e8], 0
mov eax, dword [esp + 0x11c]
test eax, eax
je 0x51a12c
mov ebp, dword [eax + 4]
jmp 0x51a12e
mov ebp, eax
mov dword [esp + 0x1e4], ebp
mov eax, dword [esp + 0xe8]
mov dword [esp + 0x1e8], eax
lea eax, [0x54bba2]
mov dword [esp], eax
mov dword [esp + 4], 0x13
lea eax, [esp + 0x1e4]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.004ad020
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x194], ecx
mov dword [esp + 0x198], eax
mov ecx, dword [esp + 0x194]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00408c10
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x370], ecx
lea ecx, [0x57dc18]
mov dword [esp + 0x374], ecx
mov dword [esp + 0x378], eax
add esp, 0x338
ret
mov dword [esp + 0x370], eax
mov eax, dword [esp + 0x118]
mov dword [esp + 0x374], eax
mov dword [esp + 0x378], ebx
add esp, 0x338
ret
mov ecx, dword [esp + 0x64]
lea eax, [ecx + 1]
mov dword [esp + 0x64], eax
mov ecx, dword [esp + 0x68]
mov edx, dword [ecx + 0x64]
mov ebx, dword [esp + 0xe8]
mov dword [esp], ebx
call edx
mov eax, dword [esp + 0x64]
cmp dword [esp + 4], eax
jle 0x51a2b7
mov ecx, dword [esp + 0x68]
mov edx, dword [ecx + 0x2c]
mov ebx, dword [esp + 0xe8]
mov dword [esp], ebx
mov dword [esp + 4], eax
call edx
lea edi, [esp + 0x304]
lea esi, [esp + 8]
call fcn.0045fa7e
lea edi, [esp + 0x2d0]
lea esi, [esp + 0x304]
call fcn.0045fa7e
mov eax, dword [esp + 0x2dc]
test eax, eax
je 0x51a1ea
lea eax, [0x55000b]
mov dword [esp + 0x15c], eax
mov dword [esp + 0x160], 0x21
mov eax, dword [esp + 0x15c]
mov dword [esp], eax
mov dword [esp + 4], 0x21
call fcn.00408c10
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0x370], ecx
lea ecx, [0x57dc18]
mov dword [esp + 0x374], ecx
mov dword [esp + 0x378], eax
add esp, 0x338
ret
mov eax, dword [esp + 0x68]
mov ecx, dword [eax + 0x64]
mov edx, dword [esp + 0xe8]
mov dword [esp], edx
call ecx
mov eax, dword [esp + 4]
test eax, eax
jg 0x51a2d6
xor eax, eax
jmp 0x51a336
mov eax, dword [esp + 0x68]
mov ecx, dword [eax + 0x2c]
mov edx, dword [esp + 0xe8]
mov dword [esp], edx
mov dword [esp + 4], 0
call ecx
lea edi, [esp + 0x304]
lea esi, [esp + 8]
call fcn.0045fa7e
mov eax, dword [esp + 0x314]
mov ecx, dword [esp + 0x318]
mov edx, dword [0x630b84]
cmp dword [0x630b80], eax
je 0x51a321
xor eax, eax
jmp 0x51a336
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.00403220
movzx eax, byte [esp + 0xc]
test al, al
je 0x51a485
mov eax, dword [esp + 0x354]
mov ecx, dword [esp + 0xa4]
cmp eax, ecx
ja 0x51a6c5
mov eax, dword [esp + 0x33c]
mov dword [esp], eax
mov ecx, dword [esp + 0x340]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x344]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0
call fcn.004a6280
mov eax, dword [esp + 0x350]
mov ecx, dword [esp + 0x354]
sub eax, ecx
mov edx, eax
neg eax
sar eax, 0x1f
and eax, ecx
mov ebx, dword [esp + 0x348]
add eax, ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x110], ebx
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x10c], ebp
mov esi, dword [esp + 0x18]
mov dword [esp + 0x90], esi
mov dword [esp], eax
mov eax, dword [esp + 0xa4]
sub eax, ecx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call fcn.00408c90
mov eax, dword [esp + 0xc]
nop
movzx ecx, byte [0x630fa0]
test cl, cl
je 0x51a418
lea ecx, [0x535360]
mov dword [0x630fa4], ecx
mov edx, dword [0x6573b0]
test edx, edx
jne 0x51a40b
mov dword [0x630fa8], eax
jmp 0x51a41e
lea edi, [0x630fa8]
call fcn.0045f3d0
jmp 0x51a41e
lea ecx, [0x535360]
mov dword [esp + 0x12c], ecx
mov dword [esp + 0x130], eax
mov ecx, dword [esp + 0x12c]
test ecx, ecx
je 0x51a44e
nop
movzx edx, byte [ecx + 0xf]
mov ebx, edx
and edx, 0x1f
test bl, 0x20
jne 0x51a454
or edx, 0x80
jmp 0x51a454
xor edx, edx
xor ecx, ecx
xor eax, eax
mov ebx, dword [esp + 0x110]
mov dword [esp], ebx
mov ebx, dword [esp + 0x10c]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x90]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
call fcn.004a6f20
xor eax, eax
xor ecx, ecx
mov edx, dword [esp + 0xa8]
mov ebx, dword [esp + 0x118]
jmp 0x51a4a4
mov ebp, dword [esp + 0x60]
inc ebp
mov edx, ecx
mov ecx, eax
mov eax, ebp
mov dword [esp + 0x120], ebx
mov dword [esp + 0xa8], edx
mov dword [esp + 0x60], eax
mov dword [esp + 0x5c], ecx
mov ebp, dword [esp + 0x68]
mov esi, dword [ebp + 0x64]
mov edi, dword [esp + 0xe8]
mov dword [esp], edi
call esi
mov eax, dword [esp + 0x60]
cmp dword [esp + 4], eax
jle 0x51a694
mov ecx, dword [esp + 0x68]
mov edx, dword [ecx + 0x2c]
mov ebx, dword [esp + 0xe8]
mov dword [esp], ebx
mov dword [esp + 4], eax
call edx
lea edi, [esp + 0x29c]
lea esi, [esp + 8]
call fcn.0045fa7e
mov eax, dword [esp + 0x60]
test eax, eax
jne 0x51a547
mov ecx, dword [esp + 0x2ac]
mov edx, dword [esp + 0x2b0]
mov ebx, dword [0x630b84]
cmp dword [0x630b80], ecx
je 0x51a52a
xor ecx, ecx
jmp 0x51a549
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00403220
movzx eax, byte [esp + 0xc]
mov ecx, eax
mov eax, dword [esp + 0x60]
jmp 0x51a549
xor ecx, ecx
test cl, cl
je 0x51a564
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0xa8]
mov ebx, dword [esp + 0x120]
jmp 0x51a499
mov ecx, dword [esp + 0x33c]
mov dword [esp], ecx
mov edx, dword [esp + 0x340]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x344]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
call fcn.004a6280
mov eax, dword [esp + 0x10]
mov dword [esp + 0x110], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x10c], ecx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x90], edx
mov ebx, dword [esp + 0x2b4]
mov ebp, dword [esp + 0x2b8]
mov dword [esp], ebx
mov dword [esp + 4], ebp
lea ebx, [0x5481de]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 4
call fcn.004a28b0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0051af70
lea edi, [esp + 0x238]
lea esi, [esp + 8]
call fcn.0045fac4
mov eax, dword [esp + 0x110]
mov dword [esp], eax
mov eax, dword [esp + 0x10c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x98]
mov dword [esp + 0x14], edx
mov ebx, dword [esp + 0x5c]
mov dword [esp + 0x18], ebx
lea edi, [esp + 0x1c]
lea esi, [esp + 0x238]
call fcn.0045fac4
call fcn.00518060
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x3c]
test ecx, ecx
je 0x51a499
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x370], eax
mov dword [esp + 0x374], edx
mov dword [esp + 0x378], ebx
add esp, 0x338
ret
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x370], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x374], eax
mov eax, dword [esp + 0x120]
mov dword [esp + 0x378], eax
add esp, 0x338
ret
call fcn.0045f4b0
test edx, edx
jne 0x51a717
mov dword [esp + 0x120], ebx
mov dword [esp + 0xa8], edx
mov edx, dword [esp + 0x33c]
mov dword [esp], edx
mov edx, dword [esp + 0x340]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x344]
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
call fcn.004a71e0
mov edx, dword [esp + 0xa8]
mov ebx, dword [esp + 0x120]
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x370], eax
mov dword [esp + 0x374], edx
mov dword [esp + 0x378], ebx
add esp, 0x338
ret
inc edx
cmp edx, eax
jge 0x51a786
lea ebx, [edx + ebp]
cmp byte [ebx], 0x80
jb 0x51a73a
lea eax, [0x550888]
mov dword [esp + 0x14c], eax
mov dword [esp + 0x150], 0x24
mov eax, dword [esp + 0x14c]
mov dword [esp], eax
mov dword [esp + 4], 0x24
call fcn.00408c10
mov eax, dword [esp + 8]
xor ecx, ecx
lea edx, [0x57dc2c]
xor ebx, ebx
jmp 0x51a7a8
mov dword [esp], 0
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
call fcn.0044d0d0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
xor edx, edx
mov ebx, eax
xor eax, eax
mov ebp, eax
mov eax, ebx
mov ebx, ebp
jmp 0x51a6ca
inc edx
cmp edx, eax
jge 0x51a80a
movzx ebx, byte [edx + ebp]
lea esi, [ebx - 0x30]
xchg esi, eax
cmp al, 9
xchg esi, eax
jbe 0x51a7b3
cmp bl, 0x20
je 0x51a7b3
lea eax, [0x5514f6]
mov dword [esp + 0x154], eax
mov dword [esp + 0x158], 0x28
mov eax, dword [esp + 0x154]
mov dword [esp], eax
mov dword [esp + 4], 0x28
call fcn.00408c10
mov eax, dword [esp + 8]
xor ecx, ecx
lea edx, [0x57dc2c]
xor ebx, ebx
jmp 0x51a82c
mov dword [esp], 0
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
call fcn.0044d0d0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
xor edx, edx
mov ebx, eax
xor eax, eax
mov ebp, eax
mov eax, ebx
mov ebx, ebp
jmp 0x51a6ca
call fcn.0045f4b0
mov eax, ebp
mov ecx, esi
call fcn.0045f4b0
mov ecx, esi
mov edx, ebx
call fcn.0045f490
test eax, eax
jne 0x51a93f
test ecx, ecx
je 0x51a923
nop
movzx ebx, byte [0x630fa0]
test bl, bl
je 0x51a897
mov dword [0x630fa4], ecx
mov ebx, dword [0x6573b0]
test ebx, ebx
jne 0x51a882
mov dword [0x630fa8], edx
jmp 0x51a897
mov ebx, edi
lea edi, [0x630fa8]
mov ebp, eax
mov eax, edx
call fcn.0045f3d0
mov eax, ebp
mov edi, ebx
mov dword [esp + 0xa8], eax
mov dword [esp + 0x120], edi
mov dword [esp + 0x134], ecx
mov dword [esp + 0x138], edx
mov ecx, dword [esp + 0x134]
test ecx, ecx
je 0x51a8d7
nop
movzx ebx, byte [ecx + 0xf]
mov ebp, ebx
and ebx, 0x1f
xchg ebp, eax
test al, 0x20
xchg ebp, eax
jne 0x51a8dd
or ebx, 0x80
jmp 0x51a8dd
xor ebx, ebx
xor ecx, ecx
xor edx, edx
mov eax, dword [esp + 0x33c]
mov dword [esp], eax
mov eax, dword [esp + 0x340]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x344]
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ebx
call fcn.004a6f20
mov eax, dword [esp + 0xa8]
mov esi, dword [esp + 0xa0]
mov edi, dword [esp + 0x120]
mov dword [esp + 0x370], esi
mov dword [esp + 0x374], eax
mov dword [esp + 0x378], edi
add esp, 0x338
ret
mov dword [esp + 0x370], esi
mov dword [esp + 0x374], eax
mov dword [esp + 0x378], edi
add esp, 0x338
ret
mov esi, eax
mov eax, edx
mov edx, ebx
jmp 0x51a84e
inc edx
cmp edx, ecx
jge 0x51a9b3
lea ebp, [edx + ebx]
cmp byte [ebp], 0x80
jb 0x51a966
lea eax, [0x550888]
mov dword [esp + 0x1c4], eax
mov dword [esp + 0x1c8], 0x24
mov eax, dword [esp + 0x1c4]
mov dword [esp], eax
mov dword [esp + 4], 0x24
call fcn.00408c10
mov eax, dword [esp + 8]
xor ecx, ecx
lea edx, [0x57dc2c]
xor ebx, ebx
jmp 0x51a9d5
mov dword [esp], 0
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
call fcn.0044d0d0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
xor edx, edx
mov ebx, eax
xor eax, eax
mov dword [esp + 0x104], eax
mov dword [esp + 0x88], edx
mov dword [esp], ebx
mov dword [esp + 4], ecx
call fcn.00408c10
mov ebx, dword [esp + 8]
mov eax, dword [esp + 0xa0]
lea ecx, [0x535040]
mov edx, dword [esp + 0x88]
mov edi, dword [esp + 0x104]
jmp 0x51a95b
inc edx
cmp edx, ecx
jge 0x51aa6c
movzx ebp, byte [edx + ebx]
lea esi, [ebp - 0x30]
xchg esi, eax
cmp al, 9
xchg esi, eax
jbe 0x51aa13
xchg ebp, eax
cmp al, 0x20
xchg ebp, eax
je 0x51aa13
lea eax, [0x5514f6]
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x1d0], 0x28
mov eax, dword [esp + 0x1cc]
mov dword [esp], eax
mov dword [esp + 4], 0x28
call fcn.00408c10
mov eax, dword [esp + 8]
xor ecx, ecx
lea edx, [0x57dc2c]
xor ebx, ebx
jmp 0x51aa8e
mov dword [esp], 0
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
call fcn.0044d0d0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
xor edx, edx
mov ebx, eax
xor eax, eax
mov dword [esp + 0x108], eax
mov dword [esp + 0x8c], edx
mov dword [esp], ebx
mov dword [esp + 4], ecx
call fcn.00408c10
mov ebx, dword [esp + 8]
mov eax, dword [esp + 0xa0]
lea ecx, [0x535040]
mov edx, dword [esp + 0x8c]
mov edi, dword [esp + 0x108]
jmp 0x51a95b
mov ecx, esi
call fcn.0045f4b0
mov ecx, esi
mov edx, ebx
call fcn.0045f490
nop
call fcn.0045e000
jmp fcn.00518060