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

Disassembly:
push 0xffffffffffffffff
push 0x10173276
mov eax, dword fs:[0]
push eax
sub esp, 0x244
mov eax, dword [0x101c52b4]
xor eax, esp
mov dword [esp + 0x240], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x101c52b4]
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]
xor ebx, ebx
mov dword [esp + 0x74], ebx
push ebx
push 0x10178a34
lea ecx, [esp + 0xb0]
mov dword [esp + 0xa4], edi
mov dword [esp + 0x80], eax
mov dword [esp + 0xa0], ebp
mov dword [esp + 0xc8], 0xf
mov dword [esp + 0xc4], ebx
mov byte [esp + 0xb4], bl
call fcn.1000a180
mov dword [esp + 0x260], 1
mov al, al
fld qword [0x10179960]
fld qword [esp + 0x288]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jnp 0x100803af
fld1
fcompp
fnstsw ax
test ah, 5
jnp 0x100803b1
cmp dword [esp + 0x290], 3
ja 0x1008036a
push 0x14
call fcn.100fce7d
add esp, 4
mov dword [esp + 0x94], eax
mov byte [esp + 0x260], 2
cmp eax, ebx
je 0x1007fa32
mov ecx, eax
call fcn.10100215
mov ebx, eax
mov dword [esp + 0x80], eax
jmp 0x1007fa3b
xor ebx, ebx
mov dword [esp + 0x80], ebx
mov byte [esp + 0x260], 1
mov ah, ah
test ebx, ebx
je 0x1007fa74
push 0
push ebx
push 0x10179578
push esi
call fcn.1004f530
add esp, 0x10
mov dword [esp + 0x84], eax
mov cl, cl
test eax, eax
jne 0x1007faa4
mov edx, dword [ebx]
mov eax, dword [edx + 4]
push 1
mov ecx, ebx
call eax
mov bl, bl
lea ecx, [esp + 0xa8]
push ecx
mov ecx, edi
call fcn.1000a250
mov dword [esp + 0x74], 1
mov byte [esp + 0x260], 0
lea ecx, [esp + 0xa8]
call fcn.100066f0
jmp 0x10080412
push eax
pop eax
mov ebx, ebx
mov dword [esp + 0x14], 0
mov dl, dl
mov eax, eax
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0x288]
lea edx, [esp + 0x24]
push edx
mov edx, dword [esp + 0x288]
lea eax, [esp + 0x34]
push eax
mov eax, dword [esp + 0x288]
push ecx
mov ecx, dword [esp + 0x288]
push edx
mov edx, dword [esp + 0x94]
push eax
push ecx
push edx
call fcn.10048c70
add esp, 0x28
test eax, eax
jne 0x1007fb1b
mov eax, dword [ebx]
mov edx, dword [eax + 4]
push 1
mov ecx, ebx
call edx
push eax
pop eax
lea eax, [esp + 0xa8]
push eax
jmp 0x1007fa7c
xor ebx, ebx
mov dword [esp + 0x90], ebx
push ecx
pop ecx
mov bl, bl
mov eax, ebp
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x1007fb30
sub eax, edx
cmp eax, 2
jne 0x1007fbe9
mov ebx, 1
mov dword [esp + 0x90], ebx
mov ch, ch
lea edx, [esp + 0x234]
mov eax, ebp
sub edx, ebp
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, 1
test cl, cl
jne 0x1007fb60
mov bh, bh
mov eax, ebp
mov edx, ebp
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x1007fb72
lea edi, [esp + 0x234]
sub eax, edx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, ebx
test cl, cl
jne 0x1007fb87
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]
push ecx
pop ecx
mov eax, ebp
mov ecx, ebp
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x1007fba6
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 0x1007fbc0
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 eax, eax
lea ebp, [esp + 0x234]
mov dword [esp + 0x98], ebp
xchg ebx, eax
xchg ebx, eax
mov ebp, ebp
test ebx, ebx
mov edi, dword [esp + 0x2c]
jne 0x1007fc3e
xor edx, edx
test edi, edi
jle 0x1007fca8
mov ecx, dword [esp + 0x28]
xor eax, eax
test ecx, ecx
jle 0x1007fc35
jmp 0x1007fc10
mov ecx, edx
imul ecx, dword [esp + 0x18]
add ecx, dword [esp + 0x14]
lea ecx, [ecx + eax*4]
mov dh, dh
mov byte [ecx + 3], 0
push ebx
pop ebx
mov ecx, dword [esp + 0x28]
add eax, 1
cmp eax, ecx
jl 0x1007fc10
mov edi, dword [esp + 0x2c]
add edx, 1
cmp edx, edi
jl 0x1007fc01
jmp 0x1007fca8
xor ebx, ebx
test edi, edi
jle 0x1007fca8
mov eax, dword [esp + 0x28]
xor esi, esi
test eax, eax
jle 0x1007fca1
mov edi, edi
mov edx, ebx
imul edx, dword [esp + 0x18]
add edx, dword [esp + 0x14]
lea ecx, [edx + esi*4]
mov esi, esi
movzx eax, byte [ecx + 2]
mov dh, dh
movzx edx, byte [ecx + 1]
nop
movzx edi, byte [ecx]
mov ch, ch
add edi, edx
add edi, eax
mov eax, 0xaaaaaaab
mul edi
shr edx, 1
mov eax, eax
movzx eax, dl
mov edx, eax
shl edx, 8
or edx, eax
shl edx, 8
or edx, eax
mov dword [ecx], edx
mov esi, esi
mov eax, dword [esp + 0x28]
add esi, 1
cmp esi, eax
jl 0x1007fc50
mov edi, dword [esp + 0x2c]
add ebx, 1
cmp ebx, edi
jl 0x1007fc48
imul edi, dword [esp + 0x18]
push edi
call fcn.1010df39
mov ebx, eax
add esp, 4
mov dword [esp + 0xa0], ebx
mov ebx, ebx
test ebx, ebx
jne 0x1007fd23
mov ecx, dword [esp + 0x80]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push 1
call edx
mov edx, edx
mov eax, dword [esp + 0x14]
push eax
call fcn.1010dffc
add esp, 4
mov dword [esp + 0x14], ebx
mov bh, bh
mov esi, dword [esp + 0x9c]
lea ecx, [esp + 0xa8]
push ecx
mov ecx, esi
call fcn.1000a250
mov dword [esp + 0x74], 1
mov byte [esp + 0x260], 0
lea ecx, [esp + 0xa8]
call fcn.100066f0
mov eax, esi
jmp 0x10080414
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
push edx
push eax
push ebx
call fcn.101102f0
add esp, 0xc
mov bh, bh
push eax
pop eax
xchg ebx, eax
xchg ebx, eax
push ebx
pop ebx
mov esi, dword [esp + 0x84]
mov eax, dword [esp + 0x78]
cmp esi, dword [eax + 0x3264]
jl 0x100801cb
cmp dword [eax + 0x3260], 0
je 0x100801cb
mov cl, cl
lea ecx, [esp + 0x4c]
push ecx
call dword [sym.imp.KERNEL32.DLL_GetSystemInfo]
xchg ebx, eax
xchg ebx, eax
mov edx, edx
push ecx
pop ecx
mov edi, dword [esp + 0x60]
cmp esi, edi
jae 0x1007fd8c
mov edi, esi
mov dword [esp + 0x70], esi
push eax
pop eax
jmp 0x1007fd92
mov dword [esp + 0x70], edi
push eax
pop eax
mov edx, dword [esp + 0x78]
mov eax, dword [edx + 0x3268]
test eax, eax
jle 0x1007fdac
cmp edi, eax
jle 0x1007fdac
mov edi, eax
mov dword [esp + 0x70], edi
mov dh, dh
cmp edi, 0x40
jl 0x1007fdbc
mov edi, 0x40
mov dword [esp + 0x70], edi
mov esi, esi
push ecx
pop ecx
lea ebx, [edi*4]
push ebx
call fcn.1010df39
mov ebp, eax
add esp, 4
mov dword [esp + 0x88], ebp
mov eax, eax
test ebp, ebp
je 0x1008018b
mov esi, edi
imul esi, esi, 0x170
push esi
call fcn.1010df39
add esp, 4
mov dword [esp + 0x7c], eax
mov dh, dh
test eax, eax
je 0x10080149
push ebx
xor ebx, ebx
push ebx
push ebp
call fcn.1010efd0
add esp, 0xc
mov ch, ch
mov eax, dword [esp + 0x7c]
push esi
push ebx
push eax
call fcn.1010efd0
add esp, 0xc
mov edx, edx
xor ecx, ecx
mov ebx, ebx
mov eax, dword [esp + 0x84]
cdq
idiv edi
mov dword [esp + 0x94], eax
mov edx, edx
mov bl, bl
mov edx, dword [esp + 0x78]
mov dword [edx + 0x325c], ebx
mov bh, bh
cmp ebx, edi
jge 0x10080050
lea ecx, [ecx]
mov esi, esi
mov eax, dword [esp + 0x94]
lea edx, [eax + ecx - 1]
mov dword [esp + 0x8c], edx
push ecx
pop ecx
mov eax, dword [esp + 0x70]
add eax, 0xffffffff
cmp ebx, eax
jne 0x1007fe84
mov eax, dword [esp + 0x84]
add eax, 0xffffffff
mov dword [esp + 0x8c], eax
mov ebx, ebx
mov ecx, ecx
mov eax, dword [esp + 0x7c]
mov edx, ebx
imul edx, edx, 0x170
lea ebp, [edx + eax]
mov edx, dword [esp + 0x78]
mov dword [ebp], edx
mov bh, bh
mov eax, dword [esp + 0x80]
mov dword [ebp + 4], eax
mov esi, esi
mov dword [ebp + 8], ecx
mov bh, bh
mov ecx, dword [esp + 0x8c]
mov dword [ebp + 0xc], ecx
mov ecx, ecx
mov dword [ebp + 0x14], 1
push eax
pop eax
mov dword [ebp + 0x16c], 0
mov dh, dh
mov edx, dword [esp + 0x294]
mov dword [ebp + 0x10], edx
mov edi, edi
mov eax, dword [esp + 0x90]
mov dword [ebp + 0x18], eax
mov edi, edi
lea edi, [ebp + 0x1c]
mov ecx, 0xa
lea esi, [esp + 0x24]
rep movsd dword es:[edi], dword [esi]
push eax
pop eax
mov ecx, dword [esp + 0x18]
mov dword [ebp + 0x44], ecx
xchg ebx, eax
xchg ebx, eax
mov edx, dword [esp + 0x1c]
mov dword [ebp + 0x48], edx
mov edi, edi
mov eax, dword [esp + 0x20]
mov dword [ebp + 0x4c], eax
mov eax, eax
mov ecx, dword [esp + 0x2c]
imul ecx, dword [esp + 0x18]
push ecx
call fcn.1010df39
add esp, 4
mov dword [ebp + 0x50], eax
push eax
pop eax
mov eax, dword [ebp + 0x50]
test eax, eax
je 0x10080043
mov edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push edx
push ecx
push eax
call fcn.101102f0
add esp, 0xc
mov ebx, ebx
mov edx, dword [esp + 0xa0]
mov dword [ebp + 0x54], edx
xchg ebx, eax
xchg ebx, eax
mov eax, dword [esp + 0x290]
mov dword [ebp + 0x58], eax
mov esi, esi
mov eax, dword [esp + 0x98]
mov ecx, ebp
sub ecx, eax
lea edx, [ecx + 0x5c]
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, 1
test cl, cl
jne 0x1007ff75
push eax
pop eax
fld qword [esp + 0x288]
fstp qword [ebp + 0x160]
mov eax, eax
push 0x1c
call fcn.100fce7d
add esp, 4
mov dword [esp + 0xa4], eax
mov byte [esp + 0x260], 4
test eax, eax
je 0x1007ffc3
mov dword [eax + 0x18], 0xf
mov dword [eax + 0x14], 0
mov byte [eax + 4], 0
jmp 0x1007ffc5
xor eax, eax
mov byte [esp + 0x260], 1
mov dword [ebp + 0x168], eax
push eax
pop eax
cmp dword [ebp + 0x168], 0
je 0x1008003f
call fcn.1002fd50
mov esi, eax
push ecx
pop ecx
mov ecx, ecx
push 0
push 0
push ebp
push 0x1007e270
push 0
push 0
call fcn.1011074f
add esp, 0x18
mov cl, cl
mov edi, dword [esp + 0x88]
mov dword [edi + ebx*4], eax
mov cl, cl
push esi
call fcn.1002fe10
add esp, 4
mov ah, ah
cmp dword [edi + ebx*4], 0
jne 0x10080024
mov ch, ch
xor ebx, ebx
mov edx, edx
mov ecx, dword [esp + 0x8c]
add ecx, 1
mov ah, ah
add ebx, 1
cmp ebx, dword [esp + 0x70]
jl 0x1007fe50
jmp 0x10080043
xor ebx, ebx
mov ebx, ebx
mov edi, dword [esp + 0x70]
mov ebp, dword [esp + 0x88]
cmp ebx, edi
jne 0x100800ba
push 0xffffffffffffffff
push 1
push ebp
push edi
call dword [sym.imp.KERNEL32.DLL_WaitForMultipleObjects]
mov dl, dl
cmp eax, 0xffffffff
je 0x100800ba
test edi, edi
jle 0x100800ba
mov esi, dword [esp + 0x7c]
add esi, 0x168
mov ebx, edi
mov edx, dword [esi]
cmp dword [edx + 0x14], 0
jbe 0x100800af
cmp dword [esp + 0xbc], 0
jbe 0x1008009a
push 0x10179578
lea ecx, [esp + 0xac]
call fcn.1000a480
mov ebp, ebp
mov eax, dword [esi]
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0xb4]
call fcn.10009dc0
xchg ebx, eax
xchg ebx, eax
add esi, 0x170
sub ebx, 1
jne 0x10080075
xor eax, eax
test edi, edi
jle 0x100800ec
mov ecx, dword [esp + 0x7c]
add ecx, 0x16c
lea ebx, [ebx]
cmp dword [ebp + eax*4], 0
je 0x100800df
mov dword [ecx], 1
push edx
pop edx
add eax, 1
add ecx, 0x170
cmp eax, edi
jl 0x100800d0
xor esi, esi
test edi, edi
jle 0x10080149
mov ebx, dword [esp + 0x7c]
add ebx, 0x50
mov eax, dword [ebp + esi*4]
test eax, eax
je 0x1008013c
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.DLL_WaitForSingleObject]
xchg ebx, eax
xchg ebx, eax
mov dh, dh
mov eax, dword [ebp + esi*4]
push eax
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
mov eax, eax
mov dword [ebp + esi*4], 0
mov ebx, ebx
mov eax, dword [ebx]
test eax, eax
je 0x1008013c
push eax
call fcn.1010dffc
add esp, 4
mov dword [ebx], 0
push edx
pop edx
add esi, 1
add ebx, 0x170
cmp esi, edi
jl 0x100800f9
push ebp
call fcn.1010dffc
add esp, 4
mov bh, bh
mov ebx, dword [esp + 0x7c]
test ebx, ebx
je 0x1008018b
test edi, edi
jle 0x10080180
lea esi, [ebx + 0x168]
mov ecx, dword [esi]
test ecx, ecx
je 0x10080175
push 1
call fcn.1003e5c0
mov ch, ch
add esi, 0x170
sub edi, 1
jne 0x10080166
push ebx
call fcn.1010dffc
add esp, 4
mov ah, ah
mov eax, dword [esp + 0xa0]
push eax
call fcn.1010dffc
add esp, 4
push ebx
pop ebx
mov ecx, dword [esp + 0x14]
push ecx
call fcn.1010dffc
add esp, 4
mov dword [esp + 0x14], 0
mov edx, edx
mov ecx, dword [esp + 0x80]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push 1
call eax
mov cl, cl
jmp 0x1007fcea
mov cl, cl
push 0x170
xor esi, esi
lea ecx, [esp + 0xc8]
push esi
push ecx
call fcn.1010efd0
add esp, 0xc
push eax
pop eax
mov edx, dword [esp + 0x78]
mov dword [esp + 0xc4], edx
push eax
pop eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0xc8], eax
xchg ebx, eax
xchg ebx, eax
mov dword [esp + 0xcc], esi
xchg ebx, eax
xchg ebx, eax
mov ecx, dword [esp + 0x84]
add ecx, 0xffffffff
mov dword [esp + 0xd0], ecx
mov bh, bh
mov dword [esp + 0xd8], 1
push ebx
pop ebx
mov dword [esp + 0x230], esi
xchg ebx, eax
xchg ebx, eax
mov edx, dword [esp + 0x294]
mov dword [esp + 0xd4], edx
mov bh, bh
mov eax, dword [esp + 0x90]
mov dword [esp + 0xdc], eax
mov ah, ah
mov ecx, 0xa
lea esi, [esp + 0x24]
lea edi, [esp + 0xe0]
rep movsd dword es:[edi], dword [esi]
nop
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x108], ecx
push edx
pop edx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x10c], edx
mov bh, bh
mov eax, dword [esp + 0x20]
mov dword [esp + 0x110], eax
mov ecx, ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x114], ecx
mov ecx, ecx
mov dword [esp + 0x118], ebx
push eax
pop eax
mov edx, dword [esp + 0x290]
mov dword [esp + 0x11c], edx
mov ebp, ebp
lea ecx, [esp + 0x120]
mov eax, ebp
sub ecx, ebp
mov dl, byte [eax]
mov byte [ecx + eax], dl
add eax, 1
test dl, dl
jne 0x100802c1
push ecx
pop ecx
fld qword [esp + 0x288]
fstp qword [esp + 0x224]
xchg ebx, eax
xchg ebx, eax
push 0x1c
call fcn.100fce7d
add esp, 4
mov dword [esp + 0xa4], eax
mov byte [esp + 0x260], 3
test eax, eax
je 0x10080310
mov dword [eax + 0x18], 0xf
mov dword [eax + 0x14], 0
mov byte [eax + 4], 0
jmp 0x10080312
xor eax, eax
mov byte [esp + 0x260], 1
mov dword [esp + 0x22c], eax
mov ah, ah
lea ecx, [esp + 0xc4]
call fcn.1007aa40
mov dh, dh
mov ecx, dword [esp + 0x22c]
cmp dword [ecx + 0x14], 0
jbe 0x10080358
push 0xffffffffffffffff
push 0
push ecx
lea ecx, [esp + 0xb4]
call fcn.10009f70
mov edx, edx
mov ecx, dword [esp + 0x22c]
test ecx, ecx
je 0x10080363
push 1
call fcn.1003e5c0
push ebx
pop ebx
jmp 0x1008018b
push 0xffffffffffffffff
push ebx
lea edx, [esp + 0xb0]
mov esi, 0xf
mov dword [edi + 0x18], esi
mov dword [edi + 0x14], ebx
push edx
mov ecx, edi
mov byte [edi + 4], 0
call fcn.10009f70
mov dword [esp + 0x74], 1
mov byte [esp + 0x260], 0
cmp dword [esp + 0xc0], 0x10
jb 0x100803fc
mov eax, dword [esp + 0xac]
push eax
jmp 0x100803f4
fstp st(0)
push 0xffffffffffffffff
push ebx
lea ecx, [esp + 0xb0]
mov esi, 0xf
push ecx
mov dword [edi + 0x18], esi
mov dword [edi + 0x14], ebx
mov ecx, edi
mov byte [edi + 4], 0
call fcn.10009f70
mov dword [esp + 0x74], 1
mov byte [esp + 0x260], 0
cmp dword [esp + 0xc0], 0x10
jb 0x100803fc
mov edx, dword [esp + 0xac]
push edx
call fcn.100fcea8
add esp, 4
mov byte [esp + 0xac], 0
mov dword [esp + 0xbc], ebx
mov dword [esp + 0xc0], esi
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.1010e4d7
add esp, 0x250
ret