Function at 0x43b6eb
Capabilities:
Get disk information
Get geographical location

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5c
mov dword [ebp - 0x10], 0xfffffffb
mov eax, ecx
mov dword [ebp - 0xc], 0xfffffff7
push esi
mov dword [ebp - 0x2c], 0xfffffffd
push edi
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x10], 0
cmp dword [ebp - 0x10], 0xb
push 1
mov dword [ebp - 0x34], eax
pop edi
jl 0x43b904
mov dword [ebp - 0x14], 0x94a18885
mov dword [ebp - 0x24], 0xffff
mov dword [ebp - 0x1c], 0xfffffffe
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x14], 0
jmp 0x43b8e0
mov dword [ebp - 0x18], 0x9323d1bc
lea ecx, [ebp - 0x44]
mov dword [ebp - 8], 4
push 3
call fcn.004013fc
mov dword [ebp - 0x20], 9
mov dword [ebp - 8], 0
jmp 0x43b784
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x44]
mov dword [eax + ecx*4], edi
inc dword [ebp - 8]
cmp dword [ebp - 8], 3
jl 0x43b778
imul ecx, dword [ebp - 0x24], 0xe28d
xor edx, edx
mov eax, dword [ebp - 0xc]
cmp ecx, eax
mov eax, dword [ebp - 0x18]
setne dl
sub eax, edx
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
sub ecx, eax
mov eax, dword [ebp - 0x10]
neg ecx
sbb ecx, ecx
dec eax
inc ecx
add eax, ecx
cmp eax, dword [ebp - 0xc]
jne 0x43b7be
mov eax, dword [ebp - 0xc]
cmp dword [ebp - 0x10], 8
mov eax, dword [ebp - 0x1c]
sbb ecx, ecx
xor edx, edx
neg ecx
cmp ecx, eax
mov eax, dword [ebp - 0x18]
setne dl
xor ecx, ecx
cmp eax, edx
setge cl
cmp ecx, dword [ebp - 0x14]
jge 0x43b817
mov byte [ebp - 1], 0
cmp byte [ebp - 1], 0
je 0x43b8d5
push 0x1e2d
push 0
push 0x10ab
push 0x22ed
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_ExtFloodFill]
jmp 0x43b8d5
mov dword [ebp - 0xc], 0
jmp 0x43b8c5
mov dword [ebp - 0x20], 0xa6ca0cec
mov dword [ebp - 8], 0
cmp dword [ebp - 8], 2
jg 0x43b8c2
cmp dword [ebp - 0x28], 0
je 0x43b84b
cmp dword [ebp - 0x18], 0
je 0x43b84b
mov edx, edi
jmp 0x43b84d
xor edx, edx
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
cmp edx, eax
sete cl
add ecx, 0x6de0
cmp ecx, dword [ebp - 0x10]
jle 0x43b868
cmp dword [ebp - 8], 0
jne 0x43b86a
xor edi, edi
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x20], eax
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x44]
mov esi, dword [ecx + eax*4]
sub esi, dword [ecx + edx*4]
mov ecx, dword [ebp - 0x20]
neg esi
mov eax, dword [ebp - 0xc]
sbb esi, esi
xor edx, edx
inc esi
cmp eax, ecx
setge dl
xor ecx, ecx
cmp esi, edx
setge cl
xor eax, eax
cmp ecx, edi
setne al
mov dword [ebp - 0x20], eax
mov byte [ebp - 1], 0
cmp byte [ebp - 1], 0
je 0x43b8b2
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
push 1
pop edi
jle 0x43b83b
dec dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0xffffffe2
jle 0x43b823
cmp dword [ebp - 0x30], 0
jne 0x43b8ec
lea ecx, [ebp - 0x44]
call fcn.004014ce
dec dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xffffffec
jne 0x43b750
jmp 0x43b8f4
lea ecx, [ebp - 0x44]
call fcn.004014ce
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0xb
jge 0x43b728
mov eax, dword [ebp - 0x34]
push 0x6b89
lea ecx, [ebp - 0x38]
push ecx
push 0xb74
push 0
push eax
call fcn.00441d70
add esp, 0x14
mov dword [ebp - 0x14], 0xffffffff
lea ecx, [ebp - 0x5c]
push 4
call fcn.004013fc
mov dword [ebp - 0x18], 0xffffffff
lea ecx, [ebp - 0x50]
push edi
call fcn.004013fc
mov dword [ebp - 0x34], 0xf0c3da55
mov dword [ebp - 8], 0
jmp 0x43b95e
push dword [ebp - 8]
lea ecx, [ebp - 0x5c]
call fcn.004014ea
mov dword [eax], edi
inc dword [ebp - 8]
cmp dword [ebp - 8], 4
jl 0x43b94e
mov dword [ebp - 8], 0
jmp 0x43b981
push dword [ebp - 8]
lea ecx, [ebp - 0x50]
call fcn.004014ea
mov dword [eax], 0xfffffffc
inc dword [ebp - 8]
cmp dword [ebp - 8], edi
jl 0x43b96d
mov eax, dword [ebp - 0x14]
lea ecx, [ebp - 0x5c]
inc dword [ebp - 0x18]
push edi
call fcn.004014ea
mov edx, dword [ebp - 0x18]
mov esi, eax
imul edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
add ecx, 6
push 0
sub edx, ecx
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
imul edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
cmp eax, edx
setg cl
xor eax, eax
cmp ecx, dword [esi]
lea ecx, [ebp - 0x50]
setne al
mov dword [esi], eax
call fcn.004014ea
xor ecx, ecx
cmp dword [eax], edi
jg 0x43ba01
mov byte [ebp - 1], cl
cmp byte [ebp - 1], cl
je 0x43b9e4
push ecx
push ecx
call dword [sym.imp.KERNEL32.dll_SetCommTimeouts]
xor ecx, ecx
mov byte [ebp - 1], cl
cmp byte [ebp - 1], 0
je 0x43ba5e
push 0x15da
push ecx
push 0xb78
push ecx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
jmp 0x43ba5c
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x34], 0xcbedfa9
mov dword [ebp - 0x34], 0xffffffff
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
inc dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x34]
mov byte [ebp - 1], cl
cmp byte [ebp - 1], cl
je 0x43ba47
push ecx
push ecx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_PlayEnhMetaFile]
xor ecx, ecx
mov byte [ebp - 1], cl
cmp byte [ebp - 1], 0
je 0x43ba5e
push 0xc51
push ecx
call dword [sym.imp.KERNEL32.dll_IsValidLocale]
xor ecx, ecx
mov byte [ebp - 1], cl
cmp byte [ebp - 1], 0
pop edi
pop esi
je 0x43ba77
push 0x22cb
push ecx
push ecx
push ecx
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
lea ecx, [ebp - 0x50]
call fcn.004014ce
lea ecx, [ebp - 0x5c]
call fcn.004014ce
mov eax, dword [ebp - 0x38]
mov esp, ebp
pop ebp
ret