Function at 0x403d26
Capabilities:
Create thread

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0xd0
mov eax, 0
mov dword [rbp - 0x1c], eax
mov eax, 0
mov r10, rax
mov rcx, r10
call fcn.00401070
movsxd rax, eax
mov ecx, dword [0x004054c8]
mov r10, rcx
mov qword [rbp - 0x28], rax
mov rcx, r10
call fcn.00401070
movsxd rax, eax
mov ecx, 0x3000
mov r10, rcx
mov qword [rbp - 0x30], rax
mov rcx, r10
call fcn.00401070
mov ecx, 4
mov r10, rcx
mov qword [rbp - 0x38], rax
mov rcx, r10
call fcn.00401070
mov r9, rax
mov eax, dword [rbp - 0x38]
mov r8, rax
mov rax, qword [rbp - 0x30]
mov r11, rax
mov rax, qword [rbp - 0x28]
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.kernel32.dll_VirtualAlloc
mov qword [rbp - 8], rax
movsx eax, byte [0x0040505d]
movsx ecx, byte [0x0040505b]
add eax, ecx
movsx ecx, byte [0x00405054]
mov edx, 0x1b1
imul ecx, edx
add eax, ecx
movsx ecx, byte [0x0040505c]
xor edx, edx
div ecx
movsx ecx, byte [0x00405055]
sub eax, ecx
movsx ecx, byte [0x00405057]
movsx edx, byte [0x0040505a]
add ecx, edx
movsx edx, byte [0x00405054]
mov qword [rbp - 0x40], rax
mov eax, 0x19a
imul edx, eax
add ecx, edx
movsx eax, byte [0x0040505d]
sub ecx, eax
mov eax, dword [rbp - 0x40]
add eax, ecx
mov ecx, dword [0x004054c8]
imul ecx, eax
mov r10, rcx
mov rcx, r10
call fcn.00401070
movsxd rax, eax
mov r8, rax
lea rax, [0x004050de]
mov r11, rax
mov rax, qword [rbp - 8]
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.msvcrt.dll_memmove
mov eax, 0
mov dword [rbp - 0x44], eax
mov eax, dword [rbp - 0x44]
cmp eax, 0xf423f
jge 0x4044af
jmp 0x403f14
mov eax, dword [rbp - 0x44]
mov rcx, rax
add eax, 1
mov dword [rbp - 0x44], eax
cmp ecx, 0
je 0x403eff
movsx eax, byte [0x0040505d]
movsx ecx, byte [0x0040505b]
add eax, ecx
movsx ecx, byte [0x00405054]
mov edx, 0x296
imul ecx, edx
add eax, ecx
movsx ecx, byte [0x0040505c]
xor edx, edx
div ecx
movsx ecx, byte [0x00405055]
sub eax, ecx
mov ecx, 0x27f
imul eax, ecx
mov r10, rax
mov rcx, r10
call fcn.00401070
movsx ecx, byte [0x00405057]
movsx edx, byte [0x0040505a]
add ecx, edx
movsx edx, byte [0x00405054]
mov qword [rbp - 0x50], rax
mov eax, 0x3e5
imul edx, eax
add ecx, edx
movsx eax, byte [0x0040505d]
sub ecx, eax
mov eax, dword [rbp - 0x50]
add eax, ecx
cmp eax, 0
je 0x403eff
jmp 0x403f0f
movsx eax, byte [0x00405055]
cmp eax, 0
jne 0x403f0f
jmp 0x403e4d
xor eax, eax
je 0x403f1d
add byte [rax + 0x210], bh
mov eax, 0x210
movsx ecx, byte [0x00405054]
cmp eax, ecx
jbe 0x404083
call fcn.0040114a
mov ecx, 0x265
cmp ecx, eax
jbe 0x404083
call sub.kernel32.dll_IsDebuggerPresent
cmp eax, 0
jne 0x403fbd
call fcn.00402523
cmp eax, 0
je 0x403f66
mov eax, 0
jmp 0x403f6b
mov eax, 1
mov qword [rbp - 0x58], rax
movsx eax, byte [0x00405054]
mov ecx, dword [rbp - 0x58]
cdq
idiv ecx
movsx ecx, byte [0x00405055]
movsx edx, byte [0x00405054]
add ecx, edx
movsx edx, byte [0x00405055]
add ecx, edx
imul eax, ecx
movsx ecx, byte [0x00405056]
cdq
idiv ecx
mov r10, rax
mov rcx, r10
call fcn.00401070
cmp eax, 0
jne 0x403fbd
mov eax, 0
jmp 0x403fc2
mov eax, 1
mov r11, rax
mov eax, 0xc1a5b
mov r10, rax
mov rcx, r10
mov rdx, r11
call fcn.004011be
cmp eax, 0
je 0x404083
movsx eax, byte [0x00405054]
movsxd rax, eax
movabs rcx, 0x9b1b6d1f
cmp rcx, rax
jle 0x404083
mov eax, 0x242
mov r10, rax
mov rcx, r10
call fcn.00401070
cmp eax, 0xf74d09
jae 0x404083
xor eax, eax
je 0x404023
add al, ch
or al, ch
invalid
call 0x402830
int3
mov eax, 0x10e
movsx ecx, byte [0x00405054]
cmp eax, ecx
jbe 0x40412c
call fcn.0040114a
mov ecx, 0x154
cmp ecx, eax
jbe 0x40412c
movsx eax, byte [0x00405054]
cmp eax, 0x242
mov eax, 0
seta al
mov r11, rax
mov eax, 0x26bf
mov r10, rax
mov rcx, r10
mov rdx, r11
call fcn.004011be
cmp eax, 0
je 0x40412c
movsx eax, byte [0x00405054]
movsxd rax, eax
movabs rcx, 0xee9fc0f6
cmp rcx, rax
jle 0x40412c
mov eax, 0x3ac
mov r10, rax
mov rcx, r10
call fcn.00401070
cmp eax, 0x155ac98
jae 0x40412c
mov eax, 0x112
mov r10, rax
mov rcx, r10
call fcn.00401000
cmp al, 0xe9
outsd dx, dword [rsi]
add al, byte [rax]
add byte [rax + 0x3c7], bh
mov eax, 0x3c7
movsx ecx, byte [0x00405054]
cmp eax, ecx
jbe 0x4041e3
call fcn.0040114a
mov ecx, 0x289
cmp ecx, eax
jbe 0x4041e3
mov eax, 0
mov r11, rax
mov eax, 0x16ac9
mov r10, rax
mov rcx, r10
mov rdx, r11
call fcn.004011be
cmp eax, 0
je 0x4041e3
movsx eax, byte [0x00405054]
movsxd rax, eax
movabs rcx, 0x7e93082f
cmp rcx, rax
jle 0x4041e3
mov eax, 0x10
mov r10, rax
mov rcx, r10
call fcn.00401070
cmp eax, 0x23c3991
jae 0x4041e3
jmp 0x4041ba
psubsw mm1, qword [rax + rax]
add byte [rax], al
movsx eax, byte [0x00405054]
cmp eax, 1
je 0x4041b4
movsx eax, byte [0x00405057]
sub eax, 0x1fb3
mov r10, rax
mov rcx, r10
call fcn.00401070
jmp 0x40439b
mov eax, 0x2b
movsx ecx, byte [0x00405054]
cmp eax, ecx
jbe 0x4042a1
call fcn.0040114a
mov ecx, 0x209
cmp ecx, eax
jbe 0x4042a1
movsx eax, byte [0x00405057]
movsx ecx, byte [0x0040505a]
add eax, ecx
movsx ecx, byte [0x00405054]
mov edx, 0x148
imul ecx, edx
add eax, ecx
movsx ecx, byte [0x0040505d]
sub eax, ecx
mov ecx, 0x2ae
imul eax, ecx
mov r11, rax
mov eax, 0x33f5a
mov r10, rax
mov rcx, r10
mov rdx, r11
call fcn.004011be
cmp eax, 0
je 0x4042a1
movsx eax, byte [0x00405054]
movsxd rax, eax
movabs rcx, 0xe864f68
cmp rcx, rax
jle 0x4042a1
mov eax, 0x2c9
mov r10, rax
mov rcx, r10
call fcn.00401070
cmp eax, 0x36ee992
jae 0x4042a1
xor eax, eax
je 0x40429c
add cl, ch
cli
add byte [rax], al
add byte [rax + 0x61], bh
jmp 0x40439b
mov eax, 0x61
movsx ecx, byte [0x00405054]
cmp eax, ecx
jbe 0x404386
call fcn.0040114a
mov ecx, 0x7a
cmp ecx, eax
jbe 0x404386
movsx eax, byte [0x00405057]
movsx ecx, byte [0x0040505a]
add eax, ecx
movsx ecx, byte [0x00405054]
mov edx, 0x2f
imul ecx, edx
add eax, ecx
movsx ecx, byte [0x0040505d]
sub eax, ecx
mov ecx, 0x195
mov r10, rcx
mov qword [rbp - 0x60], rax
mov rcx, r10
call fcn.00401070
cmp eax, 0
je 0x404313
jmp 0x40431d
mov eax, 0x7024
jmp 0x404322
mov eax, 0x10362
mov ecx, dword [rbp - 0x60]
imul ecx, eax
mov r11, rcx
mov eax, 0xbafbe
mov r10, rax
mov rcx, r10
mov rdx, r11
call fcn.004011be
cmp eax, 0
je 0x404386
movsx eax, byte [0x00405054]
movsxd rax, eax
movabs rcx, 0x3cb11052
cmp rcx, rax
jle 0x404386
mov eax, 0x2ff
mov r10, rax
mov rcx, r10
call fcn.00401070
cmp eax, 0x1eac1bc
jae 0x404386
ret 0x894c
jmp 0x40436b
call sub.kernel32.dll_IsDebuggerPresent
cvtsi2sd xmm0, eax
movq xmm1, qword [0x004054d0]
divsd xmm1, xmm0
mov eax, 0x5a6
movsx ecx, byte [0x00405054]
cmp eax, ecx
mov eax, 0
setb al
mov r10, rax
mov rcx, r10
call fcn.00401000
lea rax, [0x004054d9]
mov r9, rax
lea rax, [0x004054d8]
mov r8, rax
movabs rax, 0
mov r11, rax
mov eax, 0x1cb
mov r10, rax
mov rcx, r10
mov rdx, r11
call fcn.004033d1
mov eax, 0x31a
movsx ecx, byte [0x00405054]
cmp eax, ecx
jbe 0x4044aa
movsx eax, byte [0x0040505c]
movsx ecx, byte [0x00405057]
cmp eax, ecx
jle 0x4044aa
call fcn.0040114a
cmp eax, 0
je 0x4044aa
movsx eax, byte [0x00405054]
movsxd rax, eax
movabs rcx, 0x90356429
cmp rcx, rax
jle 0x4044aa
movsx eax, byte [0x00405056]
movsxd rax, eax
movabs rcx, 0x53c670c6
imul rax, rcx
add rax, 0x52
movsx ecx, byte [0x00405054]
movsxd rcx, ecx
cmp rcx, rax
mov eax, 0
setg al
mov r11, rax
mov eax, 0x1fd
mov r10, rax
mov rcx, r10
mov rdx, r11
call fcn.004011be
cmp eax, 0
je 0x4044aa
movsx eax, byte [0x00405059]
cmp eax, 0
je 0x4044aa
jmp 0x403f14
jmp 0x403e61
mov eax, 0x85bee
mov r8, rax
mov eax, dword [0x004054c8]
mov r11, rax
mov rax, qword [rbp - 8]
mov r10, rax
mov rcx, r10
mov rdx, r11
call fcn.00403bc2
mov eax, dword [0x004054c8]
lea rcx, [rbp - 0x1c]
mov r9, rcx
mov ecx, 0x20
mov r8, rcx
mov r11, rax
mov rax, qword [rbp - 8]
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.kernel32.dll_VirtualProtect
mov dword [rbp - 0xc], eax
mov eax, 0x16b
movsx ecx, byte [0x00405054]
cmp eax, ecx
jbe 0x40468a
call fcn.0040114a
mov ecx, 0xe8
cmp ecx, eax
jbe 0x40468a
mov eax, dword [rbp - 0xc]
cmp eax, 0
mov eax, 1
setne al
mov r11, rax
mov eax, 0x63573
mov r10, rax
mov rcx, r10
mov rdx, r11
call fcn.004011be
cmp eax, 0
je 0x40468a
movsx eax, byte [0x00405054]
movsxd rax, eax
movabs rcx, 0x3982de92
cmp rcx, rax
jle 0x40468a
mov eax, 0x20
mov r10, rax
mov rcx, r10
call fcn.00401070
cmp eax, 0x4b26d14
jae 0x40468a
mov eax, 0
mov r10, rax
mov rcx, r10
call fcn.00401070
movsxd rax, eax
mov ecx, 0
mov r10, rcx
mov qword [rbp - 0x68], rax
mov rcx, r10
call fcn.00401070
movsxd rax, eax
mov ecx, dword [rbp - 8]
mov r10, rcx
mov qword [rbp - 0x70], rax
mov rcx, r10
call fcn.00401070
movsxd rax, eax
mov ecx, 0
mov r10, rcx
mov qword [rbp - 0x78], rax
mov rcx, r10
call fcn.00401070
movsxd rax, eax
mov ecx, 0
mov r10, rcx
mov qword [rbp - 0x80], rax
mov rcx, r10
call fcn.00401070
mov ecx, 0
mov r10, rcx
mov qword [rbp - 0x88], rax
mov rcx, r10
call fcn.00401070
movsxd rax, eax
mov qword [rsp + 0x28], rax
mov eax, dword [rbp - 0x88]
mov qword [rsp + 0x20], rax
mov rax, qword [rbp - 0x80]
mov r9, rax
mov rax, qword [rbp - 0x78]
mov r8, rax
mov rax, qword [rbp - 0x70]
mov r11, rax
mov rax, qword [rbp - 0x68]
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.kernel32.dll_CreateThread
mov qword [rbp - 0x18], rax
mov eax, dword [rbp - 0x18]
mov r10, rax
mov rcx, r10
call fcn.00401070
movsxd rax, eax
mov ecx, 0xffffffff
mov r10, rcx
mov qword [rbp - 0x90], rax
mov rcx, r10
call fcn.00401070
mov r11, rax
mov rax, qword [rbp - 0x90]
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.kernel32.dll_WaitForSingleObject
mov eax, dword [rbp - 8]
mov r10, rax
mov rcx, r10
call fcn.00401070
movsxd rax, eax
mov ecx, dword [0x004054c8]
mov r10, rcx
mov qword [rbp - 0x98], rax
mov rcx, r10
call fcn.00401070
movsxd rax, eax
mov ecx, 0x8000
mov r10, rcx
mov qword [rbp - 0xa0], rax
mov rcx, r10
call fcn.00401070
mov r8, rax
mov rax, qword [rbp - 0xa0]
mov r11, rax
mov rax, qword [rbp - 0x98]
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.kernel32.dll_VirtualFree
mov eax, 0
leave
ret