Function at 0x41b240
Capabilities:
Check if file exists
Get common file path

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
lea ebx, [ebp - 0x18]
sub esp, 0x32c
mov dword [ebp - 0x2fc], eax
lea eax, [ebp - 0x2ec]
mov dword [ebp - 0x300], edx
mov dword [ebp - 0x2cc], ebx
lea ebx, [ebp - 0x278]
mov dword [ebp - 0x318], eax
mov dword [ebp - 0x2d4], 0x445710
mov dword [ebp - 0x2d0], 0x446ae4
mov dword [ebp - 0x2c8], 0x41c068
mov dword [ebp - 0x2c4], esp
mov dword [esp], eax
call fcn.004286e0
mov eax, dword [ebp - 0x300]
mov dword [ebp - 0x280], ebx
mov dword [esp], eax
call sub.msvcrt.dll_wcslen
add eax, eax
mov edx, eax
mov dword [ebp - 0x2f0], eax
sar edx, 1
cmp edx, 7
mov dword [ebp - 0x2b0], edx
ja 0x41bb60
cmp edx, 1
mov eax, dword [ebp - 0x280]
jne 0x41bcf0
mov edi, dword [ebp - 0x300]
movzx ecx, word [edi]
mov word [eax], cx
xor ecx, ecx
mov dword [ebp - 0x27c], edx
mov word [eax + edx*2], cx
lea eax, [ebp - 0x220]
mov dword [esp + 4], 0x104
mov dword [esp], eax
mov dword [ebp - 0x2e8], 0x11
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
sub esp, 8
test eax, eax
je 0x41bcb0
cmp eax, 0x103
ja 0x41bcd0
lea eax, [ebp - 0x260]
mov dword [ebp - 0x268], eax
lea eax, [ebp - 0x220]
mov dword [esp], eax
call sub.msvcrt.dll_wcslen
add eax, eax
mov edx, eax
mov dword [ebp - 0x2f0], eax
sar edx, 1
cmp edx, 7
mov dword [ebp - 0x2a4], edx
ja 0x41bbd0
cmp edx, 1
mov eax, dword [ebp - 0x268]
jne 0x41bd00
movzx ecx, word [ebp - 0x220]
mov word [eax], cx
xor edi, edi
mov dword [ebp - 0x264], edx
mov word [eax + edx*2], di
mov dword [esp], str._version.dll
call sub.msvcrt.dll_wcslen
mov edx, 0x3fffffff
sub edx, dword [ebp - 0x264]
cmp eax, edx
ja 0x41c139
lea ecx, [ebp - 0x268]
mov dword [esp + 4], eax
mov dword [esp], str._version.dll
mov dword [ebp - 0x2e8], 0x17
call fcn.00442a40
lea ebx, [ebp - 0x248]
lea edx, [eax + 8]
sub esp, 8
mov dword [ebp - 0x250], ebx
mov ecx, dword [eax]
mov dword [ebp - 0x2f4], ebx
cmp ecx, edx
je 0x41bf25
mov dword [ebp - 0x250], ecx
mov ecx, dword [eax + 8]
mov dword [ebp - 0x248], ecx
mov ecx, dword [eax + 4]
xor esi, esi
mov dword [ebp - 0x24c], ecx
mov dword [eax], edx
mov dword [eax + 4], 0
mov word [eax + 8], si
mov eax, dword [ebp - 0x250]
mov dword [ebp - 0x2f0], eax
mov dword [esp], eax
mov dword [ebp - 0x2e8], 0x18
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
sub esp, 4
test eax, eax
mov dword [ebp - 0x2f8], eax
je 0x41bdb0
mov eax, dword [ebp - 0x250]
cmp eax, dword [ebp - 0x2f4]
je 0x41b454
mov dword [esp], eax
call fcn.00444a10
mov eax, dword [ebp - 0x268]
lea esi, [ebp - 0x260]
cmp eax, esi
je 0x41b46c
mov dword [esp], eax
call fcn.00444a10
mov dword [esp + 4], str.GetFileVersionInfoSizeW
mov eax, dword [ebp - 0x2f8]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x2e8], 0x12
mov dword [ebp - 0x2f0], eax
call eax
sub esp, 8
test eax, eax
mov dword [ebp - 0x310], eax
je 0x41bd80
mov dword [esp + 4], str.GetFileVersionInfoW
mov eax, dword [ebp - 0x2f8]
mov dword [esp], eax
mov dword [ebp - 0x2e8], 0x12
mov eax, dword [ebp - 0x2f0]
call eax
sub esp, 8
test eax, eax
mov dword [ebp - 0x304], eax
je 0x41bd50
mov dword [esp + 4], str.VerQueryValueW
mov eax, dword [ebp - 0x2f8]
mov dword [esp], eax
mov dword [ebp - 0x2e8], 0x12
mov eax, dword [ebp - 0x2f0]
call eax
sub esp, 8
test eax, eax
mov dword [ebp - 0x308], eax
je 0x41bd20
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x280]
mov dword [esp], eax
mov dword [ebp - 0x2e8], 0x12
mov eax, dword [ebp - 0x310]
call eax
sub esp, 8
test eax, eax
mov dword [ebp - 0x2f0], eax
jne 0x41b5e6
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x2e8], 0x12
mov dword [ebp - 0x310], eax
call eax
cmp eax, 2
je 0x41c0ef
mov dword [ebp - 0x2e8], 0x12
mov eax, dword [ebp - 0x310]
call eax
cmp eax, 0x714
je 0x41c0ef
mov eax, dword [ebp - 0x310]
call eax
lea edi, [ebp - 0x280]
lea ebx, [ebp - 0x220]
mov dword [ebp - 0x310], eax
mov dword [esp + 4], str.GetFileVersionInfoSizeW_failed_on
mov dword [esp + 8], edi
mov dword [esp], ebx
call fcn.00444720
mov eax, dword [ebp - 0x310]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x220]
mov dword [esp], eax
mov dword [ebp - 0x2e8], 0x16
call fcn.0041d910
mov eax, dword [ebp - 0x220]
lea edx, [ebp - 0x218]
cmp eax, edx
je 0x41b5e6
mov dword [esp], eax
call fcn.00444a10
mov eax, dword [ebp - 0x2f0]
mov dword [esp], eax
mov dword [ebp - 0x2e8], 0x12
call fcn.00444a30
mov dword [ebp - 0x30c], eax
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x2f0]
mov dword [esp + 4], 0
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x280]
mov dword [esp], eax
mov dword [ebp - 0x2e8], 0x13
mov eax, dword [ebp - 0x304]
call eax
sub esp, 0x10
test eax, eax
je 0x41bf90
lea eax, [ebp - 0x2a8]
mov dword [ebp - 0x2ac], 0
mov dword [ebp - 0x2a8], 0
mov dword [esp + 4], 0x44d096
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x2ac]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x30c]
mov dword [esp], eax
mov dword [ebp - 0x2e8], 0x13
mov eax, dword [ebp - 0x308]
call eax
sub esp, 0x10
test eax, eax
je 0x41b6a9
mov eax, dword [ebp - 0x2ac]
test eax, eax
je 0x41b6a9
cmp dword [ebp - 0x2a8], 0x34
je 0x41bf14
lea eax, [ebp - 0x280]
mov dword [esp + 4], str.VerQueryValueW_failed_on
mov dword [esp + 8], eax
lea eax, [ebp - 0x220]
mov dword [esp], eax
mov dword [ebp - 0x2e8], 0x13
call fcn.00444720
mov eax, dword [ebp - 0x220]
mov dword [esp], eax
mov dword [ebp - 0x2e8], 0x14
call fcn.0041d750
mov eax, dword [ebp - 0x220]
lea edx, [ebp - 0x218]
cmp eax, edx
je 0x41b703
mov dword [esp], eax
call fcn.00444a10
mov eax, dword [ebp - 0x2ac]
mov edi, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov esi, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x324], edi
mov dword [ebp - 0x314], ebx
lea edi, [ebp - 0x278]
mov dword [ebp - 0x31c], eax
mov eax, dword [ebp - 0x30c]
mov dword [ebp - 0x320], esi
mov dword [esp], eax
call fcn.00444a00
mov eax, dword [ebp - 0x2f8]
mov dword [esp], eax
mov dword [ebp - 0x2e8], 0
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov eax, dword [ebp - 0x280]
sub esp, 4
cmp eax, edi
je 0x41b76f
mov dword [esp], eax
call fcn.00444a10
mov ebx, dword [ebp - 0x2f4]
lea eax, [ebp - 0x250]
mov dword [ebp - 0x24c], 0
mov byte [ebp - 0x248], 0
mov dword [ebp - 0x2f0], eax
mov ecx, eax
mov dword [ebp - 0x250], ebx
mov dword [esp], 0x40
mov dword [ebp - 0x2e8], 0x1b
call fcn.0043fe80
lea eax, [ebp - 0x238]
sub esp, 4
mov dword [ebp - 0x304], eax
lea eax, [ebp - 0x230]
mov dword [ebp - 0x308], eax
mov dword [ebp - 0x238], eax
mov eax, dword [ebp - 0x300]
mov dword [esp], eax
call sub.msvcrt.dll_wcslen
add eax, eax
mov edx, eax
mov dword [ebp - 0x310], eax
sar edx, 1
cmp edx, 7
mov dword [ebp - 0x29c], edx
ja 0x41bc40
cmp edx, 1
mov eax, dword [ebp - 0x238]
jne 0x41bd10
mov esi, dword [ebp - 0x300]
movzx ecx, word [esi]
mov word [eax], cx
xor esi, esi
mov dword [ebp - 0x234], edx
mov word [eax + edx*2], si
mov eax, dword [ebp - 0x304]
mov dword [esp + 4], eax
lea eax, [ebp - 0x220]
mov dword [esp], eax
mov dword [ebp - 0x2e8], 0xf
call fcn.004183f0
mov eax, dword [ebp - 0x21c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x220]
mov dword [esp], eax
mov ecx, dword [ebp - 0x2f0]
mov dword [ebp - 0x2e8], 0x10
call fcn.00440010
mov eax, dword [ebp - 0x24c]
sub esp, 8
mov edx, dword [ebp - 0x250]
cmp edx, dword [ebp - 0x2f4]
lea edi, [eax + 1]
mov dword [ebp - 0x310], eax
mov eax, 0xf
cmovne eax, dword [ebp - 0x248]
mov dword [ebp - 0x328], edi
cmp edi, eax
ja 0x41bad0
mov esi, dword [ebp - 0x310]
mov eax, dword [ebp - 0x328]
lea edi, [ebp - 0x218]
mov dword [ebp - 0x310], edi
mov byte [edx + esi], 0x3a
mov dword [ebp - 0x24c], eax
mov eax, dword [ebp - 0x250]
mov byte [eax + esi + 1], 0
mov eax, dword [ebp - 0x220]
cmp eax, edi
je 0x41b8e2
mov dword [esp], eax
call fcn.00444a10
mov eax, dword [ebp - 0x238]
cmp eax, dword [ebp - 0x308]
je 0x41b8f8
mov dword [esp], eax
call fcn.00444a10
mov eax, 0x7fffffff
sub eax, dword [ebp - 0x24c]
cmp eax, 1
jbe 0x41c0d9
mov dword [esp + 4], 2
mov dword [esp], 0x44d0d0
mov ecx, dword [ebp - 0x2f0]
mov dword [ebp - 0x2e8], 0xc
call fcn.00440010
mov edx, dword [ebp - 0x314]
mov ecx, dword [ebp - 0x324]
lea eax, [ebp - 0x220]
sub esp, 8
call fcn.0041acb0
mov eax, dword [ebp - 0x21c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x220]
mov dword [esp], eax
mov ecx, dword [ebp - 0x2f0]
mov dword [ebp - 0x2e8], 0xd
call fcn.00440010
mov eax, dword [ebp - 0x24c]
sub esp, 8
mov edx, dword [ebp - 0x250]
cmp edx, dword [ebp - 0x2f4]
lea ebx, [eax + 1]
mov dword [ebp - 0x314], eax
mov eax, 0xf
cmovne eax, dword [ebp - 0x248]
mov dword [ebp - 0x324], ebx
cmp ebx, eax
ja 0x41bb14
mov esi, dword [ebp - 0x314]
mov eax, dword [ebp - 0x324]
mov byte [edx + esi], 0x2f
mov dword [ebp - 0x24c], eax
mov eax, dword [ebp - 0x250]
mov byte [eax + esi + 1], 0
mov eax, 0x7fffffff
sub eax, dword [ebp - 0x24c]
cmp eax, 1
jbe 0x41c123
mov dword [esp + 4], 2
mov dword [esp], 0x44d0d3
mov ecx, dword [ebp - 0x2f0]
mov dword [ebp - 0x2e8], 0xd
call fcn.00440010
mov edx, dword [ebp - 0x31c]
mov ecx, dword [ebp - 0x320]
sub esp, 8
mov eax, dword [ebp - 0x304]
call fcn.0041acb0
mov eax, dword [ebp - 0x234]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x238]
mov dword [esp], eax
mov ecx, dword [ebp - 0x2f0]
mov dword [ebp - 0x2e8], 0xe
call fcn.00440010
sub esp, 8
mov eax, dword [ebp - 0x238]
cmp eax, dword [ebp - 0x308]
je 0x41ba5e
mov dword [esp], eax
call fcn.00444a10
mov eax, dword [ebp - 0x220]
cmp eax, dword [ebp - 0x310]
je 0x41ba74
mov dword [esp], eax
call fcn.00444a10
mov eax, dword [ebp - 0x2fc]
lea edx, [eax + 8]
mov dword [eax], edx
mov eax, dword [ebp - 0x250]
cmp eax, dword [ebp - 0x2f4]
je 0x41bf50
mov edi, dword [ebp - 0x2fc]
mov dword [edi], eax
mov eax, dword [ebp - 0x248]
mov dword [edi + 8], eax
mov eax, dword [ebp - 0x24c]
mov ecx, dword [ebp - 0x2fc]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x318]
mov dword [esp], eax
call fcn.00428750
mov eax, dword [ebp - 0x2fc]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x310]
mov dword [esp], eax
mov ecx, dword [ebp - 0x2f0]
mov dword [ebp - 0x2e8], 0x10
call fcn.004401e0
sub esp, 0x10
mov edx, dword [ebp - 0x250]
jmp 0x41b8a3
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x314]
mov dword [esp], eax
mov ecx, dword [ebp - 0x2f0]
mov dword [ebp - 0x2e8], 0xd
call fcn.004401e0
sub esp, 0x10
mov edx, dword [ebp - 0x250]
jmp 0x41b9aa
lea eax, [ebp - 0x2b0]
lea ecx, [ebp - 0x280]
mov dword [esp + 4], 0
mov dword [esp], eax
mov dword [ebp - 0x2e8], 0xb
call fcn.00442b90
mov edx, dword [ebp - 0x2b0]
sub esp, 8
mov dword [ebp - 0x280], eax
mov dword [ebp - 0x278], edx
mov ecx, dword [ebp - 0x2f0]
mov dword [esp + 8], ecx
mov esi, dword [ebp - 0x300]
mov dword [esp], eax
mov dword [esp + 4], esi
call sub.msvcrt.dll_memcpy
mov edx, dword [ebp - 0x2b0]
mov eax, dword [ebp - 0x280]
jmp 0x41b2e9
lea eax, [ebp - 0x2a4]
lea ecx, [ebp - 0x268]
mov dword [esp + 4], 0
mov dword [esp], eax
mov dword [ebp - 0x2e8], 0x11
call fcn.00442b90
mov edx, dword [ebp - 0x2a4]
sub esp, 8
mov dword [ebp - 0x268], eax
mov dword [ebp - 0x260], edx
mov ecx, dword [ebp - 0x2f0]
lea esi, [ebp - 0x220]
mov dword [esp], eax
mov dword [esp + 4], esi
mov dword [esp + 8], ecx
call sub.msvcrt.dll_memcpy
mov edx, dword [ebp - 0x2a4]
mov eax, dword [ebp - 0x268]
jmp 0x41b37a
lea eax, [ebp - 0x29c]
mov dword [esp + 4], 0
mov dword [esp], eax
mov ecx, dword [ebp - 0x304]
mov dword [ebp - 0x2e8], 0xc
call fcn.00442b90
mov edx, dword [ebp - 0x29c]
sub esp, 8
mov dword [ebp - 0x238], eax
mov dword [ebp - 0x230], edx
mov edi, dword [ebp - 0x310]
mov dword [esp + 8], edi
mov ecx, dword [ebp - 0x300]
mov dword [esp], eax
mov dword [esp + 4], ecx
call sub.msvcrt.dll_memcpy
mov edx, dword [ebp - 0x29c]
mov eax, dword [ebp - 0x238]
jmp 0x41b815
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp + 4], eax
mov dword [esp], str.GetSystemDirectory_failed
call fcn.0041d910
jmp 0x41b32c
mov dword [esp], str.GetSystemDirectory:_path_is_longer_than_MAX_PATH
mov dword [ebp - 0x2e8], 0x11
call fcn.0041d750
jmp 0x41b32c
test edx, edx
je 0x41b2e9
jmp 0x41bb9b
test edx, edx
je 0x41b37a
jmp 0x41bc0b
test edx, edx
je 0x41b815
jmp 0x41bc7b
mov dword [esp + 4], str.VerQueryValueW
mov dword [esp], str.GetProcAddress:__s_is_missing
mov dword [ebp - 0x2e8], 0x12
call fcn.004168d0
mov dword [esp], str.VerQueryValueW_is_missing
call fcn.0041d750
jmp 0x41b50d
mov dword [esp + 4], str.GetFileVersionInfoW
mov dword [esp], str.GetProcAddress:__s_is_missing
mov dword [ebp - 0x2e8], 0x12
call fcn.004168d0
mov dword [esp], str.GetFileVersionInfoW_is_missing
call fcn.0041d750
jmp 0x41b4d9
mov dword [esp + 4], str.GetFileVersionInfoSizeW
mov dword [esp], str.GetProcAddress:__s_is_missing
mov dword [ebp - 0x2e8], 0x12
call fcn.004168d0
mov dword [esp], str.GetFileVersionInfoSizeW_is_missing
call fcn.0041d750
jmp 0x41b4a5
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x314], eax
mov ebx, dword [ebp - 0x2f0]
lea eax, [ebp - 0x238]
mov dword [ebp - 0x304], eax
lea eax, [ebp - 0x230]
test ebx, ebx
mov dword [ebp - 0x308], eax
mov dword [ebp - 0x238], eax
je 0x41bf80
mov eax, dword [ebp - 0x2f0]
mov dword [esp], eax
call sub.msvcrt.dll_wcslen
add eax, eax
mov edx, eax
mov dword [ebp - 0x310], eax
sar edx, 1
cmp edx, 7
mov dword [ebp - 0x2a0], edx
ja 0x41c000
cmp edx, 1
mov eax, dword [ebp - 0x238]
jne 0x41c0a0
mov ebx, dword [ebp - 0x2f0]
movzx ecx, word [ebx]
mov word [eax], cx
xor ecx, ecx
mov dword [ebp - 0x234], edx
mov word [eax + edx*2], cx
mov dword [esp], str.LoadLibraryW_error:
call sub.msvcrt.dll_wcslen
mov dword [esp + 8], str.LoadLibraryW_error:
mov dword [esp + 0xc], eax
mov dword [esp + 4], 0
mov dword [esp], 0
mov ecx, dword [ebp - 0x304]
mov dword [ebp - 0x2e8], 0x19
call fcn.00440e20
lea edi, [ebp - 0x218]
lea edx, [eax + 8]
sub esp, 0x10
mov dword [ebp - 0x220], edi
mov ecx, dword [eax]
mov dword [ebp - 0x310], edi
cmp ecx, edx
je 0x41c0b0
mov dword [ebp - 0x220], ecx
mov ecx, dword [eax + 8]
mov dword [ebp - 0x218], ecx
mov ecx, dword [eax + 4]
mov dword [ebp - 0x21c], ecx
mov dword [eax], edx
xor edx, edx
mov dword [eax + 4], 0
mov word [eax + 8], dx
mov eax, dword [ebp - 0x314]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x220]
mov dword [esp], eax
mov dword [ebp - 0x2e8], 0x1a
call fcn.0041d910
mov eax, dword [ebp - 0x220]
cmp eax, dword [ebp - 0x310]
je 0x41bef5
mov dword [esp], eax
call fcn.00444a10
mov eax, dword [ebp - 0x238]
cmp eax, dword [ebp - 0x308]
je 0x41b43e
mov dword [esp], eax
call fcn.00444a10
jmp 0x41b43e
cmp dword [eax], 0xfeef04bd
jne 0x41b6a9
jmp 0x41b709
mov ecx, dword [eax + 8]
mov dword [ebp - 0x248], ecx
mov ecx, dword [edx + 4]
mov dword [ebp - 0x244], ecx
mov ecx, dword [edx + 8]
mov dword [ebp - 0x240], ecx
mov ecx, dword [edx + 0xc]
mov dword [ebp - 0x23c], ecx
jmp 0x41b3f6
mov ebx, dword [ebp - 0x2f4]
mov esi, dword [ebp - 0x2fc]
mov eax, dword [ebx]
mov dword [esi + 8], eax
mov eax, dword [ebx + 4]
mov dword [edx + 4], eax
mov eax, dword [ebx + 8]
mov dword [edx + 8], eax
mov eax, dword [ebx + 0xc]
mov dword [edx + 0xc], eax
jmp 0x41baa2
mov dword [esp], 0x44cda0
call fcn.00443ab0
lea esi, [esi]
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea edi, [ebp - 0x280]
lea ebx, [ebp - 0x220]
mov dword [ebp - 0x2f0], eax
mov dword [esp + 4], str.GetFileVersionInfoW_failed_on
mov dword [esp + 8], edi
mov dword [esp], ebx
call fcn.00444720
mov eax, dword [ebp - 0x2f0]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x220]
mov dword [esp], eax
mov dword [ebp - 0x2e8], 0x15
call fcn.0041d910
mov eax, dword [ebp - 0x220]
lea edx, [ebp - 0x218]
cmp eax, edx
je 0x41b640
mov dword [esp], eax
call fcn.00444a10
jmp 0x41b640
lea eax, [ebp - 0x2a0]
mov dword [esp + 4], 0
mov dword [esp], eax
mov ecx, dword [ebp - 0x304]
mov dword [ebp - 0x2e8], 0x18
call fcn.00442b90
mov edx, dword [ebp - 0x2a0]
sub esp, 8
mov dword [ebp - 0x238], eax
mov dword [ebp - 0x230], edx
mov edi, dword [ebp - 0x310]
mov dword [esp + 8], edi
mov ecx, dword [ebp - 0x2f0]
mov dword [esp], eax
mov dword [esp + 4], ecx
call sub.msvcrt.dll_memcpy
mov edx, dword [ebp - 0x2a0]
mov eax, dword [ebp - 0x238]
jmp 0x41be2c
test edx, edx
je 0x41be2c
jmp 0x41c03b
mov ecx, dword [eax + 8]
mov dword [ebp - 0x218], ecx
mov ecx, dword [edx + 4]
mov dword [ebp - 0x214], ecx
mov ecx, dword [edx + 8]
mov dword [ebp - 0x210], ecx
mov ecx, dword [edx + 0xc]
mov dword [ebp - 0x20c], ecx
jmp 0x41bea5
mov dword [esp], 0x44ce0a
mov dword [ebp - 0x2e8], 0xc
call fcn.00443ca0
mov dword [esp], 4
call fcn.00444b30
mov dword [eax], 0x44d28c
mov dword [esp + 8], 0x41ac20
mov dword [esp + 4], 0x44d240
mov dword [esp], eax
mov dword [ebp - 0x2e8], 0x12
call fcn.00445670
mov dword [esp], 0x44ce0a
mov dword [ebp - 0x2e8], 0xd
call fcn.00443ca0
mov dword [esp], 0x44ce0a
mov dword [ebp - 0x2e8], 0x17
call fcn.00443ca0
mov eax, dword [ebp - 0x280]
lea edx, [ebp - 0x278]
cmp eax, edx
je 0x41c167
mov dword [esp], eax
call fcn.00444a10
mov eax, dword [ebp - 0x298]
lea edx, [ebp - 0x290]
cmp eax, edx
je 0x41c17f
mov dword [esp], eax
call fcn.00444a10
mov eax, dword [ebp - 0x238]
lea edx, [ebp - 0x230]
cmp eax, edx
je 0x41c197
mov dword [esp], eax
call fcn.00444a10
mov eax, dword [ebp - 0x250]
lea edx, [ebp - 0x248]
cmp eax, edx
je 0x41c1af
mov dword [esp], eax
call fcn.00444a10
call fcn.00444ed0
mov eax, dword [ebp - 0x2f0]
mov dword [esp], eax
mov dword [ebp - 0x2e8], 0xffffffff
call fcn.004289f0
mov eax, dword [ebp - 0x220]
lea edx, [ebp - 0x218]
cmp eax, edx
je 0x41c1e4
mov dword [esp], eax
call fcn.00444a10
mov eax, dword [ebp - 0x2f8]
mov dword [esp], eax
mov dword [ebp - 0x2e8], 0
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push edi
mov eax, dword [ebp - 0x280]
lea edx, [ebp - 0x278]
cmp eax, edx
je 0x41c216
mov dword [esp], eax
call fcn.00444a10
mov edx, dword [ebp - 0x2f4]
mov eax, dword [ebp - 0x2f0]
cmp edx, 1
mov dword [esp], eax
je 0x41c474
cmp edx, 2
jne 0x41c465
call fcn.00444c20
mov edx, dword [eax]
lea esi, [ebp - 0x250]
mov ecx, eax
call dword [edx]
mov ecx, esi
mov dword [esp], eax
mov dword [ebp - 0x2e8], 1
mov dword [ebp - 0x2f0], esi
call fcn.00446580
push edi
mov esi, dword [ebp - 0x2f0]
lea eax, [ebp - 0x238]
mov dword [ebp - 0x304], eax
mov dword [esp], eax
mov dword [esp + 4], esi
mov dword [ebp - 0x2e8], 4
call fcn.004183f0
mov eax, dword [ebp - 0x238]
mov esi, dword [ebp - 0x300]
lea ecx, [ebp - 0x298]
mov dword [ebp - 0x2f4], eax
mov dword [esp], esi
mov dword [ebp - 0x2e8], 5
call fcn.00446580
lea eax, [ebp - 0x280]
push esi
lea esi, [ebp - 0x298]
mov dword [esp], eax
mov dword [esp + 4], esi
mov dword [ebp - 0x2e8], 6
call fcn.004183f0
mov eax, dword [ebp - 0x2f4]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x280]
mov dword [esp], str.Error_getting__s_version:__s
mov dword [esp + 4], eax
mov dword [ebp - 0x2e8], 7
call fcn.004168d0
mov eax, dword [ebp - 0x280]
lea edx, [ebp - 0x278]
cmp eax, edx
je 0x41c31a
mov dword [esp], eax
call fcn.00444a10
mov eax, dword [ebp - 0x298]
lea edx, [ebp - 0x290]
cmp eax, edx
je 0x41c332
mov dword [esp], eax
call fcn.00444a10
mov eax, dword [ebp - 0x238]
lea esi, [ebp - 0x230]
mov dword [ebp - 0x308], esi
cmp eax, esi
je 0x41c350
mov dword [esp], eax
call fcn.00444a10
mov eax, dword [ebp - 0x250]
lea esi, [ebp - 0x248]
mov dword [ebp - 0x2f4], esi
cmp eax, esi
je 0x41c36e
mov dword [esp], eax
call fcn.00444a10
mov eax, dword [ebp - 0x300]
mov dword [esp], eax
mov ecx, dword [ebp - 0x2f0]
mov dword [ebp - 0x2e8], 1
call fcn.00446580
push ebx
mov eax, dword [ebp - 0x2f0]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x304]
mov dword [esp], eax
mov dword [ebp - 0x2e8], 2
call fcn.004183f0
mov dword [esp], str.:error
mov ecx, dword [ebp - 0x304]
mov dword [ebp - 0x2e8], 3
call fcn.0043f140
push edx
mov dword [esp], eax
mov ecx, dword [ebp - 0x2fc]
call fcn.004403d0
push ecx
mov eax, dword [ebp - 0x238]
cmp eax, dword [ebp - 0x308]
je 0x41c3f1
mov dword [esp], eax
call fcn.00444a10
mov eax, dword [ebp - 0x250]
cmp eax, dword [ebp - 0x2f4]
je 0x41c407
mov dword [esp], eax
call fcn.00444a10
call fcn.00444ed0
lea eax, [ebp - 0x2ec]
mov dword [ebp - 0x318], eax
jmp 0x41bab1
mov dword [ebp - 0x2e8], 0xffffffff
call fcn.004289f0
call fcn.00444c20
mov esi, dword [ebp - 0x300]
lea eax, [ebp - 0x250]
mov ecx, eax
mov dword [esp], esi
mov dword [ebp - 0x2e8], 8
mov dword [ebp - 0x2f0], eax
call fcn.00446580
push ebx
mov eax, dword [ebp - 0x2f0]
lea esi, [ebp - 0x238]
mov dword [esp + 4], eax
mov dword [ebp - 0x304], esi
mov dword [esp], esi
mov dword [ebp - 0x2e8], 9
call fcn.004183f0
mov dword [esp], str.:none
mov ecx, dword [ebp - 0x304]
mov dword [ebp - 0x2e8], 0xa
call fcn.0043f140
push edx
mov dword [esp], eax
mov ecx, dword [ebp - 0x2fc]
call fcn.004403d0
push ecx
mov eax, dword [ebp - 0x238]
lea edx, [ebp - 0x230]
cmp eax, edx
je 0x41c50c
mov dword [esp], eax
call fcn.00444a10
mov eax, dword [ebp - 0x250]
lea edx, [ebp - 0x248]
cmp eax, edx
je 0x41c524
mov dword [esp], eax
call fcn.00444a10
mov dword [ebp - 0x2e8], 0xffffffff
call fcn.00444ed0
lea eax, [ebp - 0x2ec]
mov dword [ebp - 0x318], eax
jmp 0x41bab1