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

Disassembly:
push 0xffffffffffffffff
push 0x1015e726
mov eax, dword fs:[0]
push eax
sub esp, 0x244
mov eax, dword [0x101b03d4]
xor eax, esp
mov dword [esp + 0x240], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x101b03d4]
xor eax, esp
push eax
lea eax, [esp + 0x258]
mov dword fs:[0], eax
mov eax, dword [esp + 0x26c]
mov edi, dword [esp + 0x268]
mov ebp, dword [esp + 0x284]
mov esi, dword [esp + 0x280]
lea ecx, [esp + 0x77]
push ecx
push 0x10165918
lea ecx, [esp + 0xb4]
mov dword [esp + 0xa0], edi
mov dword [esp + 0x88], eax
mov dword [esp + 0xac], ebp
mov dword [esp + 0x54], 0
call fcn.100091f0
mov ebx, 1
mov dword [esp + 0x260], ebx
mov bh, bh
fld qword [0x101654e8]
fld qword [esp + 0x288]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jnp 0x100780c3
fld1
fcompp
fnstsw ax
test ah, 5
jnp 0x100780c5
cmp dword [esp + 0x290], 3
ja 0x100780b2
push 0x14
call fcn.100e9ad0
add esp, 4
mov dword [esp + 0xa0], eax
mov byte [esp + 0x260], 2
test eax, eax
je 0x100776f0
mov ecx, eax
call fcn.100ece68
mov ebx, eax
mov dword [esp + 0x84], eax
jmp 0x100776f9
xor ebx, ebx
mov dword [esp + 0x84], ebx
mov byte [esp + 0x260], 1
mov ebx, ebx
test ebx, ebx
jne 0x10077723
lea edx, [esp + 0xac]
push edx
mov ecx, edi
call fcn.10009270
mov dword [esp + 0x4c], 1
jmp 0x100780d8
push 0
push ebx
push 0x101654d8
push esi
call fcn.10048800
add esp, 0x10
mov dword [esp + 0x88], eax
mov bl, bl
test eax, eax
jne 0x1007776a
mov eax, dword [ebx]
mov edx, dword [eax + 4]
push 1
mov ecx, ebx
call edx
push eax
pop eax
lea eax, [esp + 0xac]
push eax
mov ecx, edi
call fcn.10009270
mov dword [esp + 0x4c], 1
jmp 0x100780d8
xchg ebx, eax
xchg ebx, eax
mov bh, bh
mov dword [esp + 0x14], 0
mov eax, eax
mov bl, bl
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x1c]
push eax
mov eax, dword [esp + 0x288]
lea ecx, [esp + 0x24]
push ecx
mov ecx, dword [esp + 0x288]
lea edx, [esp + 0x34]
push edx
mov edx, dword [esp + 0x288]
push eax
mov eax, dword [esp + 0x288]
push ecx
mov ecx, dword [esp + 0x9c]
push edx
push eax
push ecx
call fcn.100418c0
add esp, 0x28
test eax, eax
jne 0x100777f0
mov edx, dword [ebx]
mov eax, dword [edx + 4]
push 1
mov ecx, ebx
call eax
mov al, al
lea ecx, [esp + 0xac]
push ecx
mov ecx, edi
call fcn.10009270
mov dword [esp + 0x4c], 1
jmp 0x100780d8
xor ebx, ebx
mov dword [esp + 0x94], ebx
xchg ebx, eax
xchg ebx, eax
mov ebp, ebp
mov eax, ebp
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x10077802
sub eax, edx
cmp eax, 2
jne 0x100778b9
mov ebx, 1
mov dword [esp + 0x94], ebx
mov ebx, ebx
lea edx, [esp + 0x234]
mov eax, ebp
sub edx, ebp
nop
mov cl, byte [eax]
mov byte [eax + edx], cl
add eax, 1
test cl, cl
jne 0x10077830
mov ebp, ebp
mov eax, ebp
mov edx, ebp
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x10077842
lea edi, [esp + 0x234]
sub eax, edx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, ebx
test cl, cl
jne 0x10077857
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 ah, ah
mov eax, ebp
mov ecx, ebp
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10077876
lea edi, [esp + 0x234]
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
lea ecx, [ecx]
mov cl, byte [edi + 1]
add edi, ebx
test cl, cl
jne 0x10077890
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 ah, ah
lea ebp, [esp + 0x234]
mov dword [esp + 0xa4], ebp
mov ebp, ebp
mov ecx, ecx
test ebx, ebx
mov edi, dword [esp + 0x2c]
jne 0x1007790d
xor edx, edx
test edi, edi
jle 0x10077979
mov ecx, dword [esp + 0x28]
xor eax, eax
test ecx, ecx
jle 0x10077904
jmp 0x100778e0
mov ecx, edx
imul ecx, dword [esp + 0x18]
add ecx, dword [esp + 0x14]
lea ecx, [ecx + eax*4]
nop
mov byte [ecx + 3], 0
push ecx
pop ecx
mov ecx, dword [esp + 0x28]
add eax, 1
cmp eax, ecx
jl 0x100778e0
mov edi, dword [esp + 0x2c]
add edx, 1
cmp edx, edi
jl 0x100778d1
jmp 0x10077979
xor ebx, ebx
test edi, edi
jle 0x10077979
mov eax, dword [esp + 0x28]
xor esi, esi
test eax, eax
jle 0x10077972
lea ecx, [ecx]
mov edx, ebx
imul edx, dword [esp + 0x18]
add edx, dword [esp + 0x14]
lea ecx, [edx + esi*4]
mov ecx, ecx
movzx eax, byte [ecx + 2]
mov esi, esi
movzx edx, byte [ecx + 1]
push eax
pop eax
movzx edi, byte [ecx]
mov cl, cl
add edi, edx
add edi, eax
mov eax, 0xaaaaaaab
mul edi
shr edx, 1
mov bl, bl
movzx eax, dl
mov edx, eax
shl edx, 8
or edx, eax
shl edx, 8
or edx, eax
mov dword [ecx], edx
mov dh, dh
mov eax, dword [esp + 0x28]
add esi, 1
cmp esi, eax
jl 0x10077920
mov edi, dword [esp + 0x2c]
add ebx, 1
cmp ebx, edi
jl 0x10077917
imul edi, dword [esp + 0x18]
push edi
call fcn.100fab8c
mov ebx, eax
add esp, 4
mov dword [esp + 0x9c], ebx
mov ch, ch
test ebx, ebx
jne 0x100779f3
mov ecx, dword [esp + 0x84]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push 1
call edx
mov dl, dl
mov eax, dword [esp + 0x14]
push eax
call fcn.100fac4f
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.10009270
mov dword [esp + 0x4c], 1
mov byte [esp + 0x260], bl
lea ecx, [esp + 0xac]
call fcn.100068e0
mov eax, esi
jmp 0x100780ee
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
push edx
push eax
push ebx
call fcn.100fd070
add esp, 0xc
mov ebp, ebp
mov esi, esi
xchg ebx, eax
xchg ebx, eax
mov ebp, ebp
mov esi, dword [esp + 0x88]
mov eax, dword [esp + 0x80]
cmp esi, dword [eax + 0x326c]
jl 0x10077ef5
cmp dword [eax + 0x3268], 0
je 0x10077ef5
mov edx, edx
lea ecx, [esp + 0x50]
push ecx
call dword [sym.imp.KERNEL32.DLL_GetSystemInfo]
mov edx, edx
mov edx, edx
mov dh, dh
mov edi, dword [esp + 0x64]
cmp esi, edi
jae 0x10077a5f
mov edi, esi
mov dword [esp + 0x78], esi
mov dh, dh
jmp 0x10077a65
mov dword [esp + 0x78], edi
mov bl, bl
mov edx, dword [esp + 0x80]
mov eax, dword [edx + 0x3270]
test eax, eax
jle 0x10077a82
cmp edi, eax
jle 0x10077a82
mov edi, eax
mov dword [esp + 0x78], edi
push edx
pop edx
cmp edi, 0x40
jl 0x10077a92
mov edi, 0x40
mov dword [esp + 0x78], edi
mov dl, dl
push eax
pop eax
lea ebx, [edi*4]
push ebx
call fcn.100fab8c
mov ebp, eax
add esp, 4
mov dword [esp + 0x8c], ebp
push ecx
pop ecx
test ebp, ebp
je 0x10077e84
mov esi, edi
imul esi, esi, 0x170
push esi
call fcn.100fab8c
add esp, 4
mov dword [esp + 0x7c], eax
xchg ebx, eax
xchg ebx, eax
test eax, eax
je 0x10077e39
push ebx
xor ebx, ebx
push ebx
push ebp
call fcn.100fbc20
add esp, 0xc
push ebx
pop ebx
mov eax, dword [esp + 0x7c]
push esi
push ebx
push eax
call fcn.100fbc20
add esp, 0xc
mov dh, dh
xor ecx, ecx
mov bh, bh
mov eax, dword [esp + 0x88]
cdq
idiv edi
mov dword [esp + 0xa0], eax
push edx
pop edx
mov bh, bh
mov edx, dword [esp + 0x80]
mov dword [edx + 0x3264], ebx
mov dl, dl
cmp ebx, edi
jge 0x10077d35
mov bh, bh
mov eax, dword [esp + 0xa0]
lea edx, [eax + ecx - 1]
mov dword [esp + 0x90], edx
mov edx, edx
mov eax, dword [esp + 0x78]
add eax, 0xffffffff
cmp ebx, eax
jne 0x10077b5a
mov eax, dword [esp + 0x88]
add eax, 0xffffffff
mov dword [esp + 0x90], eax
mov ecx, ecx
mov cl, cl
mov eax, dword [esp + 0x7c]
mov edx, ebx
imul edx, edx, 0x170
lea ebp, [edx + eax]
mov edx, dword [esp + 0x80]
mov dword [ebp], edx
nop
mov eax, dword [esp + 0x84]
mov dword [ebp + 4], eax
mov cl, cl
mov dword [ebp + 8], ecx
mov ch, ch
mov ecx, dword [esp + 0x90]
mov dword [ebp + 0xc], ecx
mov ecx, ecx
mov dword [ebp + 0x14], 1
mov dl, dl
mov dword [ebp + 0x16c], 0
mov al, al
mov edx, dword [esp + 0x294]
mov dword [ebp + 0x10], edx
push ecx
pop ecx
mov eax, dword [esp + 0x94]
mov dword [ebp + 0x18], eax
push ecx
pop ecx
lea edi, [ebp + 0x1c]
mov ecx, 0xa
lea esi, [esp + 0x24]
rep movsd dword es:[edi], dword [esi]
xchg ebx, eax
xchg ebx, eax
mov ecx, dword [esp + 0x18]
mov dword [ebp + 0x44], ecx
mov al, al
mov edx, dword [esp + 0x20]
mov dword [ebp + 0x48], edx
mov bh, bh
mov eax, dword [esp + 0x1c]
mov dword [ebp + 0x4c], eax
xchg ebx, eax
xchg ebx, eax
mov ecx, dword [esp + 0x2c]
imul ecx, dword [esp + 0x18]
push ecx
call fcn.100fab8c
add esp, 4
mov dword [ebp + 0x50], eax
push ecx
pop ecx
mov eax, dword [ebp + 0x50]
test eax, eax
je 0x10077d28
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push edx
push ecx
push eax
call fcn.100fd070
add esp, 0xc
push edx
pop edx
mov edx, dword [esp + 0x9c]
mov dword [ebp + 0x54], edx
mov al, al
mov eax, dword [esp + 0x290]
mov dword [ebp + 0x58], eax
mov edi, edi
mov eax, dword [esp + 0xa4]
mov ecx, ebp
sub ecx, eax
lea edx, [ecx + 0x5c]
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [eax + edx], cl
add eax, 1
test cl, cl
jne 0x10077c50
mov ecx, ecx
fld qword [esp + 0x288]
fstp qword [ebp + 0x160]
mov ch, ch
push 0x18
call fcn.100e9ad0
add esp, 4
mov dword [esp + 0xa8], eax
mov byte [esp + 0x260], 4
test eax, eax
je 0x10077c9d
or dword [esp + 0x4c], 4
lea edx, [esp + 0x77]
push edx
mov ecx, eax
call fcn.100093f0
jmp 0x10077c9f
xor eax, eax
mov byte [esp + 0x260], 1
test byte [esp + 0x4c], 4
mov dword [ebp + 0x168], eax
je 0x10077cb9
and dword [esp + 0x4c], 0xfffffffb
push edx
pop edx
cmp dword [ebp + 0x168], 0
je 0x10077d24
call fcn.10029cc0
mov esi, eax
mov ch, ch
mov edx, edx
push 0
push 0
push ebp
push 0x10075ee0
push 0
push 0
call fcn.100fd647
add esp, 0x18
mov edx, edx
mov edi, dword [esp + 0x8c]
mov dword [edi + ebx*4], eax
mov al, al
push esi
call fcn.10029d80
add esp, 4
mov ch, ch
cmp dword [edi + ebx*4], 0
jne 0x10077d09
mov cl, cl
xor ebx, ebx
nop
mov ecx, dword [esp + 0x90]
add ecx, 1
mov ebp, ebp
add ebx, 1
cmp ebx, dword [esp + 0x78]
jl 0x10077b26
jmp 0x10077d28
xor ebx, ebx
push eax
pop eax
mov edi, dword [esp + 0x78]
mov ebp, dword [esp + 0x8c]
cmp ebx, edi
jne 0x10077db0
push 0xffffffffffffffff
push 1
push ebp
push edi
call dword [sym.imp.KERNEL32.DLL_WaitForMultipleObjects]
mov edx, edx
cmp eax, 0xffffffff
je 0x10077db0
test edi, edi
jle 0x10077db0
mov esi, dword [esp + 0x7c]
add esi, 0x168
mov ebx, edi
mov edi, edi
mov ecx, dword [esi]
mov eax, dword [ecx + 0x10]
sub eax, dword [ecx + 0x14]
je 0x10077da5
mov eax, dword [esp + 0xbc]
sub eax, dword [esp + 0xc0]
je 0x10077d8d
push 0x101654d8
lea ecx, [esp + 0xb0]
call fcn.10009450
mov bh, bh
mov eax, dword [esi]
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
push ecx
push eax
lea ecx, [esp + 0xb4]
call fcn.100092e0
mov bh, bh
add esi, 0x170
sub ebx, 1
jne 0x10077d60
xor eax, eax
test edi, edi
jle 0x10077ddc
mov ecx, dword [esp + 0x7c]
add ecx, 0x16c
cmp dword [ebp + eax*4], 0
je 0x10077dcf
mov dword [ecx], 1
mov edx, edx
add eax, 1
add ecx, 0x170
cmp eax, edi
jl 0x10077dc0
xor esi, esi
test edi, edi
jle 0x10077e39
mov ebx, dword [esp + 0x7c]
add ebx, 0x50
mov eax, dword [ebp + esi*4]
test eax, eax
je 0x10077e2c
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.DLL_WaitForSingleObject]
mov edi, edi
mov edx, edx
mov ecx, dword [ebp + esi*4]
push ecx
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
mov ebx, ebx
mov dword [ebp + esi*4], 0
mov bl, bl
mov eax, dword [ebx]
test eax, eax
je 0x10077e2c
push eax
call fcn.100fac4f
add esp, 4
mov dword [ebx], 0
mov bh, bh
add esi, 1
add ebx, 0x170
cmp esi, edi
jl 0x10077de9
push ebp
call fcn.100fac4f
add esp, 4
mov al, al
mov ebp, dword [esp + 0x7c]
test ebp, ebp
je 0x10077e84
test edi, edi
jle 0x10077e79
lea esi, [ebp + 0x168]
mov ebx, dword [esi]
test ebx, ebx
je 0x10077e6e
mov ecx, ebx
call fcn.100068e0
push ebx
call fcn.100e9b00
add esp, 4
mov ecx, ecx
add esi, 0x170
sub edi, 1
jne 0x10077e56
push ebp
call fcn.100fac4f
add esp, 4
xchg ebx, eax
xchg ebx, eax
mov edx, dword [esp + 0x9c]
push edx
call fcn.100fac4f
add esp, 4
mov dl, dl
mov eax, dword [esp + 0x14]
push eax
call fcn.100fac4f
add esp, 4
mov dword [esp + 0x14], 0
push edx
pop edx
mov ecx, dword [esp + 0x84]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push 1
call eax
mov ebx, ebx
mov esi, dword [esp + 0x98]
lea ecx, [esp + 0xac]
push ecx
mov ecx, esi
call fcn.10009270
or dword [esp + 0x4c], 1
mov byte [esp + 0x260], 0
lea ecx, [esp + 0xac]
call fcn.100068e0
mov eax, esi
jmp 0x100780ee
push edx
pop edx
push 0x170
xor esi, esi
lea edx, [esp + 0xc8]
push esi
push edx
call fcn.100fbc20
add esp, 0xc
mov ebp, ebp
mov eax, dword [esp + 0x80]
mov dword [esp + 0xc4], eax
mov ebp, ebp
mov ecx, dword [esp + 0x84]
mov dword [esp + 0xc8], ecx
mov ebx, ebx
mov dword [esp + 0xcc], esi
mov edx, edx
mov edx, dword [esp + 0x88]
add edx, 0xffffffff
mov dword [esp + 0xd0], edx
mov ah, ah
mov dword [esp + 0xd8], 1
mov dh, dh
mov dword [esp + 0x230], esi
mov al, al
mov eax, dword [esp + 0x294]
mov dword [esp + 0xd4], eax
mov ebx, ebx
mov ecx, dword [esp + 0x94]
mov dword [esp + 0xdc], ecx
push eax
pop eax
mov ecx, 0xa
lea esi, [esp + 0x24]
lea edi, [esp + 0xe0]
rep movsd dword es:[edi], dword [esi]
mov bh, bh
mov edx, dword [esp + 0x18]
mov dword [esp + 0x108], edx
mov edi, edi
mov eax, dword [esp + 0x20]
mov dword [esp + 0x10c], eax
mov ebx, ebx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x110], ecx
mov ebx, ebx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x114], edx
mov dh, dh
mov dword [esp + 0x118], ebx
mov dl, dl
mov eax, dword [esp + 0x290]
mov dword [esp + 0x11c], eax
mov esi, esi
lea ecx, [esp + 0x120]
mov eax, ebp
sub ecx, ebp
nop
mov dl, byte [eax]
mov byte [ecx + eax], dl
add eax, 1
test dl, dl
jne 0x10077ff0
mov ecx, ecx
fld qword [esp + 0x288]
fstp qword [esp + 0x224]
mov bh, bh
push 0x18
call fcn.100e9ad0
add esp, 4
mov dword [esp + 0xa8], eax
mov byte [esp + 0x260], 3
test eax, eax
je 0x10078046
mov edx, 2
lea ecx, [esp + 0x77]
push ecx
mov dword [esp + 0x50], edx
mov ecx, eax
mov dword [esp + 0x50], edx
call fcn.100093f0
jmp 0x10078048
xor eax, eax
mov byte [esp + 0x260], 1
test byte [esp + 0x4c], 2
mov dword [esp + 0x22c], eax
je 0x10078063
and dword [esp + 0x4c], 0xfffffffd
xchg ebx, eax
xchg ebx, eax
lea ecx, [esp + 0xc4]
call fcn.10072670
mov esi, esi
mov ecx, dword [esp + 0x22c]
mov eax, dword [ecx + 0x10]
sub eax, dword [ecx + 0x14]
je 0x10078098
push ecx
lea ecx, [esp + 0xb0]
call fcn.1001ca70
xchg ebx, eax
xchg ebx, eax
mov ecx, dword [esp + 0x22c]
test ecx, ecx
mov esi, ecx
je 0x100780ac
call fcn.100068e0
push esi
call fcn.100e9b00
add esp, 4
nop
jmp 0x10077e84
lea edx, [esp + 0xac]
push edx
mov ecx, edi
call fcn.10009270
jmp 0x100780d4
fstp st(0)
lea eax, [esp + 0xac]
push eax
mov ecx, edi
call fcn.10009270
mov dword [esp + 0x4c], ebx
mov byte [esp + 0x260], 0
lea ecx, [esp + 0xac]
call fcn.100068e0
mov eax, edi
mov ecx, dword [esp + 0x258]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x240]
xor ecx, esp
call fcn.100fb12a
add esp, 0x250
ret