Function at 0x10040e90
Capabilities:
Create thread
Get system information on windows
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x101714c3
mov eax, dword fs:[0]
push eax
sub esp, 0xdc
mov eax, dword [0x101c52b4]
xor eax, esp
mov dword [esp + 0xd8], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x101c52b4]
xor eax, esp
push eax
lea eax, [esp + 0xf0]
mov dword fs:[0], eax
mov eax, dword [esp + 0x120]
mov ebx, dword [esp + 0x104]
mov esi, dword [esp + 0x108]
mov dword [esp + 0x80], ebx
mov dword [esp + 0x78], eax
mov byte [eax], 0
mov esi, esi
mov edi, 1
mov dword [esp + 0x7c], edi
mov dl, dl
push 0x10179578
push esi
call fcn.1010ece0
add esp, 8
test eax, eax
je 0x10040f2b
push 0x10179860
push esi
call fcn.1010ece0
add esp, 8
test eax, eax
jne 0x10040f2b
xor ebp, ebp
xor edi, edi
mov dword [esp + 0x7c], edi
push edx
pop edx
jmp 0x10040f2d
xor ebp, ebp
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ebp
mov dword [esp + 0xf8], ebp
mov cl, cl
cmp edi, ebp
je 0x1004125b
mov eax, dword [esp + 0x100]
cmp dword [eax + 0x32bc], ebp
je 0x10040f5f
mov dword [esp + 0x74], ebx
jmp 0x10040f7d
mov dword [esp + 0x24], ebp
mov bl, bl
lea ecx, [esp + 0x24]
push ecx
push ebx
call fcn.10059650
add esp, 8
mov dl, dl
mov edx, dword [esp + 0x24]
mov dword [esp + 0x74], edx
mov esi, esi
mov dword [esp + 0x30], ebp
mov dword [esp + 0x34], ebp
mov esi, esi
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], ebp
mov bl, bl
mov bl, 0x49
mov dl, 0x36
mov cl, 0x34
mov al, 0x78
mov byte [esp + 0xa0], 0x25
mov byte [esp + 0xa1], bl
mov byte [esp + 0xa2], dl
mov byte [esp + 0xa3], cl
mov byte [esp + 0xa4], al
mov byte [esp + 0xa5], 0x2d
mov byte [esp + 0xa6], 0x25
mov byte [esp + 0xa7], bl
mov byte [esp + 0xa8], dl
mov byte [esp + 0xa9], cl
mov byte [esp + 0xaa], al
mov byte [esp + 0xab], 0
push edx
pop edx
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0xa8]
push edx
push esi
call fcn.10110865
add esp, 0x10
mov ah, ah
mov eax, dword [esp + 0x74]
push eax
call fcn.1005e190
add esp, 4
mov esi, esi
test al, al
mov esi, dword [esp + 0x34]
je 0x1004107f
cmp esi, 0x80000000
ja 0x10041436
mov edi, dword [esp + 0x30]
jb 0x10041043
cmp edi, ebp
jae 0x10041436
mov ecx, dword [esp + 0x2c]
cmp esi, ecx
ja 0x10041436
mov eax, dword [esp + 0x28]
jb 0x1004105d
cmp edi, eax
ja 0x10041436
cmp ecx, 0x80000000
jb 0x100410d4
ja 0x1004106b
cmp eax, ebp
jb 0x100410d4
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x2c], SysReAllocStringLen
mov edx, edx
jmp 0x100410cc
cmp esi, ebp
ja 0x10041436
mov edi, dword [esp + 0x30]
jb 0x10041099
cmp edi, 0x80000000
jae 0x10041436
mov ecx, dword [esp + 0x2c]
cmp esi, ecx
ja 0x10041436
mov eax, dword [esp + 0x28]
jb 0x100410b3
cmp edi, eax
ja 0x10041436
cmp ecx, ebp
ja 0x100410be
cmp eax, 0x80000000
jb 0x100410d4
mov dword [esp + 0x28], SysReAllocStringLen
mov dword [esp + 0x2c], ebp
mov cl, cl
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x34]
mov edx, edx
cmp esi, dword [esp + 0x2c]
ja 0x10041394
jb 0x100410f0
cmp edi, dword [esp + 0x28]
jae 0x10041394
lea esp, [esp]
nop
xchg ebx, eax
xchg ebx, eax
push ebp
lea ecx, [esp + 0x40]
push ecx
lea edx, [esp + 0x2c]
push edx
lea eax, [esp + 0x44]
push eax
mov eax, dword [esp + 0x84]
lea ecx, [esp + 0x7c]
push ecx
lea edx, [esp + 0x78]
push edx
push esi
push edi
push eax
call fcn.1005ee90
add esp, 0x24
test eax, eax
je 0x10041394
push 0x3f
lea ecx, [esp + 0xb1]
push ebp
push ecx
mov byte [esp + 0xb8], 0
call fcn.1010efd0
add esp, 0xc
mov dl, dl
mov ecx, dword [esp + 0x64]
add ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x68]
adc eax, dword [esp + 0x70]
add ecx, 0xffffffff
adc eax, 0xffffffff
xchg ebx, eax
xchg ebx, eax
mov edx, dword [esp + 0x2c]
cmp eax, edx
jb 0x10041174
mov ebx, dword [esp + 0x28]
ja 0x1004116e
cmp ecx, ebx
jbe 0x10041174
mov ecx, ebx
mov eax, edx
mov dl, dl
push eax
push ecx
push esi
push edi
lea edx, [esp + 0xb0]
push edx
lea eax, [esp + 0xc0]
push eax
call fcn.1010fdb0
add esp, 0x18
mov edi, edi
mov esi, 0xf
lea eax, [esp + 0xac]
mov dword [esp + 0x9c], esi
mov dword [esp + 0x98], ebp
mov byte [esp + 0x88], 0
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x100411b7
sub eax, edx
push eax
lea ecx, [esp + 0xb0]
push ecx
lea ecx, [esp + 0x8c]
call fcn.1000a180
mov byte [esp + 0xf8], 1
lea edx, [esp + 0x84]
push edx
lea ecx, [esp + 0x18]
call fcn.10040de0
mov byte [esp + 0xf8], 0
cmp dword [esp + 0x9c], 0x10
jb 0x10041212
mov eax, dword [esp + 0x88]
push eax
call fcn.100fcea8
add esp, 4
mov dword [esp + 0x9c], esi
mov dword [esp + 0x98], ebp
mov byte [esp + 0x88], 0
mov ecx, ecx
mov edi, dword [esp + 0x64]
add edi, dword [esp + 0x6c]
mov esi, dword [esp + 0x68]
adc esi, dword [esp + 0x70]
push ebx
pop ebx
cmp esi, dword [esp + 0x2c]
jb 0x100410f0
ja 0x10041394
cmp edi, dword [esp + 0x28]
jb 0x100410f0
jmp 0x10041394
mov ebx, ebx
mov ah, ah
mov ebx, 0xf
xor eax, eax
mov byte [esp + 0xac], 0
mov dword [esp + 0xad], eax
mov dword [esp + 0xb1], eax
mov dword [esp + 0xb5], eax
mov dword [esp + 0xb9], eax
mov dword [esp + 0xbd], eax
mov dword [esp + 0xc1], eax
mov dword [esp + 0xc5], eax
mov word [esp + 0xc9], ax
mov byte [esp + 0xcb], al
mov esi, esi
push 0x10179578
push esi
call fcn.1010ece0
add esp, 8
mov edi, eax
mov bh, bh
cmp edi, ebp
lea edx, [esp + 0xac]
je 0x100412e0
mov ecx, edi
sub ecx, esi
push ecx
push esi
push edx
call fcn.10110df0
add esp, 0xc
mov al, al
jmp 0x100412f2
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [eax + edx], cl
add eax, 1
test cl, cl
jne 0x100412e4
mov ebx, ebx
lea esi, [edi + 1]
mov edx, edx
lea eax, [esp + 0xac]
mov dword [esp + 0x9c], ebx
mov dword [esp + 0x98], ebp
mov byte [esp + 0x88], 0
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x10041317
sub eax, edx
push eax
lea eax, [esp + 0xb0]
push eax
lea ecx, [esp + 0x8c]
call fcn.1000a180
mov byte [esp + 0xf8], 2
lea ecx, [esp + 0x84]
push ecx
lea ecx, [esp + 0x18]
call fcn.10040de0
mov byte [esp + 0xf8], 0
cmp dword [esp + 0x9c], 0x10
jb 0x10041372
mov edx, dword [esp + 0x88]
push edx
call fcn.100fcea8
add esp, 4
mov dword [esp + 0x9c], ebx
mov dword [esp + 0x98], ebp
mov byte [esp + 0x88], 0
mov bh, bh
cmp edi, ebp
jne 0x10041264
mov edi, edi
nop
lea eax, [esp + 0x40]
push eax
call dword [sym.imp.KERNEL32.DLL_GetSystemInfo]
mov ebp, ebp
mov eax, dword [esp + 0x18]
cmp eax, ebp
je 0x100413c3
mov ecx, dword [esp + 0x1c]
sub ecx, eax
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov ebp, edx
shr ebp, 0x1f
add ebp, edx
mov dword [esp + 0x6c], ebp
mov edi, edi
mov dh, dh
mov ebx, dword [esp + 0x54]
cmp ebp, ebx
jae 0x100413dd
mov ebx, ebp
mov dword [esp + 0x24], ebp
mov bl, bl
jmp 0x100413e3
mov dword [esp + 0x24], ebx
mov edi, edi
cmp ebx, 0x40
jl 0x100413f2
mov ebx, 0x40
mov dword [esp + 0x24], ebx
nop
lea edi, [ebx*4]
push edi
call fcn.1010df39
add esp, 4
mov dword [esp + 0x38], eax
mov dh, dh
test eax, eax
je 0x10041436
lea esi, [ebx + ebx*4]
add esi, esi
add esi, esi
add esi, esi
push esi
call fcn.1010df39
add esp, 4
mov dword [esp + 0x3c], eax
nop
test eax, eax
jne 0x10041451
mov ecx, dword [esp + 0x38]
push ecx
call fcn.1010dffc
add esp, 4
mov edi, edi
mov dword [esp + 0xf8], 0xffffffff
lea ecx, [esp + 0x14]
call fcn.10040990
xor eax, eax
jmp 0x1004180e
mov edx, dword [esp + 0x38]
push edi
push 0
push edx
call fcn.1010efd0
add esp, 0xc
xchg ebx, eax
xchg ebx, eax
mov eax, dword [esp + 0x3c]
push esi
push 0
push eax
call fcn.1010efd0
add esp, 0xc
mov ecx, ecx
xor edi, edi
push edx
pop edx
mov eax, ebp
xor edx, edx
div ebx
mov dword [esp + 0x30], eax
push ecx
pop ecx
mov eax, dword [esp + 0x124]
xor edx, edx
div ebx
mov dword [esp + 0x64], eax
mov dh, dh
mov edx, edx
xor ebp, ebp
test ebx, ebx
jle 0x100416b6
mov ecx, dword [esp + 0x78]
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x74], ecx
add esi, 0xc
mov bh, bh
mov edx, dword [esp + 0x30]
lea ebx, [edx + edi - 1]
mov esi, esi
mov eax, dword [esp + 0x24]
add eax, 0xffffffff
cmp ebp, eax
jne 0x100414d1
mov ebx, dword [esp + 0x6c]
add ebx, 0xffffffff
push eax
pop eax
mov eax, dword [esp + 0x7c]
mov ecx, ebx
sub ecx, edi
push eax
add ecx, 1
push ecx
lea edx, [esp + 0x1c]
mov ecx, edi
push edx
lea edi, [esp + 0x90]
call fcn.1003ece0
add esp, 0xc
mov byte [esp + 0xf8], 3
mov ah, ah
mov eax, dword [esp + 0x100]
lea edi, [esi - 0xc]
mov dword [edi], eax
push edx
pop edx
mov ecx, dword [esp + 0x80]
mov dword [esi - 8], ecx
push eax
pop eax
mov edx, dword [esp + 0x10c]
mov dword [esi], edx
mov edi, edi
mov eax, dword [esp + 0x110]
mov dword [esi + 4], eax
push ebx
pop ebx
mov ecx, dword [esp + 0x114]
mov dword [esi + 8], ecx
mov dh, dh
mov edx, dword [esp + 0x118]
mov dword [esi + 0xc], edx
nop
mov eax, dword [esp + 0x11c]
mov dword [esi + 0x10], eax
mov ah, ah
mov ecx, dword [esp + 0x74]
mov dword [esi + 0x14], ecx
nop
mov edx, dword [esp + 0x64]
mov dword [esi + 0x18], edx
mov dl, dl
mov eax, dword [esp + 0x98]
add eax, 1
push eax
call fcn.1010df39
add esp, 4
mov dword [esi - 4], eax
mov bh, bh
mov eax, dword [esi - 4]
test eax, eax
je 0x10041652
cmp dword [esp + 0x9c], 0x10
mov edx, dword [esp + 0x88]
jae 0x100415a0
lea edx, [esp + 0x88]
mov edi, edi
mov cl, byte [edx]
mov byte [eax], cl
add edx, 1
add eax, 1
test cl, cl
jne 0x100415a0
xchg ebx, eax
xchg ebx, eax
call fcn.1002fd50
mov dword [esp + 0x28], eax
mov dh, dh
push eax
pop eax
push 0
push 0
push edi
push 0x1003c5a0
push 0
push 0
call fcn.1011074f
add esp, 0x18
push ebx
pop ebx
mov edi, dword [esp + 0x38]
mov dword [edi + ebp*4], eax
mov eax, eax
mov ecx, dword [esp + 0x28]
push ecx
call fcn.1002fe10
add esp, 4
mov esi, esi
cmp dword [edi + ebp*4], 0
je 0x10041672
lea edi, [ebx + 1]
mov ch, ch
mov byte [esp + 0xf8], 0
cmp dword [esp + 0x9c], 0x10
jb 0x1004161a
mov edx, dword [esp + 0x88]
push edx
call fcn.100fcea8
add esp, 4
mov eax, dword [esp + 0x64]
add dword [esp + 0x74], eax
add ebp, 1
add esi, 0x28
cmp ebp, dword [esp + 0x24]
mov dword [esp + 0x9c], 0xf
mov dword [esp + 0x98], 0
mov byte [esp + 0x88], 0
jl 0x100414b1
jmp 0x100416b2
xor ebp, ebp
push eax
pop eax
mov byte [esp + 0xf8], 0
cmp dword [esp + 0x9c], 0x10
jb 0x10041698
mov ecx, dword [esp + 0x88]
push ecx
jmp 0x10041690
xor ebp, ebp
mov bl, bl
mov byte [esp + 0xf8], 0
cmp dword [esp + 0x9c], 0x10
jb 0x10041698
mov edx, dword [esp + 0x88]
push edx
call fcn.100fcea8
add esp, 4
mov byte [esp + 0x88], 0
mov dword [esp + 0x98], ebp
mov dword [esp + 0x9c], 0xf
mov ebx, dword [esp + 0x24]
mov esi, dword [esp + 0x78]
xor edi, edi
nop
cmp ebp, ebx
jne 0x1004177c
mov eax, dword [esp + 0x38]
push 0xffffffffffffffff
push 1
push eax
push ebx
call dword [sym.imp.KERNEL32.DLL_WaitForMultipleObjects]
mov ecx, ecx
cmp eax, 0xffffffff
je 0x1004177c
xor ebp, ebp
nop
test ebx, ebx
jle 0x10041775
mov edx, dword [esp + 0x3c]
lea ecx, [edi + edi*4]
lea eax, [edx + ecx*8 + 0x20]
mov ecx, dword [eax]
cmp byte [ecx], 0
je 0x10041761
test edi, edi
jle 0x10041748
cmp byte [esi], 0
je 0x10041711
mov byte [esi + ebp], 0x7c
mov ch, ch
add ebp, 1
mov cl, cl
mov edx, dword [eax]
mov eax, dword [esp + 0x78]
add eax, ebp
mov esi, eax
jmp 0x10041720
mov cl, byte [edx]
mov byte [esi], cl
add edx, 1
add esi, 1
test cl, cl
jne 0x10041720
mov esi, esi
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x10041733
sub eax, edx
add ebp, eax
xchg ebx, eax
xchg ebx, eax
mov esi, dword [esp + 0x78]
jmp 0x1004176a
mov eax, esi
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x10041750
sub eax, edx
mov ebp, eax
push eax
pop eax
jmp 0x1004176a
test edi, edi
jne 0x1004176a
mov byte [esi], 0
mov ah, ah
add edi, 1
cmp edi, ebx
jl 0x100416eb
mov edi, 1
mov ebx, ebx
mov ebp, dword [esp + 0x38]
xor esi, esi
test ebx, ebx
jle 0x100417b9
mov eax, dword [ebp + esi*4]
test eax, eax
je 0x100417b2
push eax
call fcn.10056f90
add esp, 4
mov bl, bl
mov ecx, dword [ebp + esi*4]
push ecx
call fcn.100bb070
add esp, 4
mov bh, bh
mov dword [ebp + esi*4], 0
mov bl, bl
add esi, 1
cmp esi, ebx
jl 0x10041786
push ebp
call fcn.1010dffc
add esp, 4
mov dh, dh
test ebx, ebx
jle 0x100417e9
mov esi, dword [esp + 0x3c]
add esi, 8
nop
mov eax, dword [esi]
test eax, eax
je 0x100417e1
push eax
call fcn.1010dffc
add esp, 4
mov bl, bl
add esi, 0x28
sub ebx, 1
jne 0x100417d0
mov edx, dword [esp + 0x3c]
push edx
call fcn.1010dffc
add esp, 4
mov ebp, ebp
mov dword [esp + 0xf8], 0xffffffff
lea ecx, [esp + 0x14]
call fcn.10040990
mov eax, edi
mov ecx, dword [esp + 0xf0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xd8]
xor ecx, esp
call fcn.1010e4d7
add esp, 0xe8
ret