Function at 0x446544
Capabilities:
Get system information on windows
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x6c
mov eax, dword [0x4c93b0]
push ebx
push esi
xor ebx, ebx
cmp eax, ebx
push edi
mov esi, 0x200
ja 0x446589
push 9
pop ecx
xor eax, eax
lea edi, [ebp - 0x6c]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x6c]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, dword [ebp - 0x68]
cmp eax, esi
jb 0x446580
dec eax
mov dword [0x4c93b0], eax
jmp 0x446585
mov eax, dword [0x4c93b0]
cmp eax, ebx
je 0x44658e
mov dword [ebp - 0x10], eax
jmp 0x446595
mov dword [ebp - 0x10], 0xffff
cmp dword [ebp + 0x40], ebx
mov eax, esi
setl byte [ebp - 1]
cmp byte [ebp - 1], 0
mov dword [ebp - 8], eax
je 0x4465aa
neg dword [ebp + 0x40]
cmp dword [ebp + 0x34], ebx
je 0x4465b5
mov eax, dword [ebp + 0x34]
mov dword [ebp - 8], eax
cmp dword [ebp + 0x38], ebx
mov esi, dword [ebp + 0x10]
mov edi, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x2c]
mov ebx, dword [ebp + 0x24]
je 0x4465ef
or ecx, dword [ebp + 0x30]
je 0x4465d6
mov edi, dword [ebp + 0x28]
mov esi, ebx
add esi, dword [ebp + 0x2c]
adc edi, dword [ebp + 0x30]
cmp eax, 1
jle 0x446645
cdq
push edx
push eax
push dword [ebp + 0x28]
mov dword [ebp - 0x28], eax
push ebx
mov dword [ebp - 0x24], edx
call fcn.0049cbd0
jmp 0x44661a
or ecx, dword [ebp + 0x30]
je 0x4465ff
mov edi, dword [ebp + 0x28]
mov esi, ebx
add esi, dword [ebp + 0x2c]
adc edi, dword [ebp + 0x30]
cmp eax, 1
jle 0x446645
cdq
push edx
push eax
push dword [ebp + 0x28]
mov dword [ebp - 0x28], eax
push ebx
mov dword [ebp - 0x24], edx
call fcn.0049cbd0
mov dword [ebp + 0x38], eax
cdq
push dword [ebp - 0x24]
sub ebx, eax
sbb dword [ebp + 0x28], edx
mov eax, dword [ebp + 0x38]
push dword [ebp - 0x28]
cdq
add ebx, eax
adc dword [ebp + 0x28], edx
push dword [ebp + 0x28]
push ebx
call fcn.0049cbd0
mov dword [ebp + 0x38], eax
cdq
sub ebx, eax
sbb dword [ebp + 0x28], edx
mov dword [ebp + 0x24], ebx
jmp 0x446649
and dword [ebp + 0x38], 0
cmp edi, dword [ebp + 0x14]
jl 0x44665b
jg 0x446655
cmp esi, dword [ebp + 0x10]
jbe 0x44665b
mov esi, dword [ebp + 0x10]
mov edi, dword [ebp + 0x14]
mov eax, dword [ebp - 0x10]
not eax
cdq
mov dword [ebp - 0x48], eax
and eax, ebx
mov dword [ebp - 0x38], eax
mov eax, edx
and eax, dword [ebp + 0x28]
mov dword [ebp - 0x44], edx
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x10]
cdq
add eax, esi
mov ecx, edx
adc ecx, edi
and eax, dword [ebp - 0x48]
and ecx, dword [ebp - 0x44]
mov dword [ebp - 0x18], eax
cmp ecx, dword [ebp + 0x14]
jl 0x44669c
jg 0x446693
cmp eax, dword [ebp + 0x10]
jbe 0x44669c
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x14]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp + 0x38]
cdq
mov dword [ebp - 0x40], eax
add eax, ebx
mov dword [ebp + 0x10], eax
mov eax, edx
adc eax, dword [ebp + 0x28]
mov dword [ebp - 0x3c], edx
mov dword [ebp + 0x14], eax
mov eax, dword [ebp + 0x1c]
cdq
mov ebx, eax
mov eax, esi
sub eax, ebx
mov ebx, edi
sbb ebx, edx
sub eax, dword [ebp + 0x10]
sbb ebx, dword [ebp + 0x14]
and dword [ebp - 0x30], 0
and dword [ebp - 0x2c], 0
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 0x3c]
test eax, eax
jne 0x4466fa
push dword [ebp - 0x34]
mov eax, dword [ebp - 0x18]
push dword [ebp - 0x38]
sub eax, dword [ebp - 0x38]
push 2
sbb ecx, dword [ebp - 0x34]
push ecx
push eax
push dword [ebp + 0xc]
lea ecx, [ebp - 0x30]
call fcn.00439c09
mov eax, dword [ebp - 0x2c]
or dword [ebp - 0x48], 0xffffffff
or dword [ebp - 0x44], 0xffffffff
test eax, eax
je 0x4467ff
mov esi, dword [ebp + 0x10]
sub esi, dword [ebp - 0x38]
and dword [ebp + 0x24], 0
add esi, eax
xor edi, edi
cmp byte [ebp - 1], 0
je 0x446752
cmp dword [ebp - 8], 1
mov eax, dword [ebp - 0x20]
mov edx, ebx
jle 0x446748
mov eax, dword [ebp - 8]
cdq
push edx
mov edi, eax
push edi
push ebx
push dword [ebp - 0x20]
mov dword [ebp - 0x24], edx
call fcn.0049a840
push dword [ebp - 0x24]
push edi
push edx
push eax
call fcn.0049a8f0
add esi, eax
neg dword [ebp - 8]
mov dword [ebp + 0x24], eax
mov edi, edx
cmp edi, ebx
jg 0x446a6c
jge 0x4467c9
test edi, edi
jl 0x446a6c
jg 0x446770
cmp dword [ebp + 0x24], 0
jb 0x446a6c
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push esi
call fcn.0044006c
add esp, 0xc
test eax, eax
je 0x4467b3
cmp dword [ebp + 8], 0
je 0x4467e7
mov eax, dword [ebp + 0x24]
add eax, dword [ebp + 0x10]
mov ecx, edi
adc ecx, dword [ebp + 0x14]
push ecx
push eax
push dword [ebp + 8]
call fcn.00446233
xor eax, eax
add esp, 0xc
cmp dword [ebp + 0x40], eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], eax
jle 0x4467b3
dec dword [ebp + 0x40]
je 0x4467d6
mov eax, dword [ebp - 8]
cdq
add dword [ebp + 0x24], eax
adc edi, edx
add esi, dword [ebp - 8]
cmp edi, ebx
jl 0x44675c
jg 0x446a6c
mov eax, dword [ebp + 0x24]
cmp eax, dword [ebp - 0x20]
jbe 0x44675c
jmp 0x446a6c
lea ecx, [ebp - 0x30]
call fcn.0040e8bf
xor eax, eax
xor edx, edx
jmp 0x446a7a
lea ecx, [ebp - 0x30]
call fcn.0040e8bf
mov eax, dword [ebp + 0x24]
add eax, dword [ebp + 0x10]
mov edx, edi
adc edx, dword [ebp + 0x14]
jmp 0x446a7a
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x38]
lea ebx, [eax + ecx]
mov eax, ebx
cdq
mov ecx, esi
sub ecx, eax
mov eax, edi
sbb eax, edx
cmp byte [ebp - 1], 0
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x34], eax
je 0x44682f
mov esi, 0x80070057
or edi, 0xffffffff
jmp 0x446a8b
push 0
push dword [ebp + 0x28]
push dword [ebp + 0x24]
push dword [ebp + 0xc]
call fcn.0043ae64
add esp, 0x10
cmp dword [ebp + 0x24], eax
jne 0x44684c
cmp dword [ebp + 0x28], edx
je 0x446856
or edi, 0xffffffff
mov esi, edi
jmp 0x446a8b
sub esi, dword [ebp + 0x24]
sbb edi, dword [ebp + 0x28]
mov ecx, esi
mov esi, ebx
shl esi, 2
mov eax, esi
cdq
cmp edx, edi
jl 0x446872
jg 0x446870
cmp eax, ecx
jbe 0x446872
mov esi, ecx
mov edi, dword [ebp - 0x1c]
mov ebx, 0xfffffe00
add edi, 0x1ff
lea ecx, [esi + 0x1ff]
and ecx, ebx
mov eax, 0x200000
and edi, ebx
cmp ecx, eax
mov dword [ebp - 0xc], ecx
jge 0x446899
mov dword [ebp - 0xc], eax
and dword [ebp + 0x14], 0
mov eax, dword [ebp - 0xc]
add eax, 0x100000
push eax
lea ecx, [ebp + 0x14]
call fcn.0043fc68
test eax, eax
mov dword [ebp - 0x10], eax
je 0x4468c4
add eax, 0x100000
and eax, 0xfff00000
mov dword [ebp - 0x10], eax
jne 0x4468e4
mov eax, dword [ebp - 0xc]
cmp eax, esi
jl 0x446a64
cdq
sub eax, edx
sar eax, 1
add eax, 0x1ff
and eax, ebx
cmp dword [ebp - 0x10], 0
mov dword [ebp - 0xc], eax
je 0x44689d
cmp dword [ebp - 0xc], edi
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x24], eax
jl 0x446a64
and dword [ebp + 0x3c], 0
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, dword [ebp - 0x34]
cmp dword [ebp + 0x28], eax
mov dword [ebp - 0x14], 0x3e8
jg 0x446a64
jl 0x446920
mov eax, dword [ebp - 0x38]
cmp dword [ebp + 0x24], eax
ja 0x446a64
mov ecx, dword [ebp - 0x38]
sub ecx, dword [ebp + 0x24]
mov esi, dword [ebp - 0x34]
sbb esi, dword [ebp + 0x28]
mov edi, dword [ebp - 0xc]
add ecx, 0x1ff
adc esi, 0
sub edi, dword [ebp + 0x3c]
and ecx, ebx
mov eax, edi
cdq
cmp esi, edx
jl 0x44694e
jg 0x44694a
cmp ecx, eax
jbe 0x44694e
mov ecx, eax
mov esi, edx
test esi, esi
jl 0x446a64
jg 0x446960
test ecx, ecx
jbe 0x446a64
mov esi, dword [ebp + 0x3c]
and dword [ebp + 0x34], 0
push 0
lea eax, [ebp + 0x34]
push eax
mov eax, dword [ebp - 0x10]
push ecx
add eax, esi
push eax
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x446987
cmp dword [ebp + 0x34], 0
jg 0x446998
dec dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0
jle 0x446a64
and dword [ebp + 0x34], 0
cmp dword [ebp + 0x34], edi
jle 0x4469a0
mov dword [ebp + 0x34], edi
add dword [ebp + 0x34], esi
mov eax, dword [ebp + 0x34]
cmp eax, dword [ebp - 0x1c]
mov dword [ebp + 0x3c], eax
jl 0x446a4a
mov eax, dword [ebp + 0x38]
mov ecx, dword [ebp - 0x24]
lea edi, [ecx + eax]
mov eax, dword [ebp + 0x3c]
sub eax, dword [ebp - 0x1c]
and dword [ebp - 0x10], 0
add eax, dword [ebp - 8]
cdq
idiv dword [ebp - 8]
mov esi, eax
test esi, esi
jle 0x446a28
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push edi
call fcn.0044006c
add esp, 0xc
test eax, eax
je 0x446a13
cmp dword [ebp + 8], 0
je 0x446a99
mov eax, dword [ebp - 0x40]
add eax, dword [ebp + 0x24]
mov ecx, dword [ebp - 0x3c]
adc ecx, dword [ebp + 0x28]
push ecx
push eax
push dword [ebp + 8]
call fcn.00446233
add esp, 0xc
cmp dword [ebp + 0x40], 0
jle 0x446a13
dec dword [ebp + 0x40]
je 0x446a7f
mov eax, dword [ebp - 8]
inc dword [ebp - 0x10]
cdq
add dword [ebp + 0x24], eax
adc dword [ebp + 0x28], edx
add edi, dword [ebp - 8]
cmp dword [ebp - 0x10], esi
jl 0x4469d2
imul esi, dword [ebp - 8]
sub dword [ebp + 0x3c], esi
cmp dword [ebp + 0x3c], 0
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x10], eax
jle 0x446a4a
push dword [ebp + 0x3c]
add esi, eax
push esi
push eax
call fcn.004131b9
add esp, 0xc
mov eax, dword [ebp + 0x28]
cmp eax, dword [ebp - 0x34]
jl 0x446920
jg 0x446a64
mov eax, dword [ebp + 0x24]
cmp eax, dword [ebp - 0x38]
jbe 0x446920
lea ecx, [ebp + 0x14]
call fcn.00439cfd
lea ecx, [ebp - 0x30]
call fcn.0040e8bf
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x44]
pop edi
pop esi
pop ebx
leave
ret
lea ecx, [ebp + 0x14]
call fcn.00439cfd
xor esi, esi
xor edi, edi
lea ecx, [ebp - 0x30]
call fcn.0040e8bf
mov eax, esi
mov edx, edi
jmp 0x446a7a
lea ecx, [ebp + 0x14]
call fcn.00439cfd
lea ecx, [ebp - 0x30]
call fcn.0040e8bf
mov eax, dword [ebp - 0x40]
add eax, dword [ebp + 0x24]
mov edx, dword [ebp - 0x3c]
adc edx, dword [ebp + 0x28]
jmp 0x446a7a