Function at 0x4b777c
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x39
push 0
push 0
dec ecx
jne 0x4b7785
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov dword [ebp - 8], ecx
mov dword [ebp - 4], edx
mov esi, eax
xor eax, eax
push ebp
push 0x4b872f
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, 0x4ce5f4
call fcn.004048c0
mov eax, 0x4b8740
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], 0xffffffff
mov dword [ebp - 0x14], 0xffffffff
xor ebx, ebx
mov byte [0x4ce6a8], 0
call fcn.00402b50
xor eax, eax
mov dword [0x4ce600], eax
xor eax, eax
mov dword [0x4ce60c], eax
xor eax, eax
mov dword [0x4ce608], eax
xor eax, eax
mov dword [0x4ce604], eax
xor eax, eax
mov dword [0x4ce610], eax
xor eax, eax
mov dword [0x4ce614], eax
xor eax, eax
mov dword [0x4ce630], eax
xor eax, eax
mov dword [0x4ce644], eax
xor eax, eax
mov dword [0x4ce624], eax
xor eax, eax
mov dword [0x4ce618], eax
xor eax, eax
mov dword [0x4ce634], eax
xor eax, eax
mov dword [0x4ce640], eax
xor eax, eax
mov dword [0x4ce628], eax
xor eax, eax
mov dword [0x4ce61c], eax
xor eax, eax
mov dword [0x4ce638], eax
xor eax, eax
mov dword [0x4ce63c], eax
xor eax, eax
mov dword [0x4ce62c], eax
xor eax, eax
mov dword [0x4ce620], eax
xor eax, eax
mov dword [0x4ce648], eax
lea eax, [ebp - 0x2c]
push eax
mov dword [ebp - 0x44], 3
mov byte [ebp - 0x40], 0
mov dword [ebp - 0x3c], 3
mov byte [ebp - 0x38], 0
mov dword [ebp - 0x34], esi
mov byte [ebp - 0x30], 6
lea edx, [ebp - 0x44]
mov ecx, 2
mov eax, 0x4b874c
call fcn.00409e5c
mov eax, dword [ebp - 0x2c]
call fcn.00404d70
push eax
call sub.kernel32.dll_GetDriveTypeA
mov dword [0x4ce5fc], eax
mov eax, dword [0x4ce5fc]
cmp eax, 6
ja case.0x4b78ab.3
jmp dword [eax*4 + 0x4b78b2]
mov ebx, 2
jmp 0x4b78f8
mov ebx, 3
jmp 0x4b78f8
mov ebx, 4
jmp 0x4b78f8
mov ebx, 5
jmp 0x4b78f8
mov ebx, 6
jmp 0x4b78f8
mov byte [0x4ce6a8], 1
cmp byte [0x4ce6a8], 0
je 0x4b794f
mov ebx, 7
push 0x4ce608
push 0x4ce60c
mov ecx, 0x4ce604
mov edx, 0x4ce600
mov eax, esi
call fcn.004b6728
test al, al
je 0x4b7935
mov edx, 0x4ce610
mov eax, esi
call fcn.004b6974
test al, al
jne 0x4b7939
xor eax, eax
jmp 0x4b793b
mov al, 1
mov byte [0x4ce6a8], al
mov eax, 0xffff
call fcn.004031e4
mov dword [0x4ce614], eax
cmp byte [0x4ce6a8], 0
je 0x4b8274
mov eax, dword [0x4ce604]
and eax, 0x3ff
mov dword [0x4ce620], eax
mov eax, dword [0x4ce614]
and eax, 0x7ff
shl eax, 0xa
or dword [0x4ce620], eax
mov eax, dword [0x4ce610]
and eax, 0xff00
shr eax, 3
or dword [0x4ce620], eax
mov eax, dword [0x4ce610]
and eax, 0xffffff
mov dword [0x4ce61c], eax
mov eax, dword [0x4ce614]
and eax, 0xf800
shl eax, 0xd
or dword [0x4ce61c], eax
mov eax, dword [ebp - 4]
and eax, 0x3fffffff
mov dword [0x4ce618], eax
mov eax, dword [0x4ce620]
add eax, eax
mov edx, dword [0x4ce61c]
sub edx, eax
add edx, dword [0x4ce618]
mov dword [0x4ce630], edx
mov eax, dword [0x4ce61c]
mov edx, eax
neg eax
lea eax, [eax + eax*2]
mov edx, dword [0x4ce620]
shl edx, 3
add eax, edx
mov edx, dword [0x4ce618]
lea edx, [edx + edx*4]
sub eax, edx
mov dword [0x4ce634], eax
mov eax, dword [0x4ce61c]
add eax, eax
mov edx, dword [0x4ce620]
add edx, edx
lea edx, [edx + edx*2]
sub eax, edx
mov edx, dword [0x4ce618]
add edx, edx
lea edx, [edx + edx*2]
add eax, edx
mov dword [0x4ce638], eax
cmp dword [ebp - 8], 1
jne 0x4b7a3d
mov edx, 1
mov eax, dword [ebp - 4]
call fcn.004b74ec
mov ebx, eax
cmp dword [ebp - 8], 0
jne 0x4b8274
lea ecx, [ebp - 0x148]
mov edx, 8
mov eax, dword [0x4ce634]
call fcn.004090cc
mov edx, dword [ebp - 0x148]
lea eax, [ebp - 0x144]
mov ecx, 0xff
call fcn.00404b54
lea edx, [ebp - 0x144]
mov eax, 0x4ce658
mov cl, 8
call fcn.00402ffc
mov edx, 0x4ce67c
mov eax, 0x4ce658
call fcn.004b6104
lea ecx, [ebp - 0x14c]
mov edx, 8
mov eax, dword [0x4ce638]
call fcn.004090cc
mov edx, dword [ebp - 0x14c]
lea eax, [ebp - 0x144]
mov ecx, 0xff
call fcn.00404b54
lea edx, [ebp - 0x144]
mov eax, 0x4ce664
mov cl, 8
call fcn.00402ffc
mov edx, 0x4ce670
mov eax, 0x4ce664
call fcn.004b6104
mov ebx, 0x17
mov ecx, dword [0x4cb06c]
mov eax, dword [0x4cadb8]
mov eax, dword [eax]
mov edx, dword [0x4b5a60]
call fcn.004614ec
lea edx, [ebp - 0x154]
mov eax, dword [0x4cb06c]
mov eax, dword [eax]
call fcn.004b5c64
mov eax, dword [ebp - 0x154]
lea edx, [ebp - 0x150]
call fcn.00408eb4
mov edx, dword [ebp - 0x150]
mov eax, 0x4ce5f0
call fcn.00404914
mov eax, dword [0x4cb06c]
mov eax, dword [eax]
call fcn.00403ad0
cmp dword [0x4ce5f0], 0
je 0x4b86d9
mov eax, dword [0x4ce5f0]
mov edx, 0x4b875c
call fcn.00404cbc
jne 0x4b7b6a
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.004b74ec
mov ebx, eax
jmp 0x4b86d9
mov edx, 0x63
mov eax, dword [ebp - 4]
call fcn.004b74ec
mov eax, dword [0x4ce5f0]
call fcn.00404b78
cmp eax, 8
jge 0x4b7bba
mov eax, dword [0x4ce5f0]
call fcn.00404b78
mov edx, 8
sub edx, eax
lea ecx, [ebp - 0x158]
mov al, 0x46
call fcn.00404f60
mov edx, dword [ebp - 0x158]
mov eax, 0x4ce5f0
mov ecx, dword [0x4ce5f0]
call fcn.00404bc4
lea eax, [ebp - 0x144]
mov edx, dword [0x4ce5f0]
mov ecx, 0xff
call fcn.00404b54
lea eax, [ebp - 0x144]
mov edx, 0x4ce688
call fcn.004b6258
mov ecx, dword [0x4cadb8]
mov ecx, dword [ecx]
mov dl, 1
mov eax, dword [0x4b5d00]
call fcn.00459e10
mov dword [0x4ce6a0], eax
xor eax, eax
push ebp
push 0x4b8210
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x4ce6a0]
mov eax, dword [eax + 0x318]
xor edx, edx
call fcn.00441634
mov eax, dword [0x4ce6a0]
mov eax, dword [eax + 0x310]
xor edx, edx
call fcn.00441634
lea eax, [ebp - 0x160]
mov dl, byte [0x4ce67d]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x160]
lea eax, [ebp - 0x164]
call fcn.00402ff0
lea eax, [ebp - 0x168]
mov dl, byte [0x4ce672]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x168]
lea eax, [ebp - 0x164]
mov cl, 2
call fcn.00402fc0
lea edx, [ebp - 0x164]
lea eax, [ebp - 0x16c]
call fcn.00402ff0
lea eax, [ebp - 0x168]
mov dl, byte [0x4ce67f]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x168]
lea eax, [ebp - 0x16c]
mov cl, 3
call fcn.00402fc0
lea edx, [ebp - 0x16c]
lea eax, [ebp - 0x174]
call fcn.00402ff0
lea eax, [ebp - 0x168]
mov dl, byte [0x4ce674]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x168]
lea eax, [ebp - 0x174]
mov cl, 4
call fcn.00402fc0
lea edx, [ebp - 0x174]
lea eax, [ebp - 0x17c]
call fcn.00402ff0
lea eax, [ebp - 0x168]
mov dl, byte [0x4ce681]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x168]
lea eax, [ebp - 0x17c]
mov cl, 5
call fcn.00402fc0
lea edx, [ebp - 0x17c]
lea eax, [ebp - 0x184]
call fcn.00402ff0
lea eax, [ebp - 0x168]
mov dl, byte [0x4ce676]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x168]
lea eax, [ebp - 0x184]
mov cl, 6
call fcn.00402fc0
lea edx, [ebp - 0x184]
lea eax, [ebp - 0x18c]
call fcn.00402ff0
lea eax, [ebp - 0x168]
mov dl, byte [0x4ce683]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x168]
lea eax, [ebp - 0x18c]
mov cl, 7
call fcn.00402fc0
lea edx, [ebp - 0x18c]
lea eax, [ebp - 0x198]
call fcn.00402ff0
lea eax, [ebp - 0x168]
mov dl, byte [0x4ce678]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x168]
lea eax, [ebp - 0x198]
mov cl, 8
call fcn.00402fc0
lea edx, [ebp - 0x198]
lea eax, [ebp - 0x15c]
call fcn.00404b1c
mov edx, dword [ebp - 0x15c]
mov eax, dword [0x4ce6a0]
mov eax, dword [eax + 0x2fc]
call fcn.00441634
lea eax, [ebp - 0x160]
mov dl, byte [0x4ce671]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x160]
lea eax, [ebp - 0x164]
call fcn.00402ff0
lea eax, [ebp - 0x168]
mov dl, byte [0x4ce68a]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x168]
lea eax, [ebp - 0x164]
mov cl, 2
call fcn.00402fc0
lea edx, [ebp - 0x164]
lea eax, [ebp - 0x16c]
call fcn.00402ff0
lea eax, [ebp - 0x168]
mov dl, byte [0x4ce673]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x168]
lea eax, [ebp - 0x16c]
mov cl, 3
call fcn.00402fc0
lea edx, [ebp - 0x16c]
lea eax, [ebp - 0x174]
call fcn.00402ff0
lea eax, [ebp - 0x168]
mov dl, byte [0x4ce68c]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x168]
lea eax, [ebp - 0x174]
mov cl, 4
call fcn.00402fc0
lea edx, [ebp - 0x174]
lea eax, [ebp - 0x17c]
call fcn.00402ff0
lea eax, [ebp - 0x168]
mov dl, byte [0x4ce675]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x168]
lea eax, [ebp - 0x17c]
mov cl, 5
call fcn.00402fc0
lea edx, [ebp - 0x17c]
lea eax, [ebp - 0x184]
call fcn.00402ff0
lea eax, [ebp - 0x168]
mov dl, byte [0x4ce68e]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x168]
lea eax, [ebp - 0x184]
mov cl, 6
call fcn.00402fc0
lea edx, [ebp - 0x184]
lea eax, [ebp - 0x18c]
call fcn.00402ff0
lea eax, [ebp - 0x168]
mov dl, byte [0x4ce677]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x168]
lea eax, [ebp - 0x18c]
mov cl, 7
call fcn.00402fc0
lea edx, [ebp - 0x18c]
lea eax, [ebp - 0x198]
call fcn.00402ff0
lea eax, [ebp - 0x168]
mov dl, byte [0x4ce690]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x168]
lea eax, [ebp - 0x198]
mov cl, 8
call fcn.00402fc0
lea edx, [ebp - 0x198]
lea eax, [ebp - 0x19c]
call fcn.00404b1c
mov edx, dword [ebp - 0x19c]
mov eax, dword [0x4ce6a0]
mov eax, dword [eax + 0x300]
call fcn.00441634
lea eax, [ebp - 0x160]
mov dl, byte [0x4ce689]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x160]
lea eax, [ebp - 0x164]
call fcn.00402ff0
lea eax, [ebp - 0x168]
mov dl, byte [0x4ce67e]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x168]
lea eax, [ebp - 0x164]
mov cl, 2
call fcn.00402fc0
lea edx, [ebp - 0x164]
lea eax, [ebp - 0x16c]
call fcn.00402ff0
lea eax, [ebp - 0x168]
mov dl, byte [0x4ce68b]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x168]
lea eax, [ebp - 0x16c]
mov cl, 3
call fcn.00402fc0
lea edx, [ebp - 0x16c]
lea eax, [ebp - 0x174]
call fcn.00402ff0
lea eax, [ebp - 0x168]
mov dl, byte [0x4ce680]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x168]
lea eax, [ebp - 0x174]
mov cl, 4
call fcn.00402fc0
lea edx, [ebp - 0x174]
lea eax, [ebp - 0x17c]
call fcn.00402ff0
lea eax, [ebp - 0x168]
mov dl, byte [0x4ce68d]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x168]
lea eax, [ebp - 0x17c]
mov cl, 5
call fcn.00402fc0
lea edx, [ebp - 0x17c]
lea eax, [ebp - 0x184]
call fcn.00402ff0
lea eax, [ebp - 0x168]
mov dl, byte [0x4ce682]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x168]
lea eax, [ebp - 0x184]
mov cl, 6
call fcn.00402fc0
lea edx, [ebp - 0x184]
lea eax, [ebp - 0x18c]
call fcn.00402ff0
lea eax, [ebp - 0x168]
mov dl, byte [0x4ce68f]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x168]
lea eax, [ebp - 0x18c]
mov cl, 7
call fcn.00402fc0
lea edx, [ebp - 0x18c]
lea eax, [ebp - 0x198]
call fcn.00402ff0
lea eax, [ebp - 0x168]
mov dl, byte [0x4ce684]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x168]
lea eax, [ebp - 0x198]
mov cl, 8
call fcn.00402fc0
lea edx, [ebp - 0x198]
lea eax, [ebp - 0x1a0]
call fcn.00404b1c
mov edx, dword [ebp - 0x1a0]
mov eax, dword [0x4ce6a0]
mov eax, dword [eax + 0x324]
call fcn.00441634
mov eax, dword [0x4ce6a0]
mov edx, dword [eax]
call dword [edx + 0xe8]
lea eax, [ebp - 0x198]
push eax
lea edx, [ebp - 0x1a8]
mov eax, dword [0x4ce6a0]
mov eax, dword [eax + 0x318]
call fcn.00441604
mov edx, dword [ebp - 0x1a8]
lea eax, [ebp - 0x144]
mov ecx, 0xff
call fcn.00404b54
lea eax, [ebp - 0x144]
lea ecx, [ebp - 0x14]
lea edx, [ebp - 0x10]
call fcn.004b5ff4
lea edx, [ebp - 0x198]
lea eax, [ebp - 0x1a4]
call fcn.00404b1c
mov edx, dword [ebp - 0x1a4]
mov eax, dword [0x4ce6a0]
mov eax, dword [eax + 0x310]
call fcn.00441634
lea edx, [ebp - 0x1ac]
mov eax, dword [0x4ce6a0]
mov eax, dword [eax + 0x310]
call fcn.00441604
mov edx, dword [ebp - 0x1ac]
lea eax, [ebp - 0x144]
mov ecx, 0xff
call fcn.00404b54
lea eax, [ebp - 0x144]
mov edx, 0x4ce694
call fcn.004b6548
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4b8217
mov eax, dword [0x4ce6a0]
call fcn.00403ad0
ret
cmp byte [0x4ce6a8], 0
je 0x4b8694
mov byte [0x4ce6a8], 0
xor eax, eax
mov dword [0x4ce6a4], eax
mov ebx, 8
xor eax, eax
mov dword [ebp - 0xc], eax
xor edx, edx
push ebp
push 0x4b8675
push dword fs:[edx]
mov dword fs:[edx], esp
mov dl, 1
mov eax, dword [0x4aee38]
call fcn.004aef38
mov dword [ebp - 0xc], eax
mov edx, 0x80000002
mov eax, dword [ebp - 0xc]
call fcn.004aefd8
mov eax, dword [ebp - 0xc]
mov dword [eax + 0x18], 0x20019
lea edx, [ebp - 0x1b8]
mov eax, dword [ebp - 4]
call fcn.00409068
mov ecx, dword [ebp - 0x1b8]
lea eax, [ebp - 0x1b4]
mov edx, dword [0x4ca254]
call fcn.00404bc4
mov edx, dword [ebp - 0x1b4]
xor ecx, ecx
mov eax, dword [ebp - 0xc]
call fcn.004af040
cmp al, 1
jne 0x4b8507
push 0x10
lea ecx, [ebp - 0x28]
mov edx, dword [0x4ca258]
mov eax, dword [ebp - 0xc]
call fcn.004af494
cmp eax, 0x10
jne 0x4b866b
mov eax, dword [ebp - 4]
and eax, 0x80000003
jns 0x4b8335
dec eax
or eax, 0xfffffffc
inc eax
lea edx, [eax]
and edx, 0x80000003
jns 0x4b8344
dec edx
or edx, 0xfffffffc
inc edx
mov edx, dword [ebp + edx*4 - 0x28]
mov dword [0x4ce648], edx
lea edx, [eax + 1]
and edx, 0x80000003
jns 0x4b835e
dec edx
or edx, 0xfffffffc
inc edx
mov edx, dword [ebp + edx*4 - 0x28]
mov dword [0x4ce644], edx
lea edx, [eax + 2]
and edx, 0x80000003
jns 0x4b8378
dec edx
or edx, 0xfffffffc
inc edx
mov edx, dword [ebp + edx*4 - 0x28]
mov dword [0x4ce640], edx
add eax, 3
and eax, 0x80000003
jns 0x4b8391
dec eax
or eax, 0xfffffffc
inc eax
mov eax, dword [ebp + eax*4 - 0x28]
mov dword [0x4ce63c], eax
mov eax, dword [0x4ce648]
call fcn.004b6690
sub eax, 0x585c912
mov dword [0x4ce648], eax
mov eax, dword [0x4ce644]
call fcn.004b6690
mov dword [0x4ce644], eax
mov eax, dword [0x4ce640]
call fcn.004b6690
mov dword [0x4ce640], eax
mov eax, dword [0x4ce63c]
call fcn.004b6690
mov dword [0x4ce63c], eax
mov eax, dword [0x4ce644]
lea eax, [eax + eax*8]
mov edx, dword [0x4ce640]
lea edx, [edx + edx*2]
add eax, edx
add eax, dword [0x4ce63c]
shr eax, 1
mov dword [0x4ce628], eax
mov eax, dword [0x4ce644]
shl eax, 2
mov edx, dword [0x4ce640]
add edx, edx
add eax, edx
add eax, dword [0x4ce63c]
shr eax, 1
mov dword [0x4ce62c], eax
mov eax, dword [0x4ce644]
mov edx, dword [0x4ce640]
add eax, edx
add eax, dword [0x4ce63c]
shr eax, 1
mov dword [0x4ce624], eax
and dword [0x4ce62c], 0x1fe003ff
and dword [0x4ce628], 0xffffff
mov eax, dword [0x4ce620]
and eax, 0x1fe003ff
cmp eax, dword [0x4ce62c]
jne 0x4b84fd
mov eax, dword [0x4ce61c]
and eax, 0xffffff
cmp eax, dword [0x4ce628]
jne 0x4b84fd
mov eax, dword [0x4ce648]
cmp eax, dword [ebp - 4]
jne 0x4b84fd
cmp dword [ebp - 8], 0
jne 0x4b8495
mov ebx, 1
mov byte [0x4ce6a8], 1
jmp 0x4b866b
lea ecx, [ebp - 0x1c0]
mov edx, dword [0x4ca25c]
mov eax, dword [ebp - 0xc]
call fcn.004af408
mov eax, dword [ebp - 0x1c0]
lea ecx, [ebp - 0x1bc]
mov edx, 0x4b8768
call fcn.004b6b68
mov edx, dword [ebp - 0x1bc]
mov eax, 0x4ce5f0
call fcn.00404914
cmp dword [0x4ce5f0], 0
jne 0x4b84df
mov ebx, 0x17
jmp 0x4b84e8
xor ebx, ebx
mov byte [0x4ce6a8], 1
mov eax, dword [ebp - 0xc]
call fcn.004aefa8
mov eax, dword [ebp - 0xc]
call fcn.00403ad0
jmp 0x4b866b
mov ebx, 0xb
jmp 0x4b866b
cmp dword [ebp - 8], 0
jne 0x4b8666
mov eax, dword [ebp - 4]
add eax, 0x585c912
call fcn.004b64b0
mov dword [0x4ce648], eax
mov eax, dword [0x4ce630]
call fcn.004b64b0
mov dword [0x4ce644], eax
mov eax, dword [0x4ce634]
call fcn.004b64b0
mov dword [0x4ce640], eax
mov eax, dword [0x4ce638]
call fcn.004b64b0
mov dword [0x4ce63c], eax
mov eax, dword [ebp - 4]
and eax, 0x80000003
jns 0x4b855f
dec eax
or eax, 0xfffffffc
inc eax
lea edx, [eax]
and edx, 0x80000003
jns 0x4b856e
dec edx
or edx, 0xfffffffc
inc edx
mov ecx, dword [0x4ce648]
mov dword [ebp + edx*4 - 0x28], ecx
lea edx, [eax + 1]
and edx, 0x80000003
jns 0x4b8588
dec edx
or edx, 0xfffffffc
inc edx
mov ecx, dword [0x4ce644]
mov dword [ebp + edx*4 - 0x28], ecx
lea edx, [eax + 2]
and edx, 0x80000003
jns 0x4b85a2
dec edx
or edx, 0xfffffffc
inc edx
mov ecx, dword [0x4ce640]
mov dword [ebp + edx*4 - 0x28], ecx
add eax, 3
and eax, 0x80000003
jns 0x4b85bb
dec eax
or eax, 0xfffffffc
inc eax
mov edx, dword [0x4ce63c]
mov dword [ebp + eax*4 - 0x28], edx
mov eax, dword [ebp - 0xc]
mov dword [eax + 0x18], 0x20006
lea edx, [ebp - 0x1c8]
mov eax, dword [ebp - 4]
call fcn.00409068
mov ecx, dword [ebp - 0x1c8]
lea eax, [ebp - 0x1c4]
mov edx, dword [0x4ca254]
call fcn.00404bc4
mov edx, dword [ebp - 0x1c4]
mov cl, 1
mov eax, dword [ebp - 0xc]
call fcn.004af040
cmp al, 1
jne 0x4b865f
push 0x10
lea ecx, [ebp - 0x28]
mov edx, dword [0x4ca258]
mov eax, dword [ebp - 0xc]
call fcn.004af480
lea ecx, [ebp - 0x1cc]
mov edx, 0x4b8768
mov eax, dword [0x4ce5f0]
call fcn.004b6b68
mov ecx, dword [ebp - 0x1cc]
mov edx, dword [0x4ca25c]
mov eax, dword [ebp - 0xc]
call fcn.004af3dc
mov eax, dword [ebp - 0xc]
call fcn.004aefa8
mov eax, dword [ebp - 0xc]
call fcn.00403ad0
xor ebx, ebx
mov byte [0x4ce6a8], 1
jmp 0x4b866b
mov ebx, 9
jmp 0x4b866b
mov ebx, 0xb
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4b8694
cmp byte [0x4ce6a8], 0
je 0x4b86d9
cmp dword [ebp - 8], 0
jne 0x4b86c1
mov eax, dword [ebp - 0x14]
sub eax, 1
jb 0x4b86af
je 0x4b86b9
jmp 0x4b86c1
mov eax, 0x4b878c
mov dword [ebp - 0x18], eax
jmp 0x4b86c1
mov eax, 0x4b8790
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 8]
push eax
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x18]
call fcn.004b6c60
test eax, eax
je 0x4b86d9
mov ebx, eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4b8736
lea eax, [ebp - 0x1cc]
mov edx, 8
call fcn.004048e4
lea eax, [ebp - 0x1ac]
mov edx, 2
call fcn.004048e4
lea eax, [ebp - 0x1a4]
mov edx, 3
call fcn.004048e4
lea eax, [ebp - 0x15c]
mov edx, 6
call fcn.004048e4
lea eax, [ebp - 0x2c]
call fcn.004048c0
ret