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

Disassembly:
push 0xffffffffffffffff
push 0x101592f6
mov eax, dword fs:[0]
push eax
sub esp, 0xec
mov eax, dword [0x101ad3b4]
xor eax, esp
mov dword [esp + 0xe8], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x101ad3b4]
xor eax, esp
push eax
lea eax, [esp + 0x100]
mov dword fs:[0], eax
mov eax, dword [esp + 0x130]
mov esi, dword [esp + 0x118]
mov ebx, dword [esp + 0x114]
push 0x101615a8
mov edi, 1
push esi
mov dword [esp + 0x64], ebx
mov dword [esp + 0x30], eax
xor ebp, ebp
mov byte [eax], 0
mov dword [esp + 0x60], edi
call fcn.100f8c40
add esp, 8
test eax, eax
je 0x1003abd0
push 0x101618b0
push esi
call fcn.100f8c40
add esp, 8
test eax, eax
jne 0x1003abd0
xor edi, edi
mov dword [esp + 0x58], edi
mov dword [esp + 0x30], ebp
mov dword [esp + 0x34], ebp
mov dword [esp + 0x38], ebp
mov dword [esp + 0x108], 1
cmp edi, ebp
je 0x1003ae9d
mov eax, dword [esp + 0x110]
cmp dword [eax + 0x32c4], ebp
je 0x1003ac06
mov edi, ebx
mov dword [esp + 0x20], ebx
jmp 0x1003ac20
lea ecx, [esp + 0x20]
push ecx
push ebx
mov dword [esp + 0x28], ebp
call fcn.10051560
mov edi, dword [esp + 0x28]
add esp, 8
mov dword [esp + 0x20], edi
mov dl, 0x36
mov al, 0x78
mov byte [esp + 0x86], dl
mov byte [esp + 0x8c], dl
mov cl, 0x34
lea edx, [esp + 0x18]
push edx
mov byte [esp + 0x8c], al
mov byte [esp + 0x92], al
lea eax, [esp + 0x40]
mov byte [esp + 0x8b], cl
mov byte [esp + 0x91], cl
push eax
lea ecx, [esp + 0x8c]
push ecx
mov bl, 0x49
push esi
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x50], ebp
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], ebp
mov byte [esp + 0x94], 0x25
mov byte [esp + 0x95], bl
mov byte [esp + 0x99], 0x2d
mov byte [esp + 0x9a], 0x25
mov byte [esp + 0x9b], bl
mov byte [esp + 0x9f], 0
call fcn.100f86bd
push edi
call fcn.10054dd0
mov esi, dword [esp + 0x54]
add esp, 0x14
test al, al
je 0x1003ad04
cmp esi, 0x80000000
ja 0x1003b0f9
mov edx, dword [esp + 0x3c]
jb 0x1003acd3
cmp edx, ebp
jae 0x1003b0f9
mov eax, dword [esp + 0x1c]
cmp esi, eax
ja 0x1003b0f9
mov ecx, dword [esp + 0x18]
jb 0x1003aced
cmp edx, ecx
ja 0x1003b0f9
cmp eax, 0x80000000
jb 0x1003ad53
ja 0x1003acfa
cmp ecx, ebp
jb 0x1003ad53
or ecx, 0xffffffff
mov eax, SysReAllocString
jmp 0x1003ad4b
cmp esi, ebp
ja 0x1003b0f9
mov edx, dword [esp + 0x3c]
jb 0x1003ad1e
cmp edx, 0x80000000
jae 0x1003b0f9
mov eax, dword [esp + 0x1c]
cmp esi, eax
ja 0x1003b0f9
mov ecx, dword [esp + 0x18]
jb 0x1003ad38
cmp edx, ecx
ja 0x1003b0f9
cmp eax, ebp
ja 0x1003ad44
cmp ecx, 0x80000000
jb 0x1003ad53
mov ecx, SysReAllocString
xor eax, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], ecx
cmp esi, eax
mov ebp, edx
ja 0x1003b070
jb 0x1003ad67
cmp edx, ecx
jae 0x1003b070
mov ebx, dword [esp + 0x20]
jmp 0x1003ad70
push 0
lea edx, [esp + 0x54]
push edx
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x60]
push ecx
lea edx, [esp + 0x54]
push edx
lea eax, [esp + 0x34]
push eax
push esi
push ebp
push ebx
call fcn.100559d0
add esp, 0x24
test eax, eax
je 0x1003b070
push 0x3f
lea ecx, [esp + 0xc1]
push 0
push ecx
mov byte [esp + 0xc8], 0
call fcn.100f6b80
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x28]
add esp, 0xc
add ecx, dword [esp + 0x44]
adc eax, dword [esp + 0x48]
add ecx, 0xffffffff
adc eax, 0xffffffff
cmp eax, edx
jb 0x1003ade6
mov edi, dword [esp + 0x18]
ja 0x1003ade2
cmp ecx, edi
jbe 0x1003ade6
mov ecx, edi
mov eax, edx
push eax
push ecx
push esi
push ebp
lea edx, [esp + 0x94]
push edx
lea eax, [esp + 0xd0]
push eax
call fcn.100f7960
add esp, 0x18
lea ecx, [esp + 0x17]
push ecx
lea edx, [esp + 0xc0]
push edx
lea ecx, [esp + 0xa4]
call fcn.10009b00
mov byte [esp + 0x108], 2
mov eax, dword [esp + 0x34]
cmp eax, dword [esp + 0x38]
lea ecx, [esp + 0x17]
lea edx, [esp + 0x9c]
je 0x1003ae4a
push ecx
push edx
push eax
call fcn.10038fd0
add esp, 0xc
add dword [esp + 0x34], 0x18
jmp 0x1003ae5a
push 1
push 1
push ecx
push edx
push eax
lea ecx, [esp + 0x44]
call fcn.1003aa80
mov byte [esp + 0x108], 1
lea ecx, [esp + 0x9c]
call fcn.10006310
mov ebp, dword [esp + 0x20]
add ebp, dword [esp + 0x44]
mov esi, dword [esp + 0x24]
adc esi, dword [esp + 0x48]
cmp esi, dword [esp + 0x1c]
jb 0x1003ad70
ja 0x1003b070
cmp ebp, dword [esp + 0x18]
jb 0x1003ad70
jmp 0x1003b070
mov edi, esi
jmp 0x1003aea3
xor ebp, ebp
xor eax, eax
push 0x101615a8
push edi
mov byte [esp + 0xa4], 0
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 dword [esp + 0xbd], eax
mov word [esp + 0xc1], ax
mov byte [esp + 0xc3], al
call fcn.100f8c40
mov ebx, eax
add esp, 8
cmp ebx, ebp
je 0x1003af17
sub eax, edi
push eax
lea ecx, [esp + 0xa0]
push edi
push ecx
call fcn.100f8cd0
add esp, 0xc
jmp 0x1003af2e
lea edx, [esp + 0x9c]
mov eax, edi
sub edx, edi
mov cl, byte [eax]
mov byte [eax + edx], cl
add eax, 1
test cl, cl
jne 0x1003af22
lea edx, [esp + 0x84]
mov eax, edx
lea edi, [ebx + 1]
mov dword [esp + 0x94], edx
mov dword [esp + 0x98], eax
mov byte [esp + 0x108], 3
lea eax, [esp + 0x9c]
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x1003af60
sub eax, edx
lea ebp, [esp + eax + 0x9c]
mov esi, ebp
lea ecx, [esp + 0x9c]
sub esi, ecx
lea eax, [esi + 1]
cmp eax, 0xffffffff
mov dword [esp + 0x20], eax
ja 0x1003b41f
test eax, eax
jbe 0x1003b41f
cmp eax, 0x10
jbe 0x1003afca
lea edx, [esp + 0x20]
push edx
push eax
lea ecx, [esp + 0xa0]
call fcn.10008fb0
mov dword [esp + 0x98], eax
mov ecx, dword [esp + 0x20]
lea edx, [eax + ecx]
mov dword [esp + 0x94], eax
mov dword [esp + 0x84], edx
jmp 0x1003afd1
mov eax, dword [esp + 0x98]
lea ecx, [esp + 0x9c]
cmp ebp, ecx
je 0x1003afeb
push esi
mov edx, ecx
push edx
push eax
call fcn.100f7fd0
add esp, 0xc
add eax, esi
mov dword [esp + 0x94], eax
mov byte [eax], 0
mov byte [esp + 0x108], 4
mov eax, dword [esp + 0x34]
cmp eax, dword [esp + 0x38]
je 0x1003b039
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], eax
mov byte [esp + 0x108], 5
test eax, eax
je 0x1003b02a
lea ecx, [esp + 0x84]
push ecx
mov ecx, eax
call fcn.10009b80
mov byte [esp + 0x108], 4
add dword [esp + 0x34], 0x18
jmp 0x1003b054
push 1
push 1
lea edx, [esp + 0x1f]
push edx
lea ecx, [esp + 0x90]
push ecx
push eax
lea ecx, [esp + 0x44]
call fcn.1003aa80
mov byte [esp + 0x108], 1
lea ecx, [esp + 0x84]
call fcn.10006310
test ebx, ebx
jne 0x1003aea1
lea edx, [esp + 0x60]
push edx
call dword [sym.imp.KERNEL32.DLL_GetSystemInfo]
mov ecx, dword [esp + 0x34]
sub ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x74]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov ebp, edx
shr ebp, 0x1f
add ebp, edx
cmp ebp, ebx
mov dword [esp + 0x4c], ebp
jae 0x1003b0a8
mov ebx, ebp
mov dword [esp + 0x2c], ebp
jmp 0x1003b0ac
mov dword [esp + 0x2c], ebx
cmp ebx, 0x40
jl 0x1003b0ba
mov ebx, 0x40
mov dword [esp + 0x2c], ebx
lea edi, [ebx*4]
push edi
call fcn.100f5b7c
add esp, 4
test eax, eax
mov dword [esp + 0x44], eax
je 0x1003b0f9
lea esi, [ebx + ebx*4]
add esi, esi
add esi, esi
add esi, esi
push esi
call fcn.100f5b7c
add esp, 4
test eax, eax
mov dword [esp + 0x3c], eax
jne 0x1003b137
mov eax, dword [esp + 0x44]
push eax
call fcn.100f5c3f
add esp, 4
mov dword [esp + 0x108], 0xffffffff
lea ecx, [esp + 0x30]
call fcn.1003a780
xor eax, eax
mov ecx, dword [esp + 0x100]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xe8]
xor ecx, esp
call fcn.100f611a
add esp, 0xf8
ret
mov ecx, dword [esp + 0x44]
push edi
push 0
push ecx
call fcn.100f6b80
mov edx, dword [esp + 0x48]
push esi
push 0
push edx
call fcn.100f6b80
xor edx, edx
mov eax, ebp
div ebx
xor edx, edx
add esp, 0x18
xor edi, edi
xor ebp, ebp
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x134]
div ebx
test ebx, ebx
mov dword [esp + 0x18], eax
jle 0x1003b2df
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x20], eax
add esi, 0xc
jmp 0x1003b190
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x54]
add eax, 0xffffffff
cmp ebp, eax
lea ebx, [edi + ecx - 1]
jne 0x1003b1aa
mov ebx, dword [esp + 0x4c]
add ebx, 0xffffffff
mov edx, dword [esp + 0x58]
mov eax, ebx
push edx
sub eax, edi
add eax, 1
push eax
lea ecx, [esp + 0x38]
push ecx
mov ecx, edi
lea edx, [esp + 0x90]
call fcn.10039850
mov byte [esp + 0x114], 6
mov edx, dword [esp + 0x11c]
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x128]
mov dword [esi - 0xc], edx
mov edx, dword [esp + 0x12c]
lea edi, [esi - 0xc]
mov dword [esi + 4], edx
mov edx, dword [esp + 0x138]
mov dword [esi + 0x10], edx
mov edx, dword [esp + 0xa0]
sub edx, dword [esp + 0xa4]
mov dword [esi - 8], eax
mov eax, dword [esp + 0x130]
mov dword [esi], ecx
mov ecx, dword [esp + 0x134]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x2c]
mov dword [esi + 0xc], ecx
mov ecx, dword [esp + 0x24]
add edx, 1
push edx
mov dword [esi + 0x14], eax
mov dword [esi + 0x18], ecx
call fcn.100f5b7c
add esp, 0x10
test eax, eax
mov dword [esi - 4], eax
je 0x1003b2c5
mov edx, dword [esp + 0x98]
lea ecx, [ecx]
mov cl, byte [edx]
mov byte [eax], cl
add edx, 1
add eax, 1
test cl, cl
jne 0x1003b250
call fcn.1002c030
push 0
push 0
push edi
push 0x10036f70
push 0
push 0
mov dword [esp + 0x68], eax
call fcn.100f85a7
mov edi, dword [esp + 0x5c]
mov dword [edi + ebp*4], eax
mov eax, dword [esp + 0x68]
push eax
call fcn.1002c0d0
add esp, 0x1c
cmp dword [edi + ebp*4], 0
je 0x1003b2c5
lea edi, [ebx + 1]
mov byte [esp + 0x108], 1
lea ecx, [esp + 0x84]
call fcn.10006310
mov ecx, dword [esp + 0x18]
add dword [esp + 0x20], ecx
add ebp, 1
add esi, 0x28
cmp ebp, dword [esp + 0x2c]
jl 0x1003b190
jmp 0x1003b2db
xor ebp, ebp
mov byte [esp + 0x108], 1
lea ecx, [esp + 0x84]
call fcn.10006310
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
xor edi, edi
cmp ebp, ebx
jne 0x1003b396
mov edx, dword [esp + 0x44]
push 0xffffffffffffffff
push 1
push edx
push ebx
call dword [sym.imp.KERNEL32.DLL_WaitForMultipleObjects]
cmp eax, 0xffffffff
je 0x1003b396
xor ebp, ebp
test ebx, ebx
jle 0x1003b391
mov ecx, dword [esp + 0x3c]
lea eax, [edi + edi*4]
mov edx, dword [ecx + eax*8 + 0x20]
cmp byte [edx], 0
lea eax, [ecx + eax*8 + 0x20]
je 0x1003b37f
test edi, edi
jle 0x1003b364
cmp byte [esi], 0
je 0x1003b334
mov byte [esi + ebp], 0x7c
add ebp, 1
mov edx, dword [eax]
mov eax, dword [esp + 0x28]
add eax, ebp
mov esi, eax
mov edi, edi
mov cl, byte [edx]
mov byte [esi], cl
add edx, 1
add esi, 1
test cl, cl
jne 0x1003b340
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x1003b351
mov esi, dword [esp + 0x28]
sub eax, edx
add ebp, eax
jmp 0x1003b386
mov eax, esi
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x1003b370
sub eax, edx
mov ebp, eax
jmp 0x1003b386
test edi, edi
jne 0x1003b386
mov byte [esi], 0
add edi, 1
cmp edi, ebx
jl 0x1003b310
mov edi, 1
mov ebp, dword [esp + 0x44]
xor esi, esi
test ebx, ebx
jle 0x1003b3ca
mov eax, dword [ebp + esi*4]
test eax, eax
je 0x1003b3c3
push eax
call fcn.1004f110
mov ecx, dword [ebp + esi*4]
push ecx
call fcn.100a8d20
add esp, 8
mov dword [ebp + esi*4], 0
add esi, 1
cmp esi, ebx
jl 0x1003b3a0
push ebp
call fcn.100f5c3f
add esp, 4
test ebx, ebx
jle 0x1003b3f7
mov esi, dword [esp + 0x3c]
add esi, 8
mov edi, edi
mov eax, dword [esi]
test eax, eax
je 0x1003b3ef
push eax
call fcn.100f5c3f
add esp, 4
add esi, 0x28
sub ebx, 1
jne 0x1003b3e0
mov edx, dword [esp + 0x3c]
push edx
call fcn.100f5c3f
add esp, 4
mov dword [esp + 0x108], 0xffffffff
lea ecx, [esp + 0x30]
call fcn.1003a780
mov eax, edi
jmp 0x1003b10f
push 0x10161590
call fcn.100e4a20