Function at 0x57bcf0
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x53
push 0
push 0
dec ecx
jne 0x57bcf9
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov dword [ebp - 0x28], ecx
mov dword [ebp - 4], edx
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x28]
call fcn.00405814
mov eax, dword [ebp + 0xc]
call fcn.00405814
xor eax, eax
push ebp
push 0x57d585
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [ebp - 0x64], 0xffffffff
mov byte [ebp - 0x99], 0
mov dl, 1
mov eax, dword [0x41d624]
call fcn.00404400
mov dword [ebp - 8], eax
mov dl, 1
mov eax, dword [0x41cf58]
call fcn.00404400
mov dword [ebp - 0x14], eax
mov dl, 1
mov eax, dword [0x41cf58]
call fcn.00404400
mov dword [ebp - 0x18], eax
mov dl, 1
mov eax, dword [0x41cf58]
call fcn.00404400
mov dword [ebp - 0xc], eax
xor esi, esi
mov byte [ebp - 0x89], 0
xor eax, eax
mov dword [ebp - 0x20], eax
mov eax, dword [setsockopt]
push dword [eax + 0x16c]
push dword [ebp - 0x28]
push dword [ebp + 0xc]
push 0x57d5a0
lea eax, [ebp - 0x2c]
mov edx, 4
call fcn.00405728
mov eax, dword [ebp - 0x2c]
call fcn.0066b3d4
test al, al
je 0x57d4cf
mov dl, 1
mov eax, dword [0x6411fc]
call fcn.00404400
mov dword [ebp - 0x80], eax
xor eax, eax
push ebp
push 0x57bdf5
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x80]
mov ecx, dword [eax]
call dword [ecx + 0x68]
mov edx, dword [ebp - 0x80]
mov eax, dword [ebp - 0x24]
call fcn.0057e610
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x57be11
push ebp
push dword [ebp - 0x28]
push dword [ebp + 0xc]
push 0x57d5a0
lea eax, [ebp - 0x114]
mov edx, 3
call fcn.00405728
mov eax, dword [ebp - 0x114]
lea edx, [ebp - 0x80]
call fcn.005764cc
pop ecx
mov eax, dword [ebp - 8]
mov edx, dword [eax]
call dword [edx + 0x44]
mov dl, 1
mov eax, dword [0x41cf58]
call fcn.00404400
mov dword [ebp - 0x84], eax
push ebp
lea ecx, [ebp - 0x118]
lea edx, [ebp - 0x84]
lea eax, [ebp - 0x80]
call fcn.005768b8
pop ecx
mov edx, dword [ebp - 0x118]
lea eax, [ebp - 0x4c]
call fcn.0040542c
mov edx, dword [0x563eb0]
mov eax, 8
call fcn.0040647c
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x88]
mov edx, 0x57d5b0
call fcn.004053e8
cmp dword [ebp - 0x4c], 0
jne 0x57beb3
lea eax, [ebp - 0x4c]
mov edx, 0x57d5c0
call fcn.0040542c
mov eax, dword [ebp - 0x88]
add eax, 4
mov edx, dword [ebp - 0x4c]
call fcn.004053e8
mov edx, dword [ebp - 0x88]
mov eax, dword [ebp - 0x84]
call fcn.0041fa54
mov eax, dword [ebp - 0x80]
mov edx, dword [eax]
call dword [edx + 0x14]
mov ebx, eax
dec ebx
test ebx, ebx
jl 0x57c09e
inc ebx
mov dword [ebp - 0x68], 0
lea ecx, [ebp - 0x11c]
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x80]
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x11c]
lea edx, [ebp - 0x34]
call fcn.0040a284
cmp dword [ebp - 0x34], 0
je 0x57c094
mov eax, dword [ebp - 0x34]
cmp byte [eax], 0x5b
jne 0x57bf2d
mov byte [ebp - 0x89], 0
jmp 0x57c094
mov eax, dword [ebp - 0x34]
cmp byte [eax], 0x23
jne 0x57bf83
mov ecx, 3
mov edx, 0x57d5d0
mov eax, dword [ebp - 0x34]
call fcn.004e3c38
test al, al
jne 0x57bf77
mov ecx, 4
mov edx, 0x57d5dc
mov eax, dword [ebp - 0x34]
call fcn.004e3c38
test al, al
jne 0x57bf77
mov ecx, 8
mov edx, 0x57d5ec
mov eax, dword [ebp - 0x34]
call fcn.004e3c38
test al, al
je 0x57bf83
mov byte [ebp - 0x89], 1
jmp 0x57c094
cmp byte [ebp - 0x89], 0
je 0x57c094
mov eax, dword [ebp - 0x84]
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x57c094
inc eax
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0x74], 0
mov edx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x84]
call fcn.0041fbfc
mov dword [ebp - 0x88], eax
xor eax, eax
mov dword [ebp - 0x70], eax
lea edx, [ebp - 0x120]
mov eax, dword [ebp - 0x34]
call fcn.00409c3c
mov edx, dword [ebp - 0x120]
mov eax, dword [ebp - 0x88]
mov eax, dword [eax]
call fcn.00405970
mov dword [ebp - 0x78], eax
cmp dword [ebp - 0x78], 0
jle 0x57c085
lea eax, [ebp - 0x50]
push eax
mov ecx, dword [ebp - 0x78]
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x34]
call fcn.0040588c
mov eax, dword [ebp - 0x88]
mov eax, dword [eax]
mov dword [ebp - 0x108], eax
cmp dword [ebp - 0x108], 0
je 0x57c034
mov eax, dword [ebp - 0x108]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x108], eax
lea eax, [ebp - 0x54]
push eax
mov edx, dword [ebp - 0x108]
add edx, dword [ebp - 0x78]
mov ecx, pe_nt_image_headers32
mov eax, dword [ebp - 0x34]
call fcn.0040588c
push dword [ebp - 0x50]
mov eax, dword [ebp - 0x88]
push dword [eax + 4]
push dword [ebp - 0x54]
lea eax, [ebp - 0x34]
mov edx, 3
call fcn.00405728
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x80]
mov edi, dword [eax]
call dword [edi + 0x20]
inc dword [ebp - 0x70]
cmp dword [ebp - 0x70], 0xa
jl 0x57bfc9
inc dword [ebp - 0x74]
dec dword [ebp - 0xa8]
jne 0x57bfb0
inc dword [ebp - 0x68]
dec ebx
jne 0x57bef0
mov eax, dword [ebp - 0x84]
mov ebx, dword [eax + 8]
dec ebx
test ebx, ebx
jl 0x57c0d3
inc ebx
mov dword [ebp - 0x68], 0
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x84]
call fcn.0041fbfc
mov edx, dword [0x563eb0]
call fcn.00406490
inc dword [ebp - 0x68]
dec ebx
jne 0x57c0b4
mov eax, dword [ebp - 0x84]
call fcn.00404430
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp byte [ebp + 8], 0
je 0x57c1f7
mov eax, dword [ebp - 4]
mov edx, dword [0x61a018]
call fcn.004045e0
mov dword [ebp - 0xac], eax
mov eax, dword [ebp - 0xac]
mov eax, dword [eax + 0x1a98]
cmp dword [eax + 8], 0
jle 0x57c157
mov eax, dword [ebp - 0xac]
mov eax, dword [eax + 0x1a98]
mov ebx, dword [eax + 8]
dec ebx
test ebx, ebx
jl 0x57c157
inc ebx
mov dword [ebp - 0x6c], 0
mov eax, dword [ebp - 0xac]
mov eax, dword [eax + 0x1a98]
mov edx, dword [ebp - 0x6c]
call fcn.0041fbfc
mov edi, eax
mov edx, 0x92
mov eax, edi
call fcn.00402fb0
inc dword [ebp - 0x6c]
dec ebx
jne 0x57c12f
mov eax, dword [ebp - 0xac]
mov eax, dword [eax + 0x1a9c]
cmp dword [eax + 8], 0
jle 0x57c1aa
mov eax, dword [ebp - 0xac]
mov eax, dword [eax + 0x1a9c]
mov ebx, dword [eax + 8]
dec ebx
test ebx, ebx
jl 0x57c1aa
inc ebx
mov dword [ebp - 0x6c], 0
mov eax, dword [ebp - 0xac]
mov eax, dword [eax + 0x1a9c]
mov edx, dword [ebp - 0x6c]
call fcn.0041fbfc
mov edx, dword [0x4e40dc]
call fcn.00406490
inc dword [ebp - 0x6c]
dec ebx
jne 0x57c185
mov eax, dword [ebp - 0xac]
add eax, 0x1aa0
call fcn.00405394
mov eax, dword [ebp - 0xac]
add eax, 0x1aa8
call fcn.00405394
mov eax, dword [ebp - 0xac]
mov eax, dword [eax + 0x1a98]
mov edx, dword [eax]
call dword [edx + 8]
mov eax, dword [ebp - 0xac]
mov eax, dword [eax + 0x1a9c]
mov edx, dword [eax]
call dword [edx + 8]
mov eax, dword [ebp - 0xac]
call fcn.0061cfec
mov eax, dword [ebp - 0x80]
mov edx, dword [eax]
call dword [edx + 0x14]
mov ebx, eax
dec ebx
test ebx, ebx
jl 0x57d2f4
inc ebx
mov dword [ebp - 0x68], 0
lea ecx, [ebp - 0x124]
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x80]
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x124]
lea edx, [ebp - 0x34]
call fcn.0040a284
cmp dword [ebp - 0x34], 0
je 0x57d2ea
mov eax, dword [ebp - 0x34]
cmp byte [eax], 0x3b
je 0x57d2ea
mov eax, dword [ebp - 0x34]
cmp byte [eax], 0x2f
je 0x57d2ea
lea ecx, [ebp - 0x48]
mov eax, dword [0x6c0ec4]
mov eax, dword [eax]
mov edx, dword [ebp - 0x34]
call fcn.005c3f10
lea eax, [ebp - 0x34]
mov edx, dword [ebp - 0x48]
call fcn.0040542c
test esi, esi
jne 0x57c774
cmp byte [ebp + 8], 0
je 0x57c774
mov eax, dword [ebp - 0x34]
cmp byte [eax], 0x28
jne 0x57c774
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x128]
push eax
mov ecx, 0x57d600
mov edx, 0x57d60c
mov eax, dword [ebp - 0x34]
call fcn.004e3a98
cmp dword [ebp - 0x34], 0
je 0x57d2ea
jmp 0x57c765
push 2
lea eax, [ebp - 0x12c]
push eax
mov byte [ebp - 0x130], 0x20
mov byte [ebp - 0x12f], 0x2c
mov byte [ebp - 0x12e], 9
lea ecx, [ebp - 0x130]
lea edx, [ebp - 0x30]
mov eax, dword [ebp - 0x34]
call fcn.004e374c
mov edx, dword [ebp - 0x12c]
lea eax, [ebp - 0x34]
call fcn.0040542c
mov edx, 0x57d618
mov eax, dword [ebp - 0x30]
call fcn.00409e48
test eax, eax
jne 0x57c324
mov eax, dword [ebp - 4]
mov edx, dword [0x61a018]
call fcn.004045e0
mov edi, eax
mov byte [edi + 0x1ac0], 1
jmp 0x57c765
mov edx, 0x57d628
mov eax, dword [ebp - 0x30]
call fcn.00409e48
test eax, eax
jne 0x57c35b
mov eax, dword [ebp - 4]
mov edx, dword [0x61a018]
call fcn.004045e0
mov dword [ebp - 0xb0], eax
mov eax, dword [ebp - 0xb0]
mov byte [eax + 0x1ac1], 1
jmp 0x57c765
mov edx, 0x57d638
mov eax, dword [ebp - 0x30]
call fcn.00409e48
test eax, eax
jne 0x57c392
mov eax, dword [ebp - 4]
mov edx, dword [0x61a018]
call fcn.004045e0
mov dword [ebp - 0xb4], eax
mov eax, dword [ebp - 0xb4]
mov byte [eax + 0x1ac2], 1
jmp 0x57c765
mov edx, 0x57d64c
mov eax, dword [ebp - 0x30]
call fcn.00409e48
test eax, eax
jne 0x57c3c9
mov eax, dword [ebp - 4]
mov edx, dword [0x61a018]
call fcn.004045e0
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp - 0xb8]
mov byte [eax + 0x1ac3], 1
jmp 0x57c765
mov edx, 0x57d65c
mov eax, dword [ebp - 0x30]
call fcn.00409e48
test eax, eax
jne 0x57c400
mov eax, dword [ebp - 4]
mov edx, dword [0x61a018]
call fcn.004045e0
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp - 0xbc]
mov byte [eax + 0x1ac4], 1
jmp 0x57c765
mov edx, 0x57d670
mov eax, dword [ebp - 0x30]
call fcn.00409e48
test eax, eax
jne 0x57c437
mov eax, dword [ebp - 4]
mov edx, dword [0x61a018]
call fcn.004045e0
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 0xc0]
mov byte [eax + 0x1ac9], 1
jmp 0x57c765
mov edx, 0x57d680
mov eax, dword [ebp - 0x30]
call fcn.00409e48
test eax, eax
jne 0x57c46e
mov eax, dword [ebp - 4]
mov edx, dword [0x61a018]
call fcn.004045e0
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0xc4]
mov byte [eax + 0x1aca], 1
jmp 0x57c765
mov edx, 0x57d694
mov eax, dword [ebp - 0x30]
call fcn.00409e48
test eax, eax
jne 0x57c4a5
mov eax, dword [ebp - 4]
mov edx, dword [0x61a018]
call fcn.004045e0
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0xc8]
mov byte [eax + 0x1acb], 1
jmp 0x57c765
mov edx, 0x57d6a8
mov eax, dword [ebp - 0x30]
call fcn.00409e48
test eax, eax
jne 0x57c4dc
mov eax, dword [ebp - 4]
mov edx, dword [0x61a018]
call fcn.004045e0
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0xcc]
mov byte [eax + 0x1ace], 1
jmp 0x57c765
mov edx, 0x57d6c0
mov eax, dword [ebp - 0x30]
call fcn.00409e48
test eax, eax
jne 0x57c513
mov eax, dword [ebp - 4]
mov edx, dword [0x61a018]
call fcn.004045e0
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0xd0]
mov byte [eax + 0x1acf], 1
jmp 0x57c765
mov edx, 0x57d6d8
mov eax, dword [ebp - 0x30]
call fcn.00409e48
test eax, eax
jne 0x57c54a
mov eax, dword [ebp - 4]
mov edx, dword [0x61a018]
call fcn.004045e0
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0xd4]
mov byte [eax + 0x1ad0], 1
jmp 0x57c765
mov edx, 0x57d6ec
mov eax, dword [ebp - 0x30]
call fcn.00409e48
test eax, eax
jne 0x57c581
mov eax, dword [ebp - 4]
mov edx, dword [0x61a018]
call fcn.004045e0
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0xd8]
mov byte [eax + 0x1ad1], 1
jmp 0x57c765
mov edx, 0x57d6fc
mov eax, dword [ebp - 0x30]
call fcn.00409e48
test eax, eax
jne 0x57c5b8
mov eax, dword [ebp - 4]
mov edx, dword [0x61a018]
call fcn.004045e0
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0xdc]
mov byte [eax + 0x1ad2], 1
jmp 0x57c765
mov edx, 0x57d710
mov eax, dword [ebp - 0x30]
call fcn.00409e48
test eax, eax
jne 0x57c5ef
mov eax, dword [ebp - 4]
mov edx, dword [0x61a018]
call fcn.004045e0
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0xe0]
mov byte [eax + 0x1ac5], 1
jmp 0x57c765
mov edx, 0x57d728
mov eax, dword [ebp - 0x30]
call fcn.00409e48
test eax, eax
jne 0x57c626
mov eax, dword [ebp - 4]
mov edx, dword [0x61a018]
call fcn.004045e0
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp - 0xe4]
mov byte [eax + 0x1ac8], 1
jmp 0x57c765
mov edx, 0x57d740
mov eax, dword [ebp - 0x30]
call fcn.00409e48
test eax, eax
jne 0x57c65d
mov eax, dword [ebp - 4]
mov edx, dword [0x61a018]
call fcn.004045e0
mov dword [ebp - 0xe8], eax
mov eax, dword [ebp - 0xe8]
mov byte [eax + 0x1ac6], 1
jmp 0x57c765
mov edx, 0x57d754
mov eax, dword [ebp - 0x30]
call fcn.00409e48
test eax, eax
jne 0x57c694
mov eax, dword [ebp - 4]
mov edx, dword [0x61a018]
call fcn.004045e0
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0xec]
mov byte [eax + 0x1ac7], 1
jmp 0x57c765
mov edx, 0x57d76c
mov eax, dword [ebp - 0x30]
call fcn.00409e48
test eax, eax
jne 0x57c6cb
mov eax, dword [ebp - 4]
mov edx, dword [0x61a018]
call fcn.004045e0
mov dword [ebp - 0xf0], eax
mov eax, dword [ebp - 0xf0]
mov byte [eax + 0x1ad3], 1
jmp 0x57c765
mov edx, 0x57d784
mov eax, dword [ebp - 0x30]
call fcn.00409e48
test eax, eax
jne 0x57c6ff
mov eax, dword [ebp - 4]
mov edx, dword [0x61a018]
call fcn.004045e0
mov dword [ebp - 0xf4], eax
mov eax, dword [ebp - 0xf4]
mov byte [eax + 0x1ad4], 1
jmp 0x57c765
mov edx, 0x57d79c
mov eax, dword [ebp - 0x30]
call fcn.00409e48
test eax, eax
jne 0x57c733
mov eax, dword [ebp - 4]
mov edx, dword [0x61a018]
call fcn.004045e0
mov dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0xf8]
mov byte [eax + 0x1ad5], 1
jmp 0x57c765
mov edx, 0x57d7b0
mov eax, dword [ebp - 0x30]
call fcn.00409e48
test eax, eax
jne 0x57c765
mov eax, dword [ebp - 4]
mov edx, dword [0x61a018]
call fcn.004045e0
mov dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0xfc]
mov byte [eax + 0x1ad6], 1
cmp dword [ebp - 0x34], 0
jne 0x57c2ba
jmp 0x57d2ea
mov eax, dword [ebp - 0x34]
cmp byte [eax], 0x5b
jne 0x57cb86
mov esi, 0xa
mov edx, 0x57d7c8
mov eax, dword [ebp - 0x34]
call fcn.00409e48
test eax, eax
jne 0x57c7a5
mov esi, 0x14
xor eax, eax
mov dword [ebp - 0x7c], eax
jmp 0x57d2ea
mov edx, 0x57d7d8
mov eax, dword [ebp - 0x34]
call fcn.00409e48
test eax, eax
jne 0x57c7c0
mov esi, 0x15
jmp 0x57d2ea
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x134]
push eax
mov ecx, 0x57d7ec
mov edx, 0x57d7f8
mov eax, dword [ebp - 0x34]
call fcn.004e3a98
mov edx, dword [ebp - 0x134]
lea eax, [ebp - 0x34]
call fcn.0040542c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc08]
cmp dword [eax + 8], 0
jg 0x57c851
mov edx, dword [0x619e9c]
mov eax, 0x10
call fcn.0040647c
mov dword [ebp - 0x1c], eax
mov dl, 1
mov eax, dword [0x41cf58]
call fcn.00404400
mov edx, dword [ebp - 0x1c]
mov dword [edx + 4], eax
mov eax, dword [ebp - 0x1c]
mov edx, 0x57d5c0
call fcn.004053e8
mov eax, dword [ebp - 0x1c]
mov byte [eax + 8], 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc08]
mov edx, dword [ebp - 0x1c]
call fcn.0041fa54
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax]
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx + 0x38]
cmp byte [ebp - 0x99], 0
jne 0x57c88e
mov edx, 0x57d5c0
mov eax, dword [ebp - 0x58]
call fcn.00409e48
test eax, eax
jne 0x57c88e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc08]
xor edx, edx
call fcn.0041fbfc
mov dword [ebp - 0x1c], eax
mov byte [ebp - 0x99], 1
mov byte [ebp - 0x9a], 0
jmp 0x57c8f1
mov byte [ebp - 0x9a], 1
lea ecx, [ebp - 0x138]
lea edx, [ebp - 0x9b]
mov eax, dword [ebp - 0x58]
call fcn.0056f31c
mov edx, dword [ebp - 0x138]
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx + 0x54]
inc eax
jle 0x57c8c1
xor esi, esi
jmp 0x57d2ea
mov edx, dword [0x619e9c]
mov eax, 0x10
call fcn.0040647c
mov dword [ebp - 0x1c], eax
mov dl, 1
mov eax, dword [0x41cf58]
call fcn.00404400
mov edx, dword [ebp - 0x1c]
mov dword [edx + 4], eax
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x58]
call fcn.004053e8
mov eax, dword [ebp - 0x1c]
mov byte [eax + 9], 0
cmp dword [ebp - 0x34], 0
je 0x57ca4b
mov eax, dword [ebp - 0x34]
cmp byte [eax], 0x28
jne 0x57ca4b
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x13c]
push eax
mov ecx, 0x57d600
mov edx, 0x57d60c
mov eax, dword [ebp - 0x34]
call fcn.004e3a98
mov edx, dword [ebp - 0x13c]
lea eax, [ebp - 0x34]
call fcn.0040542c
push 2
lea eax, [ebp - 0x140]
push eax
mov byte [ebp - 0x130], 0x2c
mov byte [ebp - 0x12f], 0x20
mov byte [ebp - 0x12e], 9
lea ecx, [ebp - 0x130]
lea edx, [ebp - 0x38]
mov eax, dword [ebp - 0x58]
call fcn.004e3904
mov edx, dword [ebp - 0x140]
lea eax, [ebp - 0x58]
call fcn.0040542c
or edx, 0xffffffff
mov eax, dword [ebp - 0x38]
call fcn.0040a9ec
mov edx, dword [ebp - 0x1c]
mov word [edx + 0xa], ax
push 2
lea eax, [ebp - 0x144]
push eax
mov byte [ebp - 0x130], 0x2c
mov byte [ebp - 0x12f], 0x20
mov byte [ebp - 0x12e], 9
lea ecx, [ebp - 0x130]
lea edx, [ebp - 0x38]
mov eax, dword [ebp - 0x58]
call fcn.004e3904
mov edx, dword [ebp - 0x144]
lea eax, [ebp - 0x58]
call fcn.0040542c
or edx, 0xffffffff
mov eax, dword [ebp - 0x38]
call fcn.0040a9ec
mov edx, dword [ebp - 0x1c]
mov word [edx + 0xc], ax
push 2
lea eax, [ebp - 0x148]
push eax
mov byte [ebp - 0x130], 0x2c
mov byte [ebp - 0x12f], 0x20
mov byte [ebp - 0x12e], 9
lea ecx, [ebp - 0x130]
lea edx, [ebp - 0x38]
mov eax, dword [ebp - 0x58]
call fcn.004e3904
mov edx, dword [ebp - 0x148]
lea eax, [ebp - 0x58]
call fcn.0040542c
or edx, 0xffffffff
mov eax, dword [ebp - 0x38]
call fcn.0040a9ec
mov edx, dword [ebp - 0x1c]
mov word [edx + 0xe], ax
mov eax, dword [ebp - 0x1c]
cmp word [eax + 0xa], 0
jl 0x57ca4b
mov eax, dword [ebp - 0x1c]
cmp word [eax + 0xc], 0
jle 0x57ca4b
mov eax, dword [ebp - 0x1c]
cmp word [eax + 0xe], 0
jle 0x57ca4b
mov eax, dword [ebp - 0x1c]
mov byte [eax + 9], 1
push 1
lea eax, [ebp - 0x14c]
push eax
mov byte [ebp - 0x150], 0x20
mov byte [ebp - 0x14f], 9
lea ecx, [ebp - 0x150]
lea edx, [ebp - 0x58]
mov eax, dword [ebp - 0x34]
call fcn.004e3904
mov edx, dword [ebp - 0x14c]
lea eax, [ebp - 0x34]
call fcn.0040542c
mov edx, 0x57d804
mov eax, dword [ebp - 0x58]
call fcn.00409e48
test eax, eax
jne 0x57ca9b
mov eax, dword [ebp - 0x1c]
mov byte [eax + 8], 1
jmp 0x57caa2
mov eax, dword [ebp - 0x1c]
mov byte [eax + 8], 0
mov edx, dword [0x619e6c]
mov eax, 0x24
call fcn.0040647c
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 4]
mov edx, dword [ebp - 0x20]
call fcn.0041fa54
mov dl, 1
mov eax, dword [0x41cf58]
call fcn.00404400
mov edx, dword [ebp - 0x20]
mov dword [edx], eax
mov dl, 1
mov eax, dword [0x41cf58]
call fcn.00404400
mov edx, dword [ebp - 0x20]
mov dword [edx + 4], eax
mov eax, dword [ebp - 0x20]
add eax, 8
call fcn.00405394
mov dl, 1
mov eax, dword [0x41d624]
call fcn.00404400
mov edx, dword [ebp - 0x20]
mov dword [edx + 0x10], eax
mov dl, 1
mov eax, dword [0x41d624]
call fcn.00404400
mov edx, dword [ebp - 0x20]
mov dword [edx + 0xc], eax
mov dl, 1
mov eax, dword [0x41cf58]
call fcn.00404400
mov edx, dword [ebp - 0x20]
mov dword [edx + 0x14], eax
mov eax, dword [ebp - 0x20]
add eax, 0x18
call fcn.00405394
mov dl, 1
mov eax, dword [0x41d624]
call fcn.00404400
mov edx, dword [ebp - 0x20]
mov dword [edx + 0x20], eax
mov dl, 1
mov eax, dword [0x41d624]
call fcn.00404400
mov edx, dword [ebp - 0x20]
mov dword [edx + 0x1c], eax
cmp byte [ebp - 0x9a], 0
je 0x57d2ea
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc08]
mov edx, dword [ebp - 0x1c]
call fcn.0041fa54
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax]
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx + 0x38]
jmp 0x57d2ea
cmp dword [ebp - 0x1c], 0
je 0x57cf5b
cmp esi, 0xa
jl 0x57ccdd
cmp esi, 0x14
jge 0x57ccdd
mov eax, dword [ebp - 0x34]
cmp byte [eax], 0x23
jne 0x57ccdd
mov edx, 0x57d5d0
mov eax, dword [ebp - 0x34]
call fcn.00409e48
test eax, eax
jne 0x57cc7c
mov edx, dword [0x619e6c]
mov eax, 0x24
call fcn.0040647c
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 4]
mov edx, dword [ebp - 0x20]
call fcn.0041fa54
mov dl, 1
mov eax, dword [0x41cf58]
call fcn.00404400
mov edx, dword [ebp - 0x20]
mov dword [edx], eax
mov dl, 1
mov eax, dword [0x41cf58]
call fcn.00404400
mov edx, dword [ebp - 0x20]
mov dword [edx + 4], eax
mov eax, dword [ebp - 0x20]
add eax, 8
call fcn.00405394
mov dl, 1
mov eax, dword [0x41d624]
call fcn.00404400
mov edx, dword [ebp - 0x20]
mov dword [edx + 0x10], eax
mov dl, 1
mov eax, dword [0x41d624]
call fcn.00404400
mov edx, dword [ebp - 0x20]
mov dword [edx + 0xc], eax
mov dl, 1
mov eax, dword [0x41cf58]
call fcn.00404400
mov edx, dword [ebp - 0x20]
mov dword [edx + 0x14], eax
mov eax, dword [ebp - 0x20]
add eax, 0x18
call fcn.00405394
mov dl, 1
mov eax, dword [0x41d624]
call fcn.00404400
mov edx, dword [ebp - 0x20]
mov dword [edx + 0x20], eax
mov dl, 1
mov eax, dword [0x41d624]
call fcn.00404400
mov edx, dword [ebp - 0x20]
mov dword [edx + 0x1c], eax
mov esi, 0xb
mov edx, 0x57d5dc
mov eax, dword [ebp - 0x34]
call fcn.00409e48
test eax, eax
jne 0x57cc92
mov esi, 0xc
mov edx, 0x57d814
mov eax, dword [ebp - 0x34]
call fcn.00409e48
test eax, eax
jne 0x57cca8
mov esi, 0xa
mov edx, 0x57d5ec
mov eax, dword [ebp - 0x34]
call fcn.00409e48
test eax, eax
jne 0x57ccbe
mov esi, 0xd
mov edx, 0x57d824
mov eax, dword [ebp - 0x34]
call fcn.00409e48
test eax, eax
jne 0x57d2ea
mov esi, 0xe
jmp 0x57d2ea
cmp esi, 0xa
jne 0x57ccf6
cmp dword [ebp - 0x20], 0
je 0x57ccf6
mov eax, dword [ebp - 0x20]
add eax, 8
mov edx, dword [ebp - 0x48]
call fcn.00405660
cmp esi, 0xb
jne 0x57cdc6
mov edx, dword [0x619e00]
mov eax, 0x78
call fcn.0040647c
mov dword [ebp - 0x90], eax
mov edx, dword [0x619e00]
mov eax, dword [ebp - 0x90]
call fcn.0040610c
xor ecx, ecx
mov edx, 0x78
call fcn.004e2d28
mov eax, dword [ebp - 0x90]
xor edx, edx
mov dword [eax], edx
lea edx, [ebp - 0x154]
mov eax, dword [ebp - 0x34]
call fcn.0040a284
mov eax, dword [ebp - 0x154]
lea edx, [ebp - 0x90]
call fcn.00576bd8
test al, al
je 0x57cd71
mov eax, dword [ebp - 0x20]
mov eax, dword [eax]
mov edx, dword [ebp - 0x90]
call fcn.0041fa54
jmp 0x57cdc6
mov edx, dword [0x619e00]
mov eax, dword [ebp - 0x90]
call fcn.00406490
push 0x57d838
push dword [ebp - 0x34]
push 0x57d84c
lea edx, [ebp - 0x15c]
mov eax, dword [ebp - 0x68]
call fcn.0040a790
push dword [ebp - 0x15c]
push 0x57d85c
push dword [ebp - 0x2c]
lea eax, [ebp - 0x158]
mov edx, 6
call fcn.00405728
mov eax, dword [ebp - 0x158]
call fcn.00641540
cmp esi, 0xc
jne 0x57ce87
mov edx, dword [0x619d98]
mov eax, 0x74
call fcn.0040647c
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov edx, dword [0x619d98]
call fcn.0040610c
xor ecx, ecx
mov edx, 0x74
call fcn.004e2d28
mov eax, dword [ebp - 0x10]
xor edx, edx
mov dword [eax], edx
push ebp
lea edx, [ebp - 0x160]
mov eax, dword [ebp - 0x34]
call fcn.0040a284
mov eax, dword [ebp - 0x160]
lea edx, [ebp - 0x10]
call fcn.00578f90
pop ecx
test al, al
je 0x57ce35
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 4]
mov edx, dword [ebp - 0x10]
call fcn.0041fa54
jmp 0x57ce87
mov edx, dword [0x619d98]
mov eax, dword [ebp - 0x10]
call fcn.00406490
push 0x57d838
push dword [ebp - 0x34]
push 0x57d84c
lea edx, [ebp - 0x168]
mov eax, dword [ebp - 0x68]
call fcn.0040a790
push dword [ebp - 0x168]
push 0x57d85c
push dword [ebp - 0x2c]
lea eax, [ebp - 0x164]
mov edx, 6
call fcn.00405728
mov eax, dword [ebp - 0x164]
call fcn.00641540
cmp esi, 0xd
jne 0x57cf48
mov edx, dword [0x619d98]
mov eax, 0x74
call fcn.0040647c
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov edx, dword [0x619d98]
call fcn.0040610c
xor ecx, ecx
mov edx, 0x74
call fcn.004e2d28
mov eax, dword [ebp - 0x10]
xor edx, edx
mov dword [eax], edx
push ebp
lea edx, [ebp - 0x16c]
mov eax, dword [ebp - 0x34]
call fcn.0040a284
mov eax, dword [ebp - 0x16c]
lea edx, [ebp - 0x10]
call fcn.00578f90
pop ecx
test al, al
je 0x57cef6
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0x10]
call fcn.0041fa54
jmp 0x57cf48
mov edx, dword [0x619d98]
mov eax, dword [ebp - 0x10]
call fcn.00406490
push 0x57d838
push dword [ebp - 0x34]
push 0x57d84c
lea edx, [ebp - 0x174]
mov eax, dword [ebp - 0x68]
call fcn.0040a790
push dword [ebp - 0x174]
push 0x57d85c
push dword [ebp - 0x2c]
lea eax, [ebp - 0x170]
mov edx, 6
call fcn.00405728
mov eax, dword [ebp - 0x170]
call fcn.00641540
cmp esi, 0xe
jne 0x57cf5b
mov eax, dword [ebp - 0x20]
add eax, 0x18
mov edx, dword [ebp - 0x48]
call fcn.00405660
cmp esi, 0x15
sete al
and al, byte [ebp + 8]
je 0x57d06d
lea edx, [ebp - 0x44]
mov eax, dword [ebp - 0x34]
call fcn.0040a284
cmp dword [ebp - 0x34], 0
je 0x57cfbf
push 1
lea eax, [ebp - 0x178]
push eax
mov byte [ebp - 0x150], 0x20
mov byte [ebp - 0x14f], 9
lea ecx, [ebp - 0x150]
lea edx, [ebp - 0x38]
mov eax, dword [ebp - 0x34]
call fcn.004e3904
mov edx, dword [ebp - 0x178]
lea eax, [ebp - 0x34]
call fcn.0040542c
cmp dword [ebp - 0x38], 0
je 0x57cfbf
mov eax, dword [ebp - 0x38]
cmp byte [eax], 0x24
je 0x57cf75
cmp dword [ebp - 0x38], 0
je 0x57d06d
mov eax, dword [0x6c0ec4]
mov eax, dword [eax]
mov edx, dword [ebp - 0x38]
call fcn.005bf938
test eax, eax
je 0x57d06d
movzx eax, word [eax]
inc eax
call fcn.00642164
mov dword [ebp - 0x98], eax
cmp dword [ebp - 0x98], 0
je 0x57d06d
mov edx, dword [0x4e40dc]
mov eax, 0x2d
call fcn.0040647c
mov dword [ebp - 0x94], eax
mov eax, dword [ebp - 0x94]
mov edx, dword [ebp - 0x44]
call fcn.004053e8
mov eax, dword [ebp - 0x98]
mov edx, dword [ebp - 0x94]
push esi
mov esi, eax
lea edi, [edx + 4]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop esi
mov eax, dword [ebp - 4]
mov edx, dword [0x61a018]
call fcn.004045e0
mov dword [ebp - 0x100], eax
mov eax, dword [ebp - 0x100]
mov eax, dword [eax + 0x1a9c]
mov edx, dword [ebp - 0x94]
call fcn.0041fa54
mov edx, dword [ebp - 0x94]
mov word [edx + 4], ax
cmp esi, 0x14
sete al
and al, byte [ebp + 8]
je 0x57d2ea
push 1
lea eax, [ebp - 0x17c]
push eax
mov byte [ebp - 0x150], 0x20
mov byte [ebp - 0x14f], 9
lea ecx, [ebp - 0x150]
lea edx, [ebp - 0x38]
mov eax, dword [ebp - 0x34]
call fcn.004e3904
mov edx, dword [ebp - 0x17c]
lea eax, [ebp - 0x34]
call fcn.0040542c
push 1
lea eax, [ebp - 0x180]
push eax
mov byte [ebp - 0x150], 0x20
mov byte [ebp - 0x14f], 9
lea ecx, [ebp - 0x150]
lea edx, [ebp - 0x3c]
mov eax, dword [ebp - 0x34]
call fcn.004e3904
mov edx, dword [ebp - 0x180]
lea eax, [ebp - 0x34]
call fcn.0040542c
push 1
lea eax, [ebp - 0x184]
push eax
mov byte [ebp - 0x150], 0x20
mov byte [ebp - 0x14f], 9
lea ecx, [ebp - 0x150]
lea edx, [ebp - 0x40]
mov eax, dword [ebp - 0x34]
call fcn.004e3904
mov edx, dword [ebp - 0x184]
lea eax, [ebp - 0x34]
call fcn.0040542c
push 1
lea eax, [ebp - 0x188]
push eax
mov byte [ebp - 0x150], 0x20
mov byte [ebp - 0x14f], 9
lea ecx, [ebp - 0x150]
lea edx, [ebp - 0x4c]
mov eax, dword [ebp - 0x34]
call fcn.004e3904
mov edx, dword [ebp - 0x188]
lea eax, [ebp - 0x34]
call fcn.0040542c
cmp dword [ebp - 0x38], 0
je 0x57d2ea
cmp dword [ebp - 0x38], 0
je 0x57d189
mov eax, dword [ebp - 0x38]
cmp byte [eax], 0x22
jne 0x57d189
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x18c]
push eax
mov ecx, 0x57d86c
mov edx, 0x57d86c
mov eax, dword [ebp - 0x38]
call fcn.004e3a98
mov eax, dword [ebp - 4]
mov edx, dword [0x61a018]
call fcn.004045e0
mov dword [ebp - 0x104], eax
xor edi, edi
mov eax, dword [ebp - 0x104]
mov eax, dword [eax + 0x1a98]
cmp dword [eax + 8], 0
jle 0x57d21a
mov eax, dword [ebp - 0x104]
mov eax, dword [eax + 0x1a98]
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x57d21a
inc eax
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0x6c], 0
mov eax, dword [ebp - 0x104]
mov eax, dword [eax + 0x1a98]
mov edx, dword [ebp - 0x6c]
call fcn.0041fbfc
mov edi, eax
test edi, edi
je 0x57d20f
lea eax, [ebp - 0x190]
lea edx, [edi + 1]
call fcn.004055f8
mov eax, dword [ebp - 0x190]
mov edx, dword [ebp - 0x38]
call fcn.00409e48
test eax, eax
je 0x57d21a
xor edi, edi
inc dword [ebp - 0x6c]
dec dword [ebp - 0xa8]
jne 0x57d1d3
test edi, edi
jne 0x57d2ea
mov eax, 0x92
call fcn.00402f94
mov edi, eax
push 0
lea ecx, [edi + 0x10]
mov eax, dword [0x6c0ec4]
mov eax, dword [eax]
mov edx, dword [ebp - 0x38]
call fcn.005c00b8
test al, al
je 0x57d2de
lea eax, [ebp - 0x290]
mov edx, dword [ebp - 0x38]
mov ecx, 0xff
call fcn.00405630
lea edx, [ebp - 0x290]
lea eax, [edi + 1]
mov cl, 0xe
call fcn.004039d0
xor edx, edx
mov eax, dword [ebp - 0x3c]
call fcn.0040a9ec
mov edx, 1
call fcn.004e3de0
mov dword [edi + 0x82], eax
mov eax, dword [edi + 0x82]
mov dword [edi + 0x86], eax
xor edx, edx
mov eax, dword [ebp - 0x40]
call fcn.0040a9ec
mov edx, 1
call fcn.004e3de0
mov dword [edi + 0x8a], eax
xor eax, eax
mov dword [edi + 0x8e], eax
mov edx, dword [ebp - 0x7c]
mov eax, dword [ebp - 0x4c]
call fcn.0040a9ec
mov byte [edi], al
movzx eax, byte [edi]
inc eax
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0x104]
mov eax, dword [eax + 0x1a98]
mov edx, edi
call fcn.0041fa54
jmp 0x57d2ea
mov edx, 0x92
mov eax, edi
call fcn.00402fb0
inc dword [ebp - 0x68]
dec ebx
jne 0x57c212
mov eax, dword [ebp - 0x80]
call fcn.00404430
push ebp
call fcn.00575e4c
pop ecx
cmp byte [ebp + 8], 0
je 0x57d4ed
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x1a9c]
cmp dword [eax + 8], 0
jle 0x57d4ed
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x1a9c]
mov eax, dword [eax + 8]
push eax
lea eax, [ebp - 0x60]
mov ecx, 1
mov edx, dword [0x57bcd0]
call fcn.00406be0
add esp, 4
lea eax, [ebp - 0x5c]
call fcn.00405394
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x1a9c]
mov ebx, dword [eax + 8]
dec ebx
test ebx, ebx
jl 0x57d3b9
inc ebx
mov dword [ebp - 0x68], 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x1a9c]
mov edx, dword [ebp - 0x68]
call fcn.0041fbfc
imul edx, dword [ebp - 0x68], 0x13
mov ecx, dword [ebp - 0x60]
lea esi, [eax + 4]
lea edi, [ecx + edx*2]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
push dword [ebp - 0x5c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x1a9c]
mov edx, dword [ebp - 0x68]
call fcn.0041fbfc
push dword [eax]
push 0x57d878
lea eax, [ebp - 0x5c]
mov edx, 3
call fcn.00405728
inc dword [ebp - 0x68]
dec ebx
jne 0x57d364
lea eax, [ebp - 0xa0]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x1a9c]
imul edx, dword [eax + 8], 0x26
mov eax, dword [ebp - 0x60]
mov cl, 9
call fcn.0066b484
mov dword [ebp - 0xa4], eax
cmp dword [ebp - 0xa4], 0
jle 0x57d42c
mov eax, dword [ebp - 4]
movzx edx, word [ebp - 0xa4]
mov word [eax + 0x1aa4], dx
lea ecx, [ebp - 0x294]
mov edx, dword [ebp - 0xa4]
mov eax, dword [ebp - 0xa0]
call fcn.004e65e0
mov edx, dword [ebp - 0x294]
mov eax, dword [ebp - 4]
add eax, 0x1aa0
call fcn.004053e8
mov eax, dword [ebp - 0xa0]
call fcn.00402fb0
lea eax, [ebp - 0x5c]
call fcn.00405884
mov dword [ebp - 0x110], eax
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x10c], eax
cmp dword [ebp - 0x10c], 0
je 0x57d45d
mov eax, dword [ebp - 0x10c]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x10c], eax
lea eax, [ebp - 0xa0]
push eax
mov edx, dword [ebp - 0x10c]
inc edx
mov cl, 9
mov eax, dword [ebp - 0x110]
call fcn.0066b484
mov dword [ebp - 0xa4], eax
cmp dword [ebp - 0xa4], 0
jle 0x57d4ed
mov eax, dword [ebp - 4]
movzx edx, word [ebp - 0xa4]
mov word [eax + 0x1aac], dx
lea ecx, [ebp - 0x298]
mov edx, dword [ebp - 0xa4]
mov eax, dword [ebp - 0xa0]
call fcn.004e65e0
mov edx, dword [ebp - 0x298]
mov eax, dword [ebp - 4]
add eax, 0x1aa8
call fcn.004053e8
mov eax, dword [ebp - 0xa0]
call fcn.00402fb0
jmp 0x57d4ed
lea eax, [ebp - 0x29c]
mov ecx, dword [ebp + 0xc]
mov edx, 0x57d884
call fcn.004056ac
mov eax, dword [ebp - 0x29c]
call fcn.00641540
mov dword [ebp - 0x64], 1
mov eax, dword [ebp - 8]
call fcn.00404430
mov eax, dword [ebp - 0x14]
call fcn.00404430
mov eax, dword [ebp - 0x18]
call fcn.00404430
mov eax, dword [ebp - 0xc]
call fcn.00404430
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x57d58c
lea eax, [ebp - 0x29c]
mov edx, 3
call fcn.004053b8
lea eax, [ebp - 0x190]
mov edx, 0x10
call fcn.004053b8
lea eax, [ebp - 0x14c]
mov edx, 7
call fcn.004053b8
lea eax, [ebp - 0x12c]
mov edx, 7
call fcn.004053b8
lea eax, [ebp - 0x60]
mov edx, dword [0x57bcd0]
call fcn.00406d00
lea eax, [ebp - 0x5c]
mov edx, 0xe
call fcn.004053b8
lea eax, [ebp + 0xc]
call fcn.00405394
ret