Function at 0x407a50
Capabilities:
Check if file exists
Check os version
Resolve function by parsing pe exports
Set socket configuration

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x57ddf9
push eax
mov eax, 0x56c8
mov dword fs:[0], esp
call fcn.00550870
mov eax, dword [0x5f9f88]
push ebx
push ebp
push esi
push edi
mov ebp, ecx
mov dword [esp + 0x48], eax
xor ebx, ebx
mov dword [esp + 0x56e0], ebx
call fcn.00578d59
mov eax, dword [eax + 4]
cmp dword [eax + 0x284], ebx
je 0x407ae1
call fcn.00578d59
mov eax, dword [eax + 4]
push 0x5e873c
add eax, 0x288
lea ecx, [esp + 0x14]
push eax
push ecx
call fcn.005689a1
push eax
lea ecx, [esp + 0x4c]
mov byte [esp + 0x56e4], 1
call fcn.00568845
lea ecx, [esp + 0x10]
mov byte [esp + 0x56e0], bl
call fcn.0056870c
lea esi, [ebp + 0x50]
mov dword [esi], 1
jmp 0x407b3f
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 0x5fe7d8
call fcn.0056877a
lea edx, [esp + 0x14]
push edx
call fcn.00441aa0
add esp, 8
push eax
lea ecx, [esp + 0x4c]
mov byte [esp + 0x56e4], 2
call fcn.00568845
lea ecx, [esp + 0x10]
mov byte [esp + 0x56e0], bl
call fcn.0056870c
push 0x5e8728
lea ecx, [esp + 0x4c]
call fcn.00568ae8
lea eax, [esp + 0x48]
lea esi, [ebp + 0x50]
push eax
push esi
mov ecx, ebp
call fcn.00410970
mov ecx, dword [esp + 0x48]
lea edi, [ebp + 0x54]
push 0x104
push ecx
push edi
call fcn.0043a0b0
mov edx, dword [ebp + 0x4d30]
mov eax, dword [ebp + 0x4d2c]
add esp, 0xc
lea ecx, [esp + 0x594]
push edx
push eax
push ecx
mov ecx, ebp
call fcn.0040ffd0
mov eax, dword [esi]
cmp eax, ebx
mov eax, edi
jne 0x407b7f
mov eax, 0x5fe7d8
push ebx
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
call fcn.0056877a
lea edx, [esp + 0x59c]
lea ecx, [esp + 0x84]
push edx
push 0x5e871c
call fcn.005076d0
lea ecx, [ebp + 0x1a8]
push 0x5fe7d8
mov byte [esp + 0x56e4], 3
mov dword [ebp + 0x40], 1
mov dword [ebp + 0x44], ebx
mov dword [ebp + 0x48], 1
mov dword [ebp + 0x4c], 1
mov dword [ebp + 0x158], 1
mov dword [ebp + 0x15c], 1
mov dword [ebp + 0x160], ebx
mov dword [ebp + 0x164], 1
mov dword [ebp + 0x168], 1
mov dword [ebp + 0x170], 1
mov dword [ebp + 0x174], ebx
mov dword [ebp + 0x178], 1
mov dword [ebp + 0x17c], 1
mov dword [ebp + 0x184], ebx
mov dword [ebp + 0x188], 1
mov dword [ebp + 0x18c], 1
mov dword [ebp + 0x190], ebx
mov dword [ebp + 0x194], 1
mov dword [ebp + 0x198], 1
mov dword [ebp + 0x19c], 1
mov dword [ebp + 0x1a0], ebx
call fcn.00568895
mov dword [ebp + 0x1ac], 1
mov dword [ebp + 0x1b0], ebx
mov dword [ebp + 0x1a4], ebx
mov dword [ebp + 0x1b4], 1
mov dword [ebp + 0x1bc], 1
mov dword [ebp + 0x1c0], 1
mov dword [ebp + 0x1c4], 1
mov dword [ebp + 0x1c8], 0x1dd
mov dword [ebp + 0x1cc], ebx
mov dword [ebp + 0x4b3c], 1
mov dword [ebp + 0x1d4], ebx
mov dword [ebp + 0x1d8], ebx
mov edi, 0x5fe7d8
or ecx, 0xffffffff
xor eax, eax
mov dword [ebp + 0x1dc], ebx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [ebp + 0x1e0]
mov eax, ecx
mov esi, edi
mov edi, edx
push 0x5e8710
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [ebp + 0x1f4], ebx
mov dword [ebp + 0x1f8], 0x979
call sub.WSOCK32.dll_inet_addr
push eax
call sub.WSOCK32.dll_htonl
mov dword [ebp + 0x1fc], eax
mov eax, 1
mov dword [ebp + 0x214], eax
mov dword [ebp + 0x218], eax
mov dword [ebp + 0x204], ebx
mov dword [ebp + 0x4660], eax
mov dword [ebp + 0x4664], eax
mov dword [ebp + 0x4668], eax
mov dword [ebp + 0x466c], eax
mov dword [ebp + 0x20c], eax
mov dword [ebp + 0x4678], ebx
mov dword [ebp + 0x4680], eax
or ecx, 0xffffffff
mov dword [ebp + 0x4684], ebx
mov dword [ebp + 0x4688], ecx
mov dword [ebp + 0x468c], ecx
mov dword [ebp + 0x4690], ecx
mov dword [ebp + 0x4694], ecx
mov dword [ebp + 0x4a04], ebx
mov dword [ebp + 0x4a08], ebx
mov dword [ebp + 0x4a0c], eax
mov dword [ebp + 0x4a10], ebx
mov dword [ebp + 0x1d0], ebx
mov dword [ebp + 0x1b8], 0x3c
mov dword [ebp + 0x4a14], eax
mov dword [ebp + 0x4a18], ebx
mov dword [ebp + 0x4a1c], ebx
mov dword [ebp + 0x4b58], eax
mov dword [ebp + 0x4b5c], eax
mov edi, 0x5fe7d8
xor eax, eax
lea edx, [ebp + 0x4b60]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [ebp + 0x4a34]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, 1
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [ebp + 0x4c64], ebx
mov dword [ebp + 0x4c68], ebx
mov dword [ebp + 0x4c6c], 0xffffff
mov dword [ebp + 0x4c70], 0xf8ebc4
mov dword [ebp + 0x4c74], 0xffffff
mov dword [ebp + 0x4c78], 0xc6a88b
mov dword [ebp + 0x4c7c], 0xfee9ce
mov dword [ebp + 0x4c80], ebx
mov dword [ebp + 0x4c84], 0x800000
mov dword [ebp + 0x4c88], 0x808080
mov dword [ebp + 0x4c8c], 0xff8080
mov dword [ebp + 0x4c90], 0xff0000
mov dword [ebp + 0x4c9c], 0x404000
mov dword [ebp + 0x4c98], 0x400040
mov dword [ebp + 0x4c94], 0xa27a00
mov dword [ebp + 0x4ca4], 0xe5b88f
mov dword [ebp + 0x4ca8], 0xfaecd9
mov dword [ebp + 0x4cac], 0xfffbdd
mov dword [ebp + 0x4cb0], 0xfffbdd
mov dword [ebp + 0x4cc8], ebx
mov dword [ebp + 0x4ccc], ebx
mov dword [ebp + 0x4cd0], ebx
mov dword [ebp + 0x4cd4], ebx
mov dword [ebp + 0x4ca0], eax
mov dword [ebp + 0x4670], 0x200
mov dword [ebp + 0x4674], 0xa
mov dword [ebp + 0x4a28], eax
mov dword [ebp + 0x4a2c], ebx
mov dword [ebp + 0x4a30], eax
mov edi, 0x5fe7d8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea esi, [ebp + 0x4b38]
mov dword [esi], ebx
mov dword [ebp + 0x4b40], ebx
mov dword [ebp + 0x4b44], ebx
mov dword [ebp + 0x4b48], ebx
mov dword [ebp + 0x4b4c], 0xa
mov dword [ebp + 0x4b50], ebx
mov dword [ebp + 0x4b54], 1
mov dword [ebp + 0x49dc], ebx
mov dword [ebp + 0x49e0], 1
lea ecx, [ebp + 0x52ac]
push 0x5e8700
mov dword [ebp + 0x52a8], ebx
call fcn.00568895
lea ecx, [ebp + 0x52b0]
push 0x5fe7d8
call fcn.00568895
mov dword [ebp + 0x16c], 1
mov dword [ebp + 0x180], 1
mov ecx, dword [ebp + 0x4ca8]
lea edx, [ebp + 0x4cb4]
lea edi, [ebp + 0x49e4]
push edx
mov dword [edx], ecx
mov eax, dword [ebp + 0x4cac]
mov dword [ebp + 0x4cbc], eax
mov ecx, dword [ebp + 0x4ca4]
mov dword [ebp + 0x4cb8], ecx
mov ecx, 8
mov eax, 4
mov dword [ebp + 0x4cc0], 0x933e1e
rep stosd dword es:[edi], eax
push 0x5e86f0
lea ecx, [esp + 0x84]
call fcn.00507ce0
lea edx, [ebp + 0x4cc4]
lea ecx, [esp + 0x7c]
push edx
push 0x5e86e0
call fcn.00507ce0
lea eax, [ebp + 0x4cb8]
lea ecx, [esp + 0x7c]
push eax
push 0x5e86cc
call fcn.00507ce0
lea eax, [ebp + 0x4cbc]
lea ecx, [esp + 0x7c]
push eax
push 0x5e86bc
call fcn.00507ce0
lea eax, [ebp + 0x4cc0]
lea ecx, [esp + 0x7c]
push eax
push 0x5e86ac
call fcn.00507ce0
lea eax, [ebp + 0x16c]
lea ecx, [esp + 0x7c]
push eax
push 0x5e86a0
call fcn.00507c90
lea eax, [ebp + 0x4a28]
lea ecx, [esp + 0x7c]
push eax
push 0x5e8690
call fcn.00507c90
lea eax, [ebp + 0x4a2c]
lea ecx, [esp + 0x7c]
push eax
push 0x5e8680
call fcn.00507c90
lea eax, [ebp + 0x4a30]
lea ecx, [esp + 0x7c]
push eax
push 0x5e8670
call fcn.00507c90
push esi
push 0x5e865c
lea ecx, [esp + 0x84]
call fcn.00507c90
push ebx
lea eax, [ebp + 0x4a34]
push 0x104
push eax
push 0x5e864c
lea ecx, [esp + 0x8c]
call fcn.00507ef0
lea edi, [ebp + 0x4670]
lea ecx, [esp + 0x7c]
push edi
push 0x5e863c
call fcn.00507c90
mov edi, dword [edi]
cmp edi, 0xda
jl 0x4080e5
cmp edi, 0x10000
jle 0x4080ef
mov dword [ebp + 0x4670], 0x200
lea esi, [ebp + 0x4674]
lea ecx, [esp + 0x7c]
push esi
push 0x5e8630
call fcn.00507c90
mov eax, dword [esi]
cmp eax, ebx
jl 0x40810f
cmp eax, 0xf
jle 0x408115
mov dword [esi], 0xa
lea eax, [ebp + 0x40]
lea esi, [ebp + 0x467c]
push eax
push 0x5e8620
lea ecx, [esp + 0x84]
mov dword [esi], ebx
call fcn.00507c90
lea eax, [ebp + 0x48]
lea ecx, [esp + 0x7c]
push eax
push 0x5e8614
call fcn.00507c90
lea eax, [ebp + 0x4c]
lea ecx, [esp + 0x7c]
push eax
push 0x5e85fc
call fcn.00507c90
lea eax, [ebp + 0x158]
lea ecx, [esp + 0x7c]
push eax
push 0x5e85e4
call fcn.00507c90
lea eax, [ebp + 0x15c]
lea ecx, [esp + 0x7c]
push eax
push 0x5e85d0
call fcn.00507c90
lea eax, [ebp + 0x160]
lea ecx, [esp + 0x7c]
push eax
push 0x5e85c0
call fcn.00507c90
lea eax, [ebp + 0x164]
lea ecx, [esp + 0x7c]
push eax
push 0x5e85ac
call fcn.00507c90
lea eax, [ebp + 0x168]
lea ecx, [esp + 0x7c]
push eax
push 0x5e85a0
call fcn.00507c90
lea eax, [ebp + 0x170]
lea ecx, [esp + 0x7c]
push eax
push 0x5e8594
call fcn.00507c90
lea eax, [ebp + 0x174]
lea ecx, [esp + 0x7c]
push eax
push 0x5e8588
call fcn.00507c90
lea eax, [ebp + 0x178]
lea ecx, [esp + 0x7c]
push eax
push 0x5e857c
call fcn.00507c90
lea eax, [ebp + 0x17c]
lea ecx, [esp + 0x7c]
push eax
push 0x5e8570
call fcn.00507c90
lea eax, [ebp + 0x184]
lea ecx, [esp + 0x7c]
push eax
push 0x5e8560
call fcn.00507c90
lea eax, [ebp + 0x180]
lea ecx, [esp + 0x7c]
push eax
push 0x5e8554
call fcn.00507c90
push esi
push 0x5e8548
lea ecx, [esp + 0x84]
call fcn.00507c90
lea eax, [ebp + 0x4ca0]
lea ecx, [esp + 0x7c]
push eax
push 0x5e8534
call fcn.00507c90
lea eax, [ebp + 0x4c80]
lea ecx, [esp + 0x7c]
push eax
push 0x5e8528
call fcn.00507ce0
lea eax, [ebp + 0x4c84]
lea ecx, [esp + 0x7c]
push eax
push 0x5e851c
call fcn.00507ce0
lea eax, [ebp + 0x4c88]
lea ecx, [esp + 0x7c]
push eax
push 0x5e8510
call fcn.00507ce0
lea eax, [ebp + 0x4c8c]
lea ecx, [esp + 0x7c]
push eax
push 0x5e8504
call fcn.00507ce0
lea eax, [ebp + 0x4c90]
lea ecx, [esp + 0x7c]
push eax
push 0x5e84f8
call fcn.00507ce0
lea eax, [ebp + 0x4c94]
lea ecx, [esp + 0x7c]
push eax
push 0x5e84e4
call fcn.00507ce0
lea eax, [ebp + 0x4c9c]
lea ecx, [esp + 0x7c]
push eax
push 0x5e84d8
call fcn.00507ce0
lea eax, [ebp + 0x4c98]
lea ecx, [esp + 0x7c]
push eax
push 0x5e84c8
call fcn.00507ce0
lea esi, [ebp + 0x4ca4]
lea ecx, [esp + 0x7c]
push esi
push 0x5e84b4
call fcn.00507ce0
lea edi, [ebp + 0x4ca8]
lea ecx, [esp + 0x7c]
push edi
push 0x5e84a0
call fcn.00507ce0
lea eax, [ebp + 0x4cac]
lea ecx, [esp + 0x7c]
push eax
push 0x5e8488
call fcn.00507ce0
lea eax, [ebp + 0x4cb0]
lea ecx, [esp + 0x7c]
push eax
push 0x5e8470
call fcn.00507ce0
cmp dword [esi], 0xe99494
jne 0x4083ae
mov dword [esi], 0xe5b88f
mov dword [edi], 0xfaecd9
mov dword [ebp + 0x4cac], 0xfffbdd
mov dword [ebp + 0x4cb0], 0xfffbdd
mov eax, dword [edi]
mov dword [ebp + 0x4cb4], eax
mov ecx, dword [ebp + 0x4cac]
mov dword [ebp + 0x4cbc], ecx
mov edx, dword [esi]
mov dword [ebp + 0x4cb8], edx
mov dword [ebp + 0x4cc0], 0x933e1e
cmp dword [ebp + 0x160], ebx
je 0x40850b
lea eax, [esp + 0x6c]
push eax
call fcn.0054800a
lea ecx, [esp + 0x6c]
call fcn.0054815a
cmp eax, 1
jne 0x4083f7
mov dword [esi], 0x9e9e9e
mov dword [edi], 0xd8e9ec
mov dword [ebp + 0x4cac], 0xd8e9ec
mov dword [ebp + 0x4cb0], 0xd8e9ec
jmp 0x4084e5
cmp eax, 2
jne 0x408421
mov dword [esi], 0xd490e5
mov dword [edi], 0xfae8ff
mov dword [ebp + 0x4cac], 0xf8ddff
mov dword [ebp + 0x4cb0], 0xf8ddff
jmp 0x4084e5
cmp eax, 3
jne 0x40844b
mov dword [esi], 0xe5b88f
mov dword [edi], 0xfaecd9
mov dword [ebp + 0x4cac], 0xfffbdd
mov dword [ebp + 0x4cb0], 0xfffbdd
jmp 0x4084e5
cmp eax, 4
jne 0x408472
mov dword [esi], 0xe99494
mov dword [edi], 0xffe8e8
mov dword [ebp + 0x4cac], 0xffd3d3
mov dword [ebp + 0x4cb0], 0xffd3d3
jmp 0x4084e5
cmp eax, 5
jne 0x408499
mov dword [esi], 0x8de2a9
mov dword [edi], 0xe8fff0
mov dword [ebp + 0x4cac], 0xd0ffdf
mov dword [ebp + 0x4cb0], 0xd0ffdf
jmp 0x4084e5
cmp eax, 6
jne 0x4084c0
mov dword [esi], 0x8dcde2
mov dword [edi], 0xf6fdff
mov dword [ebp + 0x4cac], 0xddf7ff
mov dword [ebp + 0x4cb0], 0xddf7ff
jmp 0x4084e5
cmp eax, 7
jne 0x4084e5
mov dword [esi], 0x9292e7
mov dword [edi], 0xe8e8ff
mov dword [ebp + 0x4cac], 0xd0d0ff
mov dword [ebp + 0x4cb0], 0xd0d0ff
mov ecx, dword [edi]
mov dword [ebp + 0x4cb4], ecx
mov edx, dword [ebp + 0x4cac]
mov dword [ebp + 0x4cbc], edx
mov eax, dword [esi]
mov dword [ebp + 0x4cb8], eax
mov dword [ebp + 0x4cc0], 0x933e1e
lea eax, [ebp + 0x4cc8]
lea ecx, [esp + 0x7c]
push eax
push 0x5e8464
call fcn.00507c90
lea eax, [ebp + 0x4ccc]
lea ecx, [esp + 0x7c]
push eax
push 0x5e8458
call fcn.00507c90
lea eax, [ebp + 0x4cd0]
lea ecx, [esp + 0x7c]
push eax
push 0x5e844c
call fcn.00507c90
lea eax, [ebp + 0x4cd4]
lea ecx, [esp + 0x7c]
push eax
push 0x5e843c
call fcn.00507c90
lea eax, [ebp + 0x4b58]
lea ecx, [esp + 0x7c]
push eax
push 0x5e8430
call fcn.00507c90
lea eax, [ebp + 0x4b5c]
lea ecx, [esp + 0x7c]
push eax
push 0x5e8420
call fcn.00507c90
lea eax, [ebp + 0x4c64]
lea ecx, [esp + 0x7c]
push eax
push 0x5e8410
call fcn.00507c90
lea eax, [ebp + 0x4c68]
lea ecx, [esp + 0x7c]
push eax
push 0x5e8400
call fcn.00507c90
push ebx
lea eax, [ebp + 0x4b60]
push 0x104
push eax
push 0x5e83f4
lea ecx, [esp + 0x8c]
call fcn.00507ef0
lea eax, [ebp + 0x4c6c]
lea ecx, [esp + 0x7c]
push eax
push 0x5e83e4
call fcn.00507ce0
lea eax, [ebp + 0x4c70]
lea ecx, [esp + 0x7c]
push eax
push 0x5e83d4
call fcn.00507ce0
lea eax, [ebp + 0x4c74]
lea ecx, [esp + 0x7c]
push eax
push 0x5e83c8
call fcn.00507ce0
lea eax, [ebp + 0x4c78]
lea ecx, [esp + 0x7c]
push eax
push 0x5e83b8
call fcn.00507ce0
lea eax, [ebp + 0x4c7c]
lea ecx, [esp + 0x7c]
push eax
push 0x5e83a8
call fcn.00507ce0
lea eax, [ebp + 0x44]
lea ecx, [esp + 0x7c]
push eax
push 0x5e839c
call fcn.00507c90
lea eax, [ebp + 0x4688]
lea ecx, [esp + 0x7c]
push eax
push 0x5e8394
call fcn.00507c90
lea eax, [ebp + 0x468c]
lea ecx, [esp + 0x7c]
push eax
push 0x5e838c
call fcn.00507c90
lea eax, [ebp + 0x4690]
lea ecx, [esp + 0x7c]
push eax
push 0x5e8380
call fcn.00507c90
lea eax, [ebp + 0x4694]
lea ecx, [esp + 0x7c]
push eax
push 0x5e8374
call fcn.00507c90
lea eax, [ebp + 0x4684]
lea ecx, [esp + 0x7c]
push eax
push 0x5e8368
call fcn.00507c90
lea eax, [ebp + 0x4680]
lea ecx, [esp + 0x7c]
push eax
push 0x5e835c
call fcn.00507c90
lea eax, [ebp + 0x4668]
lea ecx, [esp + 0x7c]
push eax
push 0x5e8350
call fcn.00507c90
lea eax, [ebp + 0x466c]
lea ecx, [esp + 0x7c]
push eax
push 0x5e8344
call fcn.00507c90
lea eax, [ebp + 0x18c]
lea ecx, [esp + 0x7c]
push eax
push 0x5e8338
call fcn.00507c90
lea eax, [ebp + 0x188]
lea ecx, [esp + 0x7c]
push eax
push 0x5e8328
call fcn.00507c90
lea eax, [ebp + 0x190]
lea ecx, [esp + 0x7c]
push eax
push 0x5e8314
call fcn.00507c90
lea eax, [ebp + 0x194]
lea ecx, [esp + 0x7c]
push eax
push 0x5e8300
call fcn.00507c90
lea eax, [ebp + 0x198]
lea ecx, [esp + 0x7c]
push eax
push 0x5e82f4
call fcn.00507c90
lea eax, [ebp + 0x19c]
lea ecx, [esp + 0x7c]
push eax
push 0x5e82e4
call fcn.00507c90
lea eax, [ebp + 0x1a0]
lea ecx, [esp + 0x7c]
push eax
push 0x5e82d4
call fcn.00507c90
lea eax, [ebp + 0x1ac]
lea ecx, [esp + 0x7c]
push eax
push 0x5e82c8
call fcn.00507c90
lea eax, [ebp + 0x1b0]
lea ecx, [esp + 0x7c]
push eax
push 0x5e82bc
call fcn.00507c90
lea eax, [ebp + 0x1b4]
lea ecx, [esp + 0x7c]
push eax
push 0x5e82a8
call fcn.00507c90
lea eax, [ebp + 0x1cc]
lea ecx, [esp + 0x7c]
push eax
push 0x5e8294
call fcn.00507c90
lea eax, [ebp + 0x1bc]
lea ecx, [esp + 0x7c]
push eax
push 0x5e8280
call fcn.00507c90
lea eax, [ebp + 0x1c0]
lea ecx, [esp + 0x7c]
push eax
push 0x5e826c
call fcn.00507c90
lea eax, [ebp + 0x1c4]
lea ecx, [esp + 0x7c]
push eax
push 0x5e8258
call fcn.00507c90
lea esi, [ebp + 0x1c8]
lea ecx, [esp + 0x7c]
push esi
push 0x5e8248
call fcn.00507c90
lea eax, [ebp + 0x4b3c]
lea ecx, [esp + 0x7c]
push eax
push 0x5e8234
call fcn.00507c90
lea eax, [ebp + 0x4b40]
lea ecx, [esp + 0x7c]
push eax
push 0x5e8220
call fcn.00507c90
lea eax, [ebp + 0x4b44]
lea ecx, [esp + 0x7c]
push eax
push 0x5e820c
call fcn.00507c90
lea eax, [ebp + 0x4b48]
lea ecx, [esp + 0x7c]
push eax
push 0x5e81f8
call fcn.00507c90
lea eax, [ebp + 0x4b4c]
lea ecx, [esp + 0x7c]
push eax
push 0x5e81e4
call fcn.00507c90
lea eax, [ebp + 0x4b50]
lea ecx, [esp + 0x7c]
push eax
push 0x5e81d4
call fcn.00507c90
lea eax, [ebp + 0x4b54]
lea ecx, [esp + 0x7c]
push eax
push 0x5e81c4
call fcn.00507c90
mov eax, dword [esi]
cmp eax, 0x104
jl 0x4088d2
cmp eax, 0x258
jle 0x4088d8
mov dword [esi], 0x1dd
lea eax, [ebp + 0x1d4]
lea ecx, [esp + 0x7c]
push eax
push 0x5e81b4
call fcn.00507c90
lea eax, [ebp + 0x4a1c]
lea ecx, [esp + 0x7c]
push eax
push 0x5e81a4
call fcn.00507c90
lea ecx, [ebp + 0x4a20]
push ecx
push 0x5e8194
lea ecx, [esp + 0x84]
call fcn.00507c90
lea edx, [ebp + 0x4a24]
lea ecx, [esp + 0x7c]
push edx
push 0x5e8188
call fcn.00507c90
lea eax, [ebp + 0x1dc]
lea ecx, [esp + 0x7c]
push eax
push 0x5e8178
call fcn.00507c90
push ebx
lea eax, [ebp + 0x1e0]
push 0x14
push eax
push 0x5e8168
lea ecx, [esp + 0x8c]
call fcn.00507ef0
lea eax, [ebp + 0x1f4]
lea ecx, [esp + 0x7c]
push eax
push 0x5e815c
call fcn.00507c90
lea eax, [ebp + 0x1d0]
lea ecx, [esp + 0x7c]
push eax
push 0x5e814c
call fcn.00507c90
lea esi, [ebp + 0x1b8]
lea ecx, [esp + 0x7c]
push esi
push 0x5e813c
call fcn.00507c90
cmp dword [esi], 0xa
jge 0x4089a9
mov dword [esi], 0xa
lea eax, [ebp + 0x4a04]
lea ecx, [esp + 0x7c]
push eax
push 0x5e8130
call fcn.00507c90
lea eax, [ebp + 0x4a08]
lea ecx, [esp + 0x7c]
push eax
push 0x5e8120
call fcn.00507c90
lea eax, [ebp + 0x4a0c]
lea ecx, [esp + 0x7c]
push eax
push 0x5e8114
call fcn.00507c90
lea eax, [ebp + 0x4a10]
lea ecx, [esp + 0x7c]
push eax
push 0x5e8108
call fcn.00507c90
lea eax, [ebp + 0x4a14]
lea ecx, [esp + 0x7c]
push eax
push 0x5e80f8
call fcn.00507c90
lea esi, [ebp + 0x4a18]
lea ecx, [esp + 0x7c]
push esi
push 0x5e80e8
call fcn.00507c90
call fcn.00578d59
mov eax, dword [eax + 4]
mov ecx, dword [esi]
lea edx, [esp + 0x64]
mov dword [eax + 0x23c], ecx
push edx
push 0x5e80d8
lea ecx, [esp + 0x84]
mov dword [esp + 0x6c], ebx
call fcn.00507ce0
mov eax, dword [esp + 0x64]
lea ecx, [esp + 0x7c]
mov dword [ebp + 0x1d8], eax
lea eax, [ebp + 0x1f8]
push eax
push 0x5e80cc
call fcn.00507c90
mov ecx, dword [ebp + 0x1fc]
lea edx, [esp + 0x64]
mov dword [esp + 0x64], ecx
push edx
push 0x5e80bc
lea ecx, [esp + 0x84]
call fcn.00507ce0
mov eax, dword [esp + 0x64]
mov edi, 0x5e809c
mov dword [ebp + 0x1fc], eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0xc1c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push ebx
mov eax, ecx
mov esi, edi
mov edi, edx
push 0x400
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0xc24]
push ecx
push 0x5e8090
lea ecx, [esp + 0x8c]
call fcn.00507ef0
lea edx, [esp + 0xc1c]
lea esi, [ebp + 0x1a8]
push edx
mov ecx, esi
call fcn.00568895
mov ecx, esi
call fcn.00563f13
mov ecx, esi
call fcn.00563ec7
mov edi, 0x5fe7d8
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0xc1c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push ebx
mov eax, ecx
mov esi, edi
mov edi, edx
push 0x400
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0xc24]
push ecx
push 0x5e8080
lea ecx, [esp + 0x8c]
call fcn.00507ef0
lea esi, [ebp + 0x220]
lea edx, [esp + 0xc1c]
push edx
mov ecx, esi
call fcn.00568895
mov ecx, esi
call fcn.00563f13
mov ecx, esi
call fcn.00563ec7
lea eax, [ebp + 0x52a8]
lea ecx, [esp + 0x7c]
push eax
push 0x5e8074
call fcn.00507c90
mov edi, 0x5e8700
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0xc1c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push ebx
mov eax, ecx
mov esi, edi
mov edi, edx
push 0x400
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0xc24]
push ecx
push 0x5e8064
lea ecx, [esp + 0x8c]
call fcn.00507ef0
lea edx, [esp + 0xc1c]
lea esi, [ebp + 0x52ac]
push edx
mov ecx, esi
call fcn.00568895
mov ecx, esi
call fcn.00563f13
mov ecx, esi
call fcn.00563ec7
mov edi, 0x5fe7d8
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0xc1c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push ebx
and ecx, 3
push 0x400
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0xc24]
push ecx
push 0x5e8054
lea ecx, [esp + 0x8c]
call fcn.00507ef0
lea edx, [esp + 0xc1c]
lea esi, [ebp + 0x52b0]
push edx
mov ecx, esi
call fcn.00568895
mov ecx, esi
call fcn.00563f13
mov ecx, esi
call fcn.00563ec7
mov edi, 0x5fe7d8
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp + 0x228]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push ebx
mov eax, ecx
mov esi, edi
mov edi, edx
push 0x400
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push edx
and ecx, 3
push 0x5e8048
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x8c]
call fcn.00507ef0
lea ecx, [ebp + 0x200]
push ecx
push 0x5e803c
lea ecx, [esp + 0x84]
call fcn.00507c90
lea edx, [ebp + 0x208]
lea ecx, [esp + 0x7c]
push edx
push 0x5e8030
call fcn.00507c90
lea eax, [ebp + 0x20c]
lea ecx, [esp + 0x7c]
push eax
push 0x5e8020
call fcn.00507c90
lea eax, [ebp + 0x210]
lea ecx, [esp + 0x7c]
push eax
push 0x5e8010
call fcn.00507c90
lea eax, [ebp + 0x214]
lea ecx, [esp + 0x7c]
push eax
push 0x5e8008
call fcn.00507c90
lea eax, [ebp + 0x218]
lea ecx, [esp + 0x7c]
push eax
push 0x5e8000
call fcn.00507c90
lea eax, [ebp + 0x5a94]
lea ecx, [esp + 0x7c]
push eax
push 0x5e7ff4
call fcn.00507c90
mov dword [esp + 0x15c], ebx
lea ecx, [esp + 0x15c]
push ecx
push 0x5e7fe8
lea ecx, [esp + 0x84]
call fcn.00507ce0
mov edx, dword [esp + 0x15c]
push ebx
lea eax, [esp + 0x694]
push 0x1e
or dl, 0x80
push eax
push 0x5e7fdc
lea ecx, [esp + 0x8c]
mov dword [ebp + 0x204], edx
call fcn.00507ef0
lea ecx, [esp + 0x690]
push ecx
lea ecx, [esp + 0x6c]
call fcn.0056877a
mov edx, dword [esp + 0x68]
push 0x5fe7d8
push edx
mov byte [esp + 0x56e8], 4
call fcn.005503ed
add esp, 8
test eax, eax
je 0x408dc9
push ecx
lea eax, [esp + 0x6c]
mov ecx, esp
mov dword [esp + 0x1c], esp
push eax
call fcn.00568481
call fcn.0043fde0
add esp, 4
cmp eax, ebx
jne 0x408e27
lea ecx, [esp + 0x6c]
push ecx
call fcn.0054800a
lea ecx, [esp + 0x6c]
call fcn.00548130
push eax
lea ecx, [esp + 0x70]
call fcn.00548106
push eax
lea ecx, [esp + 0x74]
call fcn.005480dc
push eax
lea ecx, [esp + 0x78]
call fcn.005480b2
push eax
lea ecx, [esp + 0x7c]
call fcn.00548088
push eax
lea ecx, [esp + 0x80]
call fcn.0054805e
push eax
lea edx, [esp + 0x80]
push 0x5e7fbc
push edx
call fcn.00563eb4
add esp, 0x20
lea eax, [esp + 0x68]
lea ecx, [ebp + 0x21c]
push eax
call fcn.00568845
lea eax, [ebp + 0x224]
lea ecx, [esp + 0x7c]
push eax
push 0x5e7fac
mov dword [eax], 0xa
call fcn.00507c90
push ebx
lea ecx, [ebp + 0x628]
push 0x32
push ecx
push 0x5e7f9c
lea ecx, [esp + 0x8c]
call fcn.00507ef0
lea esi, [ebp + 0x65c]
lea ecx, [esp + 0x7c]
push esi
push 0x5e7f90
call fcn.00507c90
mov eax, dword [esi]
cmp eax, ebx
jl 0x408e8f
cmp eax, 0x7ffffe0b
jle 0x408e91
mov dword [esi], ebx
push ebx
lea edx, [ebp + 0x660]
push 0x4000
push edx
push 0x5e7f80
lea ecx, [esp + 0x8c]
call fcn.00507ef0
lea edi, [ebp + 0x499c]
push ebx
push 0x40
push edi
push 0x5e7f74
lea ecx, [esp + 0x8c]
call fcn.00507ef0
lea esi, [ebp + 0x49dc]
lea ecx, [esp + 0x7c]
push esi
push 0x5e7f68
call fcn.00507c90
lea eax, [ebp + 0x49e0]
lea ecx, [esp + 0x7c]
push eax
push 0x5e7f5c
call fcn.00507c90
cmp dword [esi], ebx
je 0x408f87
lea eax, [esp + 0x24]
push eax
call fcn.00493df0
add esp, 4
mov ecx, dword [esi]
lea edx, [esp + 0x24]
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push edx
mov byte [esp + 0x56ec], 5
call fcn.00568481
lea eax, [esp + 0x34]
push eax
call fcn.004938d0
add esp, 0xc
push edi
lea ecx, [esp + 0x20]
mov byte [esp + 0x56e4], 6
call fcn.0056877a
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x2c]
push ecx
push edx
call fcn.005503ed
add esp, 8
test eax, eax
je 0x408f5c
mov dword [esi], ebx
lea ecx, [esp + 0x1c]
call fcn.0056870c
lea ecx, [esp + 0x2c]
mov byte [esp + 0x56e0], 5
call fcn.0056870c
lea ecx, [esp + 0x24]
mov byte [esp + 0x56e0], 4
call fcn.0056870c
lea eax, [esp + 0x7c]
push ebp
push eax
mov ecx, ebp
call fcn.0040d150
mov word [ebp + 0x4d1c], bx
mov word [ebp + 0x4d1e], bx
mov word [ebp + 0x4d20], bx
mov word [ebp + 0x4d22], bx
lea ecx, [esp + 0x3c]
mov word [ebp + 0x4d24], bx
mov word [ebp + 0x4d26], bx
push ecx
mov word [ebp + 0x4d28], bx
push 0x5e7f50
lea ecx, [esp + 0x84]
mov word [ebp + 0x4d2a], bx
mov dword [esp + 0x44], 6
mov dword [esp + 0x4c], 0x58
call fcn.00507c90
lea edx, [esp + 0x44]
lea ecx, [esp + 0x7c]
push edx
push 0x5e7f44
call fcn.00507c90
lea eax, [ebp + 0x4660]
lea ecx, [esp + 0x7c]
push eax
push 0x5e7f30
call fcn.00507c90
lea eax, [ebp + 0x4664]
lea ecx, [esp + 0x7c]
push eax
push 0x5e7f20
call fcn.00507c90
lea eax, [ebp + 0x4678]
lea ecx, [esp + 0x7c]
push eax
push 0x5e7f0c
call fcn.00507c90
mov eax, dword [esp + 0x3c]
cmp eax, ebx
jl 0x409053
mov word [ebp + 0x4d1c], ax
mov eax, dword [esp + 0x44]
cmp eax, ebx
jl 0x409062
mov word [ebp + 0x4d1e], ax
lea eax, [esp + 0x3c]
lea ecx, [esp + 0x7c]
push eax
push 0x5e7efc
mov dword [esp + 0x44], ebx
mov dword [esp + 0x4c], ebx
call fcn.00507c90
lea ecx, [esp + 0x44]
push ecx
push 0x5e7ef0
lea ecx, [esp + 0x84]
call fcn.00507c90
mov eax, dword [esp + 0x3c]
cmp eax, ebx
jl 0x4090a2
mov word [ebp + 0x4d20], ax
mov eax, dword [esp + 0x44]
cmp eax, ebx
jl 0x4090b1
mov word [ebp + 0x4d22], ax
lea edx, [esp + 0x3c]
lea ecx, [esp + 0x7c]
push edx
push 0x5e7ee0
mov dword [esp + 0x44], ebx
mov dword [esp + 0x4c], ebx
call fcn.00507c90
lea eax, [esp + 0x44]
lea ecx, [esp + 0x7c]
push eax
push 0x5e7ed4
call fcn.00507c90
mov eax, dword [esp + 0x3c]
cmp eax, ebx
jl 0x4090ee
mov word [ebp + 0x4d24], ax
mov eax, dword [esp + 0x44]
cmp eax, ebx
jl 0x4090fd
mov word [ebp + 0x4d26], ax
lea ecx, [esp + 0x3c]
mov dword [esp + 0x3c], ebx
push ecx
push 0x5e7ec4
lea ecx, [esp + 0x84]
mov dword [esp + 0x4c], ebx
call fcn.00507c90
lea edx, [esp + 0x44]
lea ecx, [esp + 0x7c]
push edx
push 0x5e7eb8
call fcn.00507c90
mov eax, dword [esp + 0x3c]
cmp eax, ebx
jl 0x40913d
mov word [ebp + 0x4d28], ax
mov eax, dword [esp + 0x44]
cmp eax, ebx
jl 0x40914c
mov word [ebp + 0x4d2a], ax
or ecx, 0xffffffff
mov edi, 0x5e7eb0
xor eax, eax
lea edx, [ebp + 0x4698]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
shr ecx, 2
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x5e7e94
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea esi, [ebp + 0x4718]
mov eax, ecx
mov dword [esp + 0x10], esi
mov esi, edi
mov edi, dword [esp + 0x10]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x5e7e8c
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
lea esi, [ebp + 0x4798]
sub edi, ecx
mov eax, ecx
mov dword [esp + 0x10], esi
mov esi, edi
mov edi, dword [esp + 0x10]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x5e7e70
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
lea esi, [ebp + 0x4818]
sub edi, ecx
mov eax, ecx
mov dword [esp + 0x10], esi
mov esi, edi
mov edi, dword [esp + 0x10]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
xor eax, eax
rep movsb byte es:[edi], byte [esi]
mov edi, edx
mov ecx, dword [0x5f9f88]
mov dword [esp + 0x14], ecx
lea esi, [eax + 1]
lea edx, [esp + 0x14]
push esi
push 0x5e7e60
push edx
mov byte [esp + 0x56ec], 7
call fcn.00563eb4
mov eax, dword [esp + 0x20]
add esp, 0xc
lea ecx, [esp + 0x7c]
push ebx
push 0x7e
push edi
push eax
call fcn.00507ef0
lea ecx, [esp + 0x14]
mov byte [esp + 0x56e0], 4
call fcn.0056870c
mov eax, esi
add edi, 0x80
cmp eax, 4
jl 0x409202
xor eax, eax
lea edi, [ebp + 0x49e4]
mov ecx, dword [0x5f9f88]
mov dword [esp + 0x14], ecx
lea esi, [eax + 1]
lea edx, [esp + 0x14]
push esi
push 0x5e7e50
push edx
mov byte [esp + 0x56ec], 8
call fcn.00563eb4
mov eax, dword [esp + 0x20]
add esp, 0xc
lea ecx, [esp + 0x7c]
push edi
push eax
call fcn.00507c90
lea ecx, [esp + 0x14]
mov byte [esp + 0x56e0], 4
call fcn.0056870c
mov eax, esi
add edi, 4
cmp eax, 8
jl 0x409262
mov edi, 0x5e7dd4
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp + 0x4898]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push ebx
mov eax, ecx
mov esi, edi
mov edi, edx
push 0x104
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push edx
and ecx, 3
push 0x5e7dc0
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x8c]
call fcn.00507ef0
lea ecx, [esp + 0x170]
call fcn.00566653
push 0xffffffffffffffff
push ebx
lea ecx, [esp + 0x178]
mov byte [esp + 0x56e8], 9
call fcn.005666e6
lea ecx, [ebp + 0x5b08]
mov dword [esp + 0x58], ebx
call fcn.005671ad
lea ecx, [esp + 0x58]
push ebx
push ecx
push ebx
push 0x5e7db0
lea ecx, [esp + 0x8c]
call fcn.00508190
mov ecx, dword [esp + 0x58]
cmp ecx, ebx
je 0x40948f
cmp eax, 2
mov eax, ecx
jne 0x409354
lea eax, [ecx - 1]
xor edx, edx
mov esi, 0x42
div esi
test edx, edx
jne 0x40948f
push ecx
call fcn.00567b03
add esp, 4
lea edx, [esp + 0x58]
mov esi, eax
lea ecx, [esp + 0x7c]
push ebx
push edx
push esi
push 0x5e7db0
mov dword [esp + 0x2c], esi
call fcn.00508190
cmp dword [esp + 0x58], 0x42
jb 0x409486
lea eax, [esi + 0x10]
mov dword [esp + 0x14], eax
mov eax, 0x32
sub eax, esi
mov dword [esp + 0x10], eax
mov esi, dword [esp + 0x14]
lea edi, [esp + 0x65c]
lea ecx, [esi - 0x10]
mov edx, dword [esi - 0x10]
mov dword [esp + 0x1a8], edx
mov eax, dword [ecx + 4]
mov dword [esp + 0x1ac], eax
mov edx, dword [ecx + 8]
mov dword [esp + 0x1b0], edx
lea edx, [esp + 0x1a8]
mov eax, dword [ecx + 0xc]
mov ecx, 0xc
mov dword [esp + 0x1b4], eax
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x65c]
push ecx
push edx
lea ecx, [ebp + 0x5b08]
movsw word es:[edi], word [esi]
call fcn.005672f2
mov ecx, eax
call fcn.00568895
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x178]
add edx, 0x42
xor esi, esi
cmp eax, ebx
mov dword [esp + 0x14], edx
jle 0x409457
mov eax, dword [esp + 0x174]
lea ecx, [esp + 0x65c]
push ecx
mov eax, dword [eax + esi*4]
push eax
call fcn.005503ed
add esp, 8
test eax, eax
je 0x40944c
mov eax, dword [esp + 0x178]
inc esi
cmp esi, eax
jl 0x40941f
jmp 0x409457
mov eax, dword [esp + 0x178]
cmp esi, eax
jl 0x40946c
lea edx, [esp + 0x65c]
lea ecx, [esp + 0x170]
push edx
push eax
call fcn.0056688f
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
add eax, ecx
mov ecx, dword [esp + 0x58]
cmp eax, ecx
jbe 0x4093a6
mov esi, dword [esp + 0x1c]
push esi
call fcn.00567b2c
add esp, 4
push 0xffffffffffffffff
lea ecx, [ebp + 0x5ad8]
push ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x2c], ebx
call fcn.00411300
lea ecx, [ebp + 0x5ba0]
call fcn.005671ad
lea ecx, [ebp + 0x5bbc]
call fcn.005671ad
lea edx, [esp + 0x4c]
push ebx
push edx
push ebx
push 0x5e7da0
lea ecx, [esp + 0x8c]
mov dword [esp + 0x5c], ebx
call fcn.00508190
mov ecx, dword [esp + 0x4c]
mov edi, 0x1c0
cmp ecx, ebx
je 0x409725
cmp eax, 2
mov eax, ecx
jne 0x4094f2
lea eax, [ecx - 1]
xor edx, edx
mov esi, edi
div esi
test edx, edx
jne 0x409725
push ecx
call fcn.00567b03
add esp, 4
mov esi, eax
lea eax, [esp + 0x4c]
lea ecx, [esp + 0x7c]
push ebx
push eax
push esi
push 0x5e7da0
mov dword [esp + 0x2c], esi
call fcn.00508190
cmp dword [esp + 0x4c], edi
jb 0x409710
mov dword [esp + 0x14], edi
mov edi, 0x5fe7d8
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x214]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0xffffffffffffffff
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x2c4]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x5fe7d8
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
mov edx, dword [esp + 0x20]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x18]
lea edi, [esp + 0x218]
lea esi, [edx + ecx - 0x1c0]
mov ecx, 0x70
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x70
lea esi, [esp + 0x218]
lea edi, [esp + 0x3d8]
mov dword [esp + 0x250], ebx
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp + 0x5ae0]
lea ecx, [ebp + 0x5ad8]
lea eax, [esi + 1]
push eax
call fcn.00411300
mov edx, dword [ebp + 0x5adc]
lea edi, [esi*8]
sub edi, esi
mov ecx, 0x70
shl edi, 6
add edi, edx
lea esi, [esp + 0x3d4]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp + 0x5ae0]
lea ecx, [esp + 0x10]
dec eax
push eax
push ecx
call fcn.00493800
add esp, 8
mov eax, dword [eax]
lea edx, [esp + 0x214]
push eax
push edx
lea ecx, [ebp + 0x5ba0]
mov byte [esp + 0x56e8], 0xa
call fcn.005672f2
mov ecx, eax
call fcn.00568895
lea ecx, [esp + 0x10]
mov byte [esp + 0x56e0], 9
call fcn.0056870c
cmp dword [esp + 0x3cc], ebx
je 0x40969e
cmp dword [esp + 0x3d0], ebx
je 0x40969e
mov eax, dword [ebp + 0x5ae0]
dec eax
push eax
lea eax, [esp + 0x44]
push eax
call fcn.00493800
add esp, 8
mov eax, dword [eax]
lea ecx, [esp + 0x214]
push eax
push ecx
lea ecx, [ebp + 0x5bbc]
mov byte [esp + 0x56e8], 0xb
call fcn.005672f2
mov ecx, eax
call fcn.00568895
lea ecx, [esp + 0x40]
mov byte [esp + 0x56e0], 9
call fcn.0056870c
lea edx, [esp + 0x214]
lea ecx, [esp + 0x30]
push edx
call fcn.0056877a
mov eax, dword [esp + 0x30]
push 0x5e7d94
push eax
call fcn.005503ed
add esp, 8
test eax, eax
jne 0x4096cd
mov dword [esp + 0x2c], 1
mov ecx, dword [esp + 0x30]
push 0x5e7d8c
push ecx
call fcn.005503ed
add esp, 8
test eax, eax
jne 0x4096eb
mov dword [esp + 0x24], 1
mov esi, dword [esp + 0x14]
lea ecx, [esp + 0x30]
add esi, 0x1c0
mov dword [esp + 0x14], esi
call fcn.0056870c
cmp esi, dword [esp + 0x4c]
jbe 0x409532
mov esi, dword [esp + 0x1c]
push esi
call fcn.00567b2c
mov eax, dword [esp + 0x30]
add esp, 4
cmp eax, ebx
jne 0x409bf5
mov edi, 0x5fe7d8
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x3d4]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x480]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x5fe7d8
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x40c], ebx
mov eax, ecx
mov esi, edi
mov edi, edx
mov dword [esp + 0x410], ebx
shr ecx, 2
mov dword [esp + 0x414], 1
mov dword [esp + 0x44c], ebx
mov dword [esp + 0x46c], ebx
mov dword [esp + 0x43c], ebx
mov dword [esp + 0x438], ebx
mov dword [esp + 0x444], ebx
mov dword [esp + 0x45c], ebx
mov dword [esp + 0x450], ebx
mov dword [esp + 0x448], ebx
mov dword [esp + 0x468], ebx
mov dword [esp + 0x440], ebx
mov dword [esp + 0x458], ebx
mov dword [esp + 0x430], ebx
mov dword [esp + 0x478], ebx
mov dword [esp + 0x470], ebx
mov dword [esp + 0x418], ebx
mov dword [esp + 0x460], ebx
mov dword [esp + 0x420], ebx
mov dword [esp + 0x434], ebx
mov dword [esp + 0x47c], ebx
mov dword [esp + 0x474], ebx
mov dword [esp + 0x41c], ebx
mov dword [esp + 0x464], ebx
mov dword [esp + 0x424], ebx
mov dword [esp + 0x454], ebx
lea edx, [esp + 0x3d4]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x5e7d94
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x428], ebx
mov eax, ecx
mov esi, edi
mov edi, edx
mov dword [esp + 0x42c], ebx
shr ecx, 2
mov dword [esp + 0x584], ebx
mov dword [esp + 0x588], ebx
mov dword [esp + 0x58c], ebx
mov dword [esp + 0x590], ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [esp + 0x408], ebx
mov ecx, 0x70
lea esi, [esp + 0x3d4]
lea edi, [esp + 0x214]
push 0xffffffffffffffff
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp + 0x5ae0]
lea ecx, [ebp + 0x5ad8]
lea edx, [esi + 1]
push edx
call fcn.00411300
lea edi, [esi*8]
mov ecx, 0x70
sub edi, esi
mov esi, dword [ebp + 0x5adc]
shl edi, 6
add edi, esi
lea esi, [esp + 0x214]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp + 0x5ae0]
dec eax
push eax
lea eax, [esp + 0x14]
push eax
call fcn.00493800
add esp, 8
mov eax, dword [eax]
lea ecx, [esp + 0x3d4]
push eax
push ecx
lea ecx, [ebp + 0x5ba0]
mov byte [esp + 0x56e8], 0xc
call fcn.005672f2
mov ecx, eax
call fcn.00568895
lea ecx, [esp + 0x10]
mov byte [esp + 0x56e0], 9
call fcn.0056870c
cmp dword [esp + 0x58c], ebx
je 0x409988
cmp dword [esp + 0x590], ebx
je 0x409988
mov eax, dword [ebp + 0x5ae0]
lea edx, [esp + 0x10]
dec eax
push eax
push edx
call fcn.00493800
add esp, 8
mov eax, dword [eax]
lea ecx, [ebp + 0x5bbc]
push eax
lea eax, [esp + 0x3d8]
push eax
mov byte [esp + 0x56e8], 0xd
call fcn.005672f2
mov ecx, eax
call fcn.00568895
lea ecx, [esp + 0x10]
mov byte [esp + 0x56e0], 9
call fcn.0056870c
cmp dword [esp + 0x4c], ebx
jne 0x409bf5
mov edi, 0x5fe7d8
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x214]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x2c0]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x5fe7d8
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x24c], ebx
mov eax, ecx
mov esi, edi
mov edi, edx
mov dword [esp + 0x250], ebx
shr ecx, 2
mov dword [esp + 0x254], 1
mov dword [esp + 0x28c], ebx
mov dword [esp + 0x2ac], ebx
mov dword [esp + 0x27c], ebx
mov dword [esp + 0x278], ebx
mov dword [esp + 0x284], ebx
mov dword [esp + 0x29c], ebx
mov dword [esp + 0x290], ebx
mov dword [esp + 0x288], ebx
mov dword [esp + 0x2a8], ebx
mov dword [esp + 0x280], ebx
mov dword [esp + 0x298], ebx
mov dword [esp + 0x270], ebx
mov dword [esp + 0x2b8], ebx
mov dword [esp + 0x2b0], ebx
mov dword [esp + 0x258], ebx
mov dword [esp + 0x2a0], ebx
mov dword [esp + 0x260], ebx
mov dword [esp + 0x274], ebx
mov dword [esp + 0x2bc], ebx
mov dword [esp + 0x2b4], ebx
mov dword [esp + 0x25c], ebx
mov dword [esp + 0x2a4], ebx
mov dword [esp + 0x264], ebx
mov dword [esp + 0x294], ebx
lea edx, [esp + 0x214]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x5e7d84
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x268], ebx
mov eax, ecx
mov esi, edi
mov edi, edx
mov dword [esp + 0x26c], ebx
shr ecx, 2
mov dword [esp + 0x3c4], ebx
mov dword [esp + 0x3c8], ebx
mov dword [esp + 0x3cc], ebx
mov dword [esp + 0x3d0], ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [esp + 0x248], ebx
mov ecx, 0x70
lea esi, [esp + 0x214]
lea edi, [esp + 0x6b0]
push 0xffffffffffffffff
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp + 0x5ae0]
lea ecx, [ebp + 0x5ad8]
lea edx, [esi + 1]
push edx
call fcn.00411300
mov edi, dword [ebp + 0x5adc]
lea eax, [esi*8]
sub eax, esi
mov ecx, 0x70
shl eax, 6
add edi, eax
lea esi, [esp + 0x6b0]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp + 0x5ae0]
lea ecx, [esp + 0x10]
dec eax
push eax
push ecx
call fcn.00493800
add esp, 8
mov eax, dword [eax]
lea edx, [esp + 0x214]
push eax
push edx
lea ecx, [ebp + 0x5ba0]
mov byte [esp + 0x56e8], 0xe
call fcn.005672f2
mov ecx, eax
call fcn.00568895
lea ecx, [esp + 0x10]
mov byte [esp + 0x56e0], 9
call fcn.0056870c
cmp dword [esp + 0x3cc], ebx
je 0x409bf5
cmp dword [esp + 0x3d0], ebx
je 0x409bf5
mov eax, dword [ebp + 0x5ae0]
dec eax
push eax
lea eax, [esp + 0x14]
push eax
call fcn.00493800
add esp, 8
mov eax, dword [eax]
lea ecx, [esp + 0x214]
push eax
push ecx
lea ecx, [ebp + 0x5bbc]
mov byte [esp + 0x56e8], 0xf
call fcn.005672f2
mov ecx, eax
call fcn.00568895
lea ecx, [esp + 0x10]
mov byte [esp + 0x56e0], 9
call fcn.0056870c
cmp dword [esp + 0x24], ebx
jne 0x409e62
mov edi, 0x5fe7d8
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x214]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x2c0]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x5fe7d8
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x24c], ebx
mov eax, ecx
mov esi, edi
mov edi, edx
mov dword [esp + 0x250], ebx
shr ecx, 2
mov dword [esp + 0x254], 1
mov dword [esp + 0x28c], ebx
mov dword [esp + 0x2ac], ebx
mov dword [esp + 0x27c], ebx
mov dword [esp + 0x278], ebx
mov dword [esp + 0x284], ebx
mov dword [esp + 0x29c], ebx
mov dword [esp + 0x290], ebx
mov dword [esp + 0x288], ebx
mov dword [esp + 0x2a8], ebx
mov dword [esp + 0x280], ebx
mov dword [esp + 0x298], ebx
mov dword [esp + 0x270], ebx
mov dword [esp + 0x2b8], ebx
mov dword [esp + 0x2b0], ebx
mov dword [esp + 0x258], ebx
mov dword [esp + 0x2a0], ebx
mov dword [esp + 0x260], ebx
mov dword [esp + 0x274], ebx
mov dword [esp + 0x2bc], ebx
mov dword [esp + 0x2b4], ebx
mov dword [esp + 0x25c], ebx
mov dword [esp + 0x2a4], ebx
mov dword [esp + 0x264], ebx
mov dword [esp + 0x294], ebx
lea edx, [esp + 0x214]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x5e7d8c
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x268], ebx
mov eax, ecx
mov esi, edi
mov edi, edx
mov dword [esp + 0x26c], ebx
shr ecx, 2
mov dword [esp + 0x3c4], ebx
mov dword [esp + 0x3c8], ebx
mov dword [esp + 0x3cc], ebx
mov dword [esp + 0x3d0], ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [esp + 0x248], ebx
mov ecx, 0x70
lea esi, [esp + 0x214]
lea edi, [esp + 0x6b0]
push 0xffffffffffffffff
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp + 0x5ae0]
lea ecx, [ebp + 0x5ad8]
lea edx, [esi + 1]
push edx
call fcn.00411300
lea edi, [esi*8]
mov ecx, 0x70
sub edi, esi
mov esi, dword [ebp + 0x5adc]
shl edi, 6
add edi, esi
lea esi, [esp + 0x6b0]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp + 0x5ae0]
dec eax
push eax
lea eax, [esp + 0x14]
push eax
call fcn.00493800
add esp, 8
mov eax, dword [eax]
lea ecx, [esp + 0x214]
push eax
push ecx
lea ecx, [ebp + 0x5ba0]
mov byte [esp + 0x56e8], 0x10
call fcn.005672f2
mov ecx, eax
call fcn.00568895
lea ecx, [esp + 0x10]
mov byte [esp + 0x56e0], 9
call fcn.0056870c
cmp dword [esp + 0x3cc], ebx
je 0x409e62
cmp dword [esp + 0x3d0], ebx
je 0x409e62
mov eax, dword [ebp + 0x5ae0]
lea edx, [esp + 0x10]
dec eax
push eax
push edx
call fcn.00493800
add esp, 8
mov eax, dword [eax]
lea ecx, [ebp + 0x5bbc]
push eax
lea eax, [esp + 0x218]
push eax
mov byte [esp + 0x56e8], 0x11
call fcn.005672f2
mov ecx, eax
call fcn.00568895
lea ecx, [esp + 0x10]
mov byte [esp + 0x56e0], 9
call fcn.0056870c
mov eax, dword [esp + 0x178]
mov dword [esp + 0x14], ebx
cmp eax, ebx
jle 0x40a15f
mov eax, dword [ebp + 0x5ae0]
xor edi, edi
cmp eax, ebx
jle 0x409ec7
mov ecx, dword [esp + 0x14]
xor esi, esi
lea edx, [ecx*4]
mov dword [esp + 0x10], edx
mov eax, dword [ebp + 0x5adc]
mov ecx, dword [esp + 0x174]
mov edx, dword [esp + 0x10]
add eax, esi
push eax
mov ecx, dword [edx + ecx]
push ecx
call fcn.005503ed
add esp, 8
test eax, eax
je 0x409ec7
mov eax, dword [ebp + 0x5ae0]
inc edi
add esi, 0x1c0
cmp edi, eax
jl 0x409e92
cmp edi, dword [ebp + 0x5ae0]
jl 0x40a147
mov edi, 0x5fe7d8
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x3d4]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x480]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, 1
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [esp + 0x408], eax
mov dword [esp + 0x414], eax
mov edi, 0x5fe7d8
or ecx, 0xffffffff
xor eax, eax
mov dword [esp + 0x40c], ebx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x410], ebx
mov eax, ecx
mov esi, edi
mov edi, edx
mov dword [esp + 0x44c], ebx
shr ecx, 2
mov dword [esp + 0x46c], ebx
mov dword [esp + 0x43c], ebx
mov dword [esp + 0x438], ebx
mov dword [esp + 0x444], ebx
mov dword [esp + 0x45c], ebx
mov dword [esp + 0x450], ebx
mov dword [esp + 0x448], ebx
mov dword [esp + 0x468], ebx
mov dword [esp + 0x440], ebx
mov dword [esp + 0x458], ebx
mov dword [esp + 0x430], ebx
mov dword [esp + 0x478], ebx
mov dword [esp + 0x470], ebx
mov dword [esp + 0x418], ebx
mov dword [esp + 0x460], ebx
mov dword [esp + 0x420], ebx
mov dword [esp + 0x434], ebx
mov dword [esp + 0x47c], ebx
mov dword [esp + 0x474], ebx
mov dword [esp + 0x41c], ebx
mov dword [esp + 0x464], ebx
mov dword [esp + 0x424], ebx
mov dword [esp + 0x454], ebx
mov edx, dword [esp + 0x14]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x174]
mov dword [esp + 0x428], ebx
mov dword [esp + 0x42c], ebx
mov dword [esp + 0x584], ebx
mov dword [esp + 0x588], ebx
mov dword [esp + 0x58c], ebx
mov dword [esp + 0x590], ebx
mov edi, dword [ecx + edx*4]
or ecx, 0xffffffff
lea edx, [esp + 0x3d4]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, 0x70
lea esi, [esp + 0x3d4]
lea edi, [esp + 0x6b0]
mov dword [esp + 0x408], ebx
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp + 0x5ae0]
lea ecx, [ebp + 0x5ad8]
push 0xffffffffffffffff
lea edx, [esi + 1]
push edx
call fcn.00411300
lea edi, [esi*8]
mov ecx, 0x70
sub edi, esi
mov esi, dword [ebp + 0x5adc]
shl edi, 6
add edi, esi
lea esi, [esp + 0x6b0]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp + 0x5ae0]
dec eax
push eax
lea eax, [esp + 0x20]
push eax
call fcn.00493800
add esp, 8
mov eax, dword [eax]
lea ecx, [esp + 0x3d4]
push eax
push ecx
lea ecx, [ebp + 0x5ba0]
mov byte [esp + 0x56e8], 0x12
call fcn.005672f2
mov ecx, eax
call fcn.00568895
lea ecx, [esp + 0x1c]
mov byte [esp + 0x56e0], 9
call fcn.0056870c
cmp dword [esp + 0x58c], ebx
je 0x40a147
cmp dword [esp + 0x590], ebx
je 0x40a147
mov eax, dword [ebp + 0x5ae0]
lea edx, [esp + 0x2c]
dec eax
push eax
push edx
call fcn.00493800
add esp, 8
mov eax, dword [eax]
lea ecx, [ebp + 0x5bbc]
push eax
lea eax, [esp + 0x3d8]
push eax
mov byte [esp + 0x56e8], 0x13
call fcn.005672f2
mov ecx, eax
call fcn.00568895
lea ecx, [esp + 0x2c]
mov byte [esp + 0x56e0], 9
call fcn.0056870c
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x178]
inc eax
cmp eax, ecx
mov dword [esp + 0x14], eax
jl 0x409e75
lea ecx, [ebp + 0x5b24]
mov dword [esp + 0x60], ebx
call fcn.005671ad
lea ecx, [esp + 0x60]
push ebx
push ecx
push ebx
push 0x5e7d74
lea ecx, [esp + 0x8c]
call fcn.00508190
mov ecx, dword [esp + 0x60]
cmp ecx, ebx
je 0x40a273
cmp eax, 2
mov eax, ecx
jne 0x40a19c
lea eax, [ecx - 1]
xor edx, edx
mov esi, 0x42
div esi
test edx, edx
jne 0x40a273
push ecx
call fcn.00567b03
add esp, 4
lea edx, [esp + 0x60]
mov esi, eax
lea ecx, [esp + 0x7c]
push ebx
push edx
push esi
push 0x5e7d74
mov dword [esp + 0x2c], esi
call fcn.00508190
cmp dword [esp + 0x60], 0x42
jb 0x40a26a
lea eax, [esi + 0x10]
mov dword [esp + 0x14], eax
mov eax, 0x32
sub eax, esi
mov dword [esp + 0x10], eax
mov esi, dword [esp + 0x14]
lea edi, [esp + 0xae4]
lea ecx, [esi - 0x10]
mov edx, dword [esi - 0x10]
mov dword [esp + 0x1c8], edx
mov eax, dword [ecx + 4]
mov dword [esp + 0x1cc], eax
mov edx, dword [ecx + 8]
mov dword [esp + 0x1d0], edx
lea edx, [esp + 0x1c8]
mov eax, dword [ecx + 0xc]
mov ecx, 0xc
mov dword [esp + 0x1d4], eax
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0xae4]
push ecx
push edx
lea ecx, [ebp + 0x5b24]
movsw word es:[edi], word [esi]
call fcn.005672f2
mov ecx, eax
call fcn.00568895
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
add eax, 0x42
mov dword [esp + 0x14], eax
add ecx, eax
cmp ecx, dword [esp + 0x60]
jbe 0x40a1ee
mov esi, dword [esp + 0x1c]
push esi
call fcn.00567b2c
add esp, 4
lea ecx, [ebp + 0x5b40]
mov dword [esp + 0x50], ebx
call fcn.005671ad
lea edx, [esp + 0x50]
push ebx
push edx
push ebx
push 0x5e7d64
lea ecx, [esp + 0x8c]
call fcn.00508190
mov ecx, dword [esp + 0x50]
cmp ecx, ebx
je 0x40a38a
cmp eax, 2
mov eax, ecx
jne 0x40a2b0
lea eax, [ecx - 1]
xor edx, edx
mov esi, 0x204
div esi
test edx, edx
jne 0x40a38a
push ecx
call fcn.00567b03
add esp, 4
mov esi, eax
lea eax, [esp + 0x50]
lea ecx, [esp + 0x7c]
push ebx
push eax
push esi
push 0x5e7d64
mov dword [esp + 0x2c], esi
call fcn.00508190
cmp dword [esp + 0x50], 0x204
jb 0x40a381
mov eax, 0x1f4
lea ecx, [esi + 0x10]
sub eax, esi
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], eax
mov esi, dword [esp + 0x14]
lea edi, [esp + 0x14e4]
lea edx, [esi - 0x10]
mov eax, dword [esi - 0x10]
mov dword [esp + 0x1e8], eax
mov ecx, dword [edx + 4]
mov dword [esp + 0x1ec], ecx
mov eax, dword [edx + 8]
mov dword [esp + 0x1f0], eax
lea eax, [esp + 0x1e8]
mov ecx, dword [edx + 0xc]
lea edx, [esp + 0x14e4]
mov dword [esp + 0x1f4], ecx
mov ecx, 0x7d
rep movsd dword es:[edi], dword [esi]
push edx
push eax
lea ecx, [ebp + 0x5b40]
call fcn.005672f2
mov ecx, eax
call fcn.00568895
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
add eax, 0x204
mov dword [esp + 0x14], eax
add ecx, eax
cmp ecx, dword [esp + 0x50]
jbe 0x40a305
mov esi, dword [esp + 0x1c]
push esi
call fcn.00567b2c
add esp, 4
lea ecx, [ebp + 0x5b5c]
mov dword [esp + 0x5c], ebx
call fcn.005671ad
lea edx, [esp + 0x5c]
push ebx
push edx
push ebx
push 0x5e7d54
lea ecx, [esp + 0x8c]
call fcn.00508190
mov ecx, dword [esp + 0x5c]
cmp ecx, ebx
je 0x40a49f
cmp eax, 2
mov eax, ecx
jne 0x40a3c7
lea eax, [ecx - 1]
test al, 0x1f
jne 0x40a49f
push ecx
call fcn.00567b03
add esp, 4
mov esi, eax
lea eax, [esp + 0x5c]
lea ecx, [esp + 0x7c]
push ebx
push eax
push esi
push 0x5e7d54
mov dword [esp + 0x2c], esi
call fcn.00508190
cmp dword [esp + 0x5c], 0x20
jb 0x40a496
mov eax, esi
mov edi, 0x10
sub edi, eax
lea esi, [eax + 0x10]
lea ecx, [esi - 0x10]
mov edx, dword [esi - 0x10]
mov dword [esp + 0x198], edx
mov eax, dword [ecx + 4]
mov dword [esp + 0x19c], eax
mov edx, dword [ecx + 8]
mov dword [esp + 0x1a0], edx
mov eax, dword [ecx + 0xc]
mov ecx, esi
mov dword [esp + 0x1a4], eax
mov edx, dword [ecx]
mov dword [esp + 0x1b8], edx
mov eax, dword [ecx + 4]
mov dword [esp + 0x1bc], eax
mov edx, dword [ecx + 8]
mov dword [esp + 0x1c0], edx
lea edx, [esp + 0x198]
mov eax, dword [ecx + 0xc]
lea ecx, [esp + 0x1b8]
push ecx
push edx
lea ecx, [ebp + 0x5b5c]
mov dword [esp + 0x1cc], eax
call fcn.005672f2
mov ecx, eax
call fcn.00568895
mov ecx, dword [esp + 0x5c]
add esi, 0x20
lea eax, [edi + esi]
cmp eax, ecx
jbe 0x40a40a
mov esi, dword [esp + 0x1c]
push esi
call fcn.00567b2c
add esp, 4
lea ecx, [ebp + 0x5aec]
mov dword [esp + 0x54], ebx
call fcn.005671ad
lea ecx, [esp + 0x54]
push ebx
push ecx
push ebx
push 0x5e7d40
lea ecx, [esp + 0x8c]
call fcn.00508190
mov ecx, dword [esp + 0x54]
cmp ecx, ebx
je 0x40a5b2
cmp eax, 2
mov eax, ecx
jne 0x40a4dc
lea eax, [ecx - 1]
xor edx, edx
mov esi, 0x42
div esi
test edx, edx
jne 0x40a5b2
push ecx
call fcn.00567b03
add esp, 4
lea edx, [esp + 0x54]
mov esi, eax
lea ecx, [esp + 0x7c]
push ebx
push edx
push esi
push 0x5e7d40
mov dword [esp + 0x2c], esi
call fcn.00508190
cmp dword [esp + 0x54], 0x42
jb 0x40a5a9
lea eax, [esi + 0x32]
mov dword [esp + 0x14], eax
mov eax, 0x10
sub eax, esi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x14]
mov ecx, 0xc
lea edi, [esp + 0xab0]
lea esi, [eax - 0x32]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov ecx, dword [eax]
mov dword [esp + 0x1d8], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x1dc], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x1e0], ecx
lea ecx, [esp + 0xab0]
mov edx, dword [eax + 0xc]
lea eax, [esp + 0x1d8]
push eax
push ecx
lea ecx, [ebp + 0x5aec]
mov dword [esp + 0x1ec], edx
call fcn.005672f2
mov ecx, eax
call fcn.00568895
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
add eax, 0x42
mov dword [esp + 0x14], eax
add edx, eax
cmp edx, dword [esp + 0x54]
jbe 0x40a52e
mov esi, dword [esp + 0x1c]
push esi
call fcn.00567b2c
add esp, 4
mov esi, dword [sym.imp.KERNEL32.dll_GetVersion]
mov edi, 1
mov dword [ebp + 0x4d40], edi
mov dword [ebp + 0x4d44], edi
mov dword [ebp + 0x4d48], edi
mov dword [ebp + 0x53c0], ebx
mov dword [ebp + 0x53c4], 0xbb8
mov dword [ebp + 0x53c8], 0x5dc
mov dword [ebp + 0x53cc], 3
call esi
cmp al, 4
jb 0x40a607
call esi
cmp eax, 0x80000000
mov eax, 0x64
jb 0x40a60c
mov eax, 0x1e
mov dword [ebp + 0x53d0], eax
mov dword [ebp + 0x4d3c], ebx
mov dword [ebp + 0x5a44], ebx
mov dword [ebp + 0x4d34], edi
mov dword [ebp + 0x4d38], edi
mov dword [ebp + 0x52b4], ebx
mov dword [ebp + 0x52b8], ebx
mov dword [ebp + 0x52bc], 8
mov dword [ebp + 0x52c0], ebx
mov dword [ebp + 0x4d50], 0x1f4
mov dword [ebp + 0x5320], ebx
mov dword [ebp + 0x4d4c], ebx
mov dword [ebp + 0x53b8], ebx
mov dword [ebp + 0x5a94], ebx
mov dword [ebp + 0x5350], edi
mov byte [ebp + 0x5354], bl
mov byte [ebp + 0x5386], bl
mov dword [ebp + 0x53bc], edi
mov dword [ebp + 0x59f8], ebx
mov dword [ebp + 0x59fc], 0xa
mov dword [ebp + 0x5a00], 0xed4e00
mov dword [ebp + 0x5a04], edi
mov dword [ebp + 0x5a08], ebx
mov dword [ebp + 0x5a0c], edi
mov dword [ebp + 0x5324], ebx
mov dword [ebp + 0x5328], ebx
mov dword [ebp + 0x4d10], 5
mov dword [ebp + 0x4d14], ebx
mov dword [ebp + 0x5330], edi
mov dword [ebp + 0x5334], ebx
mov dword [ebp + 0x5338], ebx
mov dword [ebp + 0x533c], 0x14
mov dword [ebp + 0x5340], 0x800000
mov dword [ebp + 0x5344], 0x10000
mov dword [ebp + 0x5348], 0x10000
mov dword [ebp + 0x534c], 0x40000
mov dword [ebp + 0x530c], ebx
mov dword [ebp + 0x531c], ebx
mov dword [ebp + 0x52f0], ebx
call esi
cmp al, 5
jb 0x40a732
call esi
cmp eax, 0x80000000
mov eax, 2
jb 0x40a737
mov eax, 3
mov dword [ebp + 0x5310], eax
mov dword [ebp + 0x5314], ebx
mov eax, 0x64
mov dword [ebp + 0x5318], ebx
mov dword [ebp + 0x5a48], eax
mov dword [ebp + 0x5a54], eax
mov dword [ebp + 0x5a60], eax
mov dword [ebp + 0x5a50], 0x96
mov dword [ebp + 0x5a58], 0x96
mov dword [ebp + 0x5a5c], eax
mov edi, 0x5fe7d8
or ecx, 0xffffffff
xor eax, eax
mov dword [ebp + 0x4d54], 1
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0xb18]
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [ebp + 0x4d58]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x5fe7d8
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea eax, [ebp + 0x4d48]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
mov byte [ebp + 0x4e5c], bl
mov byte [ebp + 0x4f60], bl
mov byte [ebp + 0x5064], bl
mov byte [ebp + 0x53de], bl
mov byte [ebp + 0x54e2], bl
mov byte [ebp + 0x55e6], bl
mov byte [ebp + 0x56ea], bl
mov byte [ebp + 0x58f2], bl
push 0x5e7d30
lea ecx, [esp + 0x84]
mov byte [ebp + 0x57ee], bl
call fcn.00507c90
lea eax, [ebp + 0x4d44]
lea ecx, [esp + 0x7c]
push eax
push 0x5e7d20
call fcn.00507c90
lea eax, [ebp + 0x4d40]
lea ecx, [esp + 0x7c]
push eax
push 0x5e7d14
call fcn.00507c90
lea eax, [ebp + 0x53c0]
lea ecx, [esp + 0x7c]
push eax
push 0x5e7d08
call fcn.00507c90
lea eax, [ebp + 0x53c4]
lea ecx, [esp + 0x7c]
push eax
push 0x5e7cf8
call fcn.00507c90
lea eax, [ebp + 0x53c8]
lea ecx, [esp + 0x7c]
push eax
push 0x5e7ce8
call fcn.00507c90
lea eax, [ebp + 0x53cc]
push eax
push 0x5e7cd8
lea ecx, [esp + 0x84]
call fcn.00507c90
call dword [sym.imp.KERNEL32.dll_GetVersion]
cmp al, 4
jb 0x40a8c0
call dword [sym.imp.KERNEL32.dll_GetVersion]
cmp eax, 0x80000000
mov ecx, 0x5e7cc8
jb 0x40a8c5
mov ecx, 0x5e7cb8
lea eax, [ebp + 0x53d0]
push eax
push ecx
lea ecx, [esp + 0x84]
call fcn.00507c90
lea eax, [ebp + 0x4d3c]
lea ecx, [esp + 0x7c]
push eax
push 0x5e7cac
call fcn.00507c90
lea eax, [ebp + 0x5a44]
lea ecx, [esp + 0x7c]
push eax
push 0x5e7ca0
call fcn.00507c90
lea eax, [ebp + 0x4d34]
lea ecx, [esp + 0x7c]
push eax
push 0x5e7c8c
call fcn.00507c90
lea eax, [ebp + 0x4d38]
lea ecx, [esp + 0x7c]
push eax
push 0x5e7c7c
call fcn.00507c90
lea esi, [ebp + 0x52b4]
lea ecx, [esp + 0x7c]
push esi
push 0x5e7c6c
call fcn.00507c90
cmp dword [esi], ebx
je 0x40a95b
lea eax, [ebp + 0x52b8]
lea ecx, [esp + 0x7c]
push eax
push 0x5e7c58
call fcn.00507c90
lea esi, [ebp + 0x52bc]
lea ecx, [esp + 0x7c]
push esi
push 0x5e7c48
call fcn.00507c90
lea eax, [ebp + 0x5334]
lea ecx, [esp + 0x7c]
push eax
push 0x5e7c34
call fcn.00507c90
lea eax, [ebp + 0x5338]
lea ecx, [esp + 0x7c]
push eax
push 0x5e7c24
call fcn.00507c90
lea eax, [ebp + 0x533c]
lea ecx, [esp + 0x7c]
push eax
push 0x5e7c14
call fcn.00507c90
lea edi, [ebp + 0x5340]
lea ecx, [esp + 0x7c]
push edi
push 0x5e7c08
call fcn.00507c90
cmp dword [edi], 0x100000
jge 0x40a9d2
mov dword [edi], 0x800000
lea edi, [ebp + 0x5344]
lea ecx, [esp + 0x7c]
push edi
push 0x5e7bf8
call fcn.00507c90
cmp dword [edi], 8
jge 0x40a9f2
mov dword [edi], 0x10000
lea edi, [ebp + 0x5348]
lea ecx, [esp + 0x7c]
push edi
push 0x5e7be4
call fcn.00507c90
cmp dword [edi], 8
jge 0x40aa12
mov dword [edi], 0x10000
lea edi, [ebp + 0x534c]
lea ecx, [esp + 0x7c]
push edi
push 0x5e7bd4
call fcn.00507c90
cmp dword [edi], 0x2000
jge 0x40aa35
mov dword [edi], 0x40000
mov eax, dword [esi]
mov ecx, eax
shl ecx, 6
add ecx, eax
shl ecx, 2
push ecx
call fcn.00567b03
mov edi, eax
add esp, 4
mov dword [ebp + 0x52c4], edi
mov eax, dword [esi]
mov ecx, eax
push ebx
shl ecx, 6
add ecx, eax
xor eax, eax
shl ecx, 2
mov edx, ecx
push 0x104
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [ebp + 0x52c4]
lea ecx, [esp + 0x84]
push eax
push 0x5e7bc4
call fcn.00507ef0
mov eax, dword [esi]
lea eax, [eax + eax*4]
lea ecx, [eax + eax*4]
shl ecx, 1
push ecx
call fcn.00567b03
mov edi, eax
add esp, 4
mov dword [ebp + 0x52c8], edi
mov eax, dword [esi]
mov dword [esp + 0x14], ebx
lea eax, [eax + eax*4]
lea ecx, [eax + eax*4]
xor eax, eax
shl ecx, 1
mov edx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
cmp dword [esi], ebx
jle 0x40ab65
mov dword [esp + 0x20], ebx
mov dword [esp + 0x30], ebx
mov eax, dword [ebp + 0x1a8]
mov edx, dword [ebp + 0x52c4]
push 0x104
push eax
mov eax, dword [esp + 0x38]
add eax, edx
push eax
call fcn.0043a0b0
mov eax, dword [esp + 0x20]
add esp, 0xc
xor ecx, ecx
cmp eax, 8
mov edx, dword [esp + 0x20]
mov esi, dword [ebp + 0x52c8]
setge cl
dec ecx
add edx, esi
and ecx, eax
xor eax, eax
mov edi, dword [ecx*4 + 0x5e76f4]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
mov edx, dword [esp + 0x20]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x14]
and ecx, 3
inc eax
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x30]
mov ecx, dword [ebp + 0x52bc]
add esi, 0x104
add edx, 0x32
cmp eax, ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x30], esi
mov dword [esp + 0x20], edx
jl 0x40aad5
lea eax, [ebp + 0x4d50]
lea ecx, [esp + 0x7c]
push eax
push 0x5e7bb4
call fcn.00507c90
lea eax, [ebp + 0x5320]
lea ecx, [esp + 0x7c]
push eax
push 0x5e7ba4
call fcn.00507c90
lea eax, [ebp + 0x4d4c]
lea ecx, [esp + 0x7c]
push eax
push 0x5e7b90
call fcn.00507c90
lea eax, [ebp + 0x53b8]
lea ecx, [esp + 0x7c]
push eax
push 0x5e7b80
call fcn.00507c90
lea eax, [ebp + 0x5a94]
lea ecx, [esp + 0x7c]
push eax
push 0x5e7b70
call fcn.00507c90
lea esi, [ebp + 0x5350]
lea ecx, [esp + 0x7c]
push esi
push 0x5e7b5c
call fcn.00507c90
mov edx, dword [esi]
xor ecx, ecx
cmp edx, 1
lea eax, [ebp + 0x53bc]
sete cl
mov dword [esi], ecx
push eax
push 0x5e7b48
lea ecx, [esp + 0x84]
call fcn.00507c90
push ebx
lea eax, [ebp + 0x5354]
push 0x32
push eax
push 0x5e7b38
lea ecx, [esp + 0x8c]
call fcn.00507ef0
push ebx
lea eax, [ebp + 0x5386]
push 0x32
push eax
push 0x5e7b24
lea ecx, [esp + 0x8c]
call fcn.00507ef0
lea eax, [ebp + 0x59f8]
lea ecx, [esp + 0x7c]
push eax
push 0x5e7b18
call fcn.00507ce0
lea eax, [ebp + 0x5a00]
lea ecx, [esp + 0x7c]
push eax
push 0x5e7b04
call fcn.00507c90
lea eax, [ebp + 0x5324]
lea ecx, [esp + 0x7c]
push eax
push 0x5e7af4
call fcn.00507c90
lea esi, [ebp + 0x4d54]
lea ecx, [esp + 0x7c]
push esi
push 0x5e7ae4
call fcn.00507c90
call fcn.00578d59
mov eax, dword [eax + 4]
mov edx, dword [esi]
push edx
mov ecx, eax
call fcn.00474340
push ebx
lea esi, [ebp + 0x4d58]
push 0x104
push esi
push 0x5e7ad8
lea ecx, [esp + 0x8c]
call fcn.00507ef0
mov edi, 0x5fe7d8
mov cl, byte [esi]
mov dl, byte [edi]
mov al, cl
cmp cl, dl
jne 0x40acee
cmp al, bl
je 0x40acea
mov dl, byte [esi + 1]
mov cl, byte [edi + 1]
mov al, dl
cmp dl, cl
jne 0x40acee
add esi, 2
add edi, 2
cmp al, bl
jne 0x40acc6
xor eax, eax
jmp 0x40acf3
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x40ae03
push 0x104
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push 0x5fe7d8
call fcn.0056877a
lea eax, [esp + 0x18]
push eax
call fcn.00441aa0
add esp, 8
mov ecx, eax
mov byte [esp + 0x56e4], 0x14
call fcn.0040d0c0
lea ecx, [esp + 0xb1c]
push eax
push ecx
call fcn.0043a0b0
add esp, 0xc
lea ecx, [esp + 0x10]
mov byte [esp + 0x56e0], 9
call fcn.0056870c
push 1
push ecx
lea edx, [esp + 0xb20]
mov ecx, esp
mov dword [esp + 0x20], esp
push edx
call fcn.0056877a
call fcn.004416c0
add esp, 8
lea eax, [esp + 0xb18]
lea ecx, [esp + 0x10]
push 1
push eax
call fcn.0056877a
push ecx
mov byte [esp + 0x56e8], 0x15
mov ecx, esp
mov dword [esp + 0x20], esp
push 0x5e7ad0
push eax
push ecx
call fcn.005689a1
call fcn.004416c0
add esp, 8
lea ecx, [esp + 0x10]
mov byte [esp + 0x56e0], 9
call fcn.0056870c
mov edi, 0x5e7ac0
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0xb18]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0x104
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0xb1c]
mov ecx, edx
push eax
and ecx, 3
lea eax, [ebp + 0x4d58]
rep movsb byte es:[edi], byte [esi]
push eax
call fcn.0043a0b0
add esp, 0xc
jmp 0x40ae6b
lea esi, [ebp + 0x4d58]
push esi
call fcn.0043ea50
add esp, 4
test al, al
jne 0x40ae6b
lea ecx, [esp + 0x1c]
push esi
push ecx
call fcn.004cd470
add esp, 8
push 1
push ecx
lea edx, [esp + 0x24]
mov ecx, esp
mov dword [esp + 0x20], esp
push edx
mov byte [esp + 0x56ec], 0x16
call fcn.00568481
call fcn.004416c0
push 0x104
lea eax, [esp + 0xb24]
push esi
push eax
call fcn.0043a0b0
add esp, 0x14
lea ecx, [esp + 0x1c]
mov byte [esp + 0x56e0], 9
call fcn.0056870c
push ecx
lea esi, [ebp + 0x4d58]
mov ecx, esp
mov dword [esp + 0x1c], esp
push esi
call fcn.0056877a
mov byte [esp + 0x56e4], 9
call fcn.0040d0d0
mov ecx, eax
call fcn.00473fa0
cmp dword [ebp + 0x4d54], ebx
je 0x40aea3
push esi
call fcn.0048f270
add esp, 4
or ecx, 0xffffffff
mov edi, 0x5e7abc
xor eax, eax
lea edx, [ebp + 0x526c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push ebx
mov eax, ecx
mov esi, edi
shr ecx, 2
mov edi, edx
push 0xc
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
push edx
rep movsb byte es:[edi], byte [esi]
or ecx, 0xffffffff
mov edi, 0x5e7ab8
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0x5e7a9c
mov eax, ecx
mov esi, edi
shr ecx, 2
lea edi, [ebp + 0x5278]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x5e7a94
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
lea edi, [ebp + 0x5284]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x5e7a8c
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
lea edi, [ebp + 0x5290]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x5e7a88
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
lea edi, [ebp + 0x529c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x8c]
call fcn.00507ef0
push ebx
lea eax, [ebp + 0x5278]
push 0xc
push eax
push 0x5e7a6c
lea ecx, [esp + 0x8c]
call fcn.00507ef0
push ebx
lea eax, [ebp + 0x5284]
push 0xc
push eax
push 0x5e7a54
lea ecx, [esp + 0x8c]
call fcn.00507ef0
push ebx
lea eax, [ebp + 0x5290]
push 0xc
push eax
push 0x5e7a40
lea ecx, [esp + 0x8c]
call fcn.00507ef0
push ebx
lea eax, [ebp + 0x529c]
push 0xc
push eax
push 0x5e7a2c
lea ecx, [esp + 0x8c]
call fcn.00507ef0
push ebx
lea eax, [ebp + 0x5064]
push 0x104
push eax
push 0x5e7a18
lea ecx, [esp + 0x8c]
call fcn.00507ef0
push ebx
lea eax, [ebp + 0x4f60]
push 0x104
push eax
push 0x5e7a04
lea ecx, [esp + 0x8c]
call fcn.00507ef0
push ebx
lea eax, [ebp + 0x4e5c]
push 0x104
push eax
push 0x5e79f4
lea ecx, [esp + 0x8c]
call fcn.00507ef0
push ebx
lea eax, [ebp + 0x53de]
push 0x104
push eax
push 0x5e79e8
lea ecx, [esp + 0x8c]
call fcn.00507ef0
push ebx
lea eax, [ebp + 0x54e2]
push 0x104
push eax
push 0x5e79dc
lea ecx, [esp + 0x8c]
call fcn.00507ef0
push ebx
lea eax, [ebp + 0x55e6]
push 0x104
push eax
push 0x5e79c8
lea ecx, [esp + 0x8c]
call fcn.00507ef0
push ebx
lea eax, [ebp + 0x56ea]
push 0x104
push eax
push 0x5e79bc
lea ecx, [esp + 0x8c]
call fcn.00507ef0
push ebx
lea eax, [ebp + 0x58f2]
push 0x104
push eax
push 0x5e79ac
lea ecx, [esp + 0x8c]
call fcn.00507ef0
push ebx
lea eax, [ebp + 0x57ee]
push 0x104
push eax
push 0x5e799c
lea ecx, [esp + 0x8c]
call fcn.00507ef0
call fcn.00578d59
mov eax, dword [eax + 4]
cmp dword [eax + 0x284], ebx
je 0x40b19e
call fcn.00578d59
mov eax, dword [eax + 4]
lea ecx, [esp + 0x20]
add eax, 0x288
push eax
call fcn.00568481
mov ecx, dword [esp + 0x20]
lea edx, [esp + 0x10]
mov byte [esp + 0x56e0], 0x18
mov eax, dword [ecx - 8]
lea ecx, [esp + 0x20]
add eax, 0xfffffffb
push eax
push edx
call fcn.00563a94
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x56e4], 0x19
call fcn.00568845
lea ecx, [esp + 0x10]
mov byte [esp + 0x56e0], 0x18
call fcn.0056870c
mov edi, dword [esp + 0x20]
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp + 0x5168]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov byte [esp + 0x56e0], 9
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x20]
call fcn.0056870c
jmp 0x40b27a
mov edi, 0x5fe7d8
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp + 0x5168]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push ebx
mov eax, ecx
mov esi, edi
mov edi, edx
push 0x104
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push edx
and ecx, 3
push 0x5e798c
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x8c]
call fcn.00507ef0
mov edi, 0x5fe7d8
lea esi, [ebp + 0x5168]
mov cl, byte [esi]
mov dl, byte [edi]
mov al, cl
cmp cl, dl
jne 0x40b211
cmp al, bl
je 0x40b20d
mov dl, byte [esi + 1]
mov cl, byte [edi + 1]
mov al, dl
cmp dl, cl
jne 0x40b211
add esi, 2
add edi, 2
cmp al, bl
jne 0x40b1e9
xor eax, eax
jmp 0x40b216
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x40b26d
push 0x104
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push 0x5fe7d8
call fcn.0056877a
lea eax, [esp + 0x18]
push eax
call fcn.00441aa0
add esp, 8
mov ecx, eax
mov byte [esp + 0x56e4], 0x1a
call fcn.0040d0c0
push eax
lea eax, [ebp + 0x5168]
push eax
call fcn.0043a0b0
add esp, 0xc
lea ecx, [esp + 0x10]
mov byte [esp + 0x56e0], 9
call fcn.0056870c
call fcn.00578d59
mov ecx, dword [eax + 4]
call fcn.00475050
lea ecx, [esp + 0x1f8]
call fcn.00548510
lea esi, [ebp + 0x5168]
push ebx
push esi
lea ecx, [esp + 0x200]
mov byte [esp + 0x56e8], 0x1b
call fcn.005485d3
xor edi, edi
cmp eax, ebx
je 0x40b2d0
lea ecx, [esp + 0x1f8]
call fcn.005487f3
mov edx, dword [esp + 0x1f8]
push 0x10
lea ecx, [esp + 0x1fc]
call dword [edx + 0x38]
cmp eax, ebx
je 0x40b2d0
mov edi, 1
lea ecx, [esp + 0x1f8]
call fcn.00548589
cmp edi, ebx
jne 0x40b345
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x40b345
push 0x104
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push 0x5fe7d8
call fcn.0056877a
lea eax, [esp + 0x18]
push eax
call fcn.00441aa0
add esp, 8
mov ecx, eax
mov byte [esp + 0x56e4], 0x1c
call fcn.0040d0c0
push eax
push esi
call fcn.0043a0b0
add esp, 0xc
lea ecx, [esp + 0x10]
mov byte [esp + 0x56e0], 0x1b
call fcn.0056870c
call fcn.00578d59
mov ecx, dword [eax + 4]
call fcn.00475050
lea eax, [ebp + 0x5354]
lea ecx, [esp + 0x34]
push eax
call fcn.0056877a
lea eax, [ebp + 0x5386]
lea ecx, [esp + 0x38]
push eax
mov byte [esp + 0x56e4], 0x1d
call fcn.0056877a
lea ecx, [esp + 0x34]
mov byte [esp + 0x56e0], 0x1e
call fcn.00563f13
lea ecx, [esp + 0x34]
call fcn.00563ec7
lea ecx, [esp + 0x38]
call fcn.00563f13
lea ecx, [esp + 0x38]
call fcn.00563ec7
mov ecx, dword [esp + 0x34]
push 0x5fe7d8
push ecx
call fcn.005503ed
add esp, 8
test eax, eax
jne 0x40b582
mov edx, dword [esp + 0x38]
push 0x5fe7d8
push edx
call fcn.005503ed
add esp, 8
test eax, eax
jne 0x40b582
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x7c]
push eax
push 0x5e7984
mov dword [esp + 0x24], ebx
call fcn.00507c90
cmp dword [esp + 0x1c], ebx
jne 0x40b582
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 0x5e7978
call fcn.0056877a
lea ecx, [esp + 0x14]
push ecx
mov ecx, ebp
call fcn.004101d0
push eax
lea ecx, [esp + 0x38]
mov byte [esp + 0x56e4], 0x1f
call fcn.00568845
lea ecx, [esp + 0x10]
mov byte [esp + 0x56e0], 0x1e
call fcn.0056870c
lea ecx, [esp + 0x34]
call fcn.00563f13
lea ecx, [esp + 0x34]
call fcn.00563ec7
mov edx, dword [esp + 0x34]
push 0x5fe7d8
push edx
call fcn.005503ed
add esp, 8
test eax, eax
je 0x40b4b8
mov eax, dword [esp + 0x34]
cmp dword [eax - 8], 0x31
jl 0x40b493
lea ecx, [esp + 0x10]
push 0x31
push ecx
lea ecx, [esp + 0x3c]
call fcn.00563a94
push eax
lea ecx, [esp + 0x38]
mov byte [esp + 0x56e4], 0x20
call fcn.00568845
lea ecx, [esp + 0x10]
mov byte [esp + 0x56e0], 0x1e
call fcn.0056870c
mov edi, dword [esp + 0x34]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
lea edi, [ebp + 0x5354]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 0x5e7968
call fcn.0056877a
lea eax, [esp + 0x14]
mov ecx, ebp
push eax
call fcn.004101d0
push eax
lea ecx, [esp + 0x3c]
mov byte [esp + 0x56e4], 0x21
call fcn.00568845
lea ecx, [esp + 0x10]
mov byte [esp + 0x56e0], 0x1e
call fcn.0056870c
lea ecx, [esp + 0x38]
call fcn.00563f13
lea ecx, [esp + 0x38]
call fcn.00563ec7
mov ecx, dword [esp + 0x38]
push 0x5fe7d8
push ecx
call fcn.005503ed
add esp, 8
test eax, eax
je 0x40b582
mov edx, dword [esp + 0x38]
cmp dword [edx - 8], 0x31
jl 0x40b55d
lea eax, [esp + 0x10]
push 0x31
push eax
lea ecx, [esp + 0x40]
call fcn.00563a94
push eax
lea ecx, [esp + 0x3c]
mov byte [esp + 0x56e4], 0x22
call fcn.00568845
lea ecx, [esp + 0x10]
mov byte [esp + 0x56e0], 0x1e
call fcn.0056870c
mov edi, dword [esp + 0x38]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
lea edi, [ebp + 0x5386]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 1
push 0x5e795c
lea ecx, [esp + 0x84]
call fcn.00507a90
test eax, eax
je 0x40b624
lea eax, [ebp + 0x5a48]
lea ecx, [esp + 0x7c]
push eax
push 0x5e7948
call fcn.00507c90
lea eax, [ebp + 0x5a54]
lea ecx, [esp + 0x7c]
push eax
push 0x5e7934
call fcn.00507c90
lea eax, [ebp + 0x5a60]
lea ecx, [esp + 0x7c]
push eax
push 0x5e7920
call fcn.00507c90
lea eax, [ebp + 0x5a50]
lea ecx, [esp + 0x7c]
push eax
push 0x5e790c
call fcn.00507c90
lea eax, [ebp + 0x5a58]
lea ecx, [esp + 0x7c]
push eax
push 0x5e78f8
call fcn.00507c90
lea eax, [ebp + 0x5a5c]
lea ecx, [esp + 0x7c]
push eax
push 0x5e78e8
call fcn.00507c90
lea ecx, [esp + 0x7c]
call fcn.00507c30
lea ecx, [esp + 0x184]
call fcn.00566653
push 0xffffffffffffffff
push ebx
lea ecx, [esp + 0x18c]
mov byte [esp + 0x56e8], 0x23
call fcn.005666e6
push ebx
push 0x5e78d8
lea ecx, [esp + 0x84]
call fcn.00507a90
test eax, eax
jne 0x40b67d
lea eax, [esp + 0x184]
mov ecx, ebp
push eax
call fcn.00410710
lea ecx, [esp + 0x184]
push ecx
mov ecx, ebp
call fcn.004102d0
jmp 0x40b686
lea ecx, [esp + 0x7c]
call fcn.00507c30
push 1
push 0x5e78d8
lea ecx, [esp + 0x84]
call fcn.00507a90
mov edi, dword [sym.imp.USER32.dll_wsprintfA]
test eax, eax
je 0x40b718
xor esi, esi
mov eax, esi
lea edx, [esp + 0x594]
push eax
push 0x5e78d4
push edx
inc esi
call edi
add esp, 0xc
lea eax, [esp + 0x101c]
lea ecx, [esp + 0x594]
push ebx
push 0xc8
push eax
push ecx
lea ecx, [esp + 0x8c]
call fcn.00507ef0
cmp eax, 1
jne 0x40b700
mov eax, dword [esp + 0x18c]
lea edx, [esp + 0x101c]
push edx
push eax
lea ecx, [esp + 0x18c]
call fcn.0056688f
jmp 0x40b6a5
lea ecx, [esp + 0x7c]
call fcn.00507c30
lea ecx, [esp + 0x184]
push ecx
mov ecx, ebp
call fcn.004102d0
call fcn.00578d59
mov edi, dword [eax + 4]
cmp dword [edi + 0x1c4], ebx
je 0x40b76b
mov eax, dword [edi + 0x1c8]
mov dword [esp + 0x14], ebx
cmp eax, ebx
jbe 0x40b76b
mov edx, dword [edi + 0x1c4]
mov eax, dword [esp + 0x14]
mov esi, dword [edx + eax*4]
cmp esi, ebx
je 0x40b758
lea ecx, [esi + 0xc]
push 1
push ecx
call fcn.00563f93
mov esi, dword [esi]
cmp esi, ebx
jne 0x40b747
mov eax, dword [esp + 0x14]
mov ecx, dword [edi + 0x1c8]
inc eax
cmp eax, ecx
mov dword [esp + 0x14], eax
jb 0x40b736
mov eax, dword [edi + 0x1c4]
push eax
call fcn.00567b2c
mov dword [edi + 0x1c4], ebx
mov dword [edi + 0x1cc], ebx
mov dword [edi + 0x1d0], ebx
mov ecx, dword [edi + 0x1d4]
add esp, 4
call fcn.00566a7b
push ebx
push 0x5e78c4
lea ecx, [esp + 0x84]
mov dword [edi + 0x1d4], ebx
call fcn.00507a90
test eax, eax
je 0x40c181
xor esi, esi
mov dword [esp + 0x1c], esi
push ebx
lea edx, [esp + 0x598]
push 0xc8
push edx
push esi
lea ecx, [esp + 0x8c]
call fcn.00508550
test eax, eax
jne 0x40b7fe
lea eax, [esp + 0x594]
push 0xc8
push eax
push esi
lea ecx, [esp + 0x88]
call fcn.00508440
test eax, eax
je 0x40c178
lea ecx, [esp + 0x20]
push 1
push ecx
lea edx, [esp + 0x59c]
push ebx
push edx
lea ecx, [esp + 0x8c]
mov dword [esp + 0x30], ebx
call fcn.00508190
mov eax, dword [esp + 0x20]
cmp eax, 0x278
jb 0x40c168
push eax
call fcn.00567b03
mov edx, eax
or ecx, 0xffffffff
mov edi, 0x5fe7d8
xor eax, eax
add esp, 4
lea esi, [esp + 0x6b4]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x10], esi
mov eax, ecx
mov esi, edi
mov edi, dword [esp + 0x10]
mov dword [esp + 0x28], edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
or ecx, 0xffffffff
mov edi, 0x5fe7d8
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea esi, [esp + 0x6e6]
mov eax, ecx
mov dword [esp + 0x10], esi
mov esi, edi
mov edi, dword [esp + 0x10]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x5fe7d8
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
lea esi, [esp + 0x726]
sub edi, ecx
mov eax, ecx
mov dword [esp + 0x10], esi
mov esi, edi
mov edi, dword [esp + 0x10]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x5fe7d8
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
lea esi, [esp + 0x826]
sub edi, ecx
mov eax, ecx
mov dword [esp + 0x10], esi
mov esi, edi
mov edi, dword [esp + 0x10]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x5fe7d8
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
lea esi, [esp + 0x86a]
sub edi, ecx
mov eax, ecx
mov dword [esp + 0x10], esi
mov esi, edi
mov edi, dword [esp + 0x10]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
push 1
rep movsb byte es:[edi], byte [esi]
or ecx, 0xffffffff
mov edi, 0x5fe7d8
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea esi, [esp + 0x8b2]
mov eax, ecx
mov dword [esp + 0x14], esi
mov esi, edi
mov edi, dword [esp + 0x14]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
or ecx, 0xffffffff
mov edi, 0x5fe7d8
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea esi, [esp + 0x8c2]
mov eax, ecx
mov dword [esp + 0x14], esi
mov esi, edi
mov edi, dword [esp + 0x14]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x5fe7d8
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
lea esi, [esp + 0x8f0]
sub edi, ecx
mov eax, ecx
mov dword [esp + 0x14], esi
mov esi, edi
mov edi, dword [esp + 0x14]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x5fe7d8
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
lea esi, [esp + 0x90c]
sub edi, ecx
mov eax, ecx
mov dword [esp + 0x14], esi
mov esi, edi
mov edi, dword [esp + 0x14]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x24]
push ecx
push edx
lea edx, [esp + 0x5a0]
lea ecx, [esp + 0x88]
push edx
call fcn.00508190
test eax, eax
je 0x40c15b
push 0x10
lea eax, [esp + 0x598]
push ebx
push eax
call fcn.00550858
add esp, 0xc
lea ecx, [esp + 0x78]
mov dword [esp + 0x78], eax
push 4
push ecx
lea ecx, [esp + 0x74]
call fcn.00404a90
mov eax, dword [esp + 0x20]
mov byte [esp + 0x56e0], 0x24
cmp eax, 0x4000
jle 0x40ba4b
mov edx, dword [esp + 0x28]
push edx
jmp 0x40bb7c
mov esi, dword [esp + 0x28]
mov ecx, eax
mov edx, ecx
lea edi, [esp + 0x16d8]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebx
and ecx, 3
push ebx
push 0x22
push eax
rep movsb byte es:[edi], byte [esi]
lea eax, [esp + 0x16e8]
lea ecx, [esp + 0x16e8]
push eax
push ecx
lea ecx, [esp + 0x84]
call fcn.00405720
mov edx, dword [esp + 0x28]
mov dword [esp + 0x20], eax
push edx
call fcn.00567b2c
mov eax, dword [esp + 0x24]
add esp, 4
cmp eax, ebx
jne 0x40bac1
lea ecx, [esp + 0x6c]
mov byte [esp + 0x56e0], 0x23
call fcn.00404ad0
mov eax, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x1c], eax
mov esi, eax
jmp 0x40b7bd
push eax
call fcn.00567b03
mov ecx, dword [esp + 0x24]
lea esi, [esp + 0x16dc]
mov edx, ecx
mov edi, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
add esp, 4
and ecx, 3
mov dword [esp + 0x28], eax
rep movsb byte es:[edi], byte [esi]
mov edx, dword [eax]
xor ecx, ecx
mov dword [esp + 0x160], ecx
mov dword [esp + 0x160], edx
mov dword [esp + 0x164], ecx
mov edi, 0x5e78b8
mov dword [esp + 0x168], ecx
lea esi, [esp + 0x160]
mov dword [esp + 0x16c], ecx
mov ecx, dword [eax + 4]
mov dword [esp + 0x164], ecx
mov edx, dword [eax + 8]
mov dword [esp + 0x168], edx
mov cx, word [eax + 0xc]
mov word [esp + 0x16c], cx
mov dl, byte [eax + 0xe]
mov byte [esp + 0x16e], dl
mov cl, byte [esi]
mov dl, byte [edi]
mov al, cl
cmp cl, dl
jne 0x40bb6e
cmp al, bl
je 0x40bb6a
mov dl, byte [esi + 1]
mov cl, byte [edi + 1]
mov al, dl
cmp dl, cl
jne 0x40bb6e
add esi, 2
add edi, 2
cmp al, bl
jne 0x40bb46
xor eax, eax
jmp 0x40bb73
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x40bba5
mov eax, dword [esp + 0x28]
push eax
call fcn.00567b2c
add esp, 4
lea ecx, [esp + 0x6c]
mov byte [esp + 0x56e0], 0x23
call fcn.00404ad0
mov eax, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x1c], eax
mov esi, eax
jmp 0x40b7bd
mov ecx, dword [esp + 0x28]
mov eax, dword [0x5f9f88]
lea edi, [esp + 0x6b0]
lea esi, [ecx + 0x10]
mov ecx, 0x9a
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x8e4], ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x30], eax
mov edx, dword [esp + 0x6b0]
lea eax, [esp + 0x14]
push edx
push 0x5e78b0
push eax
mov byte [esp + 0x56ec], 0x26
call fcn.00563eb4
add esp, 0xc
lea ecx, [esp + 0x594]
push ecx
lea ecx, [esp + 0x34]
call fcn.00568895
lea ecx, [esp + 0x30]
call fcn.00563ec7
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x30]
push edx
push eax
call fcn.005503ed
add esp, 8
test eax, eax
je 0x40bc70
mov ecx, dword [esp + 0x28]
push ecx
call fcn.00567b2c
add esp, 4
lea ecx, [esp + 0x30]
mov byte [esp + 0x56e0], 0x25
call fcn.0056870c
lea ecx, [esp + 0x14]
mov byte [esp + 0x56e0], 0x24
call fcn.0056870c
lea ecx, [esp + 0x6c]
mov byte [esp + 0x56e0], 0x23
call fcn.00404ad0
mov eax, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x1c], eax
mov esi, eax
jmp 0x40b7bd
xor esi, esi
call fcn.00578d59
mov eax, dword [eax + 4]
cmp dword [eax + 0x1e4], ebx
jle 0x40bcb5
xor edi, edi
call fcn.00578d59
mov eax, dword [eax + 4]
mov edx, dword [eax + 0x1e0]
mov eax, dword [esp + 0x6b0]
cmp dword [edx + edi], eax
je 0x40bcb5
inc esi
add edi, 0x268
call fcn.00578d59
mov eax, dword [eax + 4]
cmp esi, dword [eax + 0x1e4]
jl 0x40bc84
call fcn.00578d59
mov eax, dword [eax + 4]
cmp esi, dword [eax + 0x1e4]
jl 0x40bfc9
call fcn.00578d59
mov edi, dword [eax + 4]
mov dword [esp + 0x24], edi
mov ecx, dword [edi + 0x1e4]
mov eax, ecx
mov dword [esp + 0x10], eax
lea esi, [eax + 1]
mov eax, dword [edi + 0x1e0]
cmp esi, ebx
jne 0x40bd16
cmp eax, ebx
je 0x40bd05
push eax
mov dword [esp + 0x1c], ecx
call fcn.00567b2c
add esp, 4
mov dword [edi + 0x1e0], ebx
mov dword [edi + 0x1e8], ebx
mov dword [edi + 0x1e4], ebx
jmp 0x40be6d
cmp eax, ebx
jne 0x40bd4d
lea ecx, [esi + esi*8]
lea edx, [esi + ecx*2]
lea eax, [esi + edx*4]
shl eax, 3
push eax
call fcn.00567b03
add esp, 4
mov dword [edi + 0x1e0], eax
push esi
push eax
call fcn.00411790
mov dword [edi + 0x1e8], esi
mov dword [edi + 0x1e4], esi
jmp 0x40be6d
mov edx, dword [edi + 0x1e8]
cmp esi, edx
mov dword [esp + 0x40], edx
jg 0x40bd94
cmp ecx, esi
jge 0x40bd81
mov edx, esi
sub edx, ecx
push edx
lea edx, [ecx + ecx*8]
lea edx, [ecx + edx*2]
lea ecx, [ecx + edx*4]
lea edx, [eax + ecx*8]
push edx
call fcn.00411790
mov dword [edi + 0x1e4], esi
jmp 0x40be6d
jle 0x40bd89
sub ecx, esi
mov dword [esp + 0x18], ecx
mov dword [edi + 0x1e4], esi
jmp 0x40be6d
mov eax, dword [edi + 0x1ec]
cmp eax, ebx
jne 0x40bdc1
mov eax, ecx
cdq
and edx, 7
add eax, edx
sar eax, 3
cmp eax, 4
jge 0x40bdb5
mov eax, 4
jmp 0x40bdc1
cmp eax, 0x400
jle 0x40bdc1
mov eax, 0x400
mov ecx, dword [esp + 0x40]
add eax, ecx
cmp esi, eax
mov dword [esp + 0x40], eax
jl 0x40bdd3
mov dword [esp + 0x40], esi
mov eax, dword [esp + 0x40]
lea edx, [eax + eax*8]
lea ecx, [eax + edx*2]
lea edx, [eax + ecx*4]
shl edx, 3
push edx
call fcn.00567b03
mov edx, dword [esp + 0x28]
mov edi, eax
add esp, 4
mov dword [esp + 0x18], eax
mov ecx, dword [edx + 0x1e4]
lea esi, [ecx + ecx*8]
lea esi, [ecx + esi*2]
lea ecx, [ecx + esi*4]
mov esi, dword [edx + 0x1e0]
shl ecx, 3
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [esp + 0x10]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x24]
lea edi, [edx + 1]
mov edx, edi
mov ecx, dword [esi + 0x1e4]
sub edx, ecx
push edx
lea edx, [ecx + ecx*8]
lea edx, [ecx + edx*2]
lea ecx, [ecx + edx*4]
lea edx, [eax + ecx*8]
push edx
call fcn.00411790
mov eax, dword [esi + 0x1e0]
push eax
call fcn.00567b2c
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x44]
mov dword [esi + 0x1e0], eax
mov dword [esi + 0x1e4], edi
add esp, 4
mov dword [esi + 0x1e8], ecx
mov eax, dword [esp + 0x10]
lea esi, [esp + 0x6b0]
lea edx, [eax + eax*8]
lea ecx, [eax + edx*2]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x1e0]
lea edi, [ecx + edx*8]
mov ecx, 0x9a
rep movsd dword es:[edi], dword [esi]
call fcn.00578d59
mov esi, dword [eax + 4]
mov eax, dword [esp + 0x6b0]
shr eax, 4
mov ecx, dword [esi + 0x1c8]
xor edx, edx
div ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esi + 0x1c4]
cmp ecx, ebx
mov dword [esp + 0x24], edx
je 0x40beee
mov eax, dword [ecx + edx*4]
cmp eax, ebx
je 0x40beea
mov edx, dword [esp + 0x6b0]
mov edi, dword [eax + 8]
cmp edi, edx
je 0x40bee0
mov eax, dword [eax]
cmp eax, ebx
jne 0x40beca
jmp 0x40beea
cmp eax, ebx
mov edi, eax
jne 0x40bfbc
cmp ecx, ebx
jne 0x40bf28
mov eax, dword [esp + 0x10]
lea edi, [eax*4]
push edi
call fcn.00567b03
mov edx, eax
mov ecx, edi
mov dword [esi + 0x1c4], edx
mov edi, edx
mov edx, ecx
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
add esp, 4
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [esp + 0x10]
mov dword [esi + 0x1c8], eax
cmp dword [esi + 0x1d0], ebx
jne 0x40bf6e
mov ecx, dword [esi + 0x1d8]
push 0x10
lea edx, [esi + 0x1d4]
push ecx
push edx
call fcn.00566a5b
mov ecx, dword [esi + 0x1d8]
mov edx, ecx
shl edx, 4
dec ecx
cmp ecx, ebx
lea eax, [edx + eax - 0xc]
jl 0x40bf6e
inc ecx
mov edx, dword [esi + 0x1d0]
mov dword [eax], edx
mov dword [esi + 0x1d0], eax
sub eax, 0x10
dec ecx
jne 0x40bf5a
mov edi, dword [esi + 0x1d0]
push 1
mov eax, dword [edi]
lea ecx, [edi + 0xc]
mov dword [esi + 0x1d0], eax
mov edx, dword [esi + 0x1cc]
inc edx
push ecx
mov dword [esi + 0x1cc], edx
mov dword [edi + 8], ebx
call fcn.00563f65
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x6b0]
mov dword [edi + 4], eax
mov dword [edi + 8], edx
mov ecx, dword [esi + 0x1c4]
mov edx, dword [ecx + eax*4]
mov dword [edi], edx
mov ecx, dword [esi + 0x1c4]
mov dword [ecx + eax*4], edi
lea edx, [esp + 0x14]
lea ecx, [edi + 0xc]
push edx
call fcn.00568845
mov ecx, dword [esp + 0x20]
cmp ecx, 0x27c
jb 0x40c128
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 0x278]
cmp eax, ebx
jle 0x40c128
mov esi, eax
shl esi, 4
add esi, 0x27c
cmp ecx, esi
jne 0x40c128
cmp eax, ebx
jle 0x40c128
add edx, 0x27c
mov dword [esp + 0x10], eax
mov dword [esp + 0x40], edx
mov edi, 0x5fe7d8
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x148]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x40]
mov edx, dword [ecx]
mov dword [esp + 0x148], edx
mov eax, dword [ecx + 4]
mov dword [esp + 0x14c], eax
mov edx, dword [ecx + 8]
mov dword [esp + 0x150], edx
mov eax, dword [ecx + 0xc]
mov ecx, dword [0x5f9f88]
mov dword [esp + 0x154], eax
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x6b0]
lea edx, [esp + 0x148]
push edx
push eax
lea ecx, [esp + 0x2c]
push 0x5e78a8
push ecx
mov byte [esp + 0x56f0], 0x27
call fcn.00563eb4
mov edx, dword [0x5f9f88]
add esp, 0x10
mov dword [esp + 0x2c], edx
mov eax, dword [esp + 0x6b0]
lea ecx, [esp + 0x2c]
push eax
push 0x5e78b0
push ecx
mov byte [esp + 0x56ec], 0x28
call fcn.00563eb4
add esp, 0xc
call fcn.00578d59
mov edx, dword [esp + 0x2c]
mov eax, dword [eax + 4]
mov ecx, dword [esp + 0x24]
push edx
push ecx
lea ecx, [eax + 0x204]
call fcn.005672f2
mov ecx, eax
call fcn.00568895
lea ecx, [esp + 0x2c]
mov byte [esp + 0x56e0], 0x27
call fcn.0056870c
lea ecx, [esp + 0x24]
mov byte [esp + 0x56e0], 0x26
call fcn.0056870c
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x10]
add ecx, 0x10
dec eax
mov dword [esp + 0x40], ecx
mov dword [esp + 0x10], eax
jne 0x40c014
lea ecx, [esp + 0x30]
mov byte [esp + 0x56e0], 0x25
call fcn.0056870c
lea ecx, [esp + 0x14]
mov byte [esp + 0x56e0], 0x24
call fcn.0056870c
lea ecx, [esp + 0x6c]
mov byte [esp + 0x56e0], 0x23
call fcn.00404ad0
mov edx, dword [esp + 0x28]
push edx
call fcn.00567b2c
add esp, 4
mov eax, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x1c], eax
mov esi, eax
jmp 0x40b7bd
lea ecx, [esp + 0x7c]
call fcn.00507c30
mov eax, dword [ebp + 0x5ac8]
cmp eax, ebx
je 0x40c19a
push eax
call fcn.00567b2c
add esp, 4
mov dword [ebp + 0x5ac8], ebx
push ebx
mov dword [ebp + 0x5ad0], ebx
push 0x5e789c
lea ecx, [esp + 0x84]
mov dword [ebp + 0x5acc], ebx
call fcn.00507a90
test eax, eax
jne 0x40c536
mov edi, 0x5fe7d8
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x6b0]
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x7c4]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x5fe7d8
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [0x5f9f88]
mov dword [esp + 0x28], ecx
push 0x5e77dc
lea ecx, [esp + 0x2c]
mov byte [esp + 0x56e4], 0x2b
call fcn.00568895
mov edx, dword [esp + 0x28]
mov eax, dword [edx - 8]
cmp eax, 0x103
jle 0x40c274
lea eax, [esp + 0x18]
push 0x103
push eax
lea ecx, [esp + 0x30]
call fcn.00563a94
push eax
lea ecx, [esp + 0x2c]
mov byte [esp + 0x56e4], 0x2c
call fcn.00568845
lea ecx, [esp + 0x18]
mov byte [esp + 0x56e0], 0x2b
call fcn.0056870c
mov edi, dword [esp + 0x28]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x6b0]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x7c4]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x5fe7d8
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x7b4], ebx
mov eax, ecx
mov esi, edi
mov edi, edx
mov dword [esp + 0x7b8], 1
shr ecx, 2
mov dword [esp + 0x7bc], 2
mov dword [esp + 0x7c0], 3
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [ebp + 0x5ac8]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 0x5acc]
mov edx, ecx
mov dword [esp + 0x20], edx
inc edx
cmp edx, ebx
jne 0x40c328
cmp eax, ebx
je 0x40c317
push eax
call fcn.00567b2c
add esp, 4
mov dword [ebp + 0x5ac8], ebx
mov dword [ebp + 0x5ad0], ebx
mov dword [ebp + 0x5acc], ebx
jmp 0x40c4fe
cmp eax, ebx
jne 0x40c3a7
mov ecx, dword [esp + 0x20]
lea esi, [ecx + 1]
mov edx, esi
shl edx, 5
add edx, esi
lea edi, [esi + edx*2]
shl edi, 3
push edi
call fcn.00567b03
mov edx, eax
mov ecx, edi
mov dword [ebp + 0x5ac8], edx
mov dword [esp + 0x14], edx
mov edi, edx
mov edx, ecx
xor eax, eax
add esp, 4
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov edi, dword [esp + 0x10]
mov dword [esp + 0x18], edi
cmp edi, ebx
mov byte [esp + 0x56e0], 0x2d
je 0x40c384
mov ecx, edi
call fcn.0040d0e0
add edi, 0x218
dec esi
mov dword [esp + 0x10], edi
jne 0x40c369
mov eax, dword [esp + 0x20]
inc eax
mov dword [ebp + 0x5ad0], eax
mov dword [ebp + 0x5acc], eax
jmp 0x40c4fe
mov esi, dword [ebp + 0x5ad0]
cmp edx, esi
jg 0x40c429
cmp edx, ecx
jle 0x40c417
mov esi, ecx
sub edx, ecx
shl esi, 5
add esi, ecx
lea ecx, [ecx + esi*2]
lea edi, [eax + ecx*8]
mov eax, edx
shl eax, 5
add eax, edx
mov dword [esp + 0x10], edi
lea ecx, [edx + eax*2]
xor eax, eax
shl ecx, 3
mov esi, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, esi
and ecx, 3
rep stosb byte es:[edi], al
mov ecx, edx
dec edx
test ecx, ecx
je 0x40c417
mov esi, dword [esp + 0x10]
lea edi, [edx + 1]
mov dword [esp + 0x18], esi
cmp esi, ebx
mov byte [esp + 0x56e0], 0x2e
je 0x40c40a
mov ecx, esi
call fcn.0040d0e0
add esi, 0x218
dec edi
mov dword [esp + 0x10], esi
jne 0x40c3f3
mov edx, dword [esp + 0x20]
lea eax, [edx + 1]
mov dword [ebp + 0x5acc], eax
jmp 0x40c4fe
mov eax, dword [ebp + 0x5ad4]
cmp eax, ebx
jne 0x40c456
mov eax, ecx
cdq
and edx, 7
add eax, edx
sar eax, 3
cmp eax, 4
jge 0x40c44a
mov eax, 4
jmp 0x40c456
cmp eax, 0x400
jle 0x40c456
mov eax, 0x400
mov ecx, dword [esp + 0x20]
add eax, esi
inc ecx
mov dword [esp + 0x1c], eax
cmp ecx, eax
jl 0x40c469
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x1c]
mov edx, eax
shl edx, 5
add edx, eax
lea eax, [eax + edx*2]
shl eax, 3
push eax
call fcn.00567b03
mov ecx, dword [ebp + 0x5acc]
mov esi, dword [ebp + 0x5ac8]
mov edx, ecx
mov edi, eax
shl edx, 5
add edx, ecx
add esp, 4
mov dword [esp + 0x18], eax
lea ecx, [ecx + edx*2]
shl ecx, 3
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [esp + 0x20]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 0x5acc]
lea esi, [edx + 1]
mov edx, esi
sub edx, ecx
push edx
mov edx, ecx
shl edx, 5
add edx, ecx
lea ecx, [ecx + edx*2]
lea edx, [eax + ecx*8]
push edx
call fcn.00411590
mov eax, dword [ebp + 0x5ac8]
push eax
call fcn.00567b2c
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov dword [ebp + 0x5ac8], eax
mov dword [ebp + 0x5acc], esi
add esp, 4
mov dword [ebp + 0x5ad0], ecx
mov eax, dword [esp + 0x20]
mov ecx, dword [ebp + 0x5ac8]
mov edx, eax
lea esi, [esp + 0x6b0]
shl edx, 5
add edx, eax
mov byte [esp + 0x56e0], 0x23
lea eax, [eax + edx*2]
lea edi, [ecx + eax*8]
mov ecx, 0x86
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x28]
call fcn.0056870c
jmp 0x40c53f
lea ecx, [esp + 0x7c]
call fcn.00507c30
push 1
push 0x5e789c
lea ecx, [esp + 0x84]
call fcn.00507a90
test eax, eax
je 0x40cc30
mov edi, 0x5fe7d8
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x10e4]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x10], ebx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x594]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x5fe7d8
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x10]
mov eax, ecx
inc ecx
mov dword [esp + 0x10], ecx
push eax
lea ecx, [esp + 0x598]
push 0x5e78d4
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea edx, [esp + 0x10e4]
lea eax, [esp + 0x594]
lea ecx, [esp + 0x7c]
push ebx
push 0x400
push edx
push eax
call fcn.00507ef0
cmp eax, 1
jne 0x40cc27
lea ecx, [esp + 0x10e4]
push ecx
lea ecx, [esp + 0x28]
call fcn.0056877a
lea ecx, [esp + 0x148]
mov byte [esp + 0x56e0], 0x2f
call fcn.00566653
lea edx, [esp + 0x148]
push ebx
push edx
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push 0x5e77d4
mov byte [esp + 0x56f0], 0x30
call fcn.0056877a
push ecx
lea eax, [esp + 0x34]
mov ecx, esp
mov dword [esp + 0x88], esp
push eax
mov byte [esp + 0x56f4], 0x31
call fcn.00568481
mov byte [esp + 0x56f0], 0x30
call fcn.0043ebe0
mov eax, dword [esp + 0x160]
add esp, 0x10
cmp eax, 6
jl 0x40cbfd
mov ecx, dword [esp + 0x14c]
mov edx, dword [ecx + 4]
cmp dword [edx - 8], 0x102
jg 0x40cbfd
mov edi, 0x5fe7d8
or ecx, 0xffffffff
xor eax, eax
lea esi, [esp + 0x6b0]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x18], esi
mov eax, ecx
mov esi, edi
mov edi, dword [esp + 0x18]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x5fe7d8
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
lea esi, [esp + 0x7c4]
sub edi, ecx
mov eax, ecx
mov dword [esp + 0x18], esi
mov esi, edi
mov edi, dword [esp + 0x18]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
lea esi, [esp + 0x6b0]
sub edi, ecx
mov eax, esi
mov edx, ecx
mov esi, edi
mov edi, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x14c]
mov eax, dword [ecx + 8]
push eax
call fcn.00550577
mov edx, dword [esp + 0x150]
mov esi, eax
mov dword [esp + 0x7b8], esi
mov eax, dword [edx + 0xc]
push eax
call fcn.00550577
mov edi, eax
mov eax, dword [esp + 0x154]
mov dword [esp + 0x7c0], edi
mov eax, dword [eax + 0x10]
push eax
call fcn.00550577
mov ecx, dword [esp + 0x158]
mov dword [esp + 0x7c8], eax
mov eax, dword [ecx + 0x14]
push eax
call fcn.00550577
add esp, 0x10
cmp esi, ebx
mov dword [esp + 0x7c0], eax
jl 0x40c786
cmp esi, 2
jle 0x40c78d
mov dword [esp + 0x7b4], ebx
cmp edi, ebx
jl 0x40c796
cmp edi, 1
jle 0x40c79d
mov dword [esp + 0x7b8], ebx
mov ecx, dword [esp + 0x7bc]
cmp ecx, ebx
jl 0x40c7ad
cmp ecx, 2
jle 0x40c7b4
mov dword [esp + 0x7bc], ebx
cmp eax, ebx
jl 0x40c7bd
cmp eax, 4
jle 0x40c7c4
mov dword [esp + 0x7c0], ebx
mov edi, 0x5fe7d8
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x7c4]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x150]
and ecx, 3
cmp eax, 6
rep movsb byte es:[edi], byte [esi]
jle 0x40c830
mov ecx, dword [esp + 0x14c]
mov edi, dword [ecx + 0x18]
cmp dword [edi - 8], 0x100
jg 0x40c830
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x7c4]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 0x5acc]
mov eax, ecx
mov dword [esp + 0x20], eax
inc eax
cmp eax, ebx
jne 0x40c86f
mov eax, dword [ebp + 0x5ac8]
cmp eax, ebx
je 0x40c85e
push eax
mov dword [esp + 0x1c], ecx
call fcn.00567b2c
add esp, 4
mov dword [ebp + 0x5ac8], ebx
mov dword [ebp + 0x5ad0], ebx
mov dword [ebp + 0x5acc], ebx
jmp 0x40cbd8
mov edx, dword [ebp + 0x5ac8]
cmp edx, ebx
jne 0x40c95c
mov ecx, dword [esp + 0x20]
lea esi, [ecx + 1]
mov edx, esi
shl edx, 5
add edx, esi
lea edi, [esi + edx*2]
shl edi, 3
push edi
call fcn.00567b03
mov edx, eax
mov ecx, edi
mov dword [esp + 0x1c], edx
mov dword [ebp + 0x5ac8], edx
mov edi, edx
mov edx, ecx
xor eax, eax
add esp, 4
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
mov dword [esp + 0x1c], esi
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [esp + 0x18]
lea edx, [eax + 0x108]
lea ecx, [edx - 0x108]
test ecx, ecx
je 0x40c933
mov edi, 0x5fe7d8
or ecx, 0xffffffff
xor eax, eax
lea esi, [edx - 0x108]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x18], esi
mov eax, ecx
mov esi, edi
mov edi, dword [esp + 0x18]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [edx - 4], ebx
mov dword [edx], ebx
mov edi, 0x5fe7d8
or ecx, 0xffffffff
mov dword [edx + 4], ebx
lea esi, [edx + 0xc]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x18], esi
mov eax, ecx
mov esi, edi
mov edi, dword [esp + 0x18]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x1c]
add edx, 0x218
dec eax
mov dword [esp + 0x1c], eax
jne 0x40c8c8
mov ecx, dword [esp + 0x20]
lea eax, [ecx + 1]
mov dword [ebp + 0x5ad0], eax
mov dword [ebp + 0x5acc], eax
jmp 0x40cbd8
mov esi, dword [ebp + 0x5ad0]
cmp eax, esi
jg 0x40ca5b
cmp ecx, eax
jge 0x40ca41
mov esi, ecx
sub eax, ecx
shl esi, 5
add esi, ecx
mov dword [esp + 0x18], eax
lea ecx, [ecx + esi*2]
lea edx, [edx + ecx*8]
mov ecx, eax
shl ecx, 5
add ecx, eax
mov edi, edx
lea ecx, [eax + ecx*2]
xor eax, eax
shl ecx, 3
mov esi, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, esi
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [esp + 0x18]
mov ecx, eax
dec eax
test ecx, ecx
je 0x40ca49
inc eax
mov dword [esp + 0x1c], eax
cmp edx, ebx
je 0x40ca1e
mov edi, 0x5fe7d8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [edx + 0x104], ebx
mov dword [edx + 0x108], ebx
mov edi, 0x5fe7d8
or ecx, 0xffffffff
mov dword [edx + 0x10c], ebx
lea esi, [edx + 0x114]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x18], esi
mov eax, ecx
mov esi, edi
mov edi, dword [esp + 0x18]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x1c]
add edx, 0x218
dec eax
mov dword [esp + 0x1c], eax
jne 0x40c9b8
mov ecx, dword [esp + 0x20]
lea eax, [ecx + 1]
mov dword [ebp + 0x5acc], eax
jmp 0x40cbd8
jle 0x40ca49
sub ecx, eax
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x20]
lea eax, [ecx + 1]
mov dword [ebp + 0x5acc], eax
jmp 0x40cbd8
mov eax, dword [ebp + 0x5ad4]
cmp eax, ebx
jne 0x40ca88
mov eax, ecx
cdq
and edx, 7
add eax, edx
sar eax, 3
cmp eax, 4
jge 0x40ca7c
mov eax, 4
jmp 0x40ca88
cmp eax, 0x400
jle 0x40ca88
mov eax, 0x400
mov edx, dword [esp + 0x20]
add eax, esi
mov dword [esp + 0x1c], eax
lea ecx, [edx + 1]
cmp ecx, eax
jl 0x40ca9d
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x1c]
mov ecx, eax
shl ecx, 5
add ecx, eax
lea edx, [eax + ecx*2]
shl edx, 3
push edx
call fcn.00567b03
mov ecx, dword [ebp + 0x5acc]
mov esi, dword [ebp + 0x5ac8]
mov edx, ecx
mov edi, eax
shl edx, 5
add edx, ecx
add esp, 4
mov dword [esp + 0x78], eax
lea ecx, [ecx + edx*2]
shl ecx, 3
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [ebp + 0x5acc]
mov ecx, dword [esp + 0x20]
mov edx, esi
inc ecx
shl edx, 5
add edx, esi
sub ecx, esi
mov dword [esp + 0x18], ecx
lea edx, [esi + edx*2]
lea edx, [eax + edx*8]
mov eax, ecx
shl eax, 5
add eax, ecx
mov edi, edx
lea ecx, [ecx + eax*2]
xor eax, eax
shl ecx, 3
mov esi, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, esi
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [esp + 0x18]
mov ecx, eax
dec eax
test ecx, ecx
je 0x40cba8
inc eax
mov dword [esp + 0x2c], eax
cmp edx, ebx
je 0x40cb97
mov edi, 0x5fe7d8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [edx + 0x104], ebx
mov dword [edx + 0x108], ebx
mov edi, 0x5fe7d8
or ecx, 0xffffffff
mov dword [edx + 0x10c], ebx
lea esi, [edx + 0x114]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x18], esi
mov eax, ecx
mov esi, edi
mov edi, dword [esp + 0x18]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x2c]
add edx, 0x218
dec eax
mov dword [esp + 0x2c], eax
jne 0x40cb31
mov eax, dword [ebp + 0x5ac8]
push eax
call fcn.00567b2c
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x7c]
mov dword [ebp + 0x5ac8], ecx
add esp, 4
lea eax, [edx + 1]
mov dword [ebp + 0x5acc], eax
mov eax, dword [esp + 0x1c]
mov dword [ebp + 0x5ad0], eax
mov eax, dword [esp + 0x20]
lea esi, [esp + 0x6b0]
mov ecx, eax
shl ecx, 5
add ecx, eax
lea edx, [eax + ecx*2]
mov eax, dword [ebp + 0x5ac8]
mov ecx, 0x86
lea edi, [eax + edx*8]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x148]
mov byte [esp + 0x56e0], 0x2f
call fcn.00566686
lea ecx, [esp + 0x24]
mov byte [esp + 0x56e0], 0x23
call fcn.0056870c
jmp 0x40c5b0
lea ecx, [esp + 0x7c]
call fcn.00507c30
push 0xffffffffffffffff
lea ecx, [ebp + 0x5b78]
push ebx
call fcn.005666e6
push 0xffffffffffffffff
lea ecx, [ebp + 0x5b8c]
push ebx
call fcn.005666e6
push ebx
push 0x5e77c4
lea ecx, [esp + 0x84]
call fcn.00507a90
test eax, eax
je 0x40ce1d
mov edi, 0x5fe7d8
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x10e4]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x18], ebx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x594]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x5fe7d8
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [sym.imp.USER32.dll_wsprintfA]
mov esi, ebx
mov eax, esi
lea ecx, [esp + 0x594]
push eax
push 0x5e78d4
push ecx
inc esi
call edi
add esp, 0xc
lea edx, [esp + 0x10e4]
lea eax, [esp + 0x594]
lea ecx, [esp + 0x7c]
push ebx
push 0x400
push edx
push eax
call fcn.00507ef0
cmp eax, 1
jne 0x40ce14
lea ecx, [esp + 0x10e4]
push ecx
lea ecx, [esp + 0x18]
call fcn.0056877a
push 0x28
lea ecx, [esp + 0x18]
mov byte [esp + 0x56e4], 0x32
call fcn.00563b0c
cmp eax, 0xffffffff
je 0x40cdfe
mov edx, dword [0x5f9f88]
mov dword [esp + 0x20], edx
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x18]
mov byte [esp + 0x56e0], 0x33
mov ecx, dword [ecx - 8]
sub ecx, eax
push ecx
push edx
lea ecx, [esp + 0x1c]
call fcn.00563a18
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x56e4], 0x34
call fcn.00568845
lea ecx, [esp + 0x18]
mov byte [esp + 0x56e0], 0x33
call fcn.0056870c
push 0x5fe7d8
push 0x5e77c0
lea ecx, [esp + 0x28]
call fcn.005637fc
push 0x5fe7d8
push 0x5e77bc
lea ecx, [esp + 0x28]
call fcn.005637fc
mov eax, dword [esp + 0x20]
cmp dword [eax - 8], 0x11
jne 0x40cded
mov eax, dword [ebp + 0x5b80]
lea ecx, [ebp + 0x5b78]
lea edx, [esp + 0x14]
push edx
push eax
call fcn.005668bb
push 0x5fe7d8
push 0x5e77b8
lea ecx, [esp + 0x28]
call fcn.005637fc
mov eax, dword [ebp + 0x5b94]
lea ecx, [ebp + 0x5b8c]
lea edx, [esp + 0x20]
push edx
push eax
call fcn.005668bb
lea ecx, [esp + 0x20]
mov byte [esp + 0x56e0], 0x32
call fcn.0056870c
lea ecx, [esp + 0x14]
mov byte [esp + 0x56e0], 0x23
call fcn.0056870c
jmp 0x40ccc4
lea ecx, [esp + 0x7c]
call fcn.00507c30
push 1
push 0x5e77ac
lea ecx, [esp + 0x84]
call fcn.00507a90
test eax, eax
je 0x40cf14
lea eax, [ebp + 0x530c]
push ebx
push eax
lea ecx, [esp + 0x84]
mov dword [eax], 0x400
lea eax, [esp + 0x6b8]
push eax
push 0x5e779c
mov dword [ebp + 0x5318], 0x400
call fcn.00508190
test eax, eax
je 0x40ce9f
mov ecx, dword [ebp + 0x530c]
push ecx
call fcn.00567b03
mov dword [ebp + 0x5308], eax
mov ecx, dword [ebp + 0x530c]
mov edx, ecx
lea esi, [esp + 0x6b4]
mov edi, eax
add esp, 4
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea eax, [ebp + 0x5318]
push ebx
push eax
lea eax, [esp + 0x6b8]
push eax
push 0x5e778c
lea ecx, [esp + 0x8c]
call fcn.00508190
test eax, eax
je 0x40cef6
mov ecx, dword [ebp + 0x5318]
push ecx
call fcn.00567b03
mov dword [ebp + 0x5314], eax
mov ecx, dword [ebp + 0x5318]
mov edx, ecx
lea esi, [esp + 0x6b4]
mov edi, eax
add esp, 4
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea eax, [ebp + 0x5310]
lea ecx, [esp + 0x7c]
push eax
push 0x5e777c
call fcn.00507c90
lea ecx, [esp + 0x7c]
call fcn.00507c30
push ebx
push 0x5e7ca0
lea ecx, [esp + 0x84]
call fcn.00507a90
test eax, eax
je 0x40cf40
lea ecx, [esp + 0x7c]
call fcn.00507c30
push ebx
lea ecx, [esp + 0x80]
call fcn.00508670
lea esi, [ebp + 0x52cc]
mov dword [esi], ebx
mov eax, dword [ebp + 0x52d0]
cmp eax, ebx
je 0x40cf61
push eax
call fcn.00567b2c
add esp, 4
mov dword [ebp + 0x52d0], ebx
lea edi, [ebp + 0x52d4]
mov dword [edi], ebx
mov eax, dword [ebp + 0x52d8]
cmp eax, ebx
je 0x40cf82
push eax
call fcn.00567b2c
add esp, 4
mov dword [ebp + 0x52d8], ebx
mov eax, dword [ebp + 0x52d0]
push ebx
push esi
push eax
push 0x5e7768
lea ecx, [esp + 0x8c]
call fcn.00508190
mov eax, dword [esi]
cmp eax, ebx
jle 0x40cfc2
push eax
call fcn.00567b03
add esp, 4
lea ecx, [esp + 0x7c]
mov dword [ebp + 0x52d0], eax
push ebx
push esi
push eax
push 0x5e7768
call fcn.00508190
mov ecx, dword [ebp + 0x52d8]
push ebx
push edi
push ecx
push 0x5e7754
lea ecx, [esp + 0x8c]
call fcn.00508190
mov eax, dword [edi]
cmp eax, ebx
jle 0x40d002
push eax
call fcn.00567b03
add esp, 4
lea ecx, [esp + 0x7c]
mov dword [ebp + 0x52d8], eax
push ebx
push edi
push eax
push 0x5e7754
call fcn.00508190
lea ecx, [esp + 0x184]
mov byte [esp + 0x56e0], 0x1e
call fcn.00566686
lea ecx, [esp + 0x38]
mov byte [esp + 0x56e0], 0x1d
call fcn.0056870c
lea ecx, [esp + 0x34]
mov byte [esp + 0x56e0], 0x1b
call fcn.0056870c
lea ecx, [esp + 0x1f8]
mov byte [esp + 0x56e0], 9
call fcn.0054854d
lea ecx, [esp + 0x170]
mov byte [esp + 0x56e0], 4
call fcn.00566686
lea ecx, [esp + 0x68]
mov byte [esp + 0x56e0], 3
call fcn.0056870c
lea ecx, [esp + 0x7c]
mov byte [esp + 0x56e0], bl
call fcn.00507890
lea ecx, [esp + 0x48]
mov dword [esp + 0x56e0], 0xffffffff
call fcn.0056870c
mov ecx, dword [esp + 0x56d8]
pop edi
pop esi
pop ebp
mov eax, 1
mov dword fs:[0], ecx
pop ebx
add esp, 0x56d4
ret