Function at 0x408220
Capabilities:
Contain obfuscated stackstrings
Parse pe header

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x88
cmp qword [rdx + 8], 0
mov qword [rsp + 0xd0], rcx
mov rbx, rdx
jne 0x408260
add rsp, 0x88
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
call fcn.00414460
test al, al
je 0x4084a1
movzx eax, byte [0x004de080]
test al, al
je 0x4086e1
movzx esi, byte [0x004de088]
test sil, sil
je 0x4084a1
lea r12, [rsp + 0x40]
cmp qword [rbx + 8], 0
mov qword [rsp + 0x48], 0
mov byte [rsp + 0x50], 0
lea rax, [r12 + 0x10]
mov qword [rsp + 0x40], rax
je 0x4085bd
xor ebp, ebp
xor esi, esi
mov r14, rax
mov r15d, 0xf
jmp 0x408311
cmp dil, 0x7f
je 0x408520
cmp rax, r14
mov rdx, r15
cmovne rdx, qword [rsp + 0x50]
lea r13, [rbp + 1]
cmp r13, rdx
ja 0x408530
mov byte [rax + rbp], dil
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x48], r13
mov byte [rax + r13], 0
add rsi, 1
cmp rsi, qword [rbx + 8]
jae 0x4085a4
mov rax, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rdx, qword [rbx]
movzx edi, byte [rdx + rsi]
mov byte [rsp + 0x60], 0x40
mov byte [rsp + 0x61], 0x41
mov byte [rsp + 0x62], 0x42
mov byte [rsp + 0x63], 0x43
mov byte [rsp + 0x64], 0x44
mov byte [rsp + 0x65], 0x45
mov byte [rsp + 0x66], 0x46
cmp dil, 0x1f
mov byte [rsp + 0x67], 0x47
mov byte [rsp + 0x68], 0x48
mov byte [rsp + 0x69], 0x49
mov byte [rsp + 0x6a], 0x4a
mov byte [rsp + 0x6b], 0x4b
mov byte [rsp + 0x6c], 0x4c
mov byte [rsp + 0x6d], 0x4d
mov byte [rsp + 0x6e], 0x4e
mov byte [rsp + 0x6f], 0x4f
mov byte [rsp + 0x70], 0x50
mov byte [rsp + 0x71], 0x51
mov byte [rsp + 0x72], 0x52
mov byte [rsp + 0x73], 0x53
mov byte [rsp + 0x74], 0x54
mov byte [rsp + 0x75], 0x55
mov byte [rsp + 0x76], 0x56
mov byte [rsp + 0x77], 0x57
mov byte [rsp + 0x78], 0x58
mov byte [rsp + 0x79], 0x59
mov byte [rsp + 0x7a], 0x5a
mov byte [rsp + 0x7b], 0x5b
mov byte [rsp + 0x7c], 0x5c
mov byte [rsp + 0x7d], 0x5d
mov byte [rsp + 0x7e], 0x5e
mov byte [rsp + 0x7f], 0x5f
ja 0x4082c3
movzx edx, dil
movzx r13d, byte [rsp + rdx + 0x60]
test r13b, r13b
je 0x4082cd
cmp rax, r14
mov rdx, r15
cmovne rdx, qword [rsp + 0x50]
lea rdi, [rbp + 1]
cmp rdi, rdx
ja 0x408580
mov byte [rax + rbp], 0x5e
mov rax, qword [rsp + 0x40]
mov rdx, r15
mov qword [rsp + 0x48], rdi
mov byte [rax + rdi], 0
mov rax, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
cmp rax, r14
cmovne rdx, qword [rsp + 0x50]
lea rbp, [rdi + 1]
cmp rbp, rdx
ja 0x408554
mov byte [rax + rdi], r13b
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x48], rbp
mov byte [rax + rdi + 1], 0
jmp 0x4082f9
mov rdx, qword [rsp + 0x40]
lea rax, [r12 + 0x10]
mov rsi, qword [rsp + 0x48]
cmp rdx, rax
mov eax, 0xf
cmovne rax, qword [rsp + 0x50]
lea rdi, [rsi + 1]
cmp rdi, rax
ja 0x40871a
mov byte [rdx + rsi], 0x29
mov rax, qword [rsp + 0x40]
lea rcx, str.input_chars:__s
mov qword [rsp + 0x48], rdi
mov byte [rax + rsi + 1], 0
mov rdx, qword [rsp + 0x40]
call fcn.00413ac0
mov rcx, qword [rsp + 0x40]
add r12, 0x10
cmp rcx, r12
je 0x4084a1
call fcn.004aaf10
mov rax, qword [rsp + 0xd0]
mov r8, qword [rbx + 8]
mov rdx, qword [rbx]
lea rcx, [rax + 0x28]
call fcn.00499d20
mov rcx, qword [rsp + 0xd0]
xor edx, edx
call fcn.004080f0
mov rax, qword [rsp + 0xd0]
cmp qword [rax + 0x30], 0
je 0x408506
cmp byte [rax + 0x20], 0
jne 0x408506
lea rcx, str.send_DSR
call fcn.00413ac0
mov rax, qword [rsp + 0xd0]
mov rcx, qword [rax + 0x18]
mov rax, qword [rcx]
call qword [rax]
mov rax, qword [rsp + 0xd0]
mov byte [rax + 0x20], 1
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov rbx, qword [rsp + 0xd0]
mov dword [rbx + 0xd0], eax
jmp 0x408245
mov r13d, 0x3f
jmp 0x4083d5
mov qword [rsp + 0x20], 1
xor r9d, r9d
xor r8d, r8d
mov rdx, rbp
mov rcx, r12
call fcn.00499ee0
mov rax, qword [rsp + 0x40]
jmp 0x4082e6
mov qword [rsp + 0x20], 1
xor r9d, r9d
xor r8d, r8d
mov rdx, rdi
mov rcx, r12
call fcn.00499ee0
mov rax, qword [rsp + 0x40]
jmp 0x408423
mov qword [rsp + 0x20], 1
xor r9d, r9d
xor r8d, r8d
mov rdx, rbp
mov rcx, r12
call fcn.00499ee0
mov rax, qword [rsp + 0x40]
jmp 0x4083ee
movabs rax, 0x7fffffffffffffff
sub rax, qword [rsp + 0x48]
cmp rax, 1
jbe 0x408768
lea rdx, [0x004b1295]
mov r8d, 2
mov rcx, r12
call fcn.00499d20
cmp qword [rbx + 8], 0
je 0x408440
lea rax, [r12 + 0x10]
lea rdi, [rsp + 0x60]
xor esi, esi
movabs r15, 0x7fffffffffffffff
mov r14d, 0xf
mov qword [rsp + 0x38], rax
nop
mov rax, qword [rbx]
lea rdx, str._02X
mov rcx, rdi
movzx r8d, byte [rax + rsi]
call fcn.0042f8b0
mov r8, rdi
mov edx, dword [r8]
add r8, 4
lea eax, [rdx - 0x1010101]
not edx
and eax, edx
and eax, 0x80808080
je 0x40861a
mov edx, eax
shr edx, 0x10
test eax, 0x8080
cmove eax, edx
lea rdx, [r8 + 2]
mov ecx, eax
cmove r8, rdx
add cl, al
mov rax, r15
sbb r8, 3
sub rax, qword [rsp + 0x48]
sub r8, rdi
cmp r8, rax
ja 0x40873e
mov rdx, rdi
mov rcx, r12
call fcn.00499d20
add rsi, 1
cmp rsi, qword [rbx + 8]
jae 0x408440
test rsi, rsi
je 0x408600
mov rbp, qword [rsp + 0x48]
mov rax, qword [rsp + 0x40]
mov rdx, r14
cmp rax, qword [rsp + 0x38]
cmovne rdx, qword [rsp + 0x50]
lea r13, [rbp + 1]
cmp r13, rdx
ja 0x4086c0
mov byte [rax + rbp], 0x20
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x48], r13
mov byte [rax + rbp + 1], 0
jmp 0x408600
mov qword [rsp + 0x20], 1
xor r9d, r9d
xor r8d, r8d
mov rdx, rbp
mov rcx, r12
call fcn.00499ee0
mov rax, qword [rsp + 0x40]
jmp 0x4086a6
lea rcx, [0x004de080]
call fcn.004ab580
test eax, eax
je 0x40827c
lea rcx, str.input
call fcn.00413d90
lea rcx, [0x004de080]
mov esi, eax
mov byte [0x004de088], al
call fcn.004ab690
jmp 0x408283
mov qword [rsp + 0x20], 1
xor r9d, r9d
xor r8d, r8d
mov rdx, rsi
mov rcx, r12
call fcn.00499ee0
mov rdx, qword [rsp + 0x40]
jmp 0x40846a
lea rcx, [0x004b108b]
call fcn.004a50e0
mov rcx, qword [rsp + 0x40]
add r12, 0x10
mov rbx, rax
cmp rcx, r12
je 0x408760
call fcn.004aaf10
mov rcx, rbx
call fcn.00424a70
lea rcx, [0x004b108b]
call fcn.004a50e0
lea rcx, [0x004de080]
mov rbx, rax
call fcn.004ab530
mov rcx, rbx
call fcn.00424a70
nop
nop dword [rax]