Function at 0x40a020
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa8
lea eax, [ebp - 8]
mov dword [ebp - 0x84], ecx
mov dword [ebp - 0x64], 0x445710
mov dword [ebp - 0x60], 0x446900
mov dword [ebp - 0x58], 0x40a63b
mov dword [ebp - 0x5c], eax
lea eax, [ebp - 0x7c]
mov dword [ebp - 0x54], esp
mov dword [esp], eax
call fcn.004286e0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
test eax, eax
jne 0x40a071
lea eax, [ebp - 0x7c]
mov dword [esp], eax
call fcn.00428750
leave
ret 4
mov dword [ebp - 0x78], 0xffffffff
call fcn.00417600
test al, al
je 0x40a2c0
movzx eax, byte [0x452070]
test al, al
je 0x40a5a0
movzx eax, byte [0x452078]
mov byte [ebp - 0x80], al
cmp byte [ebp - 0x80], 0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
je 0x40a2c6
lea edx, [ebp - 0x38]
test eax, eax
mov dword [ebp - 0x3c], 0
mov byte [ebp - 0x38], 0
mov dword [ebp - 0x40], edx
je 0x40a434
mov eax, edx
mov dword [ebp - 0x88], 0
mov dword [ebp - 0x80], 0
jmp 0x40a151
cmp byte [ebp - 0x8c], 0x7f
je 0x40a5e0
mov ecx, dword [ebp - 0x88]
lea edx, [ebp - 0x38]
add ecx, 1
cmp eax, edx
mov edx, 0xf
cmovne edx, dword [ebp - 0x38]
mov dword [ebp - 0x90], ecx
cmp ecx, edx
ja 0x40a360
movzx edx, byte [ebp - 0x8c]
mov ecx, dword [ebp - 0x88]
mov byte [eax + ecx], dl
mov edx, dword [ebp - 0x90]
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x3c], edx
mov byte [eax + edx], 0
mov edx, dword [ebp + 8]
add dword [ebp - 0x80], 1
mov eax, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x3c]
cmp eax, dword [edx + 4]
mov dword [ebp - 0x88], ecx
jae 0x40a420
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x80]
movzx ecx, byte [edx + ecx]
mov dword [ebp - 0x28], 0x43424140
mov dword [ebp - 0x24], 0x47464544
mov dword [ebp - 0x20], 0x4b4a4948
mov dword [ebp - 0x1c], 0x4f4e4d4c
mov dword [ebp - 0x18], 0x53525150
mov dword [ebp - 0x14], 0x57565554
mov dword [ebp - 0x10], 0x5b5a5958
cmp cl, 0x1f
mov byte [ebp - 0x8c], cl
mov dword [ebp - 0xc], 0x5f5e5d5c
ja 0x40a0e0
movzx edx, cl
movzx edx, byte [ebp + edx - 0x28]
test dl, dl
mov byte [ebp - 0x90], dl
je 0x40a0ed
mov edx, dword [ebp - 0x88]
lea ecx, [edx + 1]
lea edx, [ebp - 0x38]
cmp eax, edx
mov edx, 0xf
cmovne edx, dword [ebp - 0x38]
mov dword [ebp - 0x8c], ecx
cmp ecx, edx
ja 0x40a3e0
mov ecx, dword [ebp - 0x88]
mov edx, dword [ebp - 0x8c]
mov byte [eax + ecx], 0x5e
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x3c], edx
mov byte [eax + edx], 0
mov eax, dword [ebp - 0x3c]
lea edx, [ebp - 0x38]
lea ecx, [eax + 1]
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x8c], ecx
cmp eax, edx
mov edx, 0xf
cmovne edx, dword [ebp - 0x38]
cmp ecx, edx
ja 0x40a3a0
movzx edx, byte [ebp - 0x90]
mov ecx, dword [ebp - 0x88]
mov byte [eax + ecx], dl
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x40]
mov byte [eax + ecx + 1], 0
jmp 0x40a132
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x40]
lea ecx, [eax + 1]
mov dword [ebp - 0x80], eax
lea eax, [ebp - 0x38]
cmp edx, eax
mov eax, 0xf
cmovne eax, dword [ebp - 0x38]
mov dword [ebp - 0x88], ecx
cmp ecx, eax
ja 0x40a5f0
mov ecx, dword [ebp - 0x80]
mov eax, dword [ebp - 0x88]
mov byte [edx + ecx], 0x29
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x40]
mov byte [eax + ecx + 1], 0
mov eax, dword [ebp - 0x40]
mov dword [esp], str.input_chars:__s
mov dword [esp + 4], eax
mov dword [ebp - 0x78], 2
call fcn.004168d0
mov eax, dword [ebp - 0x40]
lea edx, [ebp - 0x38]
cmp eax, edx
je 0x40a2c0
mov dword [esp], eax
call fcn.00444a10
lea esi, [esi]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
mov edx, dword [ebp - 0x84]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
lea ecx, [edx + 0x14]
mov eax, dword [eax]
mov dword [esp], eax
mov dword [ebp - 0x78], 0xffffffff
call fcn.00440010
sub esp, 8
mov dword [esp], 0
mov ecx, dword [ebp - 0x84]
call fcn.00409ec0
mov edx, dword [ebp - 0x84]
sub esp, 4
mov eax, dword [edx + 0x18]
test eax, eax
je 0x40a335
cmp byte [edx + 0x10], 0
jne 0x40a335
mov dword [esp], str.send_DSR
call fcn.004168d0
mov eax, dword [ebp - 0x84]
mov ecx, dword [eax + 0xc]
mov eax, dword [ecx]
call dword [eax]
mov eax, dword [ebp - 0x84]
mov byte [eax + 0x10], 1
mov dword [ebp - 0x78], 0xffffffff
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [ebp - 0x84]
mov dword [edx + 0x7c], eax
lea eax, [ebp - 0x7c]
mov dword [esp], eax
call fcn.00428750
leave
ret 4
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
lea ecx, [ebp - 0x40]
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x88]
mov dword [esp], eax
mov dword [ebp - 0x78], 2
call fcn.004401e0
sub esp, 0x10
mov eax, dword [ebp - 0x40]
jmp 0x40a112
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
lea ecx, [ebp - 0x40]
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x88]
mov dword [esp], eax
mov dword [ebp - 0x78], 2
call fcn.004401e0
sub esp, 0x10
mov eax, dword [ebp - 0x40]
jmp 0x40a224
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
lea ecx, [ebp - 0x40]
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x88]
mov dword [esp], eax
mov dword [ebp - 0x78], 2
call fcn.004401e0
sub esp, 0x10
mov eax, dword [ebp - 0x40]
jmp 0x40a1df
mov eax, 0x7fffffff
sub eax, dword [ebp - 0x88]
cmp eax, 1
jbe 0x40a652
lea ecx, [ebp - 0x40]
mov dword [esp + 4], 2
mov dword [esp], 0x44927b
mov dword [ebp - 0x78], 2
call fcn.00440010
mov eax, dword [ebp + 8]
sub esp, 8
mov dword [ebp - 0x80], 0
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x40a250
lea esi, [esi]
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x80]
mov eax, dword [eax]
movzx eax, byte [eax + ecx]
mov dword [esp + 4], str._02X
mov dword [esp + 8], eax
lea eax, [ebp - 0x28]
mov dword [esp], eax
mov dword [ebp - 0x78], 2
call fcn.004330f0
lea edx, [ebp - 0x28]
mov ecx, dword [edx]
add edx, 4
lea eax, [ecx - 0x1010101]
not ecx
and eax, ecx
and eax, 0x80808080
je 0x40a49d
mov ecx, eax
shr ecx, 0x10
test eax, 0x8080
cmove eax, ecx
lea ecx, [edx + 2]
cmove edx, ecx
mov ecx, eax
add cl, al
lea eax, [ebp - 0x28]
sbb edx, 3
sub edx, eax
mov eax, 0x7fffffff
sub eax, dword [ebp - 0x3c]
cmp edx, eax
ja 0x40a628
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0x40]
mov dword [esp + 4], edx
mov dword [esp], eax
mov dword [ebp - 0x78], 2
call fcn.00440010
mov edx, dword [ebp + 8]
add dword [ebp - 0x80], 1
sub esp, 8
mov eax, dword [ebp - 0x80]
cmp eax, dword [edx + 4]
jae 0x40a250
mov edx, dword [ebp - 0x80]
test edx, edx
je 0x40a470
mov eax, dword [ebp - 0x3c]
lea edx, [ebp - 0x38]
lea ecx, [eax + 1]
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x8c], ecx
cmp eax, edx
mov edx, 0xf
cmovne edx, dword [ebp - 0x38]
cmp ecx, edx
ja 0x40a563
mov edx, dword [ebp - 0x88]
mov byte [eax + edx], 0x20
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x40]
mov byte [eax + edx + 1], 0
jmp 0x40a470
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
lea ecx, [ebp - 0x40]
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x88]
mov dword [esp], eax
mov dword [ebp - 0x78], 2
call fcn.004401e0
sub esp, 0x10
mov eax, dword [ebp - 0x40]
jmp 0x40a543
mov dword [esp], 0x452070
call fcn.00445290
test eax, eax
je 0x40a094
mov dword [esp], str.input
mov dword [ebp - 0x78], 1
call fcn.00416ce0
mov byte [ebp - 0x80], al
mov dword [esp], 0x452070
mov byte [0x452078], al
call fcn.00445450
jmp 0x40a09e
mov byte [ebp - 0x90], 0x3f
jmp 0x40a1ba
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
lea ecx, [ebp - 0x40]
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x80]
mov dword [esp], eax
mov dword [ebp - 0x78], 2
call fcn.004401e0
sub esp, 0x10
mov edx, dword [ebp - 0x40]
jmp 0x40a278
mov dword [esp], 0x44909f
mov dword [ebp - 0x78], 2
call fcn.00443ca0
add ebp, 8
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x80], eax
mov eax, dword [ebp - 0x78]
test eax, eax
je 0x40a689
sub eax, 1
je 0x40a665
ud2
mov dword [esp], 0x44909f
mov dword [ebp - 0x78], 2
call fcn.00443ca0
mov eax, dword [ebp - 0x40]
lea edx, [ebp - 0x38]
cmp eax, edx
je 0x40a677
mov dword [esp], eax
call fcn.00444a10
mov eax, dword [ebp - 0x80]
mov dword [esp], eax
mov dword [ebp - 0x78], 0xffffffff
call fcn.004289f0
mov dword [esp], 0x452070
call fcn.00445150
mov eax, dword [ebp - 0x80]
mov dword [esp], eax
mov dword [ebp - 0x78], 0xffffffff
call fcn.004289f0
nop
nop
lea esi, [esi]