Function at 0x4107e0
Capabilities:
Create process on windows
Read file on windows
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x43e6e6
mov eax, dword fs:[0]
push eax
sub esp, 0x89c
mov eax, dword [0x44fb64]
xor eax, esp
mov dword [esp + 0x898], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x44fb64]
xor eax, esp
push eax
lea eax, [esp + 0x8b0]
mov dword fs:[0], eax
mov esi, ecx
mov edi, edx
push 0x7d000
mov dword [esp + 0x38], esi
mov dword [esp + 0x24], edi
call fcn.004133db
add esp, 4
mov ebp, eax
xor eax, eax
push 0x208
push eax
mov byte [esp + 0x80], al
mov dword [esp + 0x81], eax
mov dword [esp + 0x85], eax
mov dword [esp + 0x89], eax
mov dword [esp + 0x8d], eax
mov dword [esp + 0x91], eax
mov dword [esp + 0x95], eax
mov dword [esp + 0x99], eax
mov word [esp + 0x9d], ax
mov byte [esp + 0x9f], al
lea eax, [esp + 0x6ac]
push eax
mov dword [esp + 0x34], ebp
call fcn.00424c40
add esp, 0xc
lea ebx, [esp + 0x78]
call fcn.00407db0
call fcn.004133f1
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4108bc
push 0x80004005
call fcn.00409d60
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x24], eax
push edi
push esi
lea ecx, [esp + 0x2c]
push str.:UnCompressExeFile__s_to__s_
push ecx
mov dword [esp + 0x8c8], 0
call fcn.00409670
mov edx, dword [esp + 0x34]
add esp, 0x10
push 0
push edx
push 0x453d09
call fcn.0040d390
push 0x447a7c
push esi
call fcn.00422167
mov edi, eax
add esp, 8
mov dword [esp + 0x1c], edi
test edi, edi
je 0x410e67
push edi
call fcn.004227eb
add esp, 4
test eax, eax
jne 0x410b14
jmp 0x410934
mov ebp, dword [esp + 0x28]
push edi
mov dword [ebp], 0
call fcn.004227a1
add esp, 4
push edi
push 0x7d000
push 1
push ebp
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], edx
call fcn.00422af3
mov ebx, eax
add esp, 0x10
xor esi, esi
mov dword [esp + 0x38], ebx
test ebx, ebx
jle 0x410b03
mov ebp, dword [esp + 0x28]
lea ecx, [esp + 0x78]
mov eax, ebp
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x410997
test dl, dl
je 0x410993
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x410997
add eax, 2
add ecx, 2
test dl, dl
jne 0x410977
xor eax, eax
jmp 0x41099c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4109b5
add esi, 0x200
add ebp, 0x200
cmp esi, ebx
jl 0x410971
jmp 0x410b03
mov eax, dword [esp + 0x20]
lea edx, [esp + 0x9c]
mov dword [esp + 0x18], esi
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4109c6
lea edi, [esp + 0x9c]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4109d8
mov bx, word [0x4478d8]
lea eax, [ebp + 0x90]
mov word [edi], bx
mov ecx, eax
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4109f2
lea edi, [esp + 0x9c]
sub eax, ecx
mov esi, ecx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x410a05
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea esi, [ebp + 0x2c]
mov edx, 0x448368
mov ecx, esi
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x410a45
test al, al
je 0x410a41
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x410a45
add ecx, 2
add edx, 2
test al, al
jne 0x410a25
xor eax, eax
jmp 0x410a4a
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x410aaa
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x6a4]
sub eax, ecx
jmp 0x410a60
mov dl, byte [ecx]
mov byte [eax + ecx], dl
inc ecx
test dl, dl
jne 0x410a60
lea edi, [esp + 0x6a4]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x410a72
mov eax, esi
mov word [edi], bx
mov ecx, eax
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x410a81
lea edi, [esp + 0x6a4]
sub eax, ecx
mov esi, ecx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x410a94
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x1c]
push 0
push 0
push 0
push esi
call fcn.00422bac
mov edx, dword [ebp + 0x20]
push 0
lea eax, [esp + 0xb0]
push eax
lea ecx, [ebp + 0x24]
push esi
call fcn.004120b0
mov edi, dword [esp + 0x34]
mov ecx, dword [ebp + 0xf4]
add esp, 0x1c
mov eax, edi
cdq
xor ebx, ebx
add ecx, eax
adc ebx, edx
add ecx, dword [esp + 0x2c]
push 0
adc ebx, dword [esp + 0x34]
push ebx
push ecx
push esi
call fcn.00422bac
add esp, 0x10
cmp edi, dword [esp + 0x38]
mov edi, esi
jl 0x410b14
push edi
call fcn.004227eb
add esp, 4
test eax, eax
je 0x410930
push 0x400
lea edx, [esp + 0x2a8]
push 0
push edx
call fcn.00424c40
add esp, 0xc
push edi
call fcn.004227eb
add esp, 4
test eax, eax
jne 0x410e5a
mov ebx, dword [esp + 0x1c]
push ebx
push 0x400
lea eax, [esp + 0x2ac]
push 1
push eax
call fcn.00422af3
push ebx
mov esi, eax
call fcn.004227a1
add esp, 0x14
mov ebp, eax
mov dword [esp + 0x30], edx
cmp esi, 0x400
jne 0x410e45
mov ecx, str.LeaderCab
lea eax, [esp + 0x2a4]
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x410ba0
test dl, dl
je 0x410b9c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x410ba0
add eax, 2
add ecx, 2
test dl, dl
jne 0x410b80
xor eax, eax
jmp 0x410ba5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x410e45
push 0x208
push eax
lea ecx, [esp + 0xa4]
push ecx
call fcn.00424c40
mov eax, dword [esp + 0x2c]
lea edx, [esp + 0xa8]
add esp, 0xc
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x410bd0
lea edi, [esp + 0x9c]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x410be2
mov dx, word [0x4478d8]
lea eax, [esp + 0x2c8]
push eax
lea ecx, [esp + 0x1c]
mov word [edi], dx
call fcn.004098c0
mov byte [esp + 0x8b8], 1
mov edx, dword [esp + 0x18]
mov esi, dword [edx - 0xc]
mov eax, dword [edx - 8]
mov ecx, 1
sub ecx, dword [edx - 4]
sub eax, esi
or eax, ecx
jge 0x410c33
push esi
lea ecx, [esp + 0x1c]
call fcn.00409bc0
mov edx, dword [esp + 0x18]
lea ecx, [esi + 1]
push ecx
push edx
call fcn.00423331
add esp, 8
cmp eax, 0x50
ja case.0x410c50.1
movzx edx, byte [eax + 0x411038]
jmp dword [edx*4 + 0x411028]
test esi, esi
jl 0x41101c
mov eax, dword [esp + 0x18]
cmp esi, dword [eax - 8]
jg 0x41101c
mov dword [eax - 0xc], esi
mov eax, dword [esp + 0x18]
push str.kernel32.dll
mov byte [esi + eax], 0
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
push str.GetNativeSystemInfo
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x410d01
lea ecx, [esp + 0x78]
push ecx
call eax
xor eax, eax
cmp word [esp + 0x78], 9
sete al
test eax, eax
je 0x410d01
mov edx, dword [esp + 0x18]
push str.LDX64.EXE
push edx
call fcn.00422dad
add esp, 8
test eax, eax
sete al
test al, al
je 0x410cda
lea eax, [esp + 0x9c]
dec eax
jmp 0x410cd0
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x410cd0
jmp 0x410d2c
lea eax, [esp + 0x2c8]
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x410ce3
lea edi, [esp + 0x9c]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x410cf4
jmp 0x410db9
mov eax, dword [esp + 0x18]
push str.LDX32.EXE
push eax
call fcn.00422dad
add esp, 8
test eax, eax
sete al
test al, al
je 0x410d42
lea eax, [esp + 0x9c]
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x410d24
mov ecx, dword [str.Ldx.exe]
mov edx, dword [0x448bc0]
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp 0x410dc9
mov eax, dword [esp + 0x18]
push str.LDDISK32.SYS
push eax
call fcn.00422dad
add esp, 8
test eax, eax
sete al
test al, al
je 0x410d94
lea eax, [esp + 0x9c]
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x410d65
mov ecx, dword [str.Lddisk.sys]
mov edx, dword [0x448be4]
mov dword [eax], ecx
mov cx, word [0x448be8]
mov dword [eax + 4], edx
mov dl, byte [0x448bea]
mov word [eax + 8], cx
mov byte [eax + 0xa], dl
jmp 0x410dc9
lea eax, [esp + 0x2c8]
mov edx, eax
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x410da0
lea edi, [esp + 0x9c]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x410db1
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x30]
push 0
push esi
push ebp
push ebx
call fcn.00422bac
mov eax, dword [esp + 0x2d4]
mov edx, dword [esp + 0x344]
push eax
lea ecx, [esp + 0xb0]
push ecx
push ebx
lea ecx, [esp + 0x348]
call fcn.004120b0
mov edx, dword [esp + 0x350]
mov eax, dword [esp + 0x354]
add esp, 0x1c
add edx, ebp
push 0
adc eax, esi
push eax
push edx
push ebx
call fcn.00422bac
mov byte [esp + 0x8c8], 0
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
add esp, 0x10
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x410e45
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push ebx
call fcn.004227eb
add esp, 4
test eax, eax
je 0x410b40
mov edi, dword [esp + 0x1c]
push edi
call fcn.004221f5
mov ebp, dword [esp + 0x2c]
add esp, 4
push ebp
call fcn.004133e6
add esp, 4
lea ecx, [esp + 0x2a4]
push ecx
lea edx, [esp + 0x6a8]
push edx
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp eax, 0xffffffff
je 0x410fbd
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
push 0x207
lea eax, [esp + 0x2a9]
push 0
push eax
mov byte [esp + 0x2b0], 0
call fcn.00424c40
lea eax, [esp + 0x2b0]
add esp, 0xc
dec eax
lea ecx, [ecx]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x410ec0
mov ecx, dword [str.__srcfile__]
mov edx, dword [0x448c80]
mov dword [eax], ecx
mov ecx, dword [0x448c84]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x34]
mov ecx, eax
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x410ee8
lea edi, [esp + 0x2a4]
sub eax, ecx
mov esi, ecx
dec edi
jmp 0x410f00
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x410f00
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x2a4]
dec edi
mov edi, edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x410f20
mov dx, word [0x44846c]
push 0x64
mov word [edi], dx
call dword [sym.imp.KERNEL32.dll_Sleep]
call dword [sym.imp.KERNEL32.dll_GetVersion]
push 0x448368
lea ecx, [esp + 0x20]
call fcn.004098c0
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x6a4]
xor eax, eax
mov dword [esp + 0x4c], edx
mov dword [esp + 0x48], ecx
lea edx, [esp + 0x3c]
lea ecx, [esp + 0x2a4]
push edx
mov dword [esp + 0x40], 0x3c
mov dword [esp + 0x44], 0x40
mov dword [esp + 0x48], eax
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], 5
mov dword [esp + 0x60], eax
call dword [sym.imp.SHELL32.dll_ShellExecuteExA]
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x410fbd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x8b8], 0xffffffff
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x410fe8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
mov ecx, dword [esp + 0x8b0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x898]
xor ecx, esp
call fcn.0042179d
add esp, 0x8a8
ret
call fcn.004139e7
call fcn.00413a1f
push 0x80070057
call fcn.00409d60
mov edi, edi
push edi
or al, 65
add byte [edx], dl
adc byte [ecx], al
pop ss
adc byte [ecx], al
pop ss
adc byte [ecx], al
add byte [ebx], al
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add dword [ebx], eax
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add al, byte [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add al, byte [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add ah, cl
int3