Function at 0x405840
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x90
mov esi, esp
mov dword [esi + 0x78], ebp
mov dword [esi + 0x7c], esp
mov dword [esi + 0x88], 0xffffffff
lea eax, [esi + 0x80]
mov dword [esi + 0x84], 0x4068b0
mov ecx, dword fs:[0]
mov dword [esi + 0x80], ecx
mov dword fs:[0], eax
cmp dword [0x42f340], 0xa
jl 0x4058a2
mov eax, dword [0x42f344]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x4058a2
nop dword [eax]
jmp 0x4058a0
push eax
sub esp, 8
mov eax, esp
sub esp, 8
mov dword [esi + 4], esp
sub esp, 0x20
mov ecx, esp
and ecx, 0xfffffff0
mov dword [esi + 8], ecx
mov esp, ecx
push eax
push eax
mov dword [esi + 0x3c], esp
sub esp, 8
mov dword [esi + 0x38], esp
sub esp, 0x10
mov ecx, esp
and ecx, 0xfffffff0
mov dword [esi + 0x60], ecx
mov esp, ecx
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [esi + 0x14], eax
mov dword [eax + 8], 0
xor edx, edx
jmp 0x4058fd
mov edx, dword [esi + 0x18]
inc edx
cmp edx, 6
je 0x405bd2
cmp dword [0x42f348], 0xa
jl 0x40591a
mov eax, dword [0x42f34c]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x405ba0
mov dword [esi + 0x18], edx
mov ecx, 0x290a576d
mov edx, 0x43423f59
mov edi, 0x5301684e
mov eax, 0x2d5b3d90
mov dword [esi], eax
mov eax, dword [esi + 8]
mov dword [eax + 4], ecx
mov ebx, 0xbf57da26
mov dword [eax], edx
mov ecx, 0x3f714220
mov dword [eax + 0xc], edi
mov edx, 0x7162e957
mov edi, dword [esi]
mov dword [eax + 8], edi
mov edi, 0x62bbcbd6
mov dword [esi], edi
mov dword [eax + 0x14], ebx
mov dword [eax + 0x10], ecx
mov ecx, 0x48492508
mov edi, 0x30174b17
mov dword [esi + 0x44], ecx
mov dword [esi + 0x40], edi
mov ecx, 0x21603821
mov edi, 0x5a0f51fc
mov dword [esi + 0x4c], ecx
mov dword [esi + 0x48], edi
mov ecx, 0xbf57da26
mov edi, 0x3f712f41
mov dword [esi + 0x54], ecx
mov dword [esi + 0x50], edi
mov dword [eax + 0x1c], edx
mov ecx, dword [esi]
mov dword [eax + 0x18], ecx
mov dword [esi + 0x5c], edx
mov dword [esi + 0x58], ecx
xor edx, edx
lea ecx, [esi + 0x40]
movapd xmm0, xmmword [eax]
xorpd xmm0, xmmword [ecx]
movapd xmm1, xmmword [eax + 0x10]
movapd xmmword [eax], xmm0
xorpd xmm1, xmmword [ecx + 0x10]
movapd xmmword [eax + 0x10], xmm1
cmp byte [0x42f170], 0
je 0x405a20
push str.NtSetInformationProcess
push dword [0x42f178]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x405a40
mov edi, eax
mov dword [esi + 0x44], 0
mov dword [esi + 0x40], 0
mov dword [esi + 0x48], 0
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov dword [esi + 0x88], 0
push 0xc
lea ecx, [esi + 0x40]
push ecx
push 0x28
push eax
call edi
sar eax, 0x1f
and eax, 0xfffffffe
jmp 0x405a45
mov eax, 0xfffffffa
mov dword [0x42f16c], eax
cmp dword [0x42f340], 0xa
jge 0x405ac3
jmp 0x405ad7
mov eax, 0xffffffff
mov dword [0x42f16c], eax
mov edi, dword [0x42f174]
push dword [esi + 8]
push dword [0x42f178]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x405a7a
push dword [esi + 8]
push dword [0x42f17c]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x405b93
cmp byte [eax], 0xb8
je 0x405a85
cmp byte [eax + 5], 0xba
jne 0x405aba
mov ecx, dword [0x42f174]
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 7]
movsd qword [ecx + 7], xmm1
movsd qword [ecx], xmm0
mov dword [0x42f16c], 0
mov dword [esi + 0x88], 0
push 0x7f
push 1
push dword [esi + 4]
call edi
cmp dword [0x42f340], 0xa
jl 0x405ad7
mov eax, dword [0x42f344]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x405bb0
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx + 4]
cmp eax, dword [ecx + 8]
je 0x405b00
mov edx, dword [esi + 4]
movsd xmm0, qword [edx]
movsd qword [eax], xmm0
add dword [ecx + 4], 8
jmp 0x405b13
mov dword [esi + 0x88], 0
push dword [esi + 4]
push eax
call fcn.00406480
cmp dword [0x42f340], 0xa
jl 0x405b30
mov eax, dword [0x42f344]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x405bc0
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ebx, dword [0x42f344]
mov edi, dword [0x42f340]
lea eax, [ebx + 1]
imul eax, ebx
and eax, 1
cmp edi, 0xa
jl 0x405b80
test eax, eax
je 0x405b80
push 0x32
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
call edi
push 0x32
call edi
cmp dword [0x42f340], 0xa
jl 0x405b30
mov eax, dword [0x42f344]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x405b56
jmp 0x405b30
cmp edi, 0xa
jl 0x4058f0
test eax, eax
je 0x4058f0
jmp 0x405bd0
mov eax, 0xfffffffc
jmp 0x405a25
jmp 0x405ba0
jmp 0x405bb0
jmp 0x405bc0
jmp 0x405bd0
cmp edi, 0xa
jl 0x405bf2
lea eax, [ebx + 1]
imul eax, ebx
and eax, 1
je 0x405bf2
nop word cs:[eax + eax]
jmp 0x405bf0
xor edx, edx
jmp 0x405c09
inc edx
test al, al
je 0x405e7b
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
sub ecx, eax
sar ecx, 3
add ecx, 0xfffffffe
cmp edx, ecx
setae cl
mov dword [esi + 0x28], ecx
jae 0x405e72
mov ecx, dword [eax + edx*8 + 4]
mov dword [esi + 0x1c], ecx
mov ecx, dword [eax + edx*8 + 0xc]
mov dword [esi + 8], ecx
mov ecx, dword [eax + edx*8 + 8]
mov dword [esi + 0x20], ecx
mov ecx, dword [eax + edx*8 + 0x10]
mov dword [esi], ecx
mov ecx, dword [eax + edx*8 + 0x14]
mov dword [esi + 0x24], ecx
mov ecx, dword [esi + 0x20]
sub ecx, dword [eax + edx*8]
mov dword [esi + 0x2c], ecx
mov ecx, dword [esi + 0x20]
jne 0x405c6f
cmp dword [esi], ecx
jne 0x405c6f
mov eax, dword [esi + 0x1c]
cmp dword [esi + 8], eax
jne 0x405c6f
mov eax, dword [esi + 0x24]
cmp eax, dword [esi + 8]
je 0x405e92
mov dword [esi + 0x64], edx
cmp edi, 0xa
mov edi, dword [esi + 0x1c]
jl 0x405d08
lea eax, [ebx + 1]
imul eax, ebx
and eax, 1
je 0x405d08
mov edx, dword [esi + 8]
mov eax, edx
sub eax, edi
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
movss dword [esi + 0x18], xmm0
mov eax, dword [esi]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
movss dword [esi + 4], xmm0
mov eax, dword [esi + 0x24]
sub eax, edx
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
movss dword [esi + 0x34], xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, dword [esi + 0x2c]
movss dword [esi + 0x30], xmm0
mov eax, dword [esi + 0x3c]
movss xmm0, dword [esi + 0x30]
movss dword [eax], xmm0
movss xmm0, dword [esi + 0x18]
movss dword [eax + 4], xmm0
mov ecx, dword [esi + 0x38]
movss xmm0, dword [esi + 4]
movss dword [ecx], xmm0
movss xmm0, dword [esi + 0x34]
movss dword [ecx + 4], xmm0
push ecx
push eax
call fcn.00405110
fstp st(0)
add esp, 8
mov edi, dword [esi + 0x1c]
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 8]
mov eax, edx
sub eax, edi
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
mov eax, dword [esi]
sub eax, ecx
xorps xmm1, xmm1
cvtsi2ss xmm1, eax
mov eax, dword [esi + 0x24]
sub eax, edx
xorps xmm2, xmm2
cvtsi2ss xmm2, eax
xorps xmm3, xmm3
cvtsi2ss xmm3, dword [esi + 0x2c]
mov eax, dword [esi + 0x3c]
movss dword [esi + 0x30], xmm3
movss dword [eax], xmm3
movss dword [esi + 0x18], xmm0
movss dword [eax + 4], xmm0
mov ecx, dword [esi + 0x38]
movss dword [esi + 4], xmm1
movss dword [ecx], xmm1
movss dword [esi + 0x34], xmm2
movss dword [ecx + 4], xmm2
push ecx
push eax
call fcn.00405110
add esp, 8
fstp qword [esi + 0x68]
movsd xmm1, qword [esi + 0x68]
mov ebx, dword [0x42f344]
mov edi, dword [0x42f340]
lea ecx, [ebx + 1]
imul ecx, ebx
and ecx, 1
cmp edi, 0xa
jl 0x405d95
test ecx, ecx
jne 0x405cca
movsd xmm0, qword [0x410530]
ucomisd xmm0, xmm1
ja 0x405e4e
mov dword [esi], ecx
cmp dword [0x42f350], 0xa
jl 0x405dc6
mov eax, dword [0x42f354]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x405e70
mov eax, 0x30177e23
mov edx, 0x48492508
mov dword [esi + 8], eax
mov eax, 0x5a0f51fc
mov ecx, 0x21603821
mov dword [esi + 4], ecx
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x60]
mov dword [eax + 4], edx
mov edx, dword [esi + 8]
mov dword [eax], edx
mov dword [esi + 8], 0x30174b17
mov edx, 0x48492508
mov ecx, dword [esi + 8]
mov dword [esi + 8], ecx
mov dword [esi + 0x44], edx
mov ecx, dword [esi + 8]
mov dword [esi + 0x40], ecx
mov ecx, dword [esi + 4]
mov dword [eax + 0xc], ecx
mov edx, dword [esi + 0x18]
mov dword [eax + 8], edx
mov dword [esi + 0x4c], ecx
mov dword [esi + 0x48], edx
xor edx, edx
lea ecx, [esi + 0x40]
movaps xmm0, xmmword [eax]
xorps xmm0, xmmword [ecx]
movaps xmmword [eax], xmm0
push eax
movsd qword [esi + 8], xmm1
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
add esp, 4
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
movsd xmm1, qword [esi + 8]
ucomisd xmm1, xmm0
mov al, 1
mov ecx, dword [esi]
jbe 0x405e50
xor eax, eax
cmp edi, 0xa
mov edx, dword [esi + 0x64]
jl 0x405c00
test ecx, ecx
je 0x405c00
jmp 0x405eb0
jmp 0x405e70
lea ecx, [ebx + 1]
imul ecx, ebx
and ecx, 1
cmp edi, 0xa
jl 0x405eb2
test ecx, ecx
mov edi, dword [esi + 0x14]
je 0x405efe
nop word [eax + eax]
jmp 0x405e90
lea eax, [ebx + 1]
imul eax, ebx
and eax, 1
cmp edi, 0xa
jl 0x405eb7
test eax, eax
je 0x405eb7
nop word cs:[eax + eax]
jmp 0x405eb0
mov edi, dword [esi + 0x14]
jmp 0x405efe
mov dword [esi + 0x28], 0
cmp edi, 0xa
jl 0x405ecc
test eax, eax
mov edi, dword [esi + 0x14]
jne 0x405e90
jmp 0x405efe
mov edi, dword [esi + 0x14]
jmp 0x405efe
push eax
push ecx
call fcn.0040eca7
add esp, 8
mov dword [edi], 0
mov dword [edi + 4], 0
mov dword [edi + 8], 0
mov ecx, dword [edi]
test ecx, ecx
je 0x405f44
mov eax, dword [edi + 8]
sub eax, ecx
cmp eax, 0x1000
jb 0x405f26
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x405fa1
add eax, 0x23
mov ecx, edx
push eax
push ecx
call fcn.0040eca7
add esp, 8
mov dword [edi], 0
mov dword [edi + 4], 0
mov dword [edi + 8], 0
cmp dword [0x42f340], 0xa
jl 0x405f8a
mov eax, dword [0x42f344]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x405f8a
mov ecx, dword [edi]
test ecx, ecx
je 0x405efe
mov eax, dword [edi + 8]
sub eax, ecx
cmp eax, 0x1000
jb 0x405ee0
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x405fa1
add eax, 0x23
mov ecx, edx
jmp 0x405ee0
mov eax, dword [esi + 0x80]
mov dword fs:[0], eax
mov eax, dword [esi + 0x28]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop word [eax + eax]
push ebp
sub esp, 0x10
lea esi, [ebp - 0x8c]
mov ebp, dword [esi + 0x78]
mov ecx, dword [esi + 0x14]
call fcn.00405fd0
add esp, 0x10
pop ebp
ret