Function at 0x41b3a1
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x58
push esi
push edi
mov edi, 0x4c1b94
push edi
mov esi, ecx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
test byte [esi + 0xd], 2
je 0x41b3c4
xor esi, esi
jmp 0x41bfbd
mov eax, dword [ebp + 8]
add eax, 0xfffffff8
lea ecx, [ebp + 8]
mov dword [ebp - 0x30], eax
call fcn.0040e2c3
test byte [esi + 0xc], 1
mov byte [ebp - 0x21], 0
mov byte [ebp - 6], 0
mov byte [ebp - 1], 0
mov byte [ebp - 0x1d], 1
je 0x41b3f8
cmp dword [0x4c0eb0], 0
mov byte [ebp - 0xd], 1
jne 0x41b3fc
mov byte [ebp - 0xd], 0
or dword [ebp - 0x48], 0xffffffff
cmp dword [ebp + 0xc], 0xffffffff
push ebx
mov byte [ebp - 0x11], 0
mov byte [ebp - 3], 0
mov byte [ebp - 0x20], 0
mov byte [ebp - 0x15], 0
mov dword [ebp - 0x4c], 0xfff80000
mov ebx, 0x4a69d4
jne 0x41b43a
mov eax, dword [0x4bf2b8]
mov dword [ebp - 0x4c], eax
mov eax, dword [0x4bf2bc]
mov byte [ebp - 6], 2
mov dword [ebp - 0x48], eax
mov dword [ebp + 0xc], ebx
test byte [ebp + 0xc], 1
je 0x41b44c
and dword [ebp + 0xc], 0xfffffffe
mov byte [ebp - 0xd], 0
mov byte [ebp - 0x1d], 0
mov ecx, dword [ebp + 8]
xor eax, eax
cmp word [ecx], ax
lea ecx, [ebp - 0x3c]
setne byte [ebp - 0x12]
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], al
mov byte [ebp - 2], al
mov dword [ebp - 0x54], eax
call fcn.0043dd7e
mov al, byte [esi + 0xc]
mov cl, al
and cl, 1
mov byte [ebp - 0x13], cl
mov cl, al
shr al, 2
and al, 1
mov byte [ebp - 0x1e], al
mov al, byte [esi + 0xc]
shr al, 3
and al, 1
mov byte [ebp - 0x1f], al
mov al, byte [esi + 0xc]
shr al, 4
and al, 1
mov byte [ebp - 0xe], al
mov al, byte [esi + 0xc]
mov dword [ebp - 0x50], ebx
mov bl, byte [esi + 0xc]
xor edx, edx
shr cl, 1
shr al, 5
and cl, 1
and al, 1
shr bl, 6
push edi
mov dword [ebp - 0x58], edx
mov byte [ebp - 5], 0xff
mov byte [ebp - 0xf], cl
mov byte [ebp - 0x10], al
and bl, 1
mov byte [ebp - 0x14], 0xff
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x40], edx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [ebp + 8]
mov ax, word [ecx]
cmp ax, 0x2d
mov dword [ebp - 0xc], 0x2a
jne 0x41b4ea
mov dword [ebp - 0xc], 0x2d
cmp ax, word [ebp - 0xc]
jne 0x41b548
mov ax, word [ebp - 0xc]
cmp word [ecx + 2], ax
jne 0x41b548
xor eax, eax
inc eax
add ecx, 4
inc dword [ebp - 0x28]
push eax
push ecx
push 0x4aa4b4
mov dword [ebp - 0x1c], eax
mov dword [ebp + 8], ecx
call fcn.0043917b
add esp, 0xc
test al, al
je 0x41b63a
mov eax, dword [ebp + 8]
cmp word [eax + 2], 0x2d
jne 0x41b618
mov byte [ebp - 0xe], 0
lea eax, [ebp + 8]
push eax
call fcn.00405196
pop ecx
mov ecx, dword [ebp + 8]
mov ax, word [ebp - 0xc]
cmp word [ecx], ax
je 0x41b4f0
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp dword [ebp - 0x1c], 0
mov eax, dword [ebp + 8]
je 0x41b562
cmp word [eax], 0
mov byte [ebp - 1], 1
je 0x41b566
mov byte [ebp - 1], 0
cmp word [eax], 0x2a
jne 0x41b58c
inc eax
inc eax
mov dword [ebp + 8], eax
cmp word [eax], 0x3f
mov byte [ebp - 4], 1
jne 0x41b584
inc eax
inc eax
mov byte [ebp - 2], 1
mov dword [ebp + 8], eax
lea ecx, [ebp + 8]
call fcn.0040e2c3
push dword [ebp + 8]
call fcn.0041161a
cmp byte [ebp - 4], 0
pop ecx
mov dword [ebp + 8], eax
je 0x41b5ae
cmp byte [ebp - 2], 0
jne 0x41b5ae
cmp word [eax], 0
mov byte [ebp - 2], 1
je 0x41b5b2
mov byte [ebp - 2], 0
mov ax, word [eax]
xor ecx, ecx
cmp ax, cx
jne 0x41b5ca
cmp dword [ebp - 0x1c], ecx
jne 0x41b5ca
cmp byte [ebp - 2], cl
jne 0x41b9cc
cmp dword [0x4bf2bc], ecx
jl 0x41b9cc
jg 0x41b5e4
cmp dword [0x4bf2b8], ecx
jbe 0x41b9cc
cmp byte [ebp - 6], 0
jg 0x41b9cc
cmp ax, cx
jne 0x41b99e
mov al, byte [esi + 0xc]
and al, 1
cmp byte [ebp - 0x13], al
jne 0x41b99e
mov eax, dword [ebp - 0x40]
cmp dword [ebp - 0x28], eax
jne 0x41b99e
xor esi, esi
jmp 0x41bfac
movsx ecx, byte [0x4c0f4c]
xor eax, eax
mov al, byte [esi + 0xd]
shr eax, 1
and eax, 1
or eax, ecx
jne 0x41b532
mov byte [ebp - 0xe], 1
jmp 0x41b532
push 5
push dword [ebp + 8]
push str.lock:
call fcn.0043917b
add esp, 0xc
test al, al
je 0x41b6e5
inc byte [ebp - 1]
and dword [ebp - 0x38], 0
and dword [ebp - 0x34], 0
add dword [ebp + 8], 0xa
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp + 8]
push eax
call fcn.0048159f
mov eax, dword [0x4bf2bc]
test eax, eax
pop ecx
pop ecx
jl 0x41b6b6
mov ecx, dword [0x4bf2b8]
jg 0x41b687
test ecx, ecx
jbe 0x41b6b6
cmp byte [ebp - 6], 1
je 0x41b6b6
cmp byte [ebp - 1], 1
jne 0x41b532
mov edx, dword [ebp - 0x38]
cmp ecx, edx
jne 0x41b532
mov ecx, dword [ebp - 0x34]
cmp eax, ecx
jne 0x41b532
mov byte [ebp - 6], 1
mov dword [ebp - 0x4c], edx
jmp 0x41b6c9
mov ecx, dword [ebp - 0x34]
test ecx, ecx
jl 0x41b6d1
mov eax, dword [ebp - 0x38]
jg 0x41b6c6
test eax, eax
jbe 0x41b6d1
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], ecx
jmp 0x41b532
or dword [ebp - 0x48], 0xffffffff
mov byte [ebp - 0x21], 1
mov dword [ebp - 0x4c], 0xfff80000
jmp 0x41b532
push 3
push dword [ebp + 8]
push 0x4aa4a8
call fcn.0043917b
add esp, 0xc
test al, al
je 0x41b735
mov eax, dword [ebp + 8]
mov ax, word [eax + 6]
cmp ax, 0x31
jb 0x41b72e
cmp ax, 0x39
ja 0x41b72e
movsx ecx, byte [0x4c0f4c]
xor eax, eax
mov al, byte [esi + 0xd]
shr eax, 1
and eax, 1
or eax, ecx
jne 0x41b532
mov bl, 1
jmp 0x41b532
xor bl, bl
jmp 0x41b532
push 1
push dword [ebp + 8]
push 0x4aa4a4
call fcn.0043917b
add esp, 0xc
test al, al
je 0x41b75c
mov eax, dword [ebp + 8]
cmp word [eax + 2], 0x2d
setne byte [ebp - 0x1e]
jmp 0x41b532
push 2
push dword [ebp + 8]
push 0x4aa4a0
call fcn.0043917b
add esp, 0xc
test al, al
je 0x41b783
mov eax, dword [ebp + 8]
cmp word [eax + 4], 0x2d
setne byte [ebp - 0x1f]
jmp 0x41b532
push 2
push dword [ebp + 8]
push 0x4aa49c
call fcn.0043917b
add esp, 0xc
test al, al
je 0x41b7cb
mov eax, dword [ebp + 8]
mov ax, word [eax + 4]
cmp ax, 0x31
jb 0x41b7c2
cmp ax, 0x39
ja 0x41b7c2
cmp byte [0x4c0f4c], 0
jne 0x41b532
mov byte [ebp - 0x10], 1
jmp 0x41b532
mov byte [ebp - 0x10], 0
jmp 0x41b532
push 4
push dword [ebp + 8]
push str.RAW
call fcn.0043917b
add esp, 0xc
test al, al
je 0x41b813
mov eax, dword [ebp + 8]
mov ax, word [eax + 8]
cmp ax, 0x31
jb 0x41b80a
cmp ax, 0x39
ja 0x41b80a
cmp byte [0x4c0f4c], 0
jne 0x41b532
mov byte [ebp - 0xf], 1
jmp 0x41b532
mov byte [ebp - 0xf], 0
jmp 0x41b532
push 3
push dword [ebp + 8]
push 0x4aa490
call fcn.0043917b
add esp, 0xc
test al, al
je 0x41b84e
mov eax, dword [ebp + 8]
mov ax, word [eax + 6]
cmp ax, 0x31
jb 0x41b841
cmp ax, 0x39
ja 0x41b841
push 3
pop eax
jmp 0x41b843
xor eax, eax
mov byte [ebp - 4], al
mov byte [ebp - 0x14], al
jmp 0x41b532
push 2
lea eax, [ebp + 8]
push eax
push 0x4aa48c
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x41b86e
mov byte [ebp - 4], 1
jmp 0x41b53c
push 3
lea eax, [ebp + 8]
push eax
push 0x4aa488
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x41b88b
mov byte [ebp - 2], 1
jmp 0x41b865
push 3
push dword [ebp + 8]
push 0x4aa484
call fcn.0043917b
add esp, 0xc
test al, al
je 0x41b8da
mov eax, dword [ebp + 8]
mov ax, word [eax + 6]
inc dword [ebp - 0x40]
cmp ax, 0x31
jb 0x41b8cd
cmp ax, 0x39
ja 0x41b8cd
cmp byte [0x4c0f4c], 0
jne 0x41b532
mov byte [ebp - 5], 1
jmp 0x41b532
and byte [esi + 0xc], 0xfe
mov byte [ebp - 5], 0
jmp 0x41b532
push 1
lea eax, [ebp + 8]
push eax
push 0x4aa480
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x41b8fa
mov byte [ebp - 0x11], 1
jmp 0x41b53c
push 3
lea eax, [ebp + 8]
push eax
push 0x4aa47c
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x41b91a
mov byte [ebp - 3], 1
jmp 0x41b53c
push 4
lea eax, [ebp + 8]
push eax
push str.vol
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x41b93a
mov byte [ebp - 3], 3
jmp 0x41b53c
push 4
lea eax, [ebp + 8]
push eax
push str.part
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x41b95a
mov byte [ebp - 3], 2
jmp 0x41b53c
push 3
lea eax, [ebp + 8]
push eax
push 0x4aa468
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x41b97a
mov byte [ebp - 0x20], 1
jmp 0x41b53c
push 4
lea eax, [ebp + 8]
push eax
push str.abak
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x41b532
mov byte [ebp - 0x15], 1
jmp 0x41b53c
push 0
push 0
push 5
push dword [ebp - 0x30]
mov ecx, esi
call fcn.0041b06a
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push 1
call fcn.0040f1d7
pop ecx
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 5
pop esi
jmp 0x41bfac
cmp byte [ebp - 1], 0
jne 0x41bf15
xor edi, edi
cmp byte [esi + 0x90], 0
je 0x41b9ea
cmp ax, di
mov byte [ebp - 1], 1
jne 0x41b9ee
mov byte [ebp - 1], 0
cmp byte [ebp - 0x12], 0
je 0x41ba0d
test byte [esi + 0xc], 1
je 0x41ba0d
cmp byte [ebp - 0x1d], 0
je 0x41ba0d
push edi
push edi
push edi
push dword [ebp - 0x30]
mov ecx, esi
call fcn.0041b06a
cmp byte [ebp - 1], 0
je 0x41bade
lea ecx, [ebp - 0x40]
mov byte [esi + 0x90], 0
call fcn.0043dd7e
push str._CurFile_
lea ecx, [ebp - 0xc]
call fcn.00446497
push 1
push edi
lea eax, [ebp - 0x40]
push eax
push dword [ebp - 0xc]
mov ecx, esi
call fcn.0044bafc
lea ecx, [ebp - 0xc]
call fcn.00437e1a
push str.ENTER:
lea ecx, [ebp - 0x28]
call fcn.00446497
push dword [ebp - 0x40]
lea ecx, [ebp - 0x28]
call fcn.0043ddea
test byte [esi + 0xc], 1
mov eax, dword [0x4c0fac]
mov dword [ebp - 0xc], eax
je 0x41ba84
push dword [ebp + 0xc]
mov ecx, esi
push 0x11
push edi
push dword [ebp - 0x28]
call fcn.0041b06a
jmp 0x41ba9b
cmp dword [0x4c0fa8], edi
jne 0x41ba9b
push 0x10000
mov ecx, 0x4c0fa8
call fcn.0043ddc3
mov edi, dword [ebp - 0xc]
mov eax, dword [0x4c0fa8]
add edi, edi
add eax, edi
push eax
lea ecx, [ebp - 0x3c]
call fcn.004464ff
mov eax, dword [ebp - 0xc]
mov dword [0x4c0fac], eax
mov eax, dword [0x4c0fa8]
and word [edi + eax], 0
cmp byte [ebp - 0xd], 0
je 0x41bacc
mov byte [ebp - 0x12], 0
lea ecx, [ebp - 0x28]
call fcn.00437e1a
lea ecx, [ebp - 0x40]
call fcn.00437e1a
xor edi, edi
push 1
call fcn.0040f1d7
cmp byte [ebp - 2], 0
pop ecx
je 0x41bafa
cmp dword [ebp - 0x1c], edi
jne 0x41bf15
jmp 0x41bfa4
mov al, byte [0x4c0f4d]
or al, byte [ebp - 0x20]
je 0x41bba8
push 0
push 1
push 0x4a69d4
push 0x4a7c2c
mov ecx, esi
call fcn.004130ae
test eax, eax
je 0x41bba8
cmp dword [eax], 0
je 0x41bba8
add eax, 8
push 0x20
push eax
call fcn.0040f311
mov edx, eax
test edx, edx
pop ecx
pop ecx
je 0x41bba8
mov ecx, edx
call fcn.0040f34e
xor eax, eax
lea edi, [edx + 0x14]
mov dword [edi], eax
mov cl, byte [0x4c4012]
mov byte [edx + 5], cl
mov dword [edi], eax
mov cl, byte [0x4c0f4c]
mov byte [edx + 6], cl
mov cl, byte [0x4c0f4d]
mov byte [edx + 4], cl
mov ecx, dword [0x4bf2b8]
mov dword [edx + 8], ecx
mov ecx, dword [0x4bf2bc]
mov dword [edx + 0xc], ecx
mov ecx, dword [0x4c0eb0]
push 0xffffffffffffffff
mov dword [edx + 0x10], ecx
push 0x4c0fb8
push str.__LOGS
mov ecx, esi
mov dword [0x4c0eb0], eax
call fcn.00413152
test eax, eax
je 0x41bba8
push dword [eax]
mov ecx, edi
call fcn.0044655b
mov eax, dword [0x4c0eb0]
test eax, eax
je 0x41bbb8
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edi, dword [ebp + 8]
and dword [0x4c0eb0], 0
and dword [0x4c0fac], 0
or dword [0x4bf2bc], 0xffffffff
mov dword [0x4bf2b8], 0xfff80000
mov byte [0x4c0f4d], 0
cmp word [edi], 0
je 0x41bef8
cmp byte [ebp - 4], 0
mov cl, byte [0x4c4012]
setne al
and cl, 0xfe
or al, cl
cmp byte [ebp - 3], 0
mov byte [0x4c4012], al
je 0x41bd2e
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
add eax, 0x108
lea edi, [eax + eax]
push edi
lea ecx, [ebp - 0x58]
mov dword [ebp - 0x54], eax
call fcn.0043ddc3
mov eax, dword [ebp - 0x58]
xor ecx, ecx
push ecx
add edi, eax
push edi
mov word [edi], cx
mov word [eax], cx
push 0x105
push dword [ebp + 8]
mov dword [ebp - 0xc], eax
call fcn.0043e52f
mov ax, word [edi]
add esp, 0x10
test ax, ax
je 0x41bd2e
cmp word [edi + 2], 0x3a
jne 0x41bd2e
and word [ebp - 0x32], 0
test byte [ebp - 3], 1
mov word [ebp - 0x38], ax
mov word [ebp - 0x36], 0x3a
mov word [ebp - 0x34], 0x5c
mov dword [ebp + 8], edi
je 0x41bc9b
push dword [ebp - 0x54]
lea eax, [ebp - 0x38]
push dword [ebp - 0xc]
push eax
call dword [sym.imp.KERNEL32.dll_GetVolumeNameForVolumeMountPointW]
test eax, eax
je 0x41bc9b
mov eax, dword [ebp - 0xc]
cmp word [eax], 0
jne 0x41bd07
test byte [ebp - 3], 2
je 0x41bd2e
push 0xf0
lea ecx, [ebp - 0x1c]
call fcn.0043dd9c
mov ax, word [edi]
mov ecx, dword [ebp - 0x1c]
mov word [ecx], ax
mov ecx, dword [ebp - 0x1c]
xor eax, eax
push eax
push eax
push eax
push 0xac
push 0xffffffffffffffff
mov word [ecx + 2], ax
lea eax, [ebp - 0x1c]
push 0xffffffffffffffff
push eax
call fcn.004592c5
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax]
add esp, 0x1c
test ecx, ecx
jl 0x41bd26
mov eax, dword [eax + 4]
test eax, eax
jle 0x41bd26
push eax
push ecx
push str._Harddisk_uPartition_u_
push dword [ebp - 0xc]
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
lea ecx, [ebp - 0x1c]
call fcn.00437e1a
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
add edi, 6
push edi
mov edi, dword [ebp - 0xc]
lea eax, [edi + eax*2]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
mov dword [ebp + 8], edi
jmp 0x41bd2e
lea ecx, [ebp - 0x1c]
call fcn.00437e1a
push dword [ebp - 0x3c]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea ecx, [eax + 0x9e]
cmp dword [0x4c0fb0], ecx
mov dword [ebp - 0x28], eax
jge 0x41bd5d
add eax, 0x10008
push eax
mov ecx, 0x4c0fa8
mov dword [0x4c0fb0], eax
call fcn.0043ddc3
mov eax, dword [0x4c0fa8]
xor edi, edi
mov word [eax], di
push dword [ebp + 8]
push str.CONOUT_
call fcn.004391ba
test al, al
pop ecx
pop ecx
mov byte [ebp - 0x13], al
je 0x41bd88
push 0x102
call fcn.0043c1e1
pop ecx
xor eax, eax
cmp byte [ebp - 0x11], al
push edi
setne al
push edi
mov ecx, 0x4c0eb0
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x40], edi
lea eax, [eax + eax + 2]
push eax
push edi
push 7
push 0x40000000
push dword [ebp + 8]
call fcn.004051d2
mov cl, byte [ebp - 0x15]
neg eax
sbb eax, eax
neg eax
push eax
mov byte [0x4c0f4d], cl
call fcn.00432f36
mov dword [ebp - 0x54], eax
mov eax, dword [0x4c0eb0]
cmp eax, edi
pop ecx
je 0x41bdf2
mov edx, dword [ebp + 8]
xor ecx, ecx
cmp byte [ebp - 0x11], cl
mov dword [ebp - 0x50], edx
je 0x41bdf2
push 2
lea edx, [ebp - 0x44]
push edx
xor edx, edx
push edx
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
cmp byte [ebp - 0x13], 0
jne 0x41be21
cmp dword [ebp - 0x40], edi
jg 0x41be21
jl 0x41be04
cmp dword [ebp - 0x44], edi
ja 0x41be21
mov eax, dword [0x4c0fa8]
mov word [eax], 0xfeff
mov eax, dword [0x4c0fa8]
mov word [eax + 2], di
mov dword [0x4c0fac], 1
mov eax, dword [ebp - 0x28]
mov ecx, dword [0x4c0fac]
inc eax
push eax
mov eax, dword [0x4c0fa8]
push dword [ebp - 0x3c]
lea eax, [eax + ecx*2]
push eax
call fcn.0040515a
mov eax, dword [ebp - 0x28]
add dword [0x4c0fac], eax
add esp, 0xc
cmp byte [ebp - 0x12], 0
je 0x41be64
test byte [esi + 0xc], 1
je 0x41be64
push dword [ebp + 0xc]
mov ecx, esi
push edi
push edi
push dword [ebp - 0x30]
call fcn.0041b06a
mov eax, dword [0x4c0eb0]
cmp eax, edi
je 0x41bec1
test byte [0x4c1330], 2
je 0x41bec1
push eax
call dword [sym.imp.KERNEL32.dll_GetLargestConsoleWindowSize]
cmp ax, 0x55
mov dword [ebp - 0x30], eax
jl 0x41be8b
add word [ebp - 0x30], 0xfffb
cmp word [ebp - 0x2e], 0x1e
jl 0x41be97
add word [ebp - 0x2e], 0xfffb
mov eax, dword [ebp - 0x30]
dec eax
mov word [ebp - 0x34], ax
mov eax, dword [ebp - 0x2e]
dec eax
mov word [ebp - 0x32], ax
lea eax, [ebp - 0x38]
push eax
push 1
push dword [0x4c0eb0]
mov word [ebp - 0x38], di
mov word [ebp - 0x36], di
call dword [sym.imp.KERNEL32.dll_SetConsoleWindowInfo]
mov eax, dword [ebp - 0x50]
cmp word [eax], di
je 0x41befa
cmp byte [ebp - 3], 0
jne 0x41befa
push 0x10e
lea ecx, [ebp - 0x3c]
call fcn.0043ddc3
push edi
push dword [ebp - 0x3c]
push 0x105
push dword [ebp - 0x50]
call fcn.0043e52f
mov eax, dword [ebp - 0x3c]
add esp, 0x10
mov dword [ebp - 0x50], eax
jmp 0x41befa
xor edi, edi
push dword [ebp - 0x50]
mov ecx, 0x4c0fb8
push str.__LOGS
call fcn.0043d658
cmp dword [ebp - 0x54], edi
jne 0x41bfa4
cmp byte [ebp - 5], 0
jl 0x41bf26
mov al, byte [esi + 0xc]
xor al, byte [ebp - 5]
and al, 1
xor byte [esi + 0xc], al
mov al, byte [ebp - 0x14]
test al, al
jl 0x41bf32
mov byte [0x4c4012], al
mov al, byte [ebp - 0x10]
and bl, 1
and al, 1
shl bl, 1
or bl, al
mov al, byte [ebp - 0xe]
and al, 1
shl bl, 1
or bl, al
mov al, byte [ebp - 0x1f]
and al, 1
shl bl, 1
or bl, al
mov al, byte [ebp - 0x1e]
and al, 1
shl bl, 1
or bl, al
mov al, byte [ebp - 0xf]
and al, 1
shl bl, 1
or bl, al
mov al, byte [esi + 0xc]
and al, 0x81
shl bl, 1
or bl, al
mov eax, dword [ebp - 0x48]
test eax, eax
mov byte [esi + 0xc], bl
jl 0x41bf8d
jg 0x41bf7d
cmp dword [ebp - 0x4c], 0
jbe 0x41bf8d
mov ecx, dword [ebp - 0x4c]
mov dword [0x4bf2b8], ecx
mov dword [0x4bf2bc], eax
jmp 0x41bfa4
cmp byte [ebp - 0x21], 0
je 0x41bfa4
or dword [0x4bf2bc], 0xffffffff
mov dword [0x4bf2b8], 0xfff80000
mov esi, dword [ebp - 0x54]
mov edi, 0x4c1b94
lea ecx, [ebp - 0x58]
call fcn.00437e1a
lea ecx, [ebp - 0x3c]
call fcn.00437e1a
pop ebx
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
pop edi
mov eax, esi
pop esi
leave
ret 8