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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xa8
mov esi, esp
mov dword [esi + 0x90], ebp
mov dword [esi + 0x94], esp
mov dword [esi + 0xa0], 0xffffffff
mov dword [esi + 0x9c], 0x436340
mov dword [esi + 0x88], ecx
mov eax, dword fs:[0]
mov dword [esi + 0x98], eax
lea eax, [esi + 0x98]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov dword [esi + 0x30], 0
mov dword [esi + 0x34], 0
mov dword [esi + 0x3c], 0
mov dword [esi + 0x40], 7
mov dword [esi + 0x48], 0
mov dword [esi + 0x44], 0
mov dword [esi + 0x4e], 0
mov dword [esi + 0x4a], 0x10000
push eax
push edx
call fcn.00428220
add esp, 8
lea ebx, [esi + 0x30]
mov edi, edx
lea ecx, [esi + 0x70]
mov edx, eax
push ebx
push edi
call fcn.00428520
add esp, 8
mov ebx, dword [esi + 0x74]
cmp dword [esi + 0x70], 1
jne 0x405f08
mov eax, dword [esi + 0x88]
mov edx, dword [esi + 0x78]
cmp bl, 2
mov dword [eax], 0
jb 0x406482
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esi + 0xa0], 0
push eax
mov dword [esi], edx
call dword [ecx]
add esp, 4
mov edi, dword [esi]
mov eax, dword [edi + 4]
cmp dword [eax + 4], 0
je 0x4063a4
mov ebx, edi
mov edi, dword [edi]
cmp dword [eax + 8], 9
jae 0x406392
call sub.KERNEL32.dll_GetProcessHeap
push edi
jmp 0x40639a
call sub.KERNEL32.dll_GetProcessHeap
push 0x2000
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x4066e5
mov dword [esi + 0x34], ebx
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], 0x2000
mov dword [esi + 0x40], 0
lea eax, [esi + 0x14]
xor ecx, ecx
mov dword [esi + 0x14], 1
mov dword [esi + 0x18], 0
mov dword [esi + 0x80], 0
mov dword [esi + 0x1c], 0
movq xmm0, qword [esi + 0x34]
movsd xmm1, qword [esi + 0x3c]
mov dword [esi + 0x58], eax
mov dword [esi + 0x5c], 0
movq qword [esi + 0x70], xmm0
movsd qword [esi + 0x78], xmm1
mov dword [esi + 0x10], ecx
lea ecx, [esi + 0x30]
lea edx, [esi + 0x70]
mov dword [esi + 0xa0], 3
call fcn.0040c050
cmp dword [esi + 0x30], 1
jne 0x406030
movzx eax, byte [esi + 0x34]
test eax, eax
je 0x4061da
cmp eax, 1
lea ecx, [esi + 0x35]
je 0x405fb4
mov ecx, dword [esi + 0x38]
add ecx, 8
cmp byte [ecx], 0xf
jne 0x4061da
cmp al, 2
jb 0x406014
mov ecx, dword [esi + 0x38]
mov eax, dword [ecx]
mov dword [esi], ecx
mov ecx, dword [ecx + 4]
mov dword [esi + 0xa0], 5
push eax
call dword [ecx]
add esp, 4
mov ebx, dword [esi]
mov eax, dword [ebx + 4]
cmp dword [eax + 4], 0
je 0x406006
mov edi, dword [ebx]
cmp dword [eax + 8], 9
jae 0x405ff6
call sub.KERNEL32.dll_GetProcessHeap
push edi
jmp 0x405ffe
call sub.KERNEL32.dll_GetProcessHeap
push dword [edi - 4]
push 0
push eax
call sub.KERNEL32.dll_HeapFree
call sub.KERNEL32.dll_GetProcessHeap
push ebx
push 0
push eax
call sub.KERNEL32.dll_HeapFree
lea ecx, [esi + 0x30]
lea edx, [esi + 0x70]
mov dword [esi + 0xa0], 3
call fcn.0040c050
jmp 0x405f90
mov eax, dword [esi + 0x34]
mov edx, dword [esi + 0x38]
movaps xmm2, xmmword [0x445220]
movdqa xmm3, xmmword [0x445200]
movaps xmm4, xmmword [0x445210]
xor ecx, ecx
mov dword [esi], eax
and eax, 3
mov dword [esi + 4], edx
je 0x4060a2
mov edi, 4
sub edi, eax
je 0x4060a2
cmp edi, edx
cmova edi, edx
mov eax, edi
mov edi, dword [esi]
mov dword [esi + 8], eax
lea ecx, [edi + eax]
xor eax, eax
nop word cs:[eax + eax]
nop dword [eax]
cmp edi, ecx
je 0x40609c
movzx ebx, byte [edi]
inc edi
xor edx, edx
cmp bl, 0xa
setne dl
add eax, edx
cmp bl, 0xa
jne 0x406080
jmp 0x406123
mov ecx, dword [esi + 8]
mov edx, dword [esi + 4]
cmp edx, 8
jb 0x4060ed
lea eax, [edx - 8]
cmp ecx, eax
ja 0x4060ed
mov ebx, edx
mov edx, dword [esi]
movsd xmm0, qword [edx + ecx]
shufps xmm0, xmm0, 0xd4
movaps xmm1, xmm0
xorps xmm1, xmm2
paddq xmm1, xmm3
andnps xmm0, xmm1
andps xmm0, xmm4
movd edx, xmm0
pshufd xmm0, xmm0, 0x4e
movd edi, xmm0
or edi, edx
jne 0x4060e3
add ecx, 8
cmp ecx, eax
jbe 0x4060b0
mov edx, ebx
cmp ecx, ebx
ja 0x4066f6
mov eax, dword [esi]
mov dword [esi + 8], ecx
lea edi, [eax + ecx]
add edx, eax
xor eax, eax
nop dword [eax]
cmp edi, edx
je 0x406170
movzx ecx, byte [edi]
inc edi
xor ebx, ebx
cmp cl, 0xa
setne bl
add eax, ebx
cmp cl, 0xa
jne 0x406100
add eax, dword [esi + 8]
cmp eax, 0xffffffff
je 0x406707
mov edx, dword [esi + 4]
mov dword [esi + 0xa0], 3
cmp eax, edx
lea eax, [eax + 1]
jae 0x406718
mov edx, dword [esi + 0x1c]
lea ecx, [esi + 0x14]
mov dword [esi + 4], eax
push eax
call fcn.0040d120
add esp, 4
mov eax, dword [esi + 0x1c]
mov edi, dword [esi + 4]
lea ecx, [eax + edi]
mov dword [esi + 0x1c], ecx
add eax, dword [esi + 0x14]
push edi
push dword [esi]
push eax
call fcn.00438b50
add esp, 0xc
mov al, 1
jmp 0x4061a8
mov edx, dword [esi + 0x1c]
mov dword [esi + 0xa0], 3
lea ecx, [esi + 0x14]
push dword [esi + 4]
call fcn.0040d120
add esp, 4
mov eax, dword [esi + 0x1c]
mov edi, dword [esi + 4]
lea ecx, [eax + edi]
mov dword [esi + 0x1c], ecx
add eax, dword [esi + 0x14]
push edi
push dword [esi]
push eax
call fcn.00438b50
add esp, 0xc
xor eax, eax
mov ecx, dword [esi + 0x7c]
mov edx, dword [esi + 0x80]
add ecx, edi
cmp ecx, edx
cmova ecx, edx
mov dword [esi + 0x7c], ecx
mov ecx, dword [esi + 0x10]
add ecx, edi
test al, al
jne 0x4061cc
test edi, edi
jne 0x405f78
xor edi, edi
mov dword [esi + 0x24], ecx
mov dword [esi + 0x20], 0
jmp 0x4061f2
mov eax, dword [esi + 0x34]
mov ecx, dword [esi + 0x38]
mov edi, 1
mov dword [esi + 0x28], ecx
mov dword [esi + 0x24], eax
mov dword [esi + 0x20], 1
mov ebx, dword [esi + 0x58]
mov ecx, dword [esi + 0x5c]
mov edx, dword [ebx + 8]
mov eax, edx
sub eax, ecx
jb 0x406721
mov edx, dword [ebx]
mov dword [esi], ecx
add edx, ecx
lea ecx, [esi + 0x30]
push eax
call fcn.004121d0
add esp, 4
cmp dword [esi + 0x30], 1
jne 0x406230
test edi, edi
je 0x4062d3
mov eax, dword [esi + 0x24]
mov ecx, dword [esi + 0x28]
jmp 0x406304
movq xmm0, qword [esi + 0x20]
mov ecx, dword [esi + 0x28]
mov eax, dword [ebx + 8]
movq qword [esi + 0x60], xmm0
mov dword [esi + 0x68], ecx
mov dword [esi + 0x5c], eax
mov ecx, dword [esi + 0x60]
mov dword [ebx + 8], eax
cmp ecx, 1
sete bl
je 0x406318
xor edi, edi
cmp dword [esi + 0x64], 0
je 0x406496
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x4065b7
mov ecx, dword [esi + 0x14]
mov edx, eax
dec edx
je 0x406281
cmp byte [ecx + edx], 0xbf
jle 0x4065b5
test edx, edx
mov dword [esi + 0x20], ecx
mov dword [esi + 0x24], eax
mov dword [esi + 0x8c], edx
mov dword [esi + 0x58], eax
je 0x40629e
cmp byte [ecx + edx], 0xbf
jle 0x406767
add edx, ecx
cmp edx, 0x4481ed
je 0x4062b1
cmp byte [edx], 0xa
jne 0x4065b5
movzx ebx, byte [ecx + eax - 1]
mov edx, 1
test bl, bl
js 0x4064b4
sub eax, edx
mov dword [esi + 0x1c], eax
jne 0x40656b
jmp 0x4065b7
mov dword [esi + 0x10], ebx
mov byte [esi + 0xf], 0
mov dword [esi + 0xa0], 4
lea ecx, [esi + 0x30]
mov edx, 0xc
push 0x22
push str.stream_did_not_contain_valid_UTF_8_rPath_does_not_exist_or_you_dont_have_access_
call fcn.0040bd10
add esp, 8
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x34]
mov ebx, dword [esi + 0x10]
mov dword [esi + 0x68], ecx
mov dword [esi + 0x64], eax
mov dword [esi + 0x60], 1
mov eax, dword [esi]
mov dword [ebx + 8], eax
mov bl, 1
mov eax, dword [esi + 0x64]
mov edx, dword [esi + 0x68]
xor ecx, ecx
mov dword [esi + 0x10], 1
mov dword [esi], eax
mov dword [esi + 4], edx
cmp dword [esi + 0x18], 0
je 0x406349
mov edi, dword [esi + 0x14]
mov dword [esi + 8], ecx
call sub.KERNEL32.dll_GetProcessHeap
push edi
push 0
push eax
call sub.KERNEL32.dll_HeapFree
mov ecx, dword [esi + 8]
cmp byte [esi], 2
jb 0x4063d5
test cl, cl
je 0x4063d5
xor bl, 1
jne 0x4063d5
mov ecx, dword [esi + 0x68]
mov eax, dword [ecx]
mov dword [esi + 8], ecx
mov ecx, dword [ecx + 4]
mov dword [esi + 0xa0], 6
push eax
call dword [ecx]
add esp, 4
mov ebx, dword [esi + 8]
mov eax, dword [ebx + 4]
cmp dword [eax + 4], 0
je 0x4063c7
mov edi, dword [ebx]
cmp dword [eax + 8], 9
jae 0x4063b7
call sub.KERNEL32.dll_GetProcessHeap
push edi
jmp 0x4063bf
call sub.KERNEL32.dll_GetProcessHeap
push dword [edi - 4]
push 0
push eax
call sub.KERNEL32.dll_HeapFree
mov edi, ebx
call sub.KERNEL32.dll_GetProcessHeap
push edi
push 0
push eax
call sub.KERNEL32.dll_HeapFree
jmp 0x406482
call sub.KERNEL32.dll_GetProcessHeap
push dword [edi - 4]
push 0
push eax
call sub.KERNEL32.dll_HeapFree
call sub.KERNEL32.dll_GetProcessHeap
push ebx
push 0
push eax
call sub.KERNEL32.dll_HeapFree
push dword [esi + 0x70]
call sub.KERNEL32.dll_CloseHandle
cmp dword [esi + 0x78], 0
je 0x4063f4
mov ebx, dword [esi + 0x74]
call sub.KERNEL32.dll_GetProcessHeap
push ebx
push 0
push eax
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esi + 0x10]
cmp eax, 2
jne 0x40640a
mov eax, dword [esi + 0x88]
mov dword [eax], 0
jmp 0x406482
mov edx, dword [esi]
mov ecx, dword [esi + 4]
mov dword [esi + 0x30], eax
mov dword [esi + 0x38], ecx
mov dword [esi + 0x34], edx
mov dword [esi + 0x3c], edi
mov ecx, dword [esi + 0x88]
movq xmm0, qword [esi + 0x30]
movsd xmm1, qword [esi + 0x38]
movq qword [esi + 0x70], xmm0
movsd qword [esi + 0x78], xmm1
cmp dword [esi + 0x70], 1
jne 0x406455
mov dword [ecx], 0
lea ecx, [esi + 0x70]
mov dword [esi + 0xa0], 0xffffffff
call fcn.004010e0
jmp 0x406482
movsd xmm0, qword [esi + 0x70]
movsd xmm1, qword [esi + 0x78]
movsd qword [esi + 0x30], xmm0
movsd qword [esi + 0x38], xmm1
cmp dword [esi + 0x30], 1
je 0x406736
mov eax, dword [esi + 0x3c]
movq xmm0, qword [esi + 0x34]
mov dword [ecx + 8], eax
movq qword [ecx], xmm0
mov eax, dword [esi + 0x98]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov cl, 1
mov dword [esi + 0x10], 2
mov dword [esi], 0
cmp dword [esi + 0x18], 0
jne 0x406332
jmp 0x406349
lea edx, [ecx + eax - 1]
mov dword [esi], ebx
mov dword [esi + 0x10], ecx
cmp ecx, edx
je 0x406513
lea edx, [ecx + eax]
mov ebx, ecx
movzx ecx, byte [edx - 2]
mov dword [esi + 4], edx
mov edx, ecx
and dl, 0xc0
cmp dl, 0x80
jne 0x40651c
mov edx, dword [esi + 4]
mov dword [esi + 8], ecx
add edx, 0xfffffffe
cmp ebx, edx
je 0x406526
mov edx, dword [esi + 4]
mov ecx, ebx
movzx ebx, byte [edx - 3]
mov edx, ebx
and dl, 0xc0
cmp dl, 0x80
jne 0x40652f
mov edx, dword [esi + 4]
add edx, 0xfffffffd
cmp ecx, edx
je 0x406539
mov edx, dword [esi + 4]
movzx edx, byte [edx - 4]
and edx, 7
shl edx, 6
mov dword [esi + 4], edx
jmp 0x406540
xor ecx, ecx
mov edx, 1
jmp 0x406556
and ecx, 0x1f
mov edx, 1
jmp 0x406556
xor ebx, ebx
mov edx, 1
jmp 0x40654b
and ebx, 0xf
mov edx, 1
jmp 0x40654b
mov dword [esi + 4], 0
and ebx, 0x3f
mov edx, 1
or ebx, dword [esi + 4]
mov ecx, dword [esi + 8]
shl ebx, 6
and ecx, 0x3f
or ecx, ebx
mov ebx, dword [esi]
shl ecx, 6
and ebx, 0x3f
or ebx, ecx
cmp ebx, 0x110000
jne 0x4065e0
mov ecx, dword [esi + 0x10]
mov edx, eax
dec edx
je 0x406576
cmp byte [ecx + edx], 0xbf
jle 0x4065b5
test edx, edx
mov dword [esi + 0x20], ecx
mov dword [esi + 0x24], eax
mov dword [esi + 0x8c], edx
mov dword [esi + 0x58], eax
je 0x406593
cmp byte [ecx + edx], 0xbf
jle 0x406790
add edx, ecx
cmp edx, 0x445722
je 0x4065a2
cmp byte [edx], 0xd
jne 0x4065b5
movzx ebx, byte [ecx + eax - 1]
mov edi, 1
test bl, bl
js 0x40661b
sub eax, edi
mov dword [esi + 0x1c], eax
mov edi, eax
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0x18]
mov dword [esi + 0x10], 0
mov dword [esi], eax
mov dword [esi + 4], ecx
push dword [esi + 0x70]
call sub.KERNEL32.dll_CloseHandle
cmp dword [esi + 0x78], 0
jne 0x4063e3
jmp 0x4063f4
mov ecx, dword [esi + 0x10]
cmp ebx, 0x80
jb 0x4062c3
mov edx, 2
cmp ebx, 0x800
jb 0x4062c3
cmp ebx, 0x10000
mov edx, 4
sbb edx, 0
sub eax, edx
mov dword [esi + 0x1c], eax
jne 0x40656b
jmp 0x4065b7
lea edx, [ecx + eax - 1]
cmp ecx, edx
je 0x40666a
lea edx, [ecx + eax]
mov dword [esi], edx
movzx edx, byte [edx - 2]
mov dword [esi + 4], edx
and dl, 0xc0
cmp dl, 0x80
jne 0x40666e
mov edx, dword [esi]
add edx, 0xfffffffe
cmp ecx, edx
je 0x406676
mov edx, dword [esi]
movzx edx, byte [edx - 3]
mov dword [esi + 8], edx
and dl, 0xc0
cmp dl, 0x80
jne 0x40667d
mov edx, dword [esi]
add edx, 0xfffffffd
cmp ecx, edx
je 0x406688
mov ecx, dword [esi]
movzx ecx, byte [ecx - 4]
and ecx, 7
shl ecx, 6
mov dword [esi], ecx
jmp 0x40668e
xor edx, edx
jmp 0x4066a1
mov edx, dword [esi + 4]
and edx, 0x1f
jmp 0x4066a1
mov edx, dword [esi + 4]
xor ecx, ecx
jmp 0x406699
mov ecx, dword [esi + 8]
mov edx, dword [esi + 4]
and ecx, 0xf
jmp 0x406699
mov dword [esi], 0
mov ecx, dword [esi + 8]
mov edx, dword [esi + 4]
and ecx, 0x3f
or ecx, dword [esi]
shl ecx, 6
and edx, 0x3f
or edx, ecx
shl edx, 6
and ebx, 0x3f
or ebx, edx
cmp ebx, 0x110000
je 0x4065b5
cmp ebx, 0x80
jb 0x4065b0
mov edi, 2
cmp ebx, 0x800
jb 0x4065b0
cmp ebx, 0x10000
mov edi, 4
sbb edi, 0
jmp 0x4065b0
mov ecx, 0x2000
mov edx, 1
call fcn.0040dcf0
ud2
mov dword [esi + 0xa0], 3
call fcn.00410500
jmp 0x406734
mov dword [esi + 0xa0], 3
call fcn.00411aa0
jmp 0x406734
mov ecx, eax
call fcn.0040ff00
jmp 0x406734
mov byte [esi + 0xf], 1
mov dword [esi + 0xa0], 4
call fcn.00410500
ud2
movq xmm0, qword [esi + 0x34]
mov dword [esi + 0xa0], 1
lea eax, [esi + 0x20]
mov ecx, 0x447fab
mov edx, 0x2b
movq qword [esi + 0x20], xmm0
push 0x4452e0
push eax
call fcn.00411a20
add esp, 8
jmp 0x406734
lea eax, [esi + 0x20]
lea edx, [esi + 0x8c]
lea ecx, [esi + 0x58]
mov dword [esi + 0xa0], 7
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], edx
mov dword [esi + 0x38], ecx
lea ecx, [esi + 0x30]
call fcn.004121b0
jmp 0x406734
lea eax, [esi + 0x20]
lea edx, [esi + 0x8c]
lea ecx, [esi + 0x58]
mov dword [esi + 0xa0], 7
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], edx
mov dword [esi + 0x38], ecx
lea ecx, [esi + 0x30]
call fcn.004121b0
jmp 0x406734