Function at 0x4254f5
Capabilities:
Get memory capacity

Disassembly:
push ebp
lea ebp, [esp - 0x6c]
sub esp, 0x1b0
push ebx
xor ebx, ebx
cmp dword [0x4dc090], ebx
jne 0x425513
or eax, 0xffffffff
jmp 0x42648c
xor eax, eax
or dword [ebp + 0x4c], 0xffffffff
push esi
push edi
mov dword [ebp + 0x34], ebx
mov esi, dword [ebp + 0x78]
lea edi, [ebp + 0x38]
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 dword [ebp + 0x74], 2
mov dword [ebp + 0x50], ebx
lea edi, [ebp + 0x54]
stosd dword es:[edi], eax
mov edi, dword [ebp + 0x7c]
mov byte [ebp + 0x63], al
mov eax, dword [edi]
mov ax, word [eax]
mov dword [ebp + 0x64], ebx
mov dword [ebp + 0x68], ebx
mov dword [ebp + 8], ebx
mov dword [ebp + 0x24], ebx
mov dword [ebp + 0x18], ebx
mov dword [ebp + 4], ebx
mov dword [ebp + 0x28], ebx
mov dword [ebp + 0x30], ebx
mov dword [ebp + 0x20], ebx
mov dword [ebp + 0xc], ebx
mov dword [ebp + 0x58], ebx
mov dword [ebp + 0x10], ebx
mov word [ebp], ax
mov dword [ebp + 0x5c], ebx
mov dword [ebp + 0x1c], 0xfa0
jne 0x42563f
push 0x4c571c
push dword [esi + 4]
call fcn.004adebd
test eax, eax
pop ecx
pop ecx
jne 0x425649
mov eax, dword [0x4dc094]
cmp eax, ebx
mov dword [ebp - 4], ebx
mov dword [ebp], ebx
mov dword [ebp + 0x14], ebx
mov dword [ebp + 0x18], ebx
je 0x4255af
lea ecx, [ebp + 0x14]
push ecx
lea ecx, [ebp - 4]
push ecx
call eax
lea ecx, [ebp + 0x24]
call fcn.00444e32
push 0x3f
lea eax, [ebp + 0x24]
push eax
push 1
call fcn.00413a42
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x14]
add esp, 0xc
cmp eax, 2
mov esi, 0x4c5714
jne 0x4255de
mov esi, str.NotLoad
jmp 0x4255f9
cmp eax, 0xffffffff
jne 0x4255ea
mov esi, str.CannotControl
jmp 0x4255f9
cmp ecx, ebx
ja 0x4255f9
jb 0x4255f4
cmp edx, ebx
ja 0x4255f9
mov esi, str.NotInstall
movzx eax, dl
shrd edx, ecx, 8
push esi
push eax
movsx eax, dx
push eax
movzx eax, byte [ebp - 4]
push eax
mov eax, dword [ebp]
shr ecx, 8
mov ecx, dword [ebp - 4]
shrd ecx, eax, 8
shr eax, 8
movsx eax, cx
push eax
push str._X._02X___X._X__s
push dword [edi]
mov dword [ebp + 0x2c], ecx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x1c
lea ecx, [ebp + 0x24]
call fcn.0043e679
jmp case.0x4259a0.114
cmp dword [ebp + 0x74], 1
jle 0x426107
dec dword [ebp + 0x74]
add esi, 4
push str.__id
push dword [esi]
call fcn.004adebd
test eax, eax
pop ecx
pop ecx
jne 0x42566a
or dword [ebp + 0x5c], 2
jmp 0x4260af
push 0x4c568c
push dword [esi]
call fcn.004adebd
test eax, eax
pop ecx
pop ecx
jne 0x425685
or dword [ebp + 0x5c], 1
jmp 0x4260af
push str.__remove
push dword [esi]
call fcn.004adebd
test eax, eax
pop ecx
pop ecx
jne 0x4256a0
or dword [ebp + 0x5c], 4
jmp 0x4260af
push 0x4c5670
push dword [esi]
call fcn.004adebd
test eax, eax
pop ecx
pop ecx
jne 0x4256be
mov dword [ebp + 0x64], 5
jmp 0x4260af
push str.__hide
push dword [esi]
call fcn.004adebd
test eax, eax
pop ecx
pop ecx
jne 0x4256d9
or dword [ebp + 0x5c], 0x10
jmp 0x4260af
push dword [esi]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push 2
pop edi
cmp eax, edi
jne 0x4256f7
mov eax, dword [esi]
xor ecx, ecx
cmp word [eax], 0x2d
sete cl
mov eax, ecx
jmp 0x4256f9
xor eax, eax
cmp eax, ebx
je case.0x4259a0.114
mov eax, dword [esi]
mov cx, word [eax + 2]
movzx eax, cx
cmp eax, 0x6d
jg 0x425994
je 0x42594e
cmp eax, 0x62
jg 0x42589f
je 0x4257ae
sub eax, 0x44
je 0x425921
sub eax, edi
je 0x4258c8
sub eax, 0xc
je 0x425921
dec eax
je 0x425763
sub eax, 0xe
jne case.0x4259a0.114
cmp dword [ebp + 0x64], ebx
jne case.0x4259a0.114
mov dword [ebp + 0x64], 1
jmp 0x4260af
xor eax, eax
cmp dword [ebp + 0x48], ebx
setne al
xor ecx, ecx
cmp dword [ebp + 0x64], 1
setne cl
or eax, ecx
xor ecx, ecx
cmp dword [ebp + 0x74], edi
setl cl
or eax, ecx
jne case.0x4259a0.114
add esi, 4
mov eax, dword [esi]
movzx eax, word [eax]
push eax
call fcn.004ae7e0
test eax, eax
pop ecx
je case.0x4259a0.114
push ebx
push ebx
push dword [esi]
call fcn.004ae7c9
mov dword [ebp + 0x48], eax
jmp 0x4260a9
mov eax, dword [ebp + 0x50]
or eax, dword [ebp + 0x54]
je 0x4257bb
xor eax, eax
inc eax
jmp 0x4257bd
xor eax, eax
xor ecx, ecx
cmp dword [ebp + 0xc], ebx
setne cl
xor edx, edx
cmp dword [ebp + 0x64], 1
setne dl
or ecx, edx
xor edx, edx
cmp dword [ebp + 0x74], 2
setl dl
or ecx, edx
or ecx, eax
jne case.0x4259a0.114
add esi, 4
push 0x4c5654
push dword [esi]
call fcn.004adebd
test eax, eax
pop ecx
pop ecx
jne 0x425804
mov dword [ebp + 0xc], 1
jmp 0x4260ac
mov eax, dword [esi]
mov dword [ebp + 0x2c], eax
lea eax, [ebp + 0x50]
push eax
lea eax, [ebp + 0x2c]
push eax
call fcn.004481c5
mov eax, dword [ebp + 0x2c]
movzx eax, word [eax]
cmp eax, 0x62
pop ecx
pop ecx
jg 0x426100
je 0x425887
sub eax, ebx
je 0x4260ac
sub eax, 0x47
je 0x425857
sub eax, 4
je 0x425878
dec eax
dec eax
je 0x425869
sub eax, 7
jne 0x426100
mov eax, dword [ebp + 0x50]
mov ecx, dword [ebp + 0x54]
shld ecx, eax, 0xa
shl eax, 0xa
jmp 0x42585d
mov ecx, dword [ebp + 0x54]
mov eax, dword [ebp + 0x50]
shld ecx, eax, 0xa
shl eax, 0xa
mov dword [ebp + 0x54], ecx
jmp 0x42586c
mov eax, dword [ebp + 0x50]
mov ecx, dword [ebp + 0x54]
shld ecx, eax, 0xa
shl eax, 0xa
jmp 0x42587e
mov ecx, dword [ebp + 0x54]
mov eax, dword [ebp + 0x50]
shld ecx, eax, 0xa
shl eax, 0xa
jmp 0x425894
mov eax, dword [ebp + 0x50]
mov ecx, dword [ebp + 0x54]
shld ecx, eax, 9
shl eax, 9
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x54], ecx
jmp 0x4260ac
sub eax, 0x64
je 0x425921
dec eax
je 0x42590c
dec eax
je 0x4258c8
sub eax, 6
jne case.0x4259a0.114
cmp dword [ebp + 0x64], ebx
jne case.0x4259a0.114
mov dword [ebp + 0x64], 3
jmp 0x4260af
xor eax, eax
cmp dword [ebp + 0x28], ebx
setne al
xor edx, edx
cmp dword [ebp + 0x64], 1
setne dl
or eax, edx
xor edx, edx
cmp dword [ebp + 0x74], 2
setl dl
or eax, edx
jne case.0x4259a0.114
cmp cx, 0x46
jne 0x4258f9
mov dword [ebp + 8], 1
add esi, 4
push dword [esi]
call fcn.0041310a
pop ecx
mov dword [ebp + 0x28], eax
jmp 0x4260ac
cmp dword [ebp + 0x64], ebx
jne case.0x4259a0.114
mov dword [ebp + 0x64], 4
jmp 0x4260af
xor eax, eax
cmp dword [ebp + 0x64], ebx
jne 0x42648a
inc eax
cmp cx, 0x44
mov dword [ebp + 0x64], edi
jne 0x425939
mov dword [ebp + 0x18], eax
cmp cx, 0x52
jne 0x4260af
mov dword [ebp + 0x18], eax
mov dword [ebp + 4], eax
jmp 0x4260af
xor eax, eax
cmp dword [ebp + 0x4c], 0xffffffff
setne al
xor ecx, ecx
cmp dword [ebp + 0x64], 4
setne cl
and eax, ecx
xor ecx, ecx
cmp dword [ebp + 0x64], 1
setne cl
and eax, ecx
xor ecx, ecx
cmp dword [ebp + 0x30], ebx
setne cl
or eax, ecx
xor ecx, ecx
cmp dword [ebp + 0x74], edi
setl cl
or eax, ecx
jne case.0x4259a0.114
add esi, 4
mov eax, dword [esi]
mov dword [ebp + 0x30], eax
jmp 0x4260ac
sub eax, 0x6e
cmp eax, 0xb
ja case.0x4259a0.114
jmp dword [eax*4 + 0x426495]
mov dword [ebp + 0x1c], 1
jmp 0x4260af
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 dword [ebp + 0x74], edi
setl cl
or eax, ecx
jne case.0x4259a0.114
add esi, 4
push str.file
push dword [esi]
call fcn.004adebd
test eax, eax
pop ecx
pop ecx
jne 0x4259fa
or byte [ebp + 0x69], 1
jmp 0x4260ac
push 0x4c5640
push dword [esi]
call fcn.004adebd
test eax, eax
pop ecx
pop ecx
jne 0x425a15
or byte [ebp + 0x69], 2
jmp 0x4260ac
push str.proxy
push dword [esi]
call fcn.004adebd
test eax, eax
pop ecx
pop ecx
jne case.0x4259a0.114
or byte [ebp + 0x69], 3
jmp 0x4260ac
mov dword [ebp + 0x24], 1
jmp 0x4260af
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 dword [ebp + 0x74], edi
setl cl
or eax, ecx
jne case.0x4259a0.114
add esi, 4
push 0x4c1d38
push dword [esi]
jmp 0x425d24
push 0x4c562c
push edi
call fcn.004adebd
test eax, eax
pop ecx
pop ecx
jne 0x425a9b
test byte [ebp + 0x58], 1
jne case.0x4259a0.114
or dword [ebp + 0x58], 1
or dword [ebp + 0x68], 1
jmp 0x425d1e
push 0x4c5624
push edi
call fcn.004adebd
test eax, eax
pop ecx
pop ecx
jne 0x425ac3
test byte [ebp + 0x58], 1
jne case.0x4259a0.114
or dword [ebp + 0x58], 1
and dword [ebp + 0x68], 0xfffffffe
jmp 0x425d1e
push 0x4c561c
push edi
call fcn.004adebd
test eax, eax
pop ecx
pop ecx
jne 0x425aeb
test byte [ebp + 0x58], 2
jne case.0x4259a0.114
or dword [ebp + 0x58], 2
or dword [ebp + 0x68], 2
jmp 0x425d1e
push 0x4c5614
push edi
call fcn.004adebd
test eax, eax
pop ecx
pop ecx
jne 0x425b13
test byte [ebp + 0x58], 2
jne case.0x4259a0.114
or dword [ebp + 0x58], 2
and dword [ebp + 0x68], 0xfffffffd
jmp 0x425d1e
push str.saved
push edi
call fcn.004adebd
test eax, eax
pop ecx
pop ecx
jne 0x425b3f
cmp dword [ebp + 0x64], 4
jne case.0x4259a0.114
or byte [ebp + 0x5a], 1
and byte [ebp + 0x6a], 0xfe
or dword [ebp + 0x5c], 8
jmp 0x425d1e
cmp dword [ebp + 0x64], 1
jne case.0x4259a0.114
push 0x4c5600
push edi
call fcn.004adebd
test eax, eax
pop ecx
pop ecx
jne 0x425b94
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.0x4259a0.114
or byte [ebp + 0x69], 0x20
mov dword [ebp + 8], 1
jmp 0x425d1e
push str.comm
push edi
call fcn.004adebd
test eax, eax
pop ecx
pop ecx
jne 0x425bdf
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.0x4259a0.114
or byte [ebp + 0x69], 0x10
mov dword [ebp + 8], 1
jmp 0x425d1e
push 0x4c55ec
push edi
call fcn.004adebd
test eax, eax
pop ecx
pop ecx
jne 0x425c23
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.0x4259a0.114
or byte [ebp + 0x69], 0x30
jmp 0x425d1e
push 0x4c55e4
push edi
call fcn.004adebd
test eax, eax
pop ecx
pop ecx
jne 0x425c6e
mov eax, dword [ebp + 0x68]
and eax, 0xf00
xor ecx, ecx
cmp eax, 0x100
setne cl
xor edx, edx
cmp eax, ebx
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.0x4259a0.114
or byte [ebp + 0x69], 0x11
jmp 0x425d1e
push 0x4c55dc
push edi
call fcn.004adebd
test eax, eax
pop ecx
pop ecx
jne 0x425cb6
mov eax, dword [ebp + 0x68]
and eax, 0xf00
xor ecx, ecx
cmp eax, 0x100
setne cl
xor edx, edx
cmp eax, ebx
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.0x4259a0.114
or byte [ebp + 0x69], 0x21
jmp 0x425d1e
push str.shared
push edi
call fcn.004adebd
test eax, eax
pop ecx
pop ecx
jne 0x425ccd
or byte [ebp + 0x6a], 2
jmp 0x425d1e
test byte [ebp + 0x68], 0xf0
jne case.0x4259a0.114
push 0x4c55c4
push edi
call fcn.004adebd
test eax, eax
pop ecx
pop ecx
jne 0x425cee
or dword [ebp + 0x68], 0x10
jmp 0x425d1e
push 0x4c55bc
push edi
call fcn.004adebd
test eax, eax
pop ecx
pop ecx
jne 0x425d05
or dword [ebp + 0x68], 0x20
jmp 0x425d1e
push 0x4c55b4
push edi
call fcn.004adebd
test eax, eax
pop ecx
pop ecx
jne case.0x4259a0.114
or dword [ebp + 0x68], 0x30
push 0x4c1d38
push ebx
call fcn.004ae52e
mov edi, eax
cmp edi, ebx
pop ecx
pop ecx
jne 0x425a73
jmp 0x4260ac
mov eax, dword [ebp + 0x34]
or eax, dword [ebp + 0x38]
je 0x425d47
xor eax, eax
inc eax
jmp 0x425d49
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 dword [ebp + 0x74], 2
setl dl
or ecx, edx
or ecx, eax
jne case.0x4259a0.114
add esi, 4
mov eax, dword [esi]
mov dword [ebp + 0x2c], eax
lea eax, [ebp + 0x34]
push eax
lea eax, [ebp + 0x2c]
push eax
call fcn.004481c5
mov eax, dword [ebp + 0x2c]
movzx eax, word [eax]
cmp eax, 0x54
pop ecx
pop ecx
jg 0x425e57
je 0x425e17
sub eax, ebx
je 0x425ee1
sub eax, 0x25
je 0x425dc0
sub eax, 0x22
je 0x425e26
sub eax, 4
je 0x425e45
dec eax
dec eax
jne 0x426100
mov eax, dword [ebp + 0x34]
jmp 0x425e36
cmp dword [ebp + 0x38], ebx
jg 0x425dd1
jl 0x425dcc
cmp dword [ebp + 0x34], ebx
ja 0x425dd1
xor ecx, ecx
inc ecx
jmp 0x425dd3
xor ecx, ecx
cmp dword [ebp + 0x38], ebx
jl 0x425de5
jg 0x425de0
cmp dword [ebp + 0x34], 0x64
jb 0x425de5
xor eax, eax
inc eax
jmp 0x425de7
xor eax, eax
or eax, ecx
jne case.0x4259a0.114
lea eax, [ebp - 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatus]
push dword [ebp + 0x38]
push dword [ebp + 0x34]
push ebx
push dword [ebp - 0x18]
call fcn.004adbb0
push ebx
push 0x64
push edx
push eax
call fcn.004adb00
jmp 0x425ec9
mov eax, dword [ebp + 0x34]
mov ecx, dword [ebp + 0x38]
shld ecx, eax, 0xa
shl eax, 0xa
jmp 0x425e2c
mov ecx, dword [ebp + 0x38]
mov eax, dword [ebp + 0x34]
shld ecx, eax, 0xa
shl eax, 0xa
mov dword [ebp + 0x38], ecx
mov ecx, dword [ebp + 0x38]
shld ecx, eax, 0xa
shl eax, 0xa
mov dword [ebp + 0x38], ecx
jmp 0x425e48
mov eax, dword [ebp + 0x34]
mov ecx, dword [ebp + 0x38]
shld ecx, eax, 0xa
shl eax, 0xa
jmp 0x425edb
sub eax, 0x62
je 0x425ece
sub eax, 5
je 0x425e8a
sub eax, 4
je 0x425eb8
dec eax
dec eax
je 0x425ea1
sub eax, 7
jne 0x426100
push ebx
push 0x3e8
push dword [ebp + 0x38]
push dword [ebp + 0x34]
call fcn.004adbb0
mov dword [ebp + 0x34], eax
mov dword [ebp + 0x38], edx
push ebx
push 0x3e8
push dword [ebp + 0x38]
push dword [ebp + 0x34]
call fcn.004adbb0
mov dword [ebp + 0x34], eax
mov dword [ebp + 0x38], edx
push ebx
push 0x3e8
push dword [ebp + 0x38]
push dword [ebp + 0x34]
call fcn.004adbb0
mov dword [ebp + 0x34], eax
mov dword [ebp + 0x38], edx
push ebx
push 0x3e8
push dword [ebp + 0x38]
push dword [ebp + 0x34]
call fcn.004adbb0
mov dword [ebp + 0x38], edx
jmp 0x425ede
mov eax, dword [ebp + 0x34]
mov ecx, dword [ebp + 0x38]
shld ecx, eax, 9
shl eax, 9
mov dword [ebp + 0x38], ecx
mov dword [ebp + 0x34], eax
cmp dword [ebp + 0x38], ebx
jg 0x4260ac
jl 0x425ef5
cmp dword [ebp + 0x34], ebx
jae 0x4260ac
lea eax, [ebp - 0x44]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatus]
mov eax, dword [ebp + 0x34]
add eax, dword [ebp - 0x38]
adc dword [ebp + 0x38], ebx
mov dword [ebp + 0x34], eax
js 0x425f1b
jg 0x4260ac
cmp eax, ebx
jae 0x4260ac
push 0xb
jmp 0x4262ba
xor eax, eax
cmp dword [ebp + 0x44], ebx
setne al
xor ecx, ecx
cmp dword [ebp + 0x64], 1
setne cl
or eax, ecx
xor ecx, ecx
cmp dword [ebp + 0x74], edi
setl cl
or eax, ecx
jne case.0x4259a0.114
add esi, 4
mov eax, dword [esi]
movzx eax, word [eax]
push eax
call fcn.004ae7e0
test eax, eax
pop ecx
je case.0x4259a0.114
push ebx
push ebx
push dword [esi]
call fcn.004ae7c9
mov dword [ebp + 0x44], eax
jmp 0x4260a9
xor eax, eax
cmp dword [ebp + 0x40], ebx
setne al
xor ecx, ecx
cmp dword [ebp + 0x64], 1
setne cl
or eax, ecx
xor ecx, ecx
cmp dword [ebp + 0x74], edi
setl cl
or eax, ecx
jne case.0x4259a0.114
add esi, 4
mov eax, dword [esi]
movzx eax, word [eax]
push eax
call fcn.004ae7e0
test eax, eax
pop ecx
je case.0x4259a0.114
push ebx
push ebx
push dword [esi]
call fcn.004ae7c9
mov dword [ebp + 0x40], eax
jmp 0x4260a9
xor eax, eax
cmp byte [ebp + 0x63], al
setne al
xor ecx, ecx
cmp dword [ebp + 0x64], 1
setne cl
or eax, ecx
xor ecx, ecx
cmp dword [ebp + 0x74], edi
setl cl
or eax, ecx
jne case.0x4259a0.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.0x4259a0.114
cmp word [eax + 2], bx
jne case.0x4259a0.114
mov al, byte [eax]
sub al, 0x30
mov byte [ebp + 0x63], al
jmp 0x4260ac
xor eax, eax
inc eax
cmp dword [ebp + 0x64], eax
je 0x426026
cmp dword [ebp + 0x64], 4
jne 0x426028
xor eax, eax
xor ecx, ecx
cmp dword [ebp + 0x20], ebx
setne cl
xor edx, edx
cmp dword [ebp + 0x74], 2
setl dl
or ecx, edx
or ecx, eax
jne case.0x4259a0.114
add esi, 4
mov eax, dword [esi]
mov dword [ebp + 0x20], eax
jmp 0x4260ac
xor eax, eax
cmp dword [ebp + 0x30], ebx
setne al
xor ecx, ecx
cmp dword [ebp + 0x64], 4
setne cl
and eax, ecx
xor ecx, ecx
cmp dword [ebp + 0x64], 1
setne cl
and eax, ecx
xor ecx, ecx
cmp dword [ebp + 0x4c], 0xffffffff
setne cl
or eax, ecx
xor ecx, ecx
cmp dword [ebp + 0x74], edi
setl cl
or eax, ecx
jne case.0x4259a0.114
add esi, 4
mov eax, dword [esi]
movzx eax, word [eax]
push eax
call fcn.004ae7e0
test eax, eax
pop ecx
je case.0x4259a0.114
push ebx
push ebx
push dword [esi]
call fcn.004ae7c9
mov dword [ebp + 0x4c], eax
add esp, 0xc
dec dword [ebp + 0x74]
cmp dword [ebp + 0x74], 1
jg 0x425649
cmp dword [ebp + 0x64], 5
jne 0x426107
mov eax, dword [ebp + 0x5c]
shr eax, 2
xor ecx, ecx
inc ecx
not eax
and eax, ecx
test byte [ebp + 0x5c], cl
je 0x4260d4
mov dword [ebp + 0x1c], ecx
mov ecx, dword [ebp + 0x30]
cmp ecx, ebx
je case.0x4259a0.114
mov cx, word [ecx]
cmp cx, bx
je case.0x4259a0.114
push dword [ebp + 0x1c]
push eax
movzx eax, cx
push eax
call fcn.004138b8
add esp, 0xc
jmp case.0x4259a0.114
push 0xa
jmp 0x4262ba
mov eax, dword [ebp + 0x64]
xor esi, esi
dec eax
mov dword [ebp + 0x2c], esi
mov ebx, 0x4dc0f8
je 0x426239
dec eax
je 0x426202
dec eax
je 0x4261b1
dec eax
jne case.0x4259a0.114
mov esi, dword [ebp + 0x4c]
mov edi, dword [ebp + 0x30]
xor eax, eax
cmp esi, 0xffffffff
sete al
xor ecx, ecx
test edi, edi
sete cl
test ecx, eax
jne case.0x4259a0.114
cmp dword [ebp + 0x58], 0
jne 0x426157
test edi, edi
je 0x42616a
push dword [ebp + 0x68]
push dword [ebp + 0x58]
push edi
push esi
call fcn.00413f3b
add esp, 0x10
mov dword [ebp + 0x10], eax
cmp dword [ebp + 0x38], 0
jl 0x42618b
jg 0x426178
cmp dword [ebp + 0x34], 0
jbe 0x42618b
push dword [ebp + 0x38]
push dword [ebp + 0x34]
push edi
push esi
call fcn.00414110
add esp, 0x10
mov dword [ebp + 0x10], eax
mov eax, dword [ebp + 0x10]
test eax, eax
jne 0x42648a
cmp dword [ebp + 0x20], eax
je 0x42648a
push dword [ebp + 0x20]
push edi
push esi
call fcn.0041c382
add esp, 0xc
jmp 0x4263a7
mov ecx, dword [ebp + 0x7c]
push 0x4c1f50
call fcn.0044e6d5
xor eax, eax
cmp dword [ebp + 0x4c], 0xffffffff
sete al
xor ecx, ecx
cmp dword [ebp + 0x30], esi
sete cl
test ecx, eax
je 0x4261e9
push dword [ebp]
push dword [ebp + 0x7c]
push dword [ebp + 0x24]
call fcn.00413a42
add esp, 0xc
jmp 0x42648a
push dword [ebp + 0x5c]
push dword [ebp + 0x7c]
push dword [ebp + 0x30]
push dword [ebp + 0x4c]
call fcn.00413bfc
add esp, 0x10
jmp 0x42648a
xor eax, eax
cmp dword [ebp + 0x30], esi
sete al
xor ecx, ecx
or eax, dword [ebp + 4]
cmp dword [ebp + 0x4c], 0xffffffff
sete cl
test ecx, eax
jne case.0x4259a0.114
push dword [ebp + 0x5c]
push dword [ebp + 0x1c]
push dword [ebp + 4]
push dword [ebp + 0x18]
push dword [ebp + 0x30]
push dword [ebp + 0x4c]
call fcn.0041c64e
add esp, 0x18
jmp 0x42648a
cmp dword [ebp + 0xc], esi
je 0x426257
cmp dword [ebp + 0x28], esi
jne 0x42624a
xor eax, eax
jmp 0x42648a
lea eax, [ebp + 0x50]
push eax
push dword [ebp + 0x28]
call dword [0x4dc074]
push 0x4c0a1c
push str.CurRamDisk
mov ecx, ebx
call fcn.0044451e
cmp byte [ebp + 0x63], 0
je 0x4262d1
movzx esi, byte [ebp + 0x63]
lea eax, [ebp - 0x144]
push eax
lea eax, [ebp + 0x50]
push eax
push dword [ebp + 0x48]
shl esi, 5
push dword [ebp + 0x28]
lea esi, [ebp + esi - 0x164]
call dword [0x4dc078]
test eax, eax
je 0x4262b8
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, ecx
xor edi, edi
or eax, edx
jne 0x4262a5
inc edi
mov eax, dword [esi + 8]
or eax, dword [esi + 0xc]
jne 0x4262b2
xor eax, eax
inc eax
jmp 0x4262b4
xor eax, eax
or eax, edi
je 0x4262c0
push 0xc
pop eax
jmp 0x42648a
add dword [ebp + 0x50], ecx
mov eax, dword [esi + 8]
mov dword [ebp + 0x34], eax
adc dword [ebp + 0x54], edx
mov eax, dword [esi + 0xc]
jmp 0x426346
cmp dword [ebp + 0xc], esi
je 0x426349
lea eax, [ebp - 0x144]
push eax
lea eax, [ebp + 0x50]
push eax
push dword [ebp + 0x48]
push dword [ebp + 0x28]
call dword [0x4dc078]
test eax, eax
je 0x426349
lea eax, [ebp - 0x144]
mov ecx, dword [eax]
xor edx, edx
or ecx, dword [eax + 4]
je 0x426301
inc edx
mov ecx, dword [eax + 8]
xor esi, esi
or ecx, dword [eax + 0xc]
je 0x42630c
inc esi
mov cl, byte [eax + 0x18]
cmp cl, 5
je 0x42631e
cmp cl, 0xf
je 0x42631e
xor ecx, ecx
inc ecx
jmp 0x426320
xor ecx, ecx
and ecx, esi
test edx, ecx
jne 0x426332
add eax, 0x20
lea ecx, [ebp - 0x44]
cmp eax, ecx
jb 0x4262f7
jmp 0x426349
mov ecx, dword [eax]
add dword [ebp + 0x50], ecx
mov ecx, dword [eax + 4]
adc dword [ebp + 0x54], ecx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ebp + 0x34], ecx
mov dword [ebp + 0x38], eax
mov esi, 0x4dcd58
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [ebp + 0x30]
test edi, edi
je 0x426379
push 0x4c5594
push edi
call fcn.004adebd
test eax, eax
pop ecx
pop ecx
jne 0x426379
call dword [0x4dc064]
mov word [edi], ax
mov dword [ebp + 0x2c], eax
push dword [ebp + 0x5c]
lea eax, [ebp + 0x50]
push dword [ebp + 0x20]
push edi
push dword [ebp + 8]
push dword [ebp + 0x28]
push dword [ebp + 0x68]
push eax
lea eax, [ebp + 0x34]
push eax
lea eax, [ebp + 0x4c]
push eax
call fcn.00424fe8
add esp, 0x24
push esi
mov dword [ebp + 0x10], eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test edi, edi
je 0x42640e
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenW]
push edi
call esi
cmp eax, 2
jne 0x4263c5
xor eax, eax
cmp word [edi + 2], 0x3a
sete al
jmp 0x4263e6
push edi
call esi
cmp eax, 3
jne 0x4263e4
lea eax, [edi + 2]
push 0x4c3a08
push eax
call fcn.004adebd
neg eax
pop ecx
sbb eax, eax
pop ecx
inc eax
jmp 0x4263e6
xor eax, eax
test eax, eax
je 0x42640e
push edi
push str.CurRamDisk
mov ecx, ebx
call fcn.0044451e
test byte [ebp + 0x5c], 1
jne 0x42640e
push dword [ebp + 0x1c]
movzx eax, word [edi]
push 1
push eax
call fcn.004138b8
add esp, 0xc
mov ebx, dword [ebp + 0x2c]
test bx, bx
je 0x426449
cmp dword [ebp + 0x24], 0
jne 0x426449
push 0xffffffffffffffff
push 0x4c5590
lea ecx, [ebp + 0x18]
call fcn.0044e6a3
mov esi, dword [ebp + 0x7c]
lea eax, [ebp + 0x18]
push eax
mov ecx, esi
call fcn.0044e703
lea ecx, [ebp + 0x18]
call fcn.0043e679
mov eax, dword [esi]
mov word [eax + 2], bx
jmp 0x426487
mov edi, dword [ebp + 0x7c]
push 0x42
mov ecx, edi
call fcn.00444e77
test bx, bx
mov eax, dword [edi]
mov word [eax], 0x2a
je 0x42646c
cmp dword [ebp + 0x4c], 0
mov eax, str._d__c:
jge 0x426471
mov eax, 0x4c12a0
movzx ecx, bx
push ecx
push dword [ebp + 0x4c]
push eax
mov eax, dword [edi]
inc eax
inc eax
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
mov eax, dword [ebp + 0x10]
pop edi
pop esi
pop ebx
add ebp, 0x6c
leave
ret