Function at 0x58a270
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x53
push 0
push 0
dec ecx
jne 0x58a279
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 0x58bb05
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 [0x41d618]
call fcn.00404400
mov dword [ebp - 8], eax
mov dl, 1
mov eax, dword [0x41cf4c]
call fcn.00404400
mov dword [ebp - 0x14], eax
mov dl, 1
mov eax, dword [0x41cf4c]
call fcn.00404400
mov dword [ebp - 0x18], eax
mov dl, 1
mov eax, dword [0x41cf4c]
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 [select]
push dword [eax + 0x16c]
push dword [ebp - 0x28]
push dword [ebp + 0xc]
push 0x58bb20
lea eax, [ebp - 0x2c]
mov edx, 4
call fcn.00405728
mov eax, dword [ebp - 0x2c]
call fcn.004c9c68
test al, al
je 0x58ba4f
mov dl, 1
mov eax, dword [0x49fa90]
call fcn.00404400
mov dword [ebp - 0x80], eax
xor eax, eax
push ebp
push 0x58a375
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.0058cb90
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x58a391
push ebp
push dword [ebp - 0x28]
push dword [ebp + 0xc]
push 0x58bb20
lea eax, [ebp - 0x114]
mov edx, 3
call fcn.00405728
mov eax, dword [ebp - 0x114]
lea edx, [ebp - 0x80]
call fcn.00584a4c
pop ecx
mov eax, dword [ebp - 8]
mov edx, dword [eax]
call dword [edx + 0x44]
mov dl, 1
mov eax, dword [0x41cf4c]
call fcn.00404400
mov dword [ebp - 0x84], eax
push ebp
lea ecx, [ebp - 0x118]
lea edx, [ebp - 0x84]
lea eax, [ebp - 0x80]
call fcn.00584e38
pop ecx
mov edx, dword [ebp - 0x118]
lea eax, [ebp - 0x4c]
call fcn.0040542c
mov edx, dword [0x572430]
mov eax, 8
call fcn.0040647c
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x88]
mov edx, 0x58bb30
call fcn.004053e8
cmp dword [ebp - 0x4c], 0
jne 0x58a433
lea eax, [ebp - 0x4c]
mov edx, 0x58bb40
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.0041fa48
mov eax, dword [ebp - 0x80]
mov edx, dword [eax]
call dword [edx + 0x14]
mov ebx, eax
dec ebx
test ebx, ebx
jl 0x58a61e
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.0040a278
cmp dword [ebp - 0x34], 0
je 0x58a614
mov eax, dword [ebp - 0x34]
cmp byte [eax], 0x5b
jne 0x58a4ad
mov byte [ebp - 0x89], 0
jmp 0x58a614
mov eax, dword [ebp - 0x34]
cmp byte [eax], 0x23
jne 0x58a503
mov ecx, 3
mov edx, 0x58bb50
mov eax, dword [ebp - 0x34]
call fcn.0048b068
test al, al
jne 0x58a4f7
mov ecx, 4
mov edx, 0x58bb5c
mov eax, dword [ebp - 0x34]
call fcn.0048b068
test al, al
jne 0x58a4f7
mov ecx, 8
mov edx, 0x58bb6c
mov eax, dword [ebp - 0x34]
call fcn.0048b068
test al, al
je 0x58a503
mov byte [ebp - 0x89], 1
jmp 0x58a614
cmp byte [ebp - 0x89], 0
je 0x58a614
mov eax, dword [ebp - 0x84]
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x58a614
inc eax
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0x74], 0
mov edx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x84]
call fcn.0041fbf0
mov dword [ebp - 0x88], eax
xor eax, eax
mov dword [ebp - 0x70], eax
lea edx, [ebp - 0x120]
mov eax, dword [ebp - 0x34]
call fcn.00409c30
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 0x58a605
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 0x58a5b4
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 0x58a549
inc dword [ebp - 0x74]
dec dword [ebp - 0xa8]
jne 0x58a530
inc dword [ebp - 0x68]
dec ebx
jne 0x58a470
mov eax, dword [ebp - 0x84]
mov ebx, dword [eax + 8]
dec ebx
test ebx, ebx
jl 0x58a653
inc ebx
mov dword [ebp - 0x68], 0
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x84]
call fcn.0041fbf0
mov edx, dword [0x572430]
call fcn.00406490
inc dword [ebp - 0x68]
dec ebx
jne 0x58a634
mov eax, dword [ebp - 0x84]
call fcn.00404430
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp byte [ebp + 8], 0
je 0x58a777
mov eax, dword [ebp - 4]
mov edx, dword [0x60c7fc]
call fcn.004045e0
mov dword [ebp - 0xac], eax
mov eax, dword [ebp - 0xac]
mov eax, dword [eax + 0x1a98]
cmp dword [eax + 8], 0
jle 0x58a6d7
mov eax, dword [ebp - 0xac]
mov eax, dword [eax + 0x1a98]
mov ebx, dword [eax + 8]
dec ebx
test ebx, ebx
jl 0x58a6d7
inc ebx
mov dword [ebp - 0x6c], 0
mov eax, dword [ebp - 0xac]
mov eax, dword [eax + 0x1a98]
mov edx, dword [ebp - 0x6c]
call fcn.0041fbf0
mov edi, eax
mov edx, 0x92
mov eax, edi
call fcn.00402fb0
inc dword [ebp - 0x6c]
dec ebx
jne 0x58a6af
mov eax, dword [ebp - 0xac]
mov eax, dword [eax + 0x1a9c]
cmp dword [eax + 8], 0
jle 0x58a72a
mov eax, dword [ebp - 0xac]
mov eax, dword [eax + 0x1a9c]
mov ebx, dword [eax + 8]
dec ebx
test ebx, ebx
jl 0x58a72a
inc ebx
mov dword [ebp - 0x6c], 0
mov eax, dword [ebp - 0xac]
mov eax, dword [eax + 0x1a9c]
mov edx, dword [ebp - 0x6c]
call fcn.0041fbf0
mov edx, dword [0x48b50c]
call fcn.00406490
inc dword [ebp - 0x6c]
dec ebx
jne 0x58a705
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.0060f7d0
mov eax, dword [ebp - 0x80]
mov edx, dword [eax]
call dword [edx + 0x14]
mov ebx, eax
dec ebx
test ebx, ebx
jl 0x58b874
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.0040a278
cmp dword [ebp - 0x34], 0
je 0x58b86a
mov eax, dword [ebp - 0x34]
cmp byte [eax], 0x3b
je 0x58b86a
mov eax, dword [ebp - 0x34]
cmp byte [eax], 0x2f
je 0x58b86a
lea ecx, [ebp - 0x48]
mov eax, dword [0x6c0ec4]
mov eax, dword [eax]
mov edx, dword [ebp - 0x34]
call fcn.005f336c
lea eax, [ebp - 0x34]
mov edx, dword [ebp - 0x48]
call fcn.0040542c
test esi, esi
jne 0x58acf4
cmp byte [ebp + 8], 0
je 0x58acf4
mov eax, dword [ebp - 0x34]
cmp byte [eax], 0x28
jne 0x58acf4
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x128]
push eax
mov ecx, 0x58bb80
mov edx, 0x58bb8c
mov eax, dword [ebp - 0x34]
call fcn.0048aec8
cmp dword [ebp - 0x34], 0
je 0x58b86a
jmp 0x58ace5
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.0048ab7c
mov edx, dword [ebp - 0x12c]
lea eax, [ebp - 0x34]
call fcn.0040542c
mov edx, 0x58bb98
mov eax, dword [ebp - 0x30]
call fcn.00409e3c
test eax, eax
jne 0x58a8a4
mov eax, dword [ebp - 4]
mov edx, dword [0x60c7fc]
call fcn.004045e0
mov edi, eax
mov byte [edi + 0x1ac0], 1
jmp 0x58ace5
mov edx, 0x58bba8
mov eax, dword [ebp - 0x30]
call fcn.00409e3c
test eax, eax
jne 0x58a8db
mov eax, dword [ebp - 4]
mov edx, dword [0x60c7fc]
call fcn.004045e0
mov dword [ebp - 0xb0], eax
mov eax, dword [ebp - 0xb0]
mov byte [eax + 0x1ac1], 1
jmp 0x58ace5
mov edx, 0x58bbb8
mov eax, dword [ebp - 0x30]
call fcn.00409e3c
test eax, eax
jne 0x58a912
mov eax, dword [ebp - 4]
mov edx, dword [0x60c7fc]
call fcn.004045e0
mov dword [ebp - 0xb4], eax
mov eax, dword [ebp - 0xb4]
mov byte [eax + 0x1ac2], 1
jmp 0x58ace5
mov edx, 0x58bbcc
mov eax, dword [ebp - 0x30]
call fcn.00409e3c
test eax, eax
jne 0x58a949
mov eax, dword [ebp - 4]
mov edx, dword [0x60c7fc]
call fcn.004045e0
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp - 0xb8]
mov byte [eax + 0x1ac3], 1
jmp 0x58ace5
mov edx, 0x58bbdc
mov eax, dword [ebp - 0x30]
call fcn.00409e3c
test eax, eax
jne 0x58a980
mov eax, dword [ebp - 4]
mov edx, dword [0x60c7fc]
call fcn.004045e0
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp - 0xbc]
mov byte [eax + 0x1ac4], 1
jmp 0x58ace5
mov edx, 0x58bbf0
mov eax, dword [ebp - 0x30]
call fcn.00409e3c
test eax, eax
jne 0x58a9b7
mov eax, dword [ebp - 4]
mov edx, dword [0x60c7fc]
call fcn.004045e0
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 0xc0]
mov byte [eax + 0x1ac9], 1
jmp 0x58ace5
mov edx, 0x58bc00
mov eax, dword [ebp - 0x30]
call fcn.00409e3c
test eax, eax
jne 0x58a9ee
mov eax, dword [ebp - 4]
mov edx, dword [0x60c7fc]
call fcn.004045e0
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0xc4]
mov byte [eax + 0x1aca], 1
jmp 0x58ace5
mov edx, 0x58bc14
mov eax, dword [ebp - 0x30]
call fcn.00409e3c
test eax, eax
jne 0x58aa25
mov eax, dword [ebp - 4]
mov edx, dword [0x60c7fc]
call fcn.004045e0
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0xc8]
mov byte [eax + 0x1acb], 1
jmp 0x58ace5
mov edx, 0x58bc28
mov eax, dword [ebp - 0x30]
call fcn.00409e3c
test eax, eax
jne 0x58aa5c
mov eax, dword [ebp - 4]
mov edx, dword [0x60c7fc]
call fcn.004045e0
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0xcc]
mov byte [eax + 0x1ace], 1
jmp 0x58ace5
mov edx, 0x58bc40
mov eax, dword [ebp - 0x30]
call fcn.00409e3c
test eax, eax
jne 0x58aa93
mov eax, dword [ebp - 4]
mov edx, dword [0x60c7fc]
call fcn.004045e0
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0xd0]
mov byte [eax + 0x1acf], 1
jmp 0x58ace5
mov edx, 0x58bc58
mov eax, dword [ebp - 0x30]
call fcn.00409e3c
test eax, eax
jne 0x58aaca
mov eax, dword [ebp - 4]
mov edx, dword [0x60c7fc]
call fcn.004045e0
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0xd4]
mov byte [eax + 0x1ad0], 1
jmp 0x58ace5
mov edx, 0x58bc6c
mov eax, dword [ebp - 0x30]
call fcn.00409e3c
test eax, eax
jne 0x58ab01
mov eax, dword [ebp - 4]
mov edx, dword [0x60c7fc]
call fcn.004045e0
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0xd8]
mov byte [eax + 0x1ad1], 1
jmp 0x58ace5
mov edx, 0x58bc7c
mov eax, dword [ebp - 0x30]
call fcn.00409e3c
test eax, eax
jne 0x58ab38
mov eax, dword [ebp - 4]
mov edx, dword [0x60c7fc]
call fcn.004045e0
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0xdc]
mov byte [eax + 0x1ad2], 1
jmp 0x58ace5
mov edx, 0x58bc90
mov eax, dword [ebp - 0x30]
call fcn.00409e3c
test eax, eax
jne 0x58ab6f
mov eax, dword [ebp - 4]
mov edx, dword [0x60c7fc]
call fcn.004045e0
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0xe0]
mov byte [eax + 0x1ac5], 1
jmp 0x58ace5
mov edx, 0x58bca8
mov eax, dword [ebp - 0x30]
call fcn.00409e3c
test eax, eax
jne 0x58aba6
mov eax, dword [ebp - 4]
mov edx, dword [0x60c7fc]
call fcn.004045e0
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp - 0xe4]
mov byte [eax + 0x1ac8], 1
jmp 0x58ace5
mov edx, 0x58bcc0
mov eax, dword [ebp - 0x30]
call fcn.00409e3c
test eax, eax
jne 0x58abdd
mov eax, dword [ebp - 4]
mov edx, dword [0x60c7fc]
call fcn.004045e0
mov dword [ebp - 0xe8], eax
mov eax, dword [ebp - 0xe8]
mov byte [eax + 0x1ac6], 1
jmp 0x58ace5
mov edx, 0x58bcd4
mov eax, dword [ebp - 0x30]
call fcn.00409e3c
test eax, eax
jne 0x58ac14
mov eax, dword [ebp - 4]
mov edx, dword [0x60c7fc]
call fcn.004045e0
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0xec]
mov byte [eax + 0x1ac7], 1
jmp 0x58ace5
mov edx, 0x58bcec
mov eax, dword [ebp - 0x30]
call fcn.00409e3c
test eax, eax
jne 0x58ac4b
mov eax, dword [ebp - 4]
mov edx, dword [0x60c7fc]
call fcn.004045e0
mov dword [ebp - 0xf0], eax
mov eax, dword [ebp - 0xf0]
mov byte [eax + 0x1ad3], 1
jmp 0x58ace5
mov edx, 0x58bd04
mov eax, dword [ebp - 0x30]
call fcn.00409e3c
test eax, eax
jne 0x58ac7f
mov eax, dword [ebp - 4]
mov edx, dword [0x60c7fc]
call fcn.004045e0
mov dword [ebp - 0xf4], eax
mov eax, dword [ebp - 0xf4]
mov byte [eax + 0x1ad4], 1
jmp 0x58ace5
mov edx, 0x58bd1c
mov eax, dword [ebp - 0x30]
call fcn.00409e3c
test eax, eax
jne 0x58acb3
mov eax, dword [ebp - 4]
mov edx, dword [0x60c7fc]
call fcn.004045e0
mov dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0xf8]
mov byte [eax + 0x1ad5], 1
jmp 0x58ace5
mov edx, 0x58bd30
mov eax, dword [ebp - 0x30]
call fcn.00409e3c
test eax, eax
jne 0x58ace5
mov eax, dword [ebp - 4]
mov edx, dword [0x60c7fc]
call fcn.004045e0
mov dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0xfc]
mov byte [eax + 0x1ad6], 1
cmp dword [ebp - 0x34], 0
jne 0x58a83a
jmp 0x58b86a
mov eax, dword [ebp - 0x34]
cmp byte [eax], 0x5b
jne 0x58b106
mov esi, 0xa
mov edx, 0x58bd48
mov eax, dword [ebp - 0x34]
call fcn.00409e3c
test eax, eax
jne 0x58ad25
mov esi, 0x14
xor eax, eax
mov dword [ebp - 0x7c], eax
jmp 0x58b86a
mov edx, 0x58bd58
mov eax, dword [ebp - 0x34]
call fcn.00409e3c
test eax, eax
jne 0x58ad40
mov esi, 0x15
jmp 0x58b86a
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x134]
push eax
mov ecx, 0x58bd6c
mov edx, 0x58bd78
mov eax, dword [ebp - 0x34]
call fcn.0048aec8
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 0x58add1
mov edx, dword [0x60c680]
mov eax, 0x10
call fcn.0040647c
mov dword [ebp - 0x1c], eax
mov dl, 1
mov eax, dword [0x41cf4c]
call fcn.00404400
mov edx, dword [ebp - 0x1c]
mov dword [edx + 4], eax
mov eax, dword [ebp - 0x1c]
mov edx, 0x58bb40
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.0041fa48
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 0x58ae0e
mov edx, 0x58bb40
mov eax, dword [ebp - 0x58]
call fcn.00409e3c
test eax, eax
jne 0x58ae0e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc08]
xor edx, edx
call fcn.0041fbf0
mov dword [ebp - 0x1c], eax
mov byte [ebp - 0x99], 1
mov byte [ebp - 0x9a], 0
jmp 0x58ae71
mov byte [ebp - 0x9a], 1
lea ecx, [ebp - 0x138]
lea edx, [ebp - 0x9b]
mov eax, dword [ebp - 0x58]
call fcn.0057d89c
mov edx, dword [ebp - 0x138]
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx + 0x54]
inc eax
jle 0x58ae41
xor esi, esi
jmp 0x58b86a
mov edx, dword [0x60c680]
mov eax, 0x10
call fcn.0040647c
mov dword [ebp - 0x1c], eax
mov dl, 1
mov eax, dword [0x41cf4c]
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 0x58afcb
mov eax, dword [ebp - 0x34]
cmp byte [eax], 0x28
jne 0x58afcb
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x13c]
push eax
mov ecx, 0x58bb80
mov edx, 0x58bb8c
mov eax, dword [ebp - 0x34]
call fcn.0048aec8
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.0048ad34
mov edx, dword [ebp - 0x140]
lea eax, [ebp - 0x58]
call fcn.0040542c
or edx, 0xffffffff
mov eax, dword [ebp - 0x38]
call fcn.0040a9e0
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.0048ad34
mov edx, dword [ebp - 0x144]
lea eax, [ebp - 0x58]
call fcn.0040542c
or edx, 0xffffffff
mov eax, dword [ebp - 0x38]
call fcn.0040a9e0
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.0048ad34
mov edx, dword [ebp - 0x148]
lea eax, [ebp - 0x58]
call fcn.0040542c
or edx, 0xffffffff
mov eax, dword [ebp - 0x38]
call fcn.0040a9e0
mov edx, dword [ebp - 0x1c]
mov word [edx + 0xe], ax
mov eax, dword [ebp - 0x1c]
cmp word [eax + 0xa], 0
jl 0x58afcb
mov eax, dword [ebp - 0x1c]
cmp word [eax + 0xc], 0
jle 0x58afcb
mov eax, dword [ebp - 0x1c]
cmp word [eax + 0xe], 0
jle 0x58afcb
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.0048ad34
mov edx, dword [ebp - 0x14c]
lea eax, [ebp - 0x34]
call fcn.0040542c
mov edx, 0x58bd84
mov eax, dword [ebp - 0x58]
call fcn.00409e3c
test eax, eax
jne 0x58b01b
mov eax, dword [ebp - 0x1c]
mov byte [eax + 8], 1
jmp 0x58b022
mov eax, dword [ebp - 0x1c]
mov byte [eax + 8], 0
mov edx, dword [0x60c650]
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.0041fa48
mov dl, 1
mov eax, dword [0x41cf4c]
call fcn.00404400
mov edx, dword [ebp - 0x20]
mov dword [edx], eax
mov dl, 1
mov eax, dword [0x41cf4c]
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 [0x41d618]
call fcn.00404400
mov edx, dword [ebp - 0x20]
mov dword [edx + 0x10], eax
mov dl, 1
mov eax, dword [0x41d618]
call fcn.00404400
mov edx, dword [ebp - 0x20]
mov dword [edx + 0xc], eax
mov dl, 1
mov eax, dword [0x41cf4c]
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 [0x41d618]
call fcn.00404400
mov edx, dword [ebp - 0x20]
mov dword [edx + 0x20], eax
mov dl, 1
mov eax, dword [0x41d618]
call fcn.00404400
mov edx, dword [ebp - 0x20]
mov dword [edx + 0x1c], eax
cmp byte [ebp - 0x9a], 0
je 0x58b86a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc08]
mov edx, dword [ebp - 0x1c]
call fcn.0041fa48
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax]
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx + 0x38]
jmp 0x58b86a
cmp dword [ebp - 0x1c], 0
je 0x58b4db
cmp esi, 0xa
jl 0x58b25d
cmp esi, 0x14
jge 0x58b25d
mov eax, dword [ebp - 0x34]
cmp byte [eax], 0x23
jne 0x58b25d
mov edx, 0x58bb50
mov eax, dword [ebp - 0x34]
call fcn.00409e3c
test eax, eax
jne 0x58b1fc
mov edx, dword [0x60c650]
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.0041fa48
mov dl, 1
mov eax, dword [0x41cf4c]
call fcn.00404400
mov edx, dword [ebp - 0x20]
mov dword [edx], eax
mov dl, 1
mov eax, dword [0x41cf4c]
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 [0x41d618]
call fcn.00404400
mov edx, dword [ebp - 0x20]
mov dword [edx + 0x10], eax
mov dl, 1
mov eax, dword [0x41d618]
call fcn.00404400
mov edx, dword [ebp - 0x20]
mov dword [edx + 0xc], eax
mov dl, 1
mov eax, dword [0x41cf4c]
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 [0x41d618]
call fcn.00404400
mov edx, dword [ebp - 0x20]
mov dword [edx + 0x20], eax
mov dl, 1
mov eax, dword [0x41d618]
call fcn.00404400
mov edx, dword [ebp - 0x20]
mov dword [edx + 0x1c], eax
mov esi, 0xb
mov edx, 0x58bb5c
mov eax, dword [ebp - 0x34]
call fcn.00409e3c
test eax, eax
jne 0x58b212
mov esi, 0xc
mov edx, 0x58bd94
mov eax, dword [ebp - 0x34]
call fcn.00409e3c
test eax, eax
jne 0x58b228
mov esi, 0xa
mov edx, 0x58bb6c
mov eax, dword [ebp - 0x34]
call fcn.00409e3c
test eax, eax
jne 0x58b23e
mov esi, 0xd
mov edx, 0x58bda4
mov eax, dword [ebp - 0x34]
call fcn.00409e3c
test eax, eax
jne 0x58b86a
mov esi, 0xe
jmp 0x58b86a
cmp esi, 0xa
jne 0x58b276
cmp dword [ebp - 0x20], 0
je 0x58b276
mov eax, dword [ebp - 0x20]
add eax, 8
mov edx, dword [ebp - 0x48]
call fcn.00405660
cmp esi, 0xb
jne 0x58b346
mov edx, dword [0x60c5e4]
mov eax, 0x78
call fcn.0040647c
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0x90]
mov edx, dword [0x60c5e4]
call fcn.0040610c
xor ecx, ecx
mov edx, 0x78
call fcn.0048a158
mov eax, dword [ebp - 0x90]
xor edx, edx
mov dword [eax], edx
lea edx, [ebp - 0x154]
mov eax, dword [ebp - 0x34]
call fcn.0040a278
mov eax, dword [ebp - 0x154]
lea edx, [ebp - 0x90]
call fcn.00585158
test al, al
je 0x58b2f1
mov eax, dword [ebp - 0x20]
mov eax, dword [eax]
mov edx, dword [ebp - 0x90]
call fcn.0041fa48
jmp 0x58b346
mov edx, dword [0x60c5e4]
mov eax, dword [ebp - 0x90]
call fcn.00406490
push 0x58bdb8
push dword [ebp - 0x34]
push 0x58bdcc
lea edx, [ebp - 0x15c]
mov eax, dword [ebp - 0x68]
call fcn.0040a784
push dword [ebp - 0x15c]
push 0x58bddc
push dword [ebp - 0x2c]
lea eax, [ebp - 0x158]
mov edx, 6
call fcn.00405728
mov eax, dword [ebp - 0x158]
call fcn.0049fdd4
cmp esi, 0xc
jne 0x58b407
mov edx, dword [0x60c57c]
mov eax, 0x74
call fcn.0040647c
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov edx, dword [0x60c57c]
call fcn.0040610c
xor ecx, ecx
mov edx, 0x74
call fcn.0048a158
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.0040a278
mov eax, dword [ebp - 0x160]
lea edx, [ebp - 0x10]
call fcn.00587510
pop ecx
test al, al
je 0x58b3b5
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 4]
mov edx, dword [ebp - 0x10]
call fcn.0041fa48
jmp 0x58b407
mov edx, dword [0x60c57c]
mov eax, dword [ebp - 0x10]
call fcn.00406490
push 0x58bdb8
push dword [ebp - 0x34]
push 0x58bdcc
lea edx, [ebp - 0x168]
mov eax, dword [ebp - 0x68]
call fcn.0040a784
push dword [ebp - 0x168]
push 0x58bddc
push dword [ebp - 0x2c]
lea eax, [ebp - 0x164]
mov edx, 6
call fcn.00405728
mov eax, dword [ebp - 0x164]
call fcn.0049fdd4
cmp esi, 0xd
jne 0x58b4c8
mov edx, dword [0x60c57c]
mov eax, 0x74
call fcn.0040647c
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov edx, dword [0x60c57c]
call fcn.0040610c
xor ecx, ecx
mov edx, 0x74
call fcn.0048a158
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.0040a278
mov eax, dword [ebp - 0x16c]
lea edx, [ebp - 0x10]
call fcn.00587510
pop ecx
test al, al
je 0x58b476
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0x10]
call fcn.0041fa48
jmp 0x58b4c8
mov edx, dword [0x60c57c]
mov eax, dword [ebp - 0x10]
call fcn.00406490
push 0x58bdb8
push dword [ebp - 0x34]
push 0x58bdcc
lea edx, [ebp - 0x174]
mov eax, dword [ebp - 0x68]
call fcn.0040a784
push dword [ebp - 0x174]
push 0x58bddc
push dword [ebp - 0x2c]
lea eax, [ebp - 0x170]
mov edx, 6
call fcn.00405728
mov eax, dword [ebp - 0x170]
call fcn.0049fdd4
cmp esi, 0xe
jne 0x58b4db
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 0x58b5ed
lea edx, [ebp - 0x44]
mov eax, dword [ebp - 0x34]
call fcn.0040a278
cmp dword [ebp - 0x34], 0
je 0x58b53f
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.0048ad34
mov edx, dword [ebp - 0x178]
lea eax, [ebp - 0x34]
call fcn.0040542c
cmp dword [ebp - 0x38], 0
je 0x58b53f
mov eax, dword [ebp - 0x38]
cmp byte [eax], 0x24
je 0x58b4f5
cmp dword [ebp - 0x38], 0
je 0x58b5ed
mov eax, dword [0x6c0ec4]
mov eax, dword [eax]
mov edx, dword [ebp - 0x38]
call fcn.005eed94
test eax, eax
je 0x58b5ed
movzx eax, word [eax]
inc eax
call fcn.004a09f8
mov dword [ebp - 0x98], eax
cmp dword [ebp - 0x98], 0
je 0x58b5ed
mov edx, dword [0x48b50c]
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 [0x60c7fc]
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.0041fa48
mov edx, dword [ebp - 0x94]
mov word [edx + 4], ax
cmp esi, 0x14
sete al
and al, byte [ebp + 8]
je 0x58b86a
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.0048ad34
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.0048ad34
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.0048ad34
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.0048ad34
mov edx, dword [ebp - 0x188]
lea eax, [ebp - 0x34]
call fcn.0040542c
cmp dword [ebp - 0x38], 0
je 0x58b86a
cmp dword [ebp - 0x38], 0
je 0x58b709
mov eax, dword [ebp - 0x38]
cmp byte [eax], 0x22
jne 0x58b709
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x18c]
push eax
mov ecx, 0x58bdec
mov edx, 0x58bdec
mov eax, dword [ebp - 0x38]
call fcn.0048aec8
mov eax, dword [ebp - 4]
mov edx, dword [0x60c7fc]
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 0x58b79a
mov eax, dword [ebp - 0x104]
mov eax, dword [eax + 0x1a98]
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x58b79a
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.0041fbf0
mov edi, eax
test edi, edi
je 0x58b78f
lea eax, [ebp - 0x190]
lea edx, [edi + 1]
call fcn.004055f8
mov eax, dword [ebp - 0x190]
mov edx, dword [ebp - 0x38]
call fcn.00409e3c
test eax, eax
je 0x58b79a
xor edi, edi
inc dword [ebp - 0x6c]
dec dword [ebp - 0xa8]
jne 0x58b753
test edi, edi
jne 0x58b86a
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.005ef514
test al, al
je 0x58b85e
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.0040a9e0
mov edx, 1
call fcn.0048b210
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.0040a9e0
mov edx, 1
call fcn.0048b210
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.0040a9e0
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.0041fa48
jmp 0x58b86a
mov edx, 0x92
mov eax, edi
call fcn.00402fb0
inc dword [ebp - 0x68]
dec ebx
jne 0x58a792
mov eax, dword [ebp - 0x80]
call fcn.00404430
push ebp
call fcn.005843cc
pop ecx
cmp byte [ebp + 8], 0
je 0x58ba6d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x1a9c]
cmp dword [eax + 8], 0
jle 0x58ba6d
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 [0x58a250]
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 0x58b939
inc ebx
mov dword [ebp - 0x68], 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x1a9c]
mov edx, dword [ebp - 0x68]
call fcn.0041fbf0
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.0041fbf0
push dword [eax]
push 0x58bdf8
lea eax, [ebp - 0x5c]
mov edx, 3
call fcn.00405728
inc dword [ebp - 0x68]
dec ebx
jne 0x58b8e4
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.004c9d18
mov dword [ebp - 0xa4], eax
cmp dword [ebp - 0xa4], 0
jle 0x58b9ac
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.00499a90
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 0x58b9dd
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.004c9d18
mov dword [ebp - 0xa4], eax
cmp dword [ebp - 0xa4], 0
jle 0x58ba6d
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.00499a90
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 0x58ba6d
lea eax, [ebp - 0x29c]
mov ecx, dword [ebp + 0xc]
mov edx, 0x58be04
call fcn.004056ac
mov eax, dword [ebp - 0x29c]
call fcn.0049fdd4
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 0x58bb0c
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 [0x58a250]
call fcn.00406d00
lea eax, [ebp - 0x5c]
mov edx, 0xe
call fcn.004053b8
lea eax, [ebp + 0xc]
call fcn.00405394
ret