Function at 0x41df5a
Capabilities:
Get memory capacity

Disassembly:
push ebp
lea ebp, [esp - 0x6c]
sub esp, 0x1b0
xor ecx, ecx
cmp dword [0x4a5ee8], ecx
jne 0x41df77
or eax, 0xffffffff
jmp 0x41f0b4
xor eax, eax
push ebx
mov ebx, dword [ebp + 0x74]
or dword [ebp + 0x48], 0xffffffff
push esi
push edi
mov dword [ebp + 0x30], ecx
mov esi, dword [ebp + 0x78]
lea edi, [ebp + 0x34]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
cmp ebx, 2
mov dword [ebp + 0x5c], ecx
lea edi, [ebp + 0x60]
stosd dword es:[edi], eax
mov byte [ebp + 0x5b], al
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax]
mov ax, word [eax]
mov dword [ebp + 0x64], ecx
mov dword [ebp + 0x68], ecx
mov dword [ebp + 0xc], ecx
mov dword [ebp + 0x20], ecx
mov dword [ebp + 0x28], ecx
mov dword [ebp + 8], ecx
mov dword [ebp + 0x24], ecx
mov dword [ebp + 0x4c], ecx
mov dword [ebp + 0x14], ecx
mov dword [ebp], ecx
mov dword [ebp + 0x54], ecx
mov dword [ebp - 4], ecx
mov word [ebp + 0x1c], ax
mov dword [ebp + 0x50], ecx
mov dword [ebp + 0x10], 0xfa0
jne 0x41e09e
push 0x492130
push dword [esi + 4]
call fcn.0047aa0c
test eax, eax
pop ecx
pop ecx
jne 0x41e0a7
mov eax, dword [0x4a5eec]
xor ecx, ecx
cmp eax, ecx
mov dword [ebp + 4], ecx
mov dword [ebp + 8], ecx
mov dword [ebp + 0x18], ecx
mov dword [ebp + 0x1c], ecx
je 0x41e018
lea ecx, [ebp + 0x18]
push ecx
lea ecx, [ebp + 4]
push ecx
call eax
lea ecx, [ebp + 0x20]
call fcn.00432cb7
push 0x3f
lea eax, [ebp + 0x20]
push eax
push 1
call fcn.0040f833
add esp, 0xc
cmp eax, 2
mov ecx, 0x492128
jne 0x41e041
mov ecx, str.NotLoad
jmp 0x41e04b
cmp eax, 0xffffffff
jne 0x41e04b
mov ecx, str.CannotControl
movzx eax, byte [ebp + 0x18]
push ecx
mov ecx, dword [ebp + 0x18]
push eax
mov eax, dword [ebp + 0x1c]
shrd ecx, eax, 8
shr eax, 8
movsx eax, cx
push eax
movzx eax, byte [ebp + 4]
push eax
mov eax, dword [ebp + 8]
mov dword [ebp + 0x28], ecx
mov ecx, dword [ebp + 4]
shrd ecx, eax, 8
shr eax, 8
movsx eax, cx
push eax
mov eax, dword [ebp + 0x7c]
push str._X._02X___X._X__s
push dword [eax]
mov dword [ebp + 0x28], ecx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x1c
lea ecx, [ebp + 0x20]
call fcn.0042dd2d
jmp case.0x41e41b.114
cmp ebx, 1
jle 0x41ed08
xor edi, edi
add esi, 4
push str.__id
push dword [esi]
dec ebx
call fcn.0047aa0c
test eax, eax
pop ecx
pop ecx
jne 0x41e0c8
or dword [ebp + 0x50], 2
jmp 0x41eb4d
push 0x4920b8
push dword [esi]
call fcn.0047aa0c
test eax, eax
pop ecx
pop ecx
jne 0x41e0e3
or dword [ebp + 0x50], 1
jmp 0x41eb4d
push str.__remove
push dword [esi]
call fcn.0047aa0c
test eax, eax
pop ecx
pop ecx
jne 0x41e0fe
or dword [ebp + 0x50], 4
jmp 0x41eb4d
push 0x49209c
push dword [esi]
call fcn.0047aa0c
test eax, eax
pop ecx
pop ecx
jne 0x41e11c
mov dword [ebp + 0x64], 5
jmp 0x41eb4d
push str.__hide
push dword [esi]
call fcn.0047aa0c
test eax, eax
pop ecx
pop ecx
jne 0x41e137
or dword [ebp + 0x50], 0x10
jmp 0x41eb4d
push dword [esi]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
cmp eax, 2
jne 0x41e153
mov eax, dword [esi]
xor ecx, ecx
cmp word [eax], 0x2d
sete cl
mov eax, ecx
jmp 0x41e155
xor eax, eax
cmp eax, edi
je case.0x41e41b.114
mov eax, dword [esi]
mov cx, word [eax + 2]
movzx eax, cx
cmp eax, 0x6d
jg 0x41e40f
je 0x41e3b6
cmp eax, 0x62
jg 0x41e300
je 0x41e20a
sub eax, 0x44
je 0x41e381
dec eax
dec eax
je 0x41e329
sub eax, 0xc
je 0x41e381
dec eax
je 0x41e1bf
sub eax, 0xe
jne case.0x41e41b.114
cmp dword [ebp + 0x64], edi
jne case.0x41e41b.114
mov dword [ebp + 0x64], 1
jmp 0x41eb4d
xor eax, eax
cmp dword [ebp + 0x44], edi
setne al
xor ecx, ecx
cmp dword [ebp + 0x64], 1
setne cl
or eax, ecx
xor ecx, ecx
cmp ebx, 2
setl cl
or eax, ecx
jne case.0x41e41b.114
add esi, 4
mov eax, dword [esi]
movzx eax, word [eax]
push eax
call fcn.0047b0f8
test eax, eax
pop ecx
je case.0x41e41b.114
push edi
push edi
push dword [esi]
call fcn.0047b0e1
mov dword [ebp + 0x44], eax
jmp 0x41eb49
mov eax, dword [ebp + 0x5c]
or eax, dword [ebp + 0x60]
je 0x41e217
xor eax, eax
inc eax
jmp 0x41e219
xor eax, eax
xor ecx, ecx
cmp dword [ebp], edi
setne cl
xor edx, edx
cmp dword [ebp + 0x64], 1
setne dl
or ecx, edx
xor edx, edx
cmp ebx, 2
setl dl
or ecx, edx
or ecx, eax
jne case.0x41e41b.114
add esi, 4
push 0x492080
push dword [esi]
call fcn.0047aa0c
pop ecx
xor edi, edi
test eax, eax
pop ecx
jne 0x41e261
mov dword [ebp], 1
jmp 0x41eb4c
lea eax, [ebp + 0x2c]
push eax
lea eax, [ebp + 0x5c]
push eax
push str._I64u_c
push dword [esi]
mov dword [ebp + 0x2c], edi
call fcn.0047aeb5
movzx eax, word [ebp + 0x2c]
add esp, 0x10
cmp eax, 0x62
jg 0x41eba1
je 0x41e2e8
sub eax, edi
je 0x41eb4c
sub eax, 0x47
je 0x41e2b8
sub eax, 4
je 0x41e2d9
dec eax
dec eax
je 0x41e2ca
sub eax, 7
jne 0x41ec10
mov eax, dword [ebp + 0x5c]
mov ecx, dword [ebp + 0x60]
shld ecx, eax, 0xa
shl eax, 0xa
jmp 0x41e2be
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp + 0x5c]
shld ecx, eax, 0xa
shl eax, 0xa
mov dword [ebp + 0x60], ecx
jmp 0x41e2cd
mov eax, dword [ebp + 0x5c]
mov ecx, dword [ebp + 0x60]
shld ecx, eax, 0xa
shl eax, 0xa
jmp 0x41e2df
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp + 0x5c]
shld ecx, eax, 0xa
shl eax, 0xa
jmp 0x41e2f5
mov eax, dword [ebp + 0x5c]
mov ecx, dword [ebp + 0x60]
shld ecx, eax, 9
shl eax, 9
mov dword [ebp + 0x5c], eax
mov dword [ebp + 0x60], ecx
jmp 0x41eb4c
sub eax, 0x64
je 0x41e381
dec eax
je 0x41e36c
dec eax
je 0x41e329
sub eax, 6
jne case.0x41e41b.114
cmp dword [ebp + 0x64], edi
jne case.0x41e41b.114
mov dword [ebp + 0x64], 3
jmp 0x41eb4d
xor eax, eax
cmp dword [ebp + 0x24], edi
setne al
xor edx, edx
cmp dword [ebp + 0x64], 1
setne dl
or eax, edx
xor edx, edx
cmp ebx, 2
setl dl
or eax, edx
jne case.0x41e41b.114
cmp cx, 0x46
jne 0x41e359
mov dword [ebp + 0xc], 1
add esi, 4
push dword [esi]
call fcn.0040e84c
pop ecx
mov dword [ebp + 0x24], eax
jmp 0x41eaf3
cmp dword [ebp + 0x64], edi
jne case.0x41e41b.114
mov dword [ebp + 0x64], 4
jmp 0x41eb4d
cmp dword [ebp + 0x64], edi
jne case.0x41e41b.114
cmp cx, 0x44
mov dword [ebp + 0x64], 2
jne 0x41e39e
mov dword [ebp + 0x28], 1
cmp cx, 0x52
jne 0x41eb4d
xor eax, eax
inc eax
mov dword [ebp + 0x28], eax
mov dword [ebp + 8], eax
jmp 0x41eb4d
xor eax, eax
cmp dword [ebp + 0x48], 0xffffffff
setne al
xor ecx, ecx
cmp dword [ebp + 0x64], 1
setne cl
and eax, ecx
xor ecx, ecx
cmp dword [ebp + 0x4c], edi
setne cl
or eax, ecx
xor ecx, ecx
cmp ebx, 2
setl cl
or eax, ecx
jne case.0x41e41b.114
add esi, 4
mov ecx, dword [esi]
mov ax, word [ecx]
cmp ax, 0x61
mov dword [ebp + 0x4c], ecx
jb 0x41eb4c
cmp ax, 0x7a
ja 0x41eb4c
and ax, 0xffdf
mov word [ecx], ax
jmp 0x41eb4c
sub eax, 0x6e
cmp eax, 0xb
ja case.0x41e41b.114
jmp dword [eax*4 + 0x41f0b9]
mov dword [ebp + 0x10], 1
jmp 0x41eb4d
mov eax, dword [ebp + 0x68]
and eax, 0xf00
neg eax
sbb eax, eax
xor ecx, ecx
neg eax
cmp dword [ebp + 0x64], 1
setne cl
or eax, ecx
xor ecx, ecx
cmp ebx, 2
setl cl
or eax, ecx
jne case.0x41e41b.114
add esi, 4
push str.file
push dword [esi]
call fcn.0047aa0c
test eax, eax
pop ecx
pop ecx
jne 0x41e475
or byte [ebp + 0x69], 1
jmp 0x41eb4c
push 0x49205c
push dword [esi]
call fcn.0047aa0c
test eax, eax
pop ecx
pop ecx
jne 0x41e490
or byte [ebp + 0x69], 2
jmp 0x41eb4c
push str.proxy
push dword [esi]
call fcn.0047aa0c
test eax, eax
pop ecx
pop ecx
jne case.0x41e41b.114
or byte [ebp + 0x69], 3
jmp 0x41eb4c
mov dword [ebp + 0x20], 1
jmp 0x41eb4d
xor eax, eax
cmp dword [ebp + 0x64], 4
setne al
xor ecx, ecx
cmp dword [ebp + 0x64], 1
setne cl
and eax, ecx
xor ecx, ecx
cmp ebx, 2
setl cl
or eax, ecx
jne case.0x41e41b.114
add esi, 4
push 0x48f49c
push dword [esi]
jmp 0x41e7a0
push 0x492048
push edi
call fcn.0047aa0c
test eax, eax
pop ecx
pop ecx
jne 0x41e516
test byte [ebp + 0x54], 1
jne case.0x41e41b.114
or dword [ebp + 0x54], 1
or dword [ebp + 0x68], 1
jmp 0x41e799
push 0x492040
push edi
call fcn.0047aa0c
test eax, eax
pop ecx
pop ecx
jne 0x41e53e
test byte [ebp + 0x54], 1
jne case.0x41e41b.114
or dword [ebp + 0x54], 1
and dword [ebp + 0x68], 0xfffffffe
jmp 0x41e799
push 0x492038
push edi
call fcn.0047aa0c
test eax, eax
pop ecx
pop ecx
jne 0x41e566
test byte [ebp + 0x54], 2
jne case.0x41e41b.114
or dword [ebp + 0x54], 2
or dword [ebp + 0x68], 2
jmp 0x41e799
push 0x492030
push edi
call fcn.0047aa0c
test eax, eax
pop ecx
pop ecx
jne 0x41e58e
test byte [ebp + 0x54], 2
jne case.0x41e41b.114
or dword [ebp + 0x54], 2
and dword [ebp + 0x68], 0xfffffffd
jmp 0x41e799
push str.saved
push edi
call fcn.0047aa0c
test eax, eax
pop ecx
pop ecx
jne 0x41e5ba
cmp dword [ebp + 0x64], 4
jne case.0x41e41b.114
or byte [ebp + 0x56], 1
and byte [ebp + 0x6a], 0xfe
or dword [ebp + 0x50], 8
jmp 0x41e799
cmp dword [ebp + 0x64], 1
jne case.0x41e41b.114
push 0x49201c
push edi
call fcn.0047aa0c
test eax, eax
pop ecx
pop ecx
jne 0x41e60f
mov eax, dword [ebp + 0x68]
mov ecx, dword [ebp + 0x68]
and eax, 0xf000
neg eax
sbb eax, eax
and ecx, 0xf00
xor edx, edx
neg eax
cmp ecx, 0x300
setne dl
or eax, edx
jne case.0x41e41b.114
or byte [ebp + 0x69], 0x20
mov dword [ebp + 0xc], 1
jmp 0x41e799
push str.comm
push edi
call fcn.0047aa0c
test eax, eax
pop ecx
pop ecx
jne 0x41e65a
mov eax, dword [ebp + 0x68]
mov ecx, dword [ebp + 0x68]
and eax, 0xf000
neg eax
sbb eax, eax
and ecx, 0xf00
xor edx, edx
neg eax
cmp ecx, 0x300
setne dl
or eax, edx
jne case.0x41e41b.114
or byte [ebp + 0x69], 0x10
mov dword [ebp + 0xc], 1
jmp 0x41e799
push 0x492008
push edi
call fcn.0047aa0c
test eax, eax
pop ecx
pop ecx
jne 0x41e69e
mov eax, dword [ebp + 0x68]
mov ecx, dword [ebp + 0x68]
and eax, 0xf000
neg eax
sbb eax, eax
and ecx, 0xf00
xor edx, edx
neg eax
cmp ecx, 0x300
setne dl
or eax, edx
jne case.0x41e41b.114
or byte [ebp + 0x69], 0x30
jmp 0x41e799
push 0x492000
push edi
call fcn.0047aa0c
test eax, eax
pop ecx
pop ecx
jne 0x41e6e9
mov eax, dword [ebp + 0x68]
and eax, 0xf00
xor ecx, ecx
cmp eax, 0x100
setne cl
xor edx, edx
test eax, eax
mov eax, dword [ebp + 0x68]
setne dl
and eax, 0xf000
and ecx, edx
neg eax
sbb eax, eax
neg eax
or ecx, eax
jne case.0x41e41b.114
or byte [ebp + 0x69], 0x11
jmp 0x41e799
push 0x491ff8
push edi
call fcn.0047aa0c
test eax, eax
pop ecx
pop ecx
jne 0x41e731
mov eax, dword [ebp + 0x68]
and eax, 0xf00
xor ecx, ecx
cmp eax, 0x100
setne cl
xor edx, edx
test eax, eax
mov eax, dword [ebp + 0x68]
setne dl
and eax, 0xf000
and ecx, edx
neg eax
sbb eax, eax
neg eax
or ecx, eax
jne case.0x41e41b.114
or byte [ebp + 0x69], 0x21
jmp 0x41e799
push str.shared
push edi
call fcn.0047aa0c
test eax, eax
pop ecx
pop ecx
jne 0x41e748
or byte [ebp + 0x6a], 2
jmp 0x41e799
test byte [ebp + 0x68], 0xf0
jne case.0x41e41b.114
push 0x491fe0
push edi
call fcn.0047aa0c
test eax, eax
pop ecx
pop ecx
jne 0x41e769
or dword [ebp + 0x68], 0x10
jmp 0x41e799
push 0x491fd8
push edi
call fcn.0047aa0c
test eax, eax
pop ecx
pop ecx
jne 0x41e780
or dword [ebp + 0x68], 0x20
jmp 0x41e799
push 0x491fd0
push edi
call fcn.0047aa0c
test eax, eax
pop ecx
pop ecx
jne case.0x41e41b.114
or dword [ebp + 0x68], 0x30
push 0x48f49c
push 0
call fcn.0047ae10
mov edi, eax
test edi, edi
pop ecx
pop ecx
jne 0x41e4ee
jmp 0x41eaf3
mov eax, dword [ebp + 0x30]
or eax, dword [ebp + 0x34]
je 0x41e7c3
xor eax, eax
inc eax
jmp 0x41e7c5
xor eax, eax
xor ecx, ecx
cmp dword [ebp + 0x64], 4
setne cl
xor edx, edx
cmp dword [ebp + 0x64], 1
setne dl
and ecx, edx
xor edx, edx
cmp ebx, 2
setl dl
or ecx, edx
or ecx, eax
jne case.0x41e41b.114
lea eax, [ebp + 0x2c]
push eax
lea eax, [ebp + 0x30]
push eax
add esi, 4
push str._I64i_c
push dword [esi]
xor edi, edi
mov dword [ebp + 0x2c], edi
call fcn.0047aeb5
movzx eax, word [ebp + 0x2c]
add esp, 0x10
cmp eax, 0x54
jg 0x41e8d8
je 0x41e898
sub eax, edi
je 0x41e962
sub eax, 0x25
je 0x41e841
sub eax, 0x22
je 0x41e8a7
sub eax, 4
je 0x41e8c6
dec eax
dec eax
jne 0x41ec10
mov eax, dword [ebp + 0x30]
jmp 0x41e8b7
cmp dword [ebp + 0x34], edi
jg 0x41e852
jl 0x41e84d
cmp dword [ebp + 0x30], edi
ja 0x41e852
xor ecx, ecx
inc ecx
jmp 0x41e854
xor ecx, ecx
cmp dword [ebp + 0x34], edi
jl 0x41e866
jg 0x41e861
cmp dword [ebp + 0x30], 0x64
jb 0x41e866
xor eax, eax
inc eax
jmp 0x41e868
xor eax, eax
or eax, ecx
jne case.0x41e41b.114
lea eax, [ebp - 0x44]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatus]
push dword [ebp + 0x34]
push dword [ebp + 0x30]
push edi
push dword [ebp - 0x38]
call fcn.00479e00
push edi
push 0x64
push edx
push eax
call fcn.00479d50
jmp 0x41e94a
mov eax, dword [ebp + 0x30]
mov ecx, dword [ebp + 0x34]
shld ecx, eax, 0xa
shl eax, 0xa
jmp 0x41e8ad
mov ecx, dword [ebp + 0x34]
mov eax, dword [ebp + 0x30]
shld ecx, eax, 0xa
shl eax, 0xa
mov dword [ebp + 0x34], ecx
mov ecx, dword [ebp + 0x34]
shld ecx, eax, 0xa
shl eax, 0xa
mov dword [ebp + 0x34], ecx
jmp 0x41e8c9
mov eax, dword [ebp + 0x30]
mov ecx, dword [ebp + 0x34]
shld ecx, eax, 0xa
shl eax, 0xa
jmp 0x41e95c
sub eax, 0x62
je 0x41e94f
sub eax, 5
je 0x41e90b
sub eax, 4
je 0x41e939
dec eax
dec eax
je 0x41e922
sub eax, 7
jne 0x41ec10
push edi
push 0x3e8
push dword [ebp + 0x34]
push dword [ebp + 0x30]
call fcn.00479e00
mov dword [ebp + 0x30], eax
mov dword [ebp + 0x34], edx
push edi
push 0x3e8
push dword [ebp + 0x34]
push dword [ebp + 0x30]
call fcn.00479e00
mov dword [ebp + 0x30], eax
mov dword [ebp + 0x34], edx
push edi
push 0x3e8
push dword [ebp + 0x34]
push dword [ebp + 0x30]
call fcn.00479e00
mov dword [ebp + 0x30], eax
mov dword [ebp + 0x34], edx
push edi
push 0x3e8
push dword [ebp + 0x34]
push dword [ebp + 0x30]
call fcn.00479e00
mov dword [ebp + 0x34], edx
jmp 0x41e95f
mov eax, dword [ebp + 0x30]
mov ecx, dword [ebp + 0x34]
shld ecx, eax, 9
shl eax, 9
mov dword [ebp + 0x34], ecx
mov dword [ebp + 0x30], eax
cmp dword [ebp + 0x34], edi
jg 0x41eb4c
jl 0x41e976
cmp dword [ebp + 0x30], edi
jae 0x41eb4c
lea eax, [ebp - 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatus]
mov eax, dword [ebp - 0x18]
add dword [ebp + 0x30], eax
adc dword [ebp + 0x34], edi
js 0x41e99a
jg 0x41eb4c
cmp dword [ebp + 0x30], edi
jae 0x41eb4c
xor ecx, ecx
cmp ecx, 0x100
mov edi, 0x400
mov esi, 0x100000
mov edx, 0x40000000
jb 0x41ec2f
ja 0x41e9c1
test eax, eax
jb 0x41ec2f
mov ebx, 0x491fbc
jmp 0x41ec5f
xor eax, eax
cmp dword [ebp + 0x40], edi
setne al
xor ecx, ecx
cmp dword [ebp + 0x64], 1
setne cl
or eax, ecx
xor ecx, ecx
cmp ebx, 2
setl cl
or eax, ecx
jne case.0x41e41b.114
add esi, 4
mov eax, dword [esi]
movzx eax, word [eax]
push eax
call fcn.0047b0f8
test eax, eax
pop ecx
je case.0x41e41b.114
push edi
push edi
push dword [esi]
call fcn.0047b0e1
mov dword [ebp + 0x40], eax
jmp 0x41eb49
xor eax, eax
cmp dword [ebp + 0x3c], edi
setne al
xor ecx, ecx
cmp dword [ebp + 0x64], 1
setne cl
or eax, ecx
xor ecx, ecx
cmp ebx, 2
setl cl
or eax, ecx
jne case.0x41e41b.114
add esi, 4
mov eax, dword [esi]
movzx eax, word [eax]
push eax
call fcn.0047b0f8
test eax, eax
pop ecx
je case.0x41e41b.114
push edi
push edi
push dword [esi]
call fcn.0047b0e1
mov dword [ebp + 0x3c], eax
jmp 0x41eb49
xor eax, eax
cmp byte [ebp + 0x5b], al
setne al
xor ecx, ecx
cmp dword [ebp + 0x64], 1
setne cl
or eax, ecx
xor ecx, ecx
cmp ebx, 2
setl cl
or eax, ecx
jne case.0x41e41b.114
xor edx, edx
add esi, 4
mov eax, dword [esi]
xor ecx, ecx
mov cx, word [eax]
mov dx, 0x38
cmp dx, cx
sbb edx, edx
neg edx
cmp cx, 0x31
sbb ecx, ecx
neg ecx
or edx, ecx
jne case.0x41e41b.114
cmp word [eax + 2], di
jne case.0x41e41b.114
mov al, byte [eax]
sub al, 0x30
mov byte [ebp + 0x5b], al
jmp 0x41eb4c
xor eax, eax
inc eax
cmp dword [ebp + 0x64], eax
je 0x41eacf
cmp dword [ebp + 0x64], 4
jne 0x41ead1
xor eax, eax
xor ecx, ecx
cmp dword [ebp + 0x14], edi
setne cl
xor edx, edx
cmp ebx, 2
setl dl
or ecx, edx
or ecx, eax
jne case.0x41e41b.114
add esi, 4
mov eax, dword [esi]
mov dword [ebp + 0x14], eax
dec ebx
xor edi, edi
jmp 0x41eb4d
xor eax, eax
cmp dword [ebp + 0x4c], edi
setne al
xor ecx, ecx
cmp dword [ebp + 0x64], 1
setne cl
and eax, ecx
xor ecx, ecx
cmp dword [ebp + 0x48], 0xffffffff
setne cl
or eax, ecx
xor ecx, ecx
cmp ebx, 2
setl cl
or eax, ecx
jne case.0x41e41b.114
add esi, 4
mov eax, dword [esi]
movzx eax, word [eax]
push eax
call fcn.0047b0f8
test eax, eax
pop ecx
je case.0x41e41b.114
push edi
push edi
push dword [esi]
call fcn.0047b0e1
mov dword [ebp + 0x48], eax
add esp, 0xc
dec ebx
cmp ebx, 1
jg 0x41e0a9
cmp dword [ebp + 0x64], 5
jne 0x41ed08
mov eax, dword [ebp + 0x50]
shr eax, 2
xor ecx, ecx
inc ecx
not eax
and eax, ecx
test byte [ebp + 0x50], cl
je 0x41eb75
mov dword [ebp + 0x10], ecx
mov ecx, dword [ebp + 0x4c]
test ecx, ecx
je case.0x41e41b.114
mov cx, word [ecx]
test cx, cx
je case.0x41e41b.114
push dword [ebp + 0x10]
push eax
movzx eax, cx
push eax
call fcn.0040f120
add esp, 0xc
jmp case.0x41e41b.114
sub eax, 0x67
je 0x41ebcb
sub eax, 4
je 0x41ebf9
dec eax
dec eax
je 0x41ebe2
sub eax, 7
jne 0x41ec10
push edi
push 0x3e8
push dword [ebp + 0x60]
push dword [ebp + 0x5c]
call fcn.00479e00
mov dword [ebp + 0x5c], eax
mov dword [ebp + 0x60], edx
push edi
push 0x3e8
push dword [ebp + 0x60]
push dword [ebp + 0x5c]
call fcn.00479e00
mov dword [ebp + 0x5c], eax
mov dword [ebp + 0x60], edx
push edi
push 0x3e8
push dword [ebp + 0x60]
push dword [ebp + 0x5c]
call fcn.00479e00
mov dword [ebp + 0x5c], eax
mov dword [ebp + 0x60], edx
push edi
push 0x3e8
push dword [ebp + 0x60]
push dword [ebp + 0x5c]
call fcn.00479e00
mov dword [ebp + 0x5c], eax
mov dword [ebp + 0x60], edx
movzx eax, word [ebp + 0x2c]
push eax
push str.ImDisk:_Unsupported_size_suffix:__wc_n
push 0x4a4840
call fcn.0047a84d
add esp, 0xc
push 0xa
pop eax
jmp 0x41f0b1
cmp eax, edx
jb 0x41ec3a
mov ebx, 0x491f90
jmp 0x41ec5f
cmp eax, esi
jb 0x41ec45
mov ebx, 0x491f8c
jmp 0x41ec5f
cmp eax, edi
jb 0x41ec50
mov ebx, 0x491f88
jmp 0x41ec5f
cmp eax, 1
mov ebx, str.byte
je 0x41ec5f
mov ebx, 0x491f78
cmp ecx, 0x100
jb 0x41ec85
ja 0x41ec6d
test eax, eax
jb 0x41ec85
test eax, eax
mov dword [ebp + 0x1c], eax
fild dword [ebp + 0x1c]
jge 0x41ec7d
fadd qword [0x491f70]
fmul qword [0x491f68]
jmp 0x41ece9
cmp eax, edx
jb 0x41eca1
test eax, eax
mov dword [ebp + 0x1c], eax
fild dword [ebp + 0x1c]
jge 0x41ec99
fadd qword [0x491f70]
fmul qword [0x491f60]
jmp 0x41ec83
cmp eax, esi
jb 0x41ecbd
test eax, eax
mov dword [ebp + 0x1c], eax
fild dword [ebp + 0x1c]
jge 0x41ecb5
fadd qword [0x491f70]
fmul qword [0x491f58]
jmp 0x41ec83
cmp eax, edi
jb 0x41ecd9
test eax, eax
mov dword [ebp + 0x1c], eax
fild dword [ebp + 0x1c]
jge 0x41ecd1
fadd qword [0x491f70]
fmul qword [0x491f50]
jmp 0x41ec83
test eax, eax
mov dword [ebp + 0x1c], eax
fild dword [ebp + 0x1c]
jge 0x41ece9
fadd qword [0x491f70]
push ebx
push ecx
push ecx
fstp qword [esp]
push str.ImDisk:_Not_enough_memory__there_is_currently__.4g__s_free_physical_memory._n
push 0x4a4840
call fcn.0047a84d
add esp, 0x14
push 0xb
jmp 0x41ec29
mov eax, dword [ebp + 0x64]
xor ecx, ecx
dec eax
mov dword [ebp + 0x2c], ecx
je 0x41ee3c
dec eax
je 0x41ee04
dec eax
je 0x41edb3
dec eax
jne case.0x41e41b.114
xor eax, eax
cmp dword [ebp + 0x48], 0xffffffff
sete al
xor edx, edx
cmp dword [ebp + 0x4c], ecx
sete dl
test edx, eax
jne case.0x41e41b.114
cmp dword [ebp + 0x54], ecx
je 0x41ed63
push dword [ebp + 0x68]
push dword [ebp + 0x54]
push dword [ebp + 0x4c]
push dword [ebp + 0x48]
call fcn.0040fccb
add esp, 0x10
mov dword [ebp - 4], eax
xor ecx, ecx
cmp dword [ebp + 0x34], ecx
jl 0x41ed88
jg 0x41ed6f
cmp dword [ebp + 0x30], ecx
jbe 0x41ed88
push dword [ebp + 0x34]
push dword [ebp + 0x30]
push dword [ebp + 0x4c]
push dword [ebp + 0x48]
call fcn.0040ff01
add esp, 0x10
mov dword [ebp - 4], eax
xor ecx, ecx
mov eax, dword [ebp - 4]
cmp eax, ecx
jne 0x41f0b1
cmp dword [ebp + 0x14], ecx
je 0x41f0b1
push dword [ebp + 0x14]
mov esi, dword [ebp + 0x4c]
push esi
push dword [ebp + 0x48]
call fcn.004176c7
add esp, 0xc
jmp 0x41f012
mov ecx, dword [ebp + 0x7c]
push 0x4918ec
call fcn.0043cd64
xor eax, eax
cmp dword [ebp + 0x48], 0xffffffff
sete al
xor ecx, ecx
cmp dword [ebp + 0x4c], ecx
sete cl
test ecx, eax
je 0x41edeb
push dword [ebp + 0x1c]
push dword [ebp + 0x7c]
push dword [ebp + 0x20]
call fcn.0040f833
add esp, 0xc
jmp 0x41f0b1
push dword [ebp + 0x50]
push dword [ebp + 0x7c]
push dword [ebp + 0x4c]
push dword [ebp + 0x48]
call fcn.0040f943
add esp, 0x10
jmp 0x41f0b1
xor eax, eax
cmp dword [ebp + 0x4c], ecx
sete al
xor ecx, ecx
or eax, dword [ebp + 8]
cmp dword [ebp + 0x48], 0xffffffff
sete cl
test ecx, eax
jne case.0x41e41b.114
push dword [ebp + 0x10]
push dword [ebp + 8]
push dword [ebp + 0x28]
push dword [ebp + 0x4c]
push dword [ebp + 0x48]
call fcn.0040f39b
add esp, 0x14
jmp 0x41f0b1
cmp dword [ebp], ecx
je 0x41ee58
cmp dword [ebp + 0x24], 0
je case.0x41e41b.114
lea eax, [ebp + 0x5c]
push eax
push dword [ebp + 0x24]
call dword [0x4a5ecc]
push 0x48e984
push str.CurRamDisk
mov ecx, 0x4a5f08
call fcn.00432698
cmp byte [ebp + 0x5b], 0
je 0x41eee9
movzx edi, byte [ebp + 0x5b]
mov eax, edi
shl eax, 5
lea esi, [ebp + eax - 0x164]
lea eax, [ebp - 0x144]
push eax
lea eax, [ebp + 0x5c]
push eax
push dword [ebp + 0x44]
push dword [ebp + 0x24]
call dword [0x4a5ed0]
test eax, eax
je 0x41eed1
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, ecx
xor ebx, ebx
or eax, edx
jne 0x41eeab
inc ebx
mov eax, dword [esi + 8]
or eax, dword [esi + 0xc]
jne 0x41eeb8
xor eax, eax
inc eax
jmp 0x41eeba
xor eax, eax
or eax, ebx
je 0x41eed8
push edi
push str.Error:_Partition__i_is_not_defined._n
push 0x4a4840
call fcn.0047a84d
add esp, 0xc
push 0xc
jmp 0x41ec29
add dword [ebp + 0x5c], ecx
mov eax, dword [esi + 8]
mov dword [ebp + 0x30], eax
adc dword [ebp + 0x60], edx
mov eax, dword [esi + 0xc]
jmp 0x41ef5f
cmp dword [ebp], 0
je 0x41ef62
lea eax, [ebp - 0x144]
push eax
lea eax, [ebp + 0x5c]
push eax
push dword [ebp + 0x44]
push dword [ebp + 0x24]
call dword [0x4a5ed0]
test eax, eax
je 0x41ef62
lea eax, [ebp - 0x144]
mov ecx, dword [eax]
xor edx, edx
or ecx, dword [eax + 4]
je 0x41ef1a
inc edx
mov ecx, dword [eax + 8]
xor esi, esi
or ecx, dword [eax + 0xc]
je 0x41ef25
inc esi
mov cl, byte [eax + 0x18]
cmp cl, 5
je 0x41ef37
cmp cl, 0xf
je 0x41ef37
xor ecx, ecx
inc ecx
jmp 0x41ef39
xor ecx, ecx
and ecx, esi
test edx, ecx
jne 0x41ef4b
add eax, 0x20
lea ecx, [ebp - 0x44]
cmp eax, ecx
jb 0x41ef10
jmp 0x41ef62
mov ecx, dword [eax]
add dword [ebp + 0x5c], ecx
mov ecx, dword [eax + 4]
adc dword [ebp + 0x60], ecx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ebp + 0x30], ecx
mov dword [ebp + 0x34], eax
mov esi, 0x4a6658
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, dword [ebp + 0x4c]
test ebx, ebx
je 0x41ef92
push 0x491eb8
push ebx
call fcn.0047aa0c
test eax, eax
pop ecx
pop ecx
jne 0x41ef92
call dword [0x4a5ec0]
mov word [ebx], ax
mov dword [ebp + 0x2c], eax
push dword [ebp + 0x50]
lea eax, [ebp + 0x5c]
push dword [ebp + 0x14]
push ebx
push dword [ebp + 0xc]
push dword [ebp + 0x24]
push dword [ebp + 0x68]
push eax
lea eax, [ebp + 0x30]
push eax
lea eax, [ebp + 0x48]
push eax
call fcn.0041d9a3
add esp, 0x24
push esi
mov edi, eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test edi, edi
je 0x41efca
mov eax, edi
jmp 0x41f0b1
cmp dword [ebp + 0x20], 0
je 0x41efe1
push dword [ebp + 0x48]
push 0x491eb4
call fcn.0047adaa
pop ecx
pop ecx
jmp 0x41f00f
mov ecx, dword [ebp + 0x24]
test ecx, ecx
jne 0x41efed
mov ecx, str.VM_image
test ebx, ebx
mov eax, str.No_mountpoint
je 0x41eff8
mov eax, ebx
push ecx
push eax
push dword [ebp + 0x48]
push str.Created_device__1_u_:__2_ws______3_ws_
push 0x4a4820
call fcn.0040f1d7
add esp, 0x14
mov esi, dword [ebp + 0x4c]
test esi, esi
je 0x41f07c
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenW]
push esi
call edi
cmp eax, 2
jne 0x41f030
xor eax, eax
cmp word [esi + 2], 0x3a
sete al
jmp 0x41f051
push esi
call edi
cmp eax, 3
jne 0x41f04f
lea eax, [esi + 2]
push 0x490850
push eax
call fcn.0047aa0c
neg eax
pop ecx
sbb eax, eax
pop ecx
inc eax
jmp 0x41f051
xor eax, eax
test eax, eax
je 0x41f07c
push esi
push str.CurRamDisk
mov ecx, 0x4a5f08
call fcn.00432698
test byte [ebp + 0x50], 1
jne 0x41f07c
push dword [ebp + 0x10]
movzx eax, word [esi]
push 1
push eax
call fcn.0040f120
add esp, 0xc
mov edi, dword [ebp + 0x2c]
test di, di
je case.0x41e41b.114
push 0xffffffffffffffff
push 0x491e58
lea ecx, [ebp + 0x28]
call fcn.0043cd32
mov esi, dword [ebp + 0x7c]
lea eax, [ebp + 0x28]
push eax
mov ecx, esi
call fcn.0043cd92
lea ecx, [ebp + 0x28]
call fcn.0042dd2d
mov eax, dword [esi]
mov word [eax + 2], di
xor eax, eax
pop edi
pop esi
pop ebx
add ebp, 0x6c
leave
ret