Function at 0x402929
Capabilities:
Move file

Disassembly:
sub esp, 0x190
mov eax, dword [section..data]
xor eax, esp
mov dword [esp + 0x18c], eax
mov eax, dword [esp + 0x194]
push ebx
xor ebx, ebx
push ebp
push esi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x1a4]
mov dword [esp + 0x30], edx
push edi
mov esi, ecx
mov dword [esp + 0x38], eax
mov dword [esp + 0x20], ebx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x402976
sub ecx, edx
cmp ecx, 0xff
ja 0x402ea2
push 7
push str.http:__
push esi
call dword [sym.imp.MSVCR110.dll__strnicmp]
mov edi, dword [sym.imp.libav.dll_Ordinal_44283]
xor ebp, ebp
add esp, 0xc
inc ebp
test eax, eax
jne 0x402bdc
push 0x100
lea eax, [esp + 0x9c]
push esi
push eax
call dword [sym.imp.MSVCR110.dll_strncpy]
add esp, 0xc
lea eax, [esp + 0x9f]
push 0x2f
push eax
mov byte [esp + 0x19f], bl
call dword [sym.imp.MSVCR110.dll_strchr]
pop ecx
pop ecx
mov ecx, eax
test ecx, ecx
je 0x402ea2
lea edx, [esp + 0x98]
mov eax, esi
sub eax, edx
inc eax
add eax, ecx
push 0x2f
push esi
mov byte [ecx], bl
mov dword [esp + 0x24], eax
call dword [sym.imp.MSVCR110.dll_strrchr]
mov esi, eax
pop ecx
pop ecx
inc esi
je 0x402ea2
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x402a14
sub ecx, edx
cmp ecx, 4
jb 0x402ea2
push str.HTTPProxyServer
push dword [esp + 0x18]
call edi
pop ecx
pop ecx
cmp dword [eax + 0x18], ebx
je 0x402abc
mov eax, dword [eax + 8]
push 7
push str.http:__
push eax
mov dword [esp + 0x24], eax
call dword [sym.imp.MSVCR110.dll__strnicmp]
add esp, 0xc
test eax, eax
jne 0x402a5d
add dword [esp + 0x18], 7
push str.HTTPProxyUsername
push dword [esp + 0x18]
call edi
pop ecx
pop ecx
cmp dword [eax + 0x18], ebx
je 0x402a93
mov eax, dword [eax + 8]
push str.HTTPProxyPassword
push dword [esp + 0x18]
mov dword [esp + 0x34], eax
call edi
pop ecx
pop ecx
cmp dword [eax + 0x18], ebx
je 0x402b9f
mov eax, dword [eax + 8]
mov dword [esp + 0x24], eax
push str.HTTPProxyPort
push dword [esp + 0x18]
call edi
pop ecx
pop ecx
cmp dword [eax + 0x18], ebx
je 0x402aac
mov eax, dword [eax + 0x10]
mov dword [esp + 0x20], eax
push dword [esp + 0x18]
push str.Connecting_via__s_n
call fcn.004089d4
pop ecx
pop ecx
push str.HTTPUserAgent
push dword [esp + 0x18]
call edi
pop ecx
pop ecx
cmp dword [eax + 0x18], ebx
je 0x402ad5
mov eax, dword [eax + 8]
mov dword [esp + 0x28], eax
push str.ConnectTimeout
push dword [esp + 0x18]
call edi
mov eax, dword [eax + 0x10]
push str.ReceiveTimeout
push dword [esp + 0x20]
mov dword [esp + 0x4c], eax
call edi
mov eax, dword [eax + 0x10]
mov dword [esp + 0x40], eax
lea eax, [esp + 0x50]
push eax
push esi
mov byte [esp + 0x8c], bl
call dword [sym.imp.libav.dll_Ordinal_44339]
add esp, 0x18
cmp eax, 0xffffffff
je 0x402b27
push dword [esp + 0x64]
lea ecx, [esp + 0x78]
push dword [esp + 0x64]
call fcn.004051e8
pop ecx
pop ecx
push 0x410580
call dword [sym.imp.libav.dll_Ordinal_44203]
pop ecx
push ebp
push ecx
xor ecx, ecx
cmp byte [esp + 0x7c], cl
mov edi, eax
lea eax, [esp + 0x7c]
cmove eax, ecx
push eax
push ebx
push dword [esp + 0x1bc]
mov ecx, dword [esp + 0x30]
push ebx
push dword [esp + 0x48]
lea eax, [esp + 0xbb]
push dword [esp + 0x58]
mov edx, edi
push dword [esp + 0x48]
push dword [esp + 0x48]
push dword [esp + 0x54]
push dword [esp + 0x4c]
push dword [esp + 0x48]
push dword [esp + 0x6c]
push ebx
push eax
call fcn.0040445d
add esp, 0x40
mov dword [esp + 0x1c], eax
cmp eax, ebp
jne 0x402ba6
push esi
push str._s_is_up_to_date__version:_custom_database__n
call fcn.004089d4
pop ecx
pop ecx
jmp 0x402e16
push 0x38
jmp 0x402ea4
jle 0x402c82
cmp dword [esp + 0x1ac], ebx
lea eax, [esp + 0x9f]
push eax
push esi
push 0x5e
pop eax
push 0x21
pop ecx
cmovne eax, ecx
push eax
push str._cCant_download__s_from__s_n
call fcn.004089d4
mov ebp, dword [esp + 0x2c]
add esp, 0x10
jmp 0x402e16
push 7
push str.file:__
push esi
call dword [sym.imp.MSVCR110.dll__strnicmp]
add esp, 0xc
test eax, eax
jne 0x402ea2
lea eax, [esi + 7]
push 0x5c
push eax
mov dword [esp + 0x28], eax
call dword [sym.imp.MSVCR110.dll_strrchr]
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x402ea2
mov ecx, esi
inc esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x402c17
sub ecx, edx
cmp ecx, 5
jb 0x402ea2
push 0x410580
call dword [sym.imp.libav.dll_Ordinal_44203]
mov edi, eax
pop ecx
test edi, edi
je 0x402ea2
push esi
push str.Downloading__s____0____r
call fcn.004089d4
push edi
push dword [esp + 0x2c]
call dword [sym.imp.libav.dll_Ordinal_44268]
add esp, 0x10
cmp eax, 0xffffffff
jne 0x402c75
push dword [esp + 0x20]
push str.DatabaseCustomURL:_Cant_copy_file__s_into_database_directory_n
call fcn.004089d4
pop ecx
pop ecx
push 0x46
pop ebp
jmp 0x402e1e
push esi
push str.Downloading__s__100____n
call fcn.004089d4
pop ecx
pop ecx
push str.TestDatabases
push dword [esp + 0x18]
call dword [sym.imp.libav.dll_Ordinal_44283]
pop ecx
pop ecx
cmp dword [eax + 0x18], ebx
je 0x402db9
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x402ca1
sub ecx, edx
cmp ecx, 4
jbe 0x402db9
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x402cb8
sub ecx, edx
mov edx, esi
lea ebp, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x402cc6
sub edx, ebp
lea eax, [ecx + 1]
add eax, edx
push eax
call dword [sym.imp.MSVCR110.dll_malloc]
mov ebp, eax
pop ecx
test ebp, ebp
jne 0x402ce9
push 0x37
jmp 0x402e15
push esi
push edi
push str._s_s
push ebp
call dword [sym.imp.MSVCR110.dll_sprintf]
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x402cff
sub ecx, edx
mov edx, esi
lea eax, [edx + 1]
mov dword [esp + 0x1c], eax
mov al, byte [edx]
inc edx
test al, al
jne 0x402d11
sub edx, dword [esp + 0x1c]
push ebp
push edi
lea eax, [edx + ecx]
mov byte [eax + ebp], bl
call dword [sym.imp.MSVCR110.dll_rename]
pop ecx
pop ecx
cmp eax, 0xffffffff
jne 0x402d63
call dword [sym.imp.MSVCR110.dll__errno]
push dword [eax]
call dword [sym.imp.libav.dll_Ordinal_44341]
pop ecx
push eax
push ebp
push edi
push str._Cant_rename__s_to__s:__s_n
call fcn.004089d4
push edi
call dword [sym.imp.MSVCR110.dll__unlink]
add esp, 0x14
push edi
call dword [sym.imp.MSVCR110.dll_free]
pop ecx
push 0x39
jmp 0x402da0
push edi
call dword [sym.imp.MSVCR110.dll_free]
mov dword [esp], str.Bytecode
push dword [esp + 0x18]
mov edi, ebp
mov dword [0x410018], ebx
call dword [sym.imp.libav.dll_Ordinal_44283]
push dword [eax + 0x18]
mov edx, esi
mov ecx, ebp
call fcn.004038c7
add esp, 0xc
test eax, eax
je 0x402db0
push ebp
call dword [sym.imp.MSVCR110.dll__unlink]
pop ecx
push 0x37
pop esi
push ebp
call dword [sym.imp.MSVCR110.dll_free]
pop ecx
mov eax, esi
jmp 0x402ea5
xor ebp, ebp
inc ebp
mov dword [0x410018], ebp
push 4
push esi
call dword [sym.imp.libav.dll_Ordinal_44340]
pop ecx
pop ecx
test eax, eax
jne 0x402de5
push esi
call dword [sym.imp.MSVCR110.dll__unlink]
pop ecx
test eax, eax
je 0x402de5
push esi
push str._Cant_unlink__s._Please_fix_the_problem_manually_and_try_again._n
call fcn.004089d4
pop ecx
pop ecx
push 0x35
jmp 0x402e15
push esi
push edi
call dword [sym.imp.MSVCR110.dll_rename]
pop ecx
pop ecx
cmp eax, 0xffffffff
jne 0x402e2a
call dword [sym.imp.MSVCR110.dll__errno]
push dword [eax]
call dword [sym.imp.libav.dll_Ordinal_44341]
pop ecx
push eax
push esi
push edi
push str._Cant_rename__s_to__s:__s_n
call fcn.004089d4
add esp, 0x10
push 0x39
pop ebp
push edi
call dword [sym.imp.MSVCR110.dll__unlink]
pop ecx
push edi
call dword [sym.imp.MSVCR110.dll_free]
pop ecx
mov eax, ebp
jmp 0x402ea5
push edi
call dword [sym.imp.MSVCR110.dll_free]
mov edi, dword [sym.imp.libav.dll_Ordinal_44258]
mov dword [esp], str..cld
push esi
call edi
pop ecx
pop ecx
test eax, eax
jne 0x402e72
push str..cvd
push esi
call edi
pop ecx
pop ecx
test eax, eax
jne 0x402e72
push str..cbc
push esi
call edi
pop ecx
pop ecx
test eax, eax
je 0x402e67
mov ebx, ebp
jmp 0x402e89
mov ecx, esi
call fcn.0040854e
mov ebx, eax
jmp 0x402e89
push esi
call dword [sym.imp.libav.dll_Ordinal_3]
pop ecx
test eax, eax
je 0x402e89
mov ebx, dword [eax + 8]
push eax
call dword [sym.imp.libav.dll_Ordinal_2]
pop ecx
push ebx
push esi
push str._s_updated__version:_custom_database__sigs:__u__n
call fcn.004089d4
mov eax, dword [esp + 0x40]
add esp, 0xc
add dword [eax], ebx
xor eax, eax
jmp 0x402ea5
push 0x46
pop eax
mov ecx, dword [esp + 0x19c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00401000
add esp, 0x190
ret