Function at 0x10050f90
Capabilities:
Create thread
Get system information on windows

Disassembly:
push 0xffffffffffffffff
push 0x10179656
mov eax, dword fs:[0]
push eax
sub esp, 0xf0
mov eax, dword [0x101ce2ac]
xor eax, esp
mov dword [esp + 0xec], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x101ce2ac]
xor eax, esp
push eax
lea eax, [esp + 0x104]
mov dword fs:[0], eax
mov eax, dword [esp + 0x130]
mov esi, dword [esp + 0x114]
mov edi, dword [esp + 0x118]
mov dword [esp + 0x7c], esi
mov dword [esp + 0x64], eax
xor ebp, ebp
mov byte [eax], 0
test edi, edi
mov ebx, 1
mov dword [esp + 0x78], ebx
mov cl, cl
push 0x10182558
push edi
call fcn.101174c0
add esp, 8
test eax, eax
je 0x10051026
push 0x10182810
push edi
call fcn.101174c0
add esp, 8
test eax, eax
jne 0x10051026
xor ebx, ebx
mov dword [esp + 0x78], ebx
mov ebp, ebp
mov dword [esp + 0x14], ebp
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x10c], 1
push eax
pop eax
cmp ebx, ebp
je 0x100513be
test esi, esi
jns 0x1005105e
push esi
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
jne 0x1005105e
and esi, 0x7fffffff
jmp 0x10051078
mov dword [esp + 0x5c], ebp
test dl, dl
lea eax, [esp + 0x5c]
push eax
push esi
call fcn.10069cd0
add esp, 8
push ecx
pop ecx
mov esi, dword [esp + 0x5c]
mov ecx, ecx
push ebp
push ebp
push esi
push ebp
push 0x400
call fcn.100696f0
add esp, 0x14
mov dword [esp + 0x58], eax
test esi, esi
cmp eax, ebp
je 0x100511aa
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], ebp
push edx
pop edx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], ebp
mov esi, esi
mov bl, 0x49
mov dl, 0x36
mov cl, 0x34
mov al, 0x78
mov byte [esp + 0x88], 0x25
mov byte [esp + 0x89], bl
mov byte [esp + 0x8a], dl
mov byte [esp + 0x8b], cl
mov byte [esp + 0x8c], al
mov byte [esp + 0x8d], 0x2d
mov byte [esp + 0x8e], 0x25
mov byte [esp + 0x8f], bl
mov byte [esp + 0x90], dl
mov byte [esp + 0x91], cl
mov byte [esp + 0x92], al
mov byte [esp + 0x93], 0
test esi, esi
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x2c]
push edx
lea eax, [esp + 0x90]
push eax
push edi
call fcn.10119565
add esp, 0x10
mov dh, dh
push esi
call fcn.1006de90
add esp, 4
mov byte [esp + 0x68], al
mov ah, ah
test al, al
mov edx, dword [esp + 0x2c]
je 0x100511e8
cmp edx, 0x80000000
ja 0x10051198
mov ebx, dword [esp + 0x28]
jb 0x10051159
cmp ebx, ebp
jae 0x10051198
mov ecx, dword [esp + 0x24]
cmp edx, ecx
ja 0x10051198
mov eax, dword [esp + 0x20]
jb 0x1005116b
cmp ebx, eax
ja 0x10051198
cmp ecx, 0x80000000
jb 0x1005123d
ja 0x10051181
cmp eax, ebp
jb 0x1005123d
mov dword [esp + 0x20], 0xffffffff
mov dword [esp + 0x24], SysReAllocStringLen
test cl, cl
jmp 0x10051235
mov ecx, dword [esp + 0x58]
push ecx
call fcn.1004c710
add esp, 4
test eax, 0x2551
mov dword [esp + 0x10c], 0xffffffff
lea ecx, [esp + 0x14]
call fcn.10050bd0
xor eax, eax
mov ecx, dword [esp + 0x104]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xec]
xor ecx, esp
call fcn.10116cb9
add esp, 0xfc
ret
cmp edx, ebp
ja 0x100513aa
mov ebx, dword [esp + 0x28]
jb 0x10051202
cmp ebx, 0x80000000
jae 0x100513aa
mov ecx, dword [esp + 0x24]
cmp edx, ecx
ja 0x100513aa
mov eax, dword [esp + 0x20]
jb 0x1005121c
cmp ebx, eax
ja 0x100513aa
cmp ecx, ebp
ja 0x10051227
cmp eax, 0x80000000
jb 0x1005123d
mov dword [esp + 0x20], SysReAllocStringLen
mov dword [esp + 0x24], ebp
test dl, dl
mov ebx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov ebp, edx
mov ch, ch
cmp ebp, dword [esp + 0x24]
ja 0x10051396
jb 0x10051257
cmp ebx, dword [esp + 0x20]
jae 0x10051396
mov ch, ch
mov ebp, ebp
mov edx, dword [esp + 0x68]
push edx
lea eax, [esp + 0x70]
push eax
lea ecx, [esp + 0x78]
push ecx
lea edx, [esp + 0x80]
push edx
mov edx, dword [esp + 0x68]
lea eax, [esp + 0x90]
push eax
lea ecx, [esp + 0x70]
push ecx
push ebp
push ebx
push edx
call fcn.1004ba70
add esp, 0x24
test al, al
je 0x10051396
push 0x3f
lea eax, [esp + 0xc5]
push 0
push eax
mov byte [esp + 0xcc], 0
call fcn.10117df0
add esp, 0xc
mov ah, ah
mov esi, dword [esp + 0x5c]
add esi, dword [esp + 0x80]
mov edi, dword [esp + 0x60]
adc edi, dword [esp + 0x84]
mov ecx, esi
add ecx, 0xffffffff
mov eax, edi
adc eax, 0xffffffff
mov cl, cl
mov edx, dword [esp + 0x24]
cmp eax, edx
jb 0x100512ee
ja 0x100512e6
cmp ecx, dword [esp + 0x20]
jbe 0x100512ee
mov ecx, dword [esp + 0x20]
mov eax, edx
test ah, ah
push eax
push ecx
push ebp
push ebx
lea ecx, [esp + 0x98]
push ecx
lea edx, [esp + 0xd4]
push edx
call fcn.10118d49
add esp, 0x18
test al, al
lea eax, [esp + 0x57]
push eax
lea ecx, [esp + 0xc4]
push ecx
lea ecx, [esp + 0xa8]
call fcn.100085b0
mov byte [esp + 0x10c], 2
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + 0x1c]
lea edx, [esp + 0x57]
lea ecx, [esp + 0xa0]
je 0x10051354
push edx
push ecx
push eax
call fcn.1004f2a0
add esp, 0xc
add dword [esp + 0x18], 0x18
jmp 0x10051364
push 1
push 1
push edx
push ecx
push eax
lea ecx, [esp + 0x28]
call fcn.10050ed0
mov byte [esp + 0x10c], 1
lea ecx, [esp + 0xa0]
call fcn.10006e00
push eax
pop eax
mov ebx, esi
mov ebp, edi
test esi, esi
cmp ebp, dword [esp + 0x24]
jb 0x10051257
ja 0x10051396
cmp ebx, dword [esp + 0x20]
jb 0x10051257
mov edx, dword [esp + 0x58]
push edx
call fcn.1004c710
add esp, 4
test bh, bh
jmp 0x100515b7
mov eax, dword [esp + 0x58]
push eax
call fcn.1004c710
add esp, 4
mov eax, eax
jmp 0x100511aa
mov ebx, edi
test edx, edx
mov ebp, ebp
jmp 0x100513d2
xor ebp, ebp
xor eax, eax
mov byte [esp + 0xa0], 0
mov dword [esp + 0xa1], eax
mov dword [esp + 0xa5], eax
mov dword [esp + 0xa9], eax
mov dword [esp + 0xad], eax
mov dword [esp + 0xb1], eax
mov dword [esp + 0xb5], eax
mov dword [esp + 0xb9], eax
mov word [esp + 0xbd], ax
mov byte [esp + 0xbf], al
test eax, 0x5e2d
push 0x10182558
push ebx
call fcn.101174c0
mov esi, eax
add esp, 8
mov dword [esp + 0x68], esi
test bl, bl
cmp esi, ebp
lea edx, [esp + 0xa0]
je 0x10051458
mov ecx, esi
sub ecx, ebx
push ecx
push ebx
push edx
call fcn.10119b70
add esp, 0xc
test eax, 0x905
jmp 0x1005146e
mov eax, ebx
sub edx, ebx
lea esp, [esp]
mov cl, byte [eax]
mov byte [eax + edx], cl
add eax, 1
test cl, cl
jne 0x10051460
test dl, dl
lea ebx, [esi + 1]
mov bh, bh
lea eax, [esp + 0x88]
mov ecx, eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], ecx
mov byte [esp + 0x10c], 3
lea eax, [esp + 0xa0]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x100514a0
sub eax, edx
lea edi, [esp + eax + 0xa0]
mov esi, edi
lea edx, [esp + 0xa0]
sub esi, edx
lea eax, [esi + 1]
cmp eax, 0xffffffff
mov dword [esp + 0x20], eax
ja 0x100519a3
test eax, eax
jbe 0x100519a3
cmp eax, 0x10
jbe 0x1005150a
lea ecx, [esp + 0x20]
push ecx
push eax
lea ecx, [esp + 0xa4]
call fcn.10003570
mov dword [esp + 0x9c], eax
mov edx, dword [esp + 0x20]
lea ecx, [eax + edx]
mov dword [esp + 0x98], eax
mov dword [esp + 0x88], ecx
jmp 0x10051511
mov eax, dword [esp + 0x9c]
lea edx, [esp + 0xa0]
cmp edi, edx
je 0x1005152b
push esi
mov ecx, edx
push ecx
push eax
call fcn.10117a80
add esp, 0xc
add eax, esi
mov dword [esp + 0x98], eax
mov byte [eax], 0
mov byte [esp + 0x10c], 4
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + 0x1c]
je 0x10051579
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
mov byte [esp + 0x10c], 5
test eax, eax
je 0x1005156a
lea edx, [esp + 0x88]
push edx
mov ecx, eax
call fcn.1000cf10
mov byte [esp + 0x10c], 4
add dword [esp + 0x18], 0x18
jmp 0x10051594
push 1
push 1
lea ecx, [esp + 0x5f]
push ecx
lea edx, [esp + 0x94]
push edx
push eax
lea ecx, [esp + 0x28]
call fcn.10050ed0
mov byte [esp + 0x10c], 1
lea ecx, [esp + 0x88]
call fcn.10006e00
test ah, ah
cmp dword [esp + 0x68], 0
jne 0x100513d0
mov cl, cl
test eax, 0x1cad
lea eax, [esp + 0x30]
push eax
call dword [sym.imp.KERNEL32.DLL_GetSystemInfo]
mov ebp, ebp
mov ecx, dword [esp + 0x18]
sub ecx, dword [esp + 0x14]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov ebp, edx
shr ebp, 0x1f
add ebp, edx
mov dword [esp + 0x70], ebp
test esi, esi
mov bl, bl
mov ebx, dword [esp + 0x44]
cmp ebp, ebx
jae 0x100515fc
mov ebx, ebp
mov dword [esp + 0x5c], ebp
test esi, esi
jmp 0x10051602
mov dword [esp + 0x5c], ebx
test edi, edi
cmp ebx, 0x40
jl 0x10051612
mov ebx, 0x40
mov dword [esp + 0x5c], ebx
mov al, al
lea edi, [ebx*4]
push edi
call fcn.1011671b
add esp, 4
mov dword [esp + 0x28], eax
test esi, esi
test eax, eax
je 0x100511aa
lea esi, [ebx + ebx*8]
add esi, esi
add esi, esi
push esi
call fcn.1011671b
add esp, 4
mov dword [esp + 0x58], eax
test esi, esi
test eax, eax
jne 0x1005165e
mov ecx, dword [esp + 0x28]
push ecx
call fcn.101167de
add esp, 4
xchg ebx, eax
xchg ebx, eax
jmp 0x100511aa
mov edx, dword [esp + 0x28]
push edi
push 0
push edx
call fcn.10117df0
add esp, 0xc
test cl, cl
mov eax, dword [esp + 0x58]
push esi
push 0
push eax
call fcn.10117df0
add esp, 0xc
mov cl, cl
xor edi, edi
mov ch, ch
mov eax, ebp
xor edx, edx
div ebx
mov dword [esp + 0x74], eax
mov ebx, ebx
mov eax, dword [esp + 0x134]
xor edx, edx
div ebx
mov dword [esp + 0x68], eax
test bl, bl
test edx, edx
xor ebp, ebp
test ebx, ebx
jle 0x10051847
mov ecx, dword [esp + 0x64]
mov esi, dword [esp + 0x58]
mov dword [esp + 0x20], ecx
add esi, 0xc
mov edi, edi
mov esi, esi
mov edx, dword [esp + 0x74]
lea ebx, [edi + edx - 1]
test edi, edi
mov eax, dword [esp + 0x5c]
add eax, 0xffffffff
cmp ebp, eax
jne 0x100516e0
mov ebx, dword [esp + 0x70]
add ebx, 0xffffffff
test eax, eax
mov eax, dword [esp + 0x78]
mov ecx, ebx
sub ecx, edi
push eax
add ecx, 1
push ecx
lea edx, [esp + 0x1c]
push edx
mov ecx, edi
lea edx, [esp + 0x94]
call fcn.1004fb80
add esp, 0xc
mov byte [esp + 0x10c], 6
mov ah, ah
mov eax, dword [esp + 0x7c]
lea edi, [esi - 0xc]
mov dword [edi], eax
mov ebp, ebp
mov ecx, dword [esp + 0x11c]
mov dword [esi - 4], ecx
test ah, ah
mov edx, dword [esp + 0x120]
mov dword [esi], edx
mov ch, ch
mov eax, dword [esp + 0x124]
mov dword [esi + 4], eax
test cl, cl
mov ecx, dword [esp + 0x128]
mov dword [esi + 8], ecx
mov ch, ch
mov edx, dword [esp + 0x12c]
mov dword [esi + 0xc], edx
test dh, dh
mov eax, dword [esp + 0x20]
mov dword [esi + 0x10], eax
push eax
pop eax
mov ecx, dword [esp + 0x68]
mov dword [esi + 0x14], ecx
push ebx
pop ebx
mov edx, dword [esp + 0x98]
sub edx, dword [esp + 0x9c]
add edx, 1
push edx
call fcn.1011671b
add esp, 4
mov dword [esi - 8], eax
push ebx
pop ebx
mov eax, dword [esi - 8]
test eax, eax
je 0x10051822
mov edx, dword [esp + 0x9c]
mov cl, byte [edx]
mov byte [eax], cl
add edx, 1
add eax, 1
test cl, cl
jne 0x10051796
test eax, 0x32b0
call fcn.100408d0
mov dword [esp + 0x6c], eax
test eax, 0x6f9
mov dl, dl
push 0
push 0
push edi
push 0x1004de10
push 0
push 0
call fcn.1011944f
add esp, 0x18
mov ecx, ecx
mov edi, dword [esp + 0x28]
mov dword [edi + ebp*4], eax
test ch, ch
mov eax, dword [esp + 0x6c]
push eax
call fcn.10040990
add esp, 4
xchg ebx, eax
xchg ebx, eax
cmp dword [edi + ebp*4], 0
je 0x1005182b
lea edi, [ebx + 1]
test cl, cl
mov byte [esp + 0x10c], 1
lea ecx, [esp + 0x88]
call fcn.10006e00
mov ecx, dword [esp + 0x68]
add dword [esp + 0x20], ecx
add ebp, 1
add esi, 0x24
cmp ebp, dword [esp + 0x5c]
jl 0x100516c0
jmp 0x10051843
xor ebp, ebp
test eax, 0x46fc
jmp 0x1005182f
xor ebp, ebp
mov bl, bl
mov byte [esp + 0x10c], 1
lea ecx, [esp + 0x88]
call fcn.10006e00
mov ebx, dword [esp + 0x5c]
mov esi, dword [esp + 0x64]
xor edi, edi
push eax
pop eax
cmp ebp, ebx
jne 0x10051908
mov edx, dword [esp + 0x28]
push 0xffffffffffffffff
push 1
push edx
push ebx
call dword [sym.imp.KERNEL32.DLL_WaitForMultipleObjects]
test eax, 0x2f74
cmp eax, 0xffffffff
je 0x10051908
xor ebp, ebp
mov eax, eax
test ebx, ebx
jle 0x10051901
mov ecx, dword [esp + 0x58]
lea eax, [edi + edi*8]
mov edx, dword [ecx + eax*4 + 0x1c]
cmp byte [edx], 0
lea eax, [ecx + eax*4 + 0x1c]
je 0x100518f1
test edi, edi
jle 0x100518db
cmp byte [esi], 0
je 0x100518a9
mov byte [esi + ebp], 0x7c
mov ebp, ebp
add ebp, 1
mov ebx, ebx
mov edx, dword [eax]
mov eax, dword [esp + 0x64]
add eax, ebp
mov esi, eax
mov cl, byte [edx]
mov byte [esi], cl
add edx, 1
add esi, 1
test cl, cl
jne 0x100518b3
mov ebp, ebp
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x100518c6
sub eax, edx
add ebp, eax
test bh, bh
mov esi, dword [esp + 0x64]
jmp 0x100518fa
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x100518e0
sub eax, edx
mov ebp, eax
test cl, cl
jmp 0x100518fa
test edi, edi
jne 0x100518fa
mov byte [esi], 0
mov eax, eax
add edi, 1
cmp edi, ebx
jl 0x10051881
mov edi, 1
mov ecx, ecx
mov ebp, dword [esp + 0x28]
xor esi, esi
test ebx, ebx
jle 0x10051948
mov eax, dword [ebp + esi*4]
test eax, eax
je 0x10051941
push eax
call fcn.10067030
add esp, 4
test bl, bl
mov ecx, dword [ebp + esi*4]
push ecx
call fcn.100c65b0
add esp, 4
test eax, 0x1c52
mov dword [ebp + esi*4], 0
mov ecx, ecx
add esi, 1
cmp esi, ebx
jl 0x10051912
push ebp
call fcn.101167de
add esp, 4
mov bh, bh
test ebx, ebx
jle 0x10051979
mov esi, dword [esp + 0x58]
add esi, 4
mov edi, edi
mov eax, dword [esi]
test eax, eax
je 0x10051971
push eax
call fcn.101167de
add esp, 4
push edx
pop edx
add esi, 0x24
sub ebx, 1
jne 0x10051960
mov edx, dword [esp + 0x58]
push edx
call fcn.101167de
add esp, 4
push edx
pop edx
mov dword [esp + 0x10c], 0xffffffff
lea ecx, [esp + 0x14]
call fcn.10050bd0
mov eax, edi
jmp 0x100511c0
push 0x101823a8
call fcn.101055c0