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

Disassembly:
push 0xffffffffffffffff
push 0x1015fac6
mov eax, dword fs:[0]
push eax
sub esp, 0x23c
mov eax, dword [0x101af0fc]
xor eax, esp
mov dword [esp + 0x238], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x101af0fc]
xor eax, esp
push eax
lea eax, [esp + 0x250]
mov dword fs:[0], eax
mov eax, dword [esp + 0x264]
mov ebx, dword [esp + 0x260]
mov ebp, dword [esp + 0x27c]
mov esi, dword [esp + 0x278]
lea ecx, [esp + 0x77]
push ecx
push 0x10164994
lea ecx, [esp + 0xb4]
mov dword [esp + 0xa0], ebx
mov dword [esp + 0x88], eax
mov dword [esp + 0xac], ebp
mov dword [esp + 0x54], 0
call fcn.100085d0
mov edi, 1
mov dword [esp + 0x258], edi
mov al, al
cmp dword [esp + 0x280], 0x64
ja 0x1008a547
push 0x14
call fcn.100f3540
add esp, 4
mov dword [esp + 0xa0], eax
mov byte [esp + 0x258], 2
test eax, eax
je 0x10089b85
mov ecx, eax
call fcn.100f68bf
mov edi, eax
mov dword [esp + 0x84], eax
jmp 0x10089b8e
xor edi, edi
mov dword [esp + 0x84], edi
mov byte [esp + 0x258], 1
test edx, edx
test edi, edi
jne 0x10089bb8
lea edx, [esp + 0xac]
push edx
mov ecx, ebx
call fcn.1000cef0
mov dword [esp + 0x4c], 1
jmp 0x1008a55a
push 0
push edi
push 0x10165378
push esi
call fcn.1005b9c0
add esp, 0x10
mov dword [esp + 0x88], eax
mov dl, dl
test eax, eax
jne 0x10089bff
mov eax, dword [edi]
mov edx, dword [eax + 4]
push 1
mov ecx, edi
call edx
mov ebx, ebx
lea eax, [esp + 0xac]
push eax
mov ecx, ebx
call fcn.1000cef0
mov dword [esp + 0x4c], 1
jmp 0x1008a55a
mov esi, esi
mov cl, cl
mov dword [esp + 0x14], 0
test esi, esi
mov edx, edx
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x1c]
push eax
mov eax, dword [esp + 0x280]
lea ecx, [esp + 0x24]
push ecx
mov ecx, dword [esp + 0x280]
lea edx, [esp + 0x34]
push edx
mov edx, dword [esp + 0x280]
push eax
mov eax, dword [esp + 0x280]
push ecx
mov ecx, dword [esp + 0x9c]
push edx
push eax
push ecx
call fcn.10054960
add esp, 0x28
test eax, eax
jne 0x10089c85
mov edx, dword [edi]
mov eax, dword [edx + 4]
push 1
mov ecx, edi
call eax
test ah, ah
lea ecx, [esp + 0xac]
push ecx
mov ecx, ebx
call fcn.1000cef0
mov dword [esp + 0x4c], 1
jmp 0x1008a55a
xor ebx, ebx
mov dword [esp + 0x94], ebx
mov edi, edi
test eax, 0x40ba
mov eax, ebp
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x10089ca0
sub eax, edx
cmp eax, 2
jne 0x10089d59
mov ebx, 1
mov dword [esp + 0x94], ebx
test esi, esi
lea edx, [esp + 0x22c]
mov eax, ebp
sub edx, ebp
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [eax + edx], cl
add eax, 1
test cl, cl
jne 0x10089cd0
test bl, bl
mov eax, ebp
mov edx, ebp
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x10089ce2
lea edi, [esp + 0x22c]
sub eax, edx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, ebx
test cl, cl
jne 0x10089cf7
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 dl, dl
mov eax, ebp
mov ecx, ebp
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10089d16
lea edi, [esp + 0x22c]
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
lea ecx, [ecx]
mov cl, byte [edi + 1]
add edi, ebx
test cl, cl
jne 0x10089d30
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]
test dh, dh
lea ebp, [esp + 0x22c]
mov dword [esp + 0xa4], ebp
mov ebp, ebp
mov edx, edx
test ebx, ebx
mov edi, dword [esp + 0x2c]
jne 0x10089dae
xor edx, edx
test edi, edi
jle 0x10089e1c
mov ecx, dword [esp + 0x28]
xor eax, eax
test ecx, ecx
jle 0x10089da5
jmp 0x10089d80
mov ecx, edx
imul ecx, dword [esp + 0x18]
add ecx, dword [esp + 0x14]
lea ecx, [ecx + eax*4]
mov ecx, ecx
mov byte [ecx + 3], 0
mov ecx, ecx
mov ecx, dword [esp + 0x28]
add eax, 1
cmp eax, ecx
jl 0x10089d80
mov edi, dword [esp + 0x2c]
add edx, 1
cmp edx, edi
jl 0x10089d71
jmp 0x10089e1c
xor ebx, ebx
test edi, edi
jle 0x10089e1c
mov eax, dword [esp + 0x28]
xor esi, esi
test eax, eax
jle 0x10089e15
mov edi, edi
mov edx, ebx
imul edx, dword [esp + 0x18]
add edx, dword [esp + 0x14]
lea ecx, [edx + esi*4]
mov ebx, ebx
movzx eax, byte [ecx + 2]
mov ecx, ecx
movzx edx, byte [ecx + 1]
mov dl, dl
movzx edi, byte [ecx]
test ah, ah
add edi, edx
add edi, eax
mov eax, 0xaaaaaaab
mul edi
shr edx, 1
test eax, 0x6461
movzx eax, dl
mov edx, eax
shl edx, 8
or edx, eax
shl edx, 8
or edx, eax
mov dword [ecx], edx
test esi, esi
mov eax, dword [esp + 0x28]
add esi, 1
cmp esi, eax
jl 0x10089dc0
mov edi, dword [esp + 0x2c]
add ebx, 1
cmp ebx, edi
jl 0x10089db8
imul edi, dword [esp + 0x18]
push edi
call fcn.1010136f
mov ebx, eax
add esp, 4
mov dword [esp + 0x9c], ebx
mov ch, ch
test ebx, ebx
jne 0x10089e96
mov ecx, dword [esp + 0x84]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push 1
call edx
push eax
pop eax
mov eax, dword [esp + 0x14]
push eax
call fcn.10101432
add esp, 4
mov dword [esp + 0x14], ebx
mov ah, ah
mov esi, dword [esp + 0x98]
lea ecx, [esp + 0xac]
push ecx
mov ecx, esi
call fcn.1000cef0
mov dword [esp + 0x4c], 1
mov byte [esp + 0x258], bl
lea ecx, [esp + 0xac]
call fcn.10006e20
mov eax, esi
jmp 0x1008a570
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
push edx
push eax
push ebx
call fcn.10102690
add esp, 0xc
xchg ebx, eax
xchg ebx, eax
xchg ebx, eax
xchg ebx, eax
push ecx
pop ecx
test eax, eax
mov esi, dword [esp + 0x88]
mov eax, dword [esp + 0x80]
cmp esi, dword [eax + 0x3264]
jl 0x1008a37f
cmp dword [eax + 0x3260], 0
je 0x1008a37f
mov esi, esi
lea ecx, [esp + 0x50]
push ecx
call dword [sym.imp.KERNEL32.DLL_GetSystemInfo]
test dh, dh
test ebx, ebx
test edx, edx
mov edi, dword [esp + 0x64]
cmp esi, edi
jae 0x10089f02
mov edi, esi
mov dword [esp + 0x78], esi
test edx, edx
jmp 0x10089f08
mov dword [esp + 0x78], edi
mov dh, dh
cmp edi, 0x40
jl 0x10089f18
mov edi, 0x40
mov dword [esp + 0x78], edi
mov edx, edx
mov ecx, ecx
lea ebx, [edi*4]
push ebx
call fcn.1010136f
mov ebp, eax
add esp, 4
mov dword [esp + 0x8c], ebp
test edx, edx
test ebp, ebp
je 0x1008a30e
mov esi, edi
imul esi, esi, 0x168
push esi
call fcn.1010136f
add esp, 4
mov dword [esp + 0x7c], eax
test eax, eax
test eax, eax
je 0x1008a2c3
push ebx
xor ebx, ebx
push ebx
push ebp
call fcn.10102a00
add esp, 0xc
mov al, al
mov edx, dword [esp + 0x7c]
push esi
push ebx
push edx
call fcn.10102a00
add esp, 0xc
test bh, bh
xor ecx, ecx
test dh, dh
mov eax, dword [esp + 0x88]
cdq
idiv edi
mov dword [esp + 0xa0], eax
xchg ebx, eax
xchg ebx, eax
mov ebx, ebx
mov eax, dword [esp + 0x80]
mov dword [eax + 0x325c], ebx
xchg ebx, eax
xchg ebx, eax
cmp ebx, edi
jge 0x1008a1c2
lea esp, [esp]
push ecx
pop ecx
mov edx, dword [esp + 0xa0]
lea eax, [ecx + edx - 1]
mov dword [esp + 0x90], eax
push eax
pop eax
mov eax, dword [esp + 0x78]
add eax, 0xffffffff
cmp ebx, eax
jne 0x10089fe4
mov edx, dword [esp + 0x88]
add edx, 0xffffffff
mov dword [esp + 0x90], edx
test ch, ch
test edx, edx
mov edx, dword [esp + 0x7c]
mov eax, ebx
imul eax, eax, 0x168
lea ebp, [eax + edx]
mov eax, dword [esp + 0x80]
mov dword [ebp], eax
test bh, bh
mov edx, dword [esp + 0x84]
mov dword [ebp + 4], edx
push ebx
pop ebx
mov dword [ebp + 8], ecx
test edx, edx
mov eax, dword [esp + 0x90]
mov dword [ebp + 0xc], eax
xchg ebx, eax
xchg ebx, eax
mov dword [ebp + 0x14], 1
test dl, dl
mov dword [ebp + 0x164], 0
push ecx
pop ecx
mov ecx, dword [esp + 0x288]
mov dword [ebp + 0x10], ecx
mov dl, dl
mov edx, dword [esp + 0x94]
mov dword [ebp + 0x18], edx
mov bh, bh
lea edi, [ebp + 0x1c]
mov ecx, 0xa
lea esi, [esp + 0x24]
rep movsd dword es:[edi], dword [esi]
test edi, edi
mov eax, dword [esp + 0x18]
mov dword [ebp + 0x44], eax
mov eax, eax
mov ecx, dword [esp + 0x20]
mov dword [ebp + 0x48], ecx
test ch, ch
mov edx, dword [esp + 0x1c]
mov dword [ebp + 0x4c], edx
test al, al
mov eax, dword [esp + 0x2c]
imul eax, dword [esp + 0x18]
push eax
call fcn.1010136f
add esp, 4
mov dword [ebp + 0x50], eax
mov ebp, ebp
mov eax, dword [ebp + 0x50]
test eax, eax
je 0x1008a1b5
mov ecx, dword [esp + 0x2c]
imul ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
push ecx
push edx
push eax
call fcn.10102690
add esp, 0xc
mov edi, edi
mov eax, dword [esp + 0x9c]
mov dword [ebp + 0x54], eax
test bl, bl
mov eax, dword [esp + 0xa4]
mov ecx, ebp
sub ecx, eax
lea edx, [ecx + 0x5c]
lea esp, [esp]
mov cl, byte [eax]
mov byte [eax + edx], cl
add eax, 1
test cl, cl
jne 0x1008a0d0
test bl, bl
mov edx, dword [esp + 0x280]
mov dword [ebp + 0x15c], edx
mov edi, edi
mov eax, dword [esp + 0x284]
mov dword [ebp + 0x58], eax
test dl, dl
push 0x18
call fcn.100f3540
add esp, 4
mov dword [esp + 0xa8], eax
mov byte [esp + 0x258], 4
test eax, eax
je 0x1008a129
or dword [esp + 0x4c], 4
lea ecx, [esp + 0x77]
push ecx
mov ecx, eax
call fcn.10011320
jmp 0x1008a12b
xor eax, eax
mov byte [esp + 0x258], 1
test byte [esp + 0x4c], 4
mov dword [ebp + 0x160], eax
je 0x1008a145
and dword [esp + 0x4c], 0xfffffffb
mov ebx, ebx
cmp dword [ebp + 0x160], 0
je 0x1008a1b1
call fcn.1003c870
mov esi, eax
mov edx, edx
mov dh, dh
push 0
push 0
push ebp
push 0x100878a0
push 0
push 0
call fcn.1010405f
add esp, 0x18
mov dl, dl
mov edi, dword [esp + 0x8c]
mov dword [edi + ebx*4], eax
test dl, dl
push esi
call fcn.1003c940
add esp, 4
test ah, ah
cmp dword [edi + ebx*4], 0
jne 0x1008a196
mov cl, cl
xor ebx, ebx
mov al, al
mov ecx, dword [esp + 0x90]
add ecx, 1
test eax, eax
add ebx, 1
cmp ebx, dword [esp + 0x78]
jl 0x10089fb0
jmp 0x1008a1b5
xor ebx, ebx
mov ch, ch
mov edi, dword [esp + 0x78]
mov ebp, dword [esp + 0x8c]
cmp ebx, edi
jne 0x1008a237
push 0xffffffffffffffff
push 1
push ebp
push edi
call dword [sym.imp.KERNEL32.DLL_WaitForMultipleObjects]
mov ebx, ebx
cmp eax, 0xffffffff
je 0x1008a237
test edi, edi
jle 0x1008a237
mov esi, dword [esp + 0x7c]
add esi, 0x160
mov ebx, edi
mov ecx, dword [esi]
mov eax, dword [ecx + 0x10]
sub eax, dword [ecx + 0x14]
je 0x1008a22c
mov edx, dword [esp + 0xbc]
sub edx, dword [esp + 0xc0]
je 0x1008a214
push 0x10165378
lea ecx, [esp + 0xb0]
call fcn.100118f0
push ecx
pop ecx
mov eax, dword [esi]
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
push ecx
push eax
lea ecx, [esp + 0xb4]
call fcn.1000cf60
test ecx, ecx
add esi, 0x168
sub ebx, 1
jne 0x1008a1e7
xor eax, eax
test edi, edi
jle 0x1008a263
mov ecx, dword [esp + 0x7c]
add ecx, 0x164
cmp dword [ebp + eax*4], 0
je 0x1008a256
mov dword [ecx], 1
mov eax, eax
add eax, 1
add ecx, 0x168
cmp eax, edi
jl 0x1008a247
xor esi, esi
test edi, edi
jle 0x1008a2c3
mov ebx, dword [esp + 0x7c]
add ebx, 0x50
mov eax, dword [ebp + esi*4]
test eax, eax
je 0x1008a2b6
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.DLL_WaitForSingleObject]
mov esi, esi
mov dl, dl
mov eax, dword [ebp + esi*4]
push eax
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
test eax, 0x5e4e
mov dword [ebp + esi*4], 0
mov dh, dh
mov eax, dword [ebx]
test eax, eax
je 0x1008a2b6
push eax
call fcn.10101432
add esp, 4
mov dword [ebx], 0
mov dh, dh
add esi, 1
add ebx, 0x168
cmp esi, edi
jl 0x1008a270
push ebp
call fcn.10101432
add esp, 4
mov bh, bh
mov ebp, dword [esp + 0x7c]
test ebp, ebp
je 0x1008a30e
test edi, edi
jle 0x1008a303
lea esi, [ebp + 0x160]
mov ebx, dword [esi]
test ebx, ebx
je 0x1008a2f8
mov ecx, ebx
call fcn.10006e20
push ebx
call fcn.100f3570
add esp, 4
test ah, ah
add esi, 0x168
sub edi, 1
jne 0x1008a2e0
push ebp
call fcn.10101432
add esp, 4
test dh, dh
mov eax, dword [esp + 0x9c]
push eax
call fcn.10101432
add esp, 4
mov cl, cl
mov ecx, dword [esp + 0x14]
push ecx
call fcn.10101432
add esp, 4
mov dword [esp + 0x14], 0
mov bl, bl
mov ecx, dword [esp + 0x84]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push 1
call eax
mov dl, dl
mov esi, dword [esp + 0x98]
lea ecx, [esp + 0xac]
push ecx
mov ecx, esi
call fcn.1000cef0
or dword [esp + 0x4c], 1
mov byte [esp + 0x258], 0
lea ecx, [esp + 0xac]
call fcn.10006e20
mov eax, esi
jmp 0x1008a570
mov ebp, ebp
push 0x168
xor esi, esi
lea ecx, [esp + 0xc8]
push esi
push ecx
call fcn.10102a00
add esp, 0xc
test dh, dh
mov edx, dword [esp + 0x80]
mov dword [esp + 0xc4], edx
test al, al
mov eax, dword [esp + 0x84]
mov dword [esp + 0xc8], eax
test dl, dl
mov dword [esp + 0xcc], esi
test edx, edx
mov ecx, dword [esp + 0x88]
add ecx, 0xffffffff
mov dword [esp + 0xd0], ecx
test ch, ch
mov dword [esp + 0xd8], 1
test esi, esi
mov dword [esp + 0x228], esi
mov esi, esi
mov edx, dword [esp + 0x288]
mov dword [esp + 0xd4], edx
mov ch, ch
mov eax, dword [esp + 0x94]
mov dword [esp + 0xdc], eax
test bh, bh
mov ecx, 0xa
lea esi, [esp + 0x24]
lea edi, [esp + 0xe0]
rep movsd dword es:[edi], dword [esi]
push ebx
pop ebx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x108], ecx
test ah, ah
mov edx, dword [esp + 0x20]
mov dword [esp + 0x10c], edx
mov edx, edx
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x110], eax
mov al, al
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x114], ecx
push eax
pop eax
mov dword [esp + 0x118], ebx
test ebx, ebx
mov edx, dword [esp + 0x284]
mov dword [esp + 0x11c], edx
test edi, edi
lea edx, [esp + 0x120]
mov eax, ebp
sub edx, ebp
lea esp, [esp]
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, 1
test cl, cl
jne 0x1008a480
test ah, ah
mov eax, dword [esp + 0x280]
mov dword [esp + 0x220], eax
test eax, eax
push 0x18
call fcn.100f3540
add esp, 4
mov dword [esp + 0xa8], eax
mov byte [esp + 0x258], 3
test eax, eax
je 0x1008a4d6
mov ecx, 2
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x4c], ecx
lea ecx, [esp + 0x77]
push ecx
mov ecx, eax
call fcn.10011320
jmp 0x1008a4d8
xor eax, eax
mov byte [esp + 0x258], 1
test byte [esp + 0x4c], 2
mov dword [esp + 0x224], eax
je 0x1008a4f3
and dword [esp + 0x4c], 0xfffffffd
mov al, al
lea edx, [esp + 0xc4]
push edx
call fcn.10086820
add esp, 4
mov esi, esi
mov ecx, dword [esp + 0x224]
mov eax, dword [ecx + 0x10]
sub eax, dword [ecx + 0x14]
je 0x1008a52c
push ecx
lea ecx, [esp + 0xb0]
call fcn.1001f040
push edx
pop edx
mov ecx, dword [esp + 0x224]
test ecx, ecx
mov esi, ecx
je 0x1008a540
call fcn.10006e20
push esi
call fcn.100f3570
add esp, 4
test dh, dh
jmp 0x1008a30e
lea edx, [esp + 0xac]
push edx
mov ecx, ebx
call fcn.1000cef0
mov dword [esp + 0x4c], edi
mov byte [esp + 0x258], 0
lea ecx, [esp + 0xac]
call fcn.10006e20
mov eax, ebx
mov ecx, dword [esp + 0x250]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x238]
xor ecx, esp
call fcn.1010190d
add esp, 0x248
ret