Function at 0x403590
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x17c
mov eax, dword [ebp + 8]
mov dword [ebp - 0x10c], eax
mov dword [ebp - 0x108], eax
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0x104], edx
mov edx, esp
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x10], 0xffffffff
lea edx, [ebp - 0x18]
mov dword [ebp - 0x14], 0x403cd0
mov esi, dword fs:[0]
mov dword [ebp - 0x18], esi
mov dword fs:[0], edx
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x40], eax
mov dword [ebp - 0xe4], ecx
mov dword [ebp - 0xe0], eax
mov ecx, dword [ebp - 0xe4]
mov edx, dword [ebp - 0xe0]
mov eax, esp
mov dword [eax + 0xc], edx
mov dword [eax + 8], ecx
lea ecx, [ebp - 0xf1]
mov dword [eax + 4], ecx
lea ecx, [ebp - 0xf0]
mov dword [ebp - 0x100], ecx
mov dword [eax], ecx
call fcn.00401820
mov ecx, dword [ebp - 0x100]
mov dword [ebp - 0x10], 0
mov eax, esp
mov dword [eax], ecx
call fcn.00429cb0
mov dword [ebp - 0xfc], edx
mov dword [ebp - 0xf8], eax
jmp 0x403647
mov ecx, dword [ebp - 0x104]
mov edx, dword [ebp - 0xf8]
mov esi, dword [ebp - 0xfc]
mov eax, esp
mov dword [eax + 0xc], esi
mov dword [eax + 8], edx
mov dword [eax + 4], ecx
lea ecx, [ebp - 0xdc]
mov dword [eax], ecx
call fcn.004015f0
jmp 0x403673
cmp dword [ebp - 0xdc], 0x80000000
sete al
test al, 1
jne 0x403686
jmp 0x4036b4
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0x110], eax
mov dword [ebp - 0x3c], eax
mov eax, esp
lea ecx, [ebp - 0xbc]
mov dword [eax], ecx
mov dword [eax + 8], 0xc
mov dword [eax + 4], 0x4858ca
call fcn.00402b20
jmp 0x4036fd
mov eax, dword [ebp - 0x10c]
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xd0], ecx
mov ecx, dword [ebp - 0xd8]
mov dword [ebp - 0xcc], ecx
mov ecx, dword [ebp - 0xd4]
mov dword [ebp - 0xc8], ecx
mov ecx, dword [ebp - 0xd0]
mov dword [eax], ecx
mov ecx, dword [ebp - 0xcc]
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0xc8]
mov dword [eax + 8], ecx
jmp 0x403c31
mov eax, esp
lea ecx, [ebp - 0xbc]
mov dword [eax], ecx
mov dword [eax + 0xc], 0x4858fc
mov dword [eax + 8], 0x13
mov dword [eax + 4], 0x4858d6
call fcn.00426cd0
mov dword [ebp - 0x118], edx
mov dword [ebp - 0x114], eax
jmp 0x40372f
mov eax, dword [ebp - 0x118]
mov ecx, dword [ebp - 0x114]
mov dword [ebp - 0xc4], ecx
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0x10], 1
mov eax, esp
lea ecx, [ebp - 0xa4]
mov dword [eax], ecx
mov dword [eax + 8], 0xc
mov dword [eax + 4], str.LoadLibraryW
call fcn.00402b20
jmp 0x40376d
mov eax, esp
lea ecx, [ebp - 0xa4]
mov dword [eax], ecx
mov dword [eax + 0xc], 0x485918
mov dword [eax + 8], 0x13
mov dword [eax + 4], 0x4858d6
call fcn.00426cd0
mov dword [ebp - 0x120], edx
mov dword [ebp - 0x11c], eax
jmp 0x40379f
mov eax, dword [ebp - 0x120]
mov ecx, dword [ebp - 0x11c]
mov dword [ebp - 0xac], ecx
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0x10], 2
mov eax, esp
lea ecx, [ebp - 0xc4]
mov dword [eax], ecx
call fcn.00401170
mov dword [ebp - 0x128], edx
mov dword [ebp - 0x124], eax
jmp 0x4037db
mov ecx, dword [ebp - 0x124]
mov edx, dword [ebp - 0x128]
mov eax, esp
mov dword [eax + 4], edx
mov dword [eax], ecx
call fcn.00403220
mov dword [ebp - 0x12c], eax
jmp 0x4037fb
mov ecx, dword [ebp - 0x12c]
mov eax, esp
mov dword [eax], ecx
call sub.KERNEL32.dll_GetModuleHandleA
sub esp, 4
mov dword [ebp - 0x130], eax
jmp 0x403815
mov ecx, dword [ebp - 0x130]
mov dword [ebp - 0x38], ecx
mov eax, esp
mov dword [eax], ecx
call fcn.00403d20
mov byte [ebp - 0x131], al
jmp 0x40382f
mov al, byte [ebp - 0x131]
test al, 1
jne 0x403858
jmp 0x40383b
mov eax, esp
lea ecx, [ebp - 0xac]
mov dword [eax], ecx
call fcn.00401170
mov dword [ebp - 0x13c], edx
mov dword [ebp - 0x138], eax
jmp 0x40387a
mov eax, esp
lea ecx, [ebp - 0x94]
mov dword [eax], ecx
mov dword [eax + 8], 0x29
mov dword [eax + 4], 0x4859ba
call fcn.00401400
jmp 0x403bf7
mov ecx, dword [ebp - 0x138]
mov edx, dword [ebp - 0x13c]
mov eax, esp
mov dword [eax + 4], edx
mov dword [eax], ecx
call fcn.00403220
mov dword [ebp - 0x140], eax
jmp 0x40389a
mov ecx, dword [ebp - 0x130]
mov edx, dword [ebp - 0x140]
mov eax, esp
mov dword [eax + 4], edx
mov dword [eax], ecx
call sub.KERNEL32.dll_GetProcAddress
sub esp, 8
mov dword [ebp - 0x144], eax
jmp 0x4038bd
mov ecx, dword [ebp - 0x144]
mov dword [ebp - 0x34], ecx
mov eax, esp
mov dword [eax], ecx
call fcn.00403d40
mov byte [ebp - 0x145], al
jmp 0x4038d7
mov al, byte [ebp - 0x145]
test al, 1
jne 0x403924
jmp 0x4038e3
mov dword [ebp - 0x20], 0
mov eax, esp
mov dword [eax], 0
call fcn.00401000
mov dword [ebp - 0x14c], eax
jmp 0x4038ff
mov eax, dword [ebp - 0x144]
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x24], 0
mov eax, esp
mov dword [eax], 0
call fcn.00419e70
mov dword [ebp - 0x150], eax
jmp 0x403946
mov eax, esp
lea ecx, [ebp - 0x88]
mov dword [eax], ecx
mov dword [eax + 8], 0x2a
mov dword [eax + 4], 0x485990
call fcn.00401400
jmp 0x403bd8
mov ecx, dword [ebp - 0x104]
mov edx, dword [ebp - 0x14c]
mov edi, dword [ebp - 0x110]
mov ebx, dword [ebp - 0x150]
mov esi, dword [ebp - 0x7c]
mov eax, esp
mov dword [eax + 0x18], ebx
mov dword [eax + 0x10], edi
mov dword [eax + 0xc], esi
mov dword [eax + 4], edx
mov dword [eax], ecx
mov dword [eax + 0x14], 0
mov dword [eax + 8], 0
call sub.KERNEL32.dll_CreateRemoteThread
sub esp, 0x1c
mov dword [ebp - 0x154], eax
jmp 0x40398f
mov ecx, dword [ebp - 0x154]
mov dword [ebp - 0x30], ecx
mov eax, esp
mov dword [eax], ecx
call fcn.004030d0
mov byte [ebp - 0x155], al
jmp 0x4039a9
mov al, byte [ebp - 0x155]
test al, 1
jne 0x4039d6
jmp 0x4039b5
mov ecx, dword [ebp - 0x154]
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], 0
call sub.KERNEL32.dll_WaitForSingleObject
sub esp, 8
mov dword [ebp - 0x15c], eax
jmp 0x4039f5
mov eax, esp
lea ecx, [ebp - 0x78]
mov dword [eax], ecx
mov dword [eax + 8], 0x37
mov dword [eax + 4], 0x485959
call fcn.00401400
jmp 0x403ba9
mov eax, dword [ebp - 0x15c]
cmp eax, 0x102
je 0x403a47
mov dword [ebp - 0x28], 0
mov eax, esp
mov dword [eax], 0
call fcn.00401020
mov dword [ebp - 0x160], eax
jmp 0x403a1e
mov ecx, dword [ebp - 0x154]
mov eax, dword [ebp - 0x160]
mov dword [ebp - 0x6c], eax
mov eax, esp
lea edx, [ebp - 0x6c]
mov dword [eax + 4], edx
mov dword [eax], ecx
call sub.KERNEL32.dll_GetExitCodeThread
sub esp, 8
mov dword [ebp - 0x164], eax
jmp 0x403a65
mov ecx, dword [ebp - 0x154]
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], 0xffffffff
call sub.KERNEL32.dll_WaitForSingleObject
sub esp, 8
jmp 0x403ba4
mov eax, dword [ebp - 0x164]
cmp eax, 0
jne 0x403a8c
mov eax, esp
lea ecx, [ebp - 0x5c]
mov dword [eax], ecx
mov dword [eax + 8], 0x1f
mov dword [eax + 4], str.GetExitCodeThread_returns_falseFailed_to_load_dllFailed_to_create_a_remote_thread_in_the_target_process.Failed_to_get_the_address_of_LoadLibraryA.Failed_to_get_the_handle_of_kernel32.dll.unsafe_precondition_s__violated:_ptr::sub_ptr_requires__self___origin_there_is_no_such_thing_as_a_release_load
call fcn.00401400
jmp 0x403ac3
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x16c], eax
mov dword [ebp - 0x2c], 0
mov eax, esp
mov dword [eax], 0
call fcn.00401020
mov dword [ebp - 0x168], eax
jmp 0x403ab1
mov eax, dword [ebp - 0x16c]
mov ecx, dword [ebp - 0x168]
cmp eax, ecx
je 0x403aff
jmp 0x403af0
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x60], eax
mov ecx, dword [ebp - 0x154]
mov dword [ebp - 0x10], 3
mov eax, esp
mov dword [eax], ecx
call sub.KERNEL32.dll_CloseHandle
sub esp, 4
jmp 0x403b2f
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x68], 0x80000000
jmp 0x403ad5
mov eax, esp
lea ecx, [ebp - 0x50]
mov dword [eax], ecx
mov dword [eax + 8], 0x12
mov dword [eax + 4], 0x485947
call fcn.00401400
jmp 0x403b1b
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x60], eax
jmp 0x403ad5
mov eax, dword [ebp - 0x10c]
mov ecx, dword [ebp - 0x60]
mov dword [eax + 8], ecx
movsd xmm0, qword [ebp - 0x68]
movsd qword [eax], xmm0
mov dword [ebp - 0x10], 1
mov eax, esp
lea ecx, [ebp - 0xac]
mov dword [eax], ecx
call fcn.0040e8b0
jmp 0x403b5c
mov dword [ebp - 0x10], 0
mov eax, esp
lea ecx, [ebp - 0xc4]
mov dword [eax], ecx
call fcn.0040e8b0
jmp 0x403b74
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0xf0]
mov dword [esp], eax
call fcn.0040e940
mov eax, dword [ebp - 0x108]
mov ecx, dword [ebp - 0x18]
mov dword fs:[0], ecx
add esp, 0x17c
pop esi
pop edi
pop ebx
pop ebp
ret
jmp 0x4039b5
mov eax, dword [ebp - 0x10c]
mov ecx, dword [ebp - 0x78]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x74]
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0x70]
mov dword [eax + 8], ecx
mov dword [ebp - 0x10], 1
mov eax, esp
lea ecx, [ebp - 0xac]
mov dword [eax], ecx
call fcn.0040e8b0
jmp 0x403c19
mov eax, dword [ebp - 0x10c]
mov ecx, dword [ebp - 0x88]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x84]
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0x80]
mov dword [eax + 8], ecx
jmp 0x403bc0
mov eax, dword [ebp - 0x10c]
mov ecx, dword [ebp - 0x94]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x90]
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0x8c]
mov dword [eax + 8], ecx
jmp 0x403bc0
mov dword [ebp - 0x10], 0
mov eax, esp
lea ecx, [ebp - 0xc4]
mov dword [eax], ecx
call fcn.0040e8b0
jmp 0x403c31
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0xf0]
mov dword [esp], eax
call fcn.0040e940
jmp 0x403b89