Function at 0x40930c
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x114
push ebx
xor ebx, ebx
push esi
mov esi, dword [ebp + 8]
inc ebx
cmp esi, ebx
mov eax, ebx
push edi
mov edi, dword [ebp + 0xc]
mov dword [0x429834], eax
jle 0x409345
mov ecx, dword [edi + eax*4]
mov cl, byte [ecx]
cmp cl, 0x2d
je 0x40933b
cmp cl, 0x2f
jne 0x409345
inc eax
cmp eax, esi
mov dword [0x429834], eax
jl 0x40932c
lea ecx, [eax + 2]
cmp esi, ecx
jne 0x40935a
mov ecx, dword [edi + eax*4]
cmp byte [ecx], 0x4c
jne 0x40935a
cmp byte [ecx + 1], 0
je 0x409371
push str._nMsCab_0.63_free_t_t_twww.mscab.prv.pl_t_t29_May_2003_n_n
mov byte [0x429ba4], 1
call fcn.00416ccd
mov eax, dword [0x429834]
pop ecx
sub esi, eax
cmp esi, 2
jge 0x409387
push str.MsCab_is_an_addon_for_MultiArc_plugin_for_Total_Commander._nMsCab_works_with__Microsoft__CAB_archives_but_ONLY_via_MultiArc._n
call fcn.00416ccd
jmp 0x409ff6
mov esi, dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov dword [0x429834], ebx
mov ebx, 0x4328c0
mov eax, dword [0x429834]
lea ecx, [edi + eax*4]
mov eax, dword [ecx]
mov dl, byte [eax]
cmp dl, 0x2d
je 0x4093b2
cmp dl, 0x2f
jne 0x409954
movsx edx, byte [eax + 1]
cmp edx, 0x66
jg 0x40962f
je 0x409604
cmp edx, 0x4d
jg 0x4094e9
je 0x4094c3
sub edx, 0x2b
je 0x4094b1
dec edx
dec edx
je 0x40948f
sub edx, 0x19
je 0x40944a
sub edx, 6
jne 0x409fe3
push 3
add eax, 2
push 0x423fc4
push eax
call fcn.00417870
add esp, 0xc
test eax, eax
jne 0x409949
mov eax, dword [0x429834]
mov eax, dword [edi + eax*4]
add eax, 5
push eax
call fcn.004177d3
cmp eax, 0xf
pop ecx
mov dword [0x42983c], eax
jl 0x409949
cmp eax, 0x15
jg 0x409949
xor ecx, ecx
mov ch, al
or ecx, 3
mov word [0x427040], cx
jmp 0x409949
add eax, 2
push 0x423fc0
push eax
call fcn.004166e0
test eax, eax
pop ecx
pop ecx
jne 0x409465
mov byte [0x429bae], 1
mov eax, dword [0x429834]
mov eax, dword [edi + eax*4]
inc eax
inc eax
push 0x423fbc
push eax
call fcn.004166e0
test eax, eax
pop ecx
pop ecx
jne 0x409949
and byte [0x429bae], al
jmp 0x409949
cmp byte [0x429bb3], 1
jne 0x40949f
mov byte [0x429bb3], 3
cmp byte [0x429bb3], 0
je 0x409ff7
jmp 0x409949
cmp byte [0x429bb3], 1
jne 0x40949f
mov byte [0x429bb3], 2
jmp 0x40949f
add eax, 2
push str.SZIP
push eax
call fcn.004166e0
test eax, eax
pop ecx
pop ecx
jne 0x409949
mov word [0x427040], 1
jmp 0x409949
cmp edx, 0x4e
je 0x4095e0
cmp edx, 0x61
je 0x409561
cmp edx, 0x64
jne 0x409fe3
lea ecx, [eax + 2]
cmp byte [ecx], 0x73
jne 0x40951a
cmp byte [eax + 3], 0
jne 0x40951a
or byte [0x429674], 1
jmp 0x409949
push 0x423fb0
push ecx
call fcn.004166e0
test eax, eax
pop ecx
pop ecx
jne 0x409537
or byte [0x43272e], 1
jmp 0x409949
mov eax, dword [0x429834]
mov eax, dword [edi + eax*4]
inc eax
inc eax
push str.irs_
push eax
call fcn.004166e0
test eax, eax
pop ecx
pop ecx
jne 0x409949
and byte [0x43272e], al
jmp 0x409949
lea ecx, [eax + 2]
cmp byte [ecx], 0x70
jne 0x40957e
add eax, 3
push eax
push 0x429aa0
call fcn.00407d08
pop ecx
pop ecx
jmp 0x409949
push 0x423fa4
push ecx
call fcn.004166e0
test eax, eax
pop ecx
pop ecx
jne 0x40959b
mov byte [0x429820], 1
jmp 0x409949
mov eax, dword [0x429834]
mov eax, dword [edi + eax*4]
inc eax
inc eax
push 0x423fa0
push eax
call fcn.004166e0
test eax, eax
pop ecx
pop ecx
jne 0x4095c1
and byte [0x429820], al
jmp 0x409949
mov eax, dword [0x429834]
mov eax, dword [edi + eax*4]
cmp byte [eax + 2], 0x67
jne 0x409949
add eax, 3
mov dword [0x42981c], eax
jmp 0x409949
add eax, 2
push 0x423f9c
push eax
call fcn.004166e0
test eax, eax
pop ecx
pop ecx
jne 0x409949
and word [0x427040], ax
jmp 0x409949
add eax, 2
push eax
call fcn.00407cc1
and eax, 0xfffffe00
cmp eax, 0x8000
pop ecx
mov dword [0x429670], eax
jge 0x409949
and dword [0x429670], 0
jmp 0x409949
sub edx, 0x69
je 0x409927
sub edx, 5
je 0x4098ef
dec edx
dec edx
je 0x4098ba
dec edx
dec edx
je 0x40981d
dec edx
je 0x4097ed
sub edx, 3
je 0x409700
dec edx
jne 0x409fe3
add eax, 2
push 0x423f98
push eax
call fcn.004166e0
test eax, eax
pop ecx
pop ecx
jne 0x409688
mov byte [0x429409], 1
jmp 0x409949
mov eax, dword [0x429834]
mov eax, dword [edi + eax*4]
inc eax
inc eax
push 0x423f94
push eax
call fcn.004166e0
test eax, eax
pop ecx
pop ecx
jne 0x4096af
mov byte [0x429409], 2
jmp 0x409949
mov eax, dword [0x429834]
lea eax, [edi + eax*4]
mov ecx, dword [eax]
cmp byte [ecx + 2], 0
jne 0x4096cb
and byte [0x429409], 0
jmp 0x409949
mov byte [0x429409], 3
mov eax, dword [eax]
lea ecx, [eax + 2]
cmp byte [ecx], 0x22
jne 0x4096f3
add eax, 3
push eax
push 0x429560
call esi
push 0x22
push 0x429560
jmp 0x4098d5
push ecx
push 0x429560
call esi
jmp 0x409949
add eax, 2
push str.1440
push eax
call fcn.004166e0
test eax, eax
pop ecx
pop ecx
jne 0x409723
mov dword [0x4297f4], 0x163e00
jmp 0x409949
mov eax, dword [0x429834]
mov eax, dword [edi + eax*4]
inc eax
inc eax
push str.1200
push eax
call fcn.004166e0
test eax, eax
pop ecx
pop ecx
jne 0x40974d
mov dword [0x4297f4], 0x128600
jmp 0x409949
mov eax, dword [0x429834]
mov eax, dword [edi + eax*4]
inc eax
inc eax
push 0x423f80
push eax
call fcn.004166e0
test eax, eax
pop ecx
pop ecx
jne 0x409777
mov dword [0x4297f4], 0xb2400
jmp 0x409949
mov eax, dword [0x429834]
mov eax, dword [edi + eax*4]
inc eax
inc eax
push 0x423f7c
push eax
call fcn.004166e0
test eax, eax
pop ecx
pop ecx
jne 0x4097a1
mov dword [0x4297f4], 0x58800
jmp 0x409949
mov eax, dword [0x429834]
mov eax, dword [edi + eax*4]
lea ecx, [eax + 2]
cmp byte [ecx], 0x72
jne 0x4097c5
add eax, 3
push eax
call fcn.00407cc1
pop ecx
mov dword [0x42966c], eax
jmp 0x409949
push ecx
call fcn.00407cc1
and eax, 0xfffffe00
cmp eax, 0x8000
pop ecx
mov dword [0x4297f4], eax
jge 0x409949
and dword [0x4297f4], 0
jmp 0x409949
push 2
add eax, 2
push 0x423f78
push eax
call fcn.00417870
add esp, 0xc
test eax, eax
jne 0x409949
mov eax, dword [0x429834]
mov eax, dword [edi + eax*4]
add eax, 4
mov dword [0x4329d8], eax
jmp 0x409949
add eax, 2
mov dword [ebp - 4], eax
cmp byte [eax], 0
jne 0x409834
or byte [0x432734], 6
jmp 0x409949
push 0x423f74
push eax
call fcn.004166e0
test eax, eax
pop ecx
pop ecx
jne 0x409851
or byte [0x432734], 2
jmp 0x409949
push 0x423f70
push dword [ebp - 4]
call fcn.004166e0
test eax, eax
pop ecx
pop ecx
jne 0x409870
or byte [0x432734], 0x18
jmp 0x409949
push 0x423f6c
push dword [ebp - 4]
call fcn.004166e0
test eax, eax
pop ecx
pop ecx
jne 0x40988f
or byte [0x432734], 8
jmp 0x409949
mov eax, dword [ebp - 4]
cmp byte [eax], 0x69
jne 0x409949
mov al, byte [eax + 1]
cmp al, 0x30
jl 0x409949
cmp al, 0x33
jg 0x409949
sub al, 0x30
mov byte [0x427042], al
jmp 0x409949
or byte [0x429bb3], 1
mov eax, dword [ecx]
lea ecx, [eax + 2]
cmp byte [ecx], 0x22
jne 0x4098e8
add eax, 3
push eax
push ebx
call esi
push 0x22
push ebx
call fcn.00415070
test eax, eax
pop ecx
pop ecx
mov dword [ebp - 4], eax
je 0x409949
and byte [eax], 0
jmp 0x409949
push ecx
push ebx
jmp 0x4096f9
add eax, 2
mov byte [0x4329c4], 1
jmp 0x409902
inc eax
inc byte [0x4329c4]
mov dword [ebp - 4], eax
cmp byte [eax], 0x30
je 0x4098fb
cmp byte [eax], 0x31
jne 0x40991e
cmp byte [eax + 1], 0
jne 0x40991e
cmp byte [0x4329c4], 6
jle 0x409949
and byte [0x4329c4], 0
jmp 0x409949
cmp byte [eax + 2], 0
jne 0x409934
or byte [0x429674], 2
mov ecx, dword [ecx]
cmp byte [ecx + 2], 0x30
jne 0x409949
cmp byte [ecx + 3], 0
jne 0x409949
or byte [0x429674], 4
inc dword [0x429834]
jmp 0x409398
movsx eax, byte [0x427042]
movzx eax, word [eax*2 + 0x422e68]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_SetPriorityClass]
mov eax, dword [0x429834]
mov eax, dword [edi + eax*4]
movsx eax, byte [eax]
push eax
push str.adms
call fcn.00414e40
test eax, eax
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenA]
pop ecx
pop ecx
je 0x409a0a
mov eax, dword [0x429834]
push 0x423328
push dword [edi + eax*4]
call fcn.004166e0
test eax, eax
pop ecx
pop ecx
jne 0x4099bb
cmp dword [0x4329d8], eax
jne 0x4099bb
push dword [edi]
call ebx
add eax, dword [edi]
jmp 0x4099dc
mov eax, dword [0x429834]
push 0x423f60
push dword [edi + eax*4]
call fcn.004166e0
test eax, eax
pop ecx
pop ecx
jne 0x4099e1
mov eax, dword [0x429834]
mov eax, dword [edi + eax*4]
inc eax
mov dword [0x4329d8], eax
push 0x10e
lea eax, [ebp - 0x114]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [ebp - 0x114]
push eax
call fcn.0040528b
test eax, eax
pop ecx
jne 0x409fdc
mov eax, dword [0x429834]
mov dword [0x429824], 0x423b24
mov ecx, dword [edi + eax*4]
cmp byte [ecx], 0x73
mov eax, str..exe
jne 0x409a31
test byte [0x429814], 8
je 0x409a57
jmp 0x409a52
test byte [0x429814], 7
je 0x409a57
mov ecx, dword [0x429838]
add dword [0x42966c], ecx
lea ecx, [ebp - 0x114]
mov dword [0x43289c], ecx
mov dword [0x429824], eax
mov eax, dword [0x4297f4]
test eax, eax
mov ecx, 0x7fff8000
je 0x409a69
cmp eax, ecx
jbe 0x409a70
mov eax, ecx
mov dword [0x4297f4], eax
mov ecx, dword [0x42966c]
test ecx, ecx
jl 0x409fdc
sub eax, ecx
cmp eax, 0x2000
jl 0x409fdc
mov eax, 0x20000000
cmp dword [0x429670], eax
jle 0x409a9d
mov dword [0x429670], eax
cmp dword [0x429670], 0
jne 0x409ab0
mov dword [0x429670], 0x1000000
push 0x429aa0
call ebx
mov esi, dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
push 2
mov dword [0x429558], eax
lea eax, [ebp - 0x114]
push eax
push 0xe
mov edi, 0x400
push edi
call esi
test eax, eax
je 0x409b03
push 2
lea eax, [ebp - 0x112]
push eax
push 0xf
push edi
call esi
test eax, eax
je 0x409b03
mov al, byte [ebp - 0x114]
mov byte [0x429bb0], al
mov al, byte [ebp - 0x112]
mov byte [0x429bb1], al
jmp 0x409b11
mov byte [0x429bb0], 0x2e
mov byte [0x429bb1], 0x2c
mov ecx, dword [ebp + 0xc]
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x114]
push eax
mov eax, dword [0x429834]
push 0x10e
push dword [ecx + eax*4 + 4]
call dword [sym.imp.KERNEL32.dll_GetFullPathNameA]
test eax, eax
je 0x409fdc
lea eax, [ebp - 0x114]
push 0x5c
push eax
call fcn.00415070
push 0x2e
push eax
mov dword [ebp - 4], eax
call fcn.00414e40
mov edi, dword [ebp + 0xc]
add esp, 0x10
test eax, eax
jne 0x409b89
mov eax, dword [0x429834]
push dword [edi + eax*4 + 4]
call ebx
mov ecx, dword [0x429834]
mov ecx, dword [edi + ecx*4 + 4]
cmp byte [eax + ecx - 1], 0x2e
je 0x409b89
push dword [0x429824]
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_lstrcatA]
xor ebx, ebx
cmp dword [0x42981c], ebx
lea eax, [ebp - 0x114]
push eax
je 0x409bad
call fcn.00407ed9
test eax, eax
pop ecx
jne 0x409fdc
mov edi, dword [ebp + 0xc]
jmp 0x409bb3
call fcn.00407d69
pop ecx
push 0x423f48
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
cmp eax, ebx
mov dword [ebp - 4], eax
je 0x409bf0
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.GetFileAttributesExA
push eax
call esi
push str.GetDiskFreeSpaceExA
push dword [ebp - 4]
mov dword [0x429ba8], eax
call esi
push dword [ebp - 4]
mov dword [0x4329c8], eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp dword [0x429ba8], ebx
jne 0x409c02
mov dword [0x429ba8], section..text
cmp dword [0x4329c8], ebx
jne 0x409c14
mov dword [0x4329c8], 0x401083
lea eax, [ebp - 0x114]
push ebx
push eax
mov dword [ebp - 4], 2
call fcn.00416045
test eax, eax
pop ecx
pop ecx
mov esi, 0x423f18
je 0x409c76
mov eax, dword [0x429834]
mov eax, dword [edi + eax*4]
movsx eax, byte [eax]
push eax
push esi
call fcn.00414e40
test eax, eax
pop ecx
pop ecx
jne 0x409c76
lea eax, [ebp - 0x114]
push eax
lea eax, [ebp - 0x114]
push eax
call dword [sym.imp.USER32.dll_CharToOemA]
lea eax, [ebp - 0x114]
push eax
push str.ERROR:_archive_file___s__not_exists_n
call fcn.00416ccd
pop ecx
jmp 0x409fd1
mov eax, dword [0x429834]
mov eax, dword [edi + eax*4]
movsx eax, byte [eax]
push eax
push 0x423eec
call fcn.00414e40
test eax, eax
pop ecx
pop ecx
je 0x409cf5
lea eax, [ebp - 0x114]
push eax
call fcn.00407dc6
test eax, eax
pop ecx
jne 0x409fd2
cmp byte [0x429820], al
je 0x409cf5
mov eax, dword [0x429834]
mov eax, dword [edi + eax*4]
movsx eax, byte [eax]
cmp eax, 0x64
mov dword [0x42983c], eax
je 0x409ce1
lea eax, [ebp - 0x114]
push ebx
push eax
call fcn.00416045
test eax, eax
pop ecx
pop ecx
je 0x409ce1
mov dword [0x42983c], 0x63
push dword [0x42983c]
call fcn.00408cb8
test eax, eax
pop ecx
jne 0x409fd2
mov eax, dword [0x42966c]
and eax, 0x1ff
je 0x409d0e
mov ecx, 0x200
sub ecx, eax
add dword [0x42966c], ecx
mov eax, dword [0x429834]
mov eax, dword [edi + eax*4]
movsx eax, byte [eax]
push eax
push esi
call fcn.00414e40
test eax, eax
pop ecx
pop ecx
je 0x409e14
mov eax, dword [0x429834]
or byte [0x432734], 1
mov esi, dword [ebp + 8]
add eax, 2
jmp 0x409d55
push dword [edi + eax*4]
call fcn.00403479
test eax, eax
pop ecx
jne 0x409fd2
mov eax, dword [0x42983c]
inc eax
cmp eax, esi
mov dword [0x42983c], eax
jl 0x409d3e
mov eax, dword [0x429834]
add eax, 2
cmp eax, esi
jne 0x409d7d
push 0x423230
call fcn.00403479
test eax, eax
pop ecx
jne 0x409fd2
mov al, byte [0x429bb3]
test al, al
je 0x409e24
cmp al, 2
je 0x409dae
mov eax, dword [0x432880]
mov dword [0x432740], eax
mov eax, dword [0x432884]
mov dword [0x432744], eax
mov dword [0x432884], ebx
mov dword [0x432880], ebx
xor eax, eax
inc eax
cmp dword [0x429834], eax
mov dword [0x42983c], eax
jle 0x409de4
mov eax, dword [edi + eax*4]
inc eax
push eax
call fcn.00403c30
test eax, eax
pop ecx
jne 0x409fd2
mov eax, dword [0x42983c]
inc eax
cmp eax, dword [0x429834]
mov dword [0x42983c], eax
jl 0x409dbe
cmp byte [0x4328c0], 0
mov byte [0x429bb3], 1
jne 0x409e24
cmp dword [0x432744], ebx
jne 0x409e05
and byte [0x429bb3], 0
jmp 0x409e24
call fcn.00401957
test eax, eax
jne 0x409fd2
jmp 0x409e24
cmp byte [0x429bb3], 1
jg 0x409fd2
mov esi, dword [ebp + 8]
push 1
push 0x407ece
call dword [sym.imp.KERNEL32.dll_SetConsoleCtrlHandler]
mov eax, dword [0x429834]
mov ecx, dword [edi + eax*4]
movsx ecx, byte [ecx]
cmp ecx, 0x6c
jg 0x409f0a
je 0x409ef9
sub ecx, 0x4c
je 0x409eec
sub ecx, 0x15
je 0x409ebe
sub ecx, 3
je 0x409e71
dec ecx
jne 0x409fd2
mov byte [0x43275c], 1
jmp 0x409f24
lea ecx, [eax + 3]
cmp ecx, esi
jg 0x409fd2
cmp byte [0x432734], 0
jne 0x409fd2
mov byte [0x43275c], 1
add eax, 2
jmp 0x409eac
push dword [edi + eax*4]
call fcn.00403479
test eax, eax
pop ecx
jne 0x409fd2
mov eax, dword [0x42983c]
inc eax
cmp eax, esi
mov dword [0x42983c], eax
jl 0x409e95
lea eax, [ebp - 0x114]
push eax
jmp 0x409ed8
lea eax, [ebp - 0x114]
push ebx
push eax
call fcn.00416045
pop ecx
test eax, eax
pop ecx
lea eax, [ebp - 0x114]
push eax
jne 0x409ee2
call fcn.0040550d
jmp 0x409fce
call fcn.0040724a
jmp 0x409fce
cmp byte [0x429ba4], 0
jne 0x409fd2
lea eax, [ebp - 0x114]
push eax
call fcn.00405bd4
jmp 0x409fce
sub ecx, 0x6d
je 0x409fc2
sub ecx, 6
je 0x409f97
dec ecx
je 0x409f89
sub ecx, 4
jne 0x409fd2
cmp byte [0x432734], 0
jne 0x409fd2
lea ecx, [eax + 2]
cmp ecx, esi
mov dword [0x42983c], ecx
jge 0x409f65
push dword [edi + ecx*4]
call fcn.00403479
test eax, eax
pop ecx
jne 0x409fd2
mov ecx, dword [0x42983c]
inc ecx
cmp ecx, esi
mov dword [0x42983c], ecx
jl 0x409f3e
mov eax, dword [0x429834]
add eax, 2
cmp eax, esi
jne 0x409f7b
push 0x423230
call fcn.00403479
test eax, eax
pop ecx
jne 0x409fd2
lea eax, [ebp - 0x114]
push eax
call fcn.00406521
jmp 0x409fce
lea eax, [ebp - 0x114]
push eax
call fcn.004069d7
jmp 0x409fce
and byte [0x429814], 7
mov dword [0x429824], 0x423f58
jne 0x409fb4
mov dword [0x429824], str..cab
lea eax, [ebp - 0x114]
push eax
call fcn.00407a4f
jmp 0x409fce
lea eax, [ebp - 0x114]
push eax
call fcn.0040792c
mov dword [ebp - 4], eax
pop ecx
call fcn.00402f07
mov eax, dword [ebp - 4]
jmp 0x409ffa
call fcn.00402f07
jmp 0x409ff7
mov eax, dword [0x429834]
push dword [edi + eax*4]
push str.ERROR:_unknown_option__s_n
call fcn.00416ccd
pop ecx
pop ecx
push 2
pop eax
pop edi
pop esi
pop ebx
leave
ret