Function at 0x415050
Capabilities:
Copy file
Create directory
Delete file
Get common file path
Get file size
Read .ini file
Read file on windows
Resolve function by parsing pe exports
Write file on windows

Disassembly:
push 0xffffffffffffffff
push 0x490df6
mov eax, dword fs:[0]
push eax
sub esp, 0x328
mov eax, dword [0x4b99e4]
xor eax, esp
mov dword [esp + 0x324], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4b99e4]
xor eax, esp
push eax
lea eax, [esp + 0x33c]
mov dword fs:[0], eax
mov eax, dword [esp + 0x34c]
imul eax, eax, 0xb0
lea edi, [eax + ecx]
xor ebx, ebx
push 0xffffffffffffffff
lea eax, [edi + 0x104]
push ebx
mov dword [esp + 0x20], ecx
mov esi, 0xf
push eax
lea ecx, [esp + 0xfc]
mov dword [esp + 0x30], eax
mov dword [esp + 0x114], esi
mov dword [esp + 0x110], ebx
mov byte [esp + 0x100], bl
call fcn.00402830
push 0xffffffffffffffff
lea eax, [edi + 0x124]
push ebx
push eax
lea ecx, [esp + 0xe0]
mov dword [esp + 0x350], ebx
mov dword [esp + 0xf8], esi
mov dword [esp + 0xf4], ebx
mov byte [esp + 0xe4], bl
call fcn.00402830
push 0xffffffffffffffff
lea eax, [edi + 0xe8]
push ebx
push eax
lea ecx, [esp + 0x70]
mov byte [esp + 0x350], 1
mov dword [esp + 0x88], esi
mov dword [esp + 0x84], ebx
mov byte [esp + 0x74], bl
call fcn.00402830
lea ecx, [esp + 0xd4]
push ecx
lea edx, [esp + 0xf4]
push edx
lea eax, [esp + 0x114]
push eax
mov byte [esp + 0x350], 2
call fcn.00414660
mov ebp, 0x10
add esp, 0xc
cmp dword [eax + 0x18], ebp
jb 0x41516b
mov eax, dword [eax + 4]
jmp 0x41516e
add eax, 4
push eax
push ebx
push str.Multi_User
push str.System
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov esi, eax
cmp dword [esp + 0x124], ebp
jb 0x41519b
mov ecx, dword [esp + 0x110]
push ecx
call fcn.00418a35
add esp, 4
mov eax, dword [esp + 0x68]
cmp dword [esp + 0x7c], ebp
jae 0x4151a9
lea eax, [esp + 0x68]
push str.Last_Install_Path
push eax
call fcn.0044f9c0
add esp, 8
test eax, eax
jne 0x4151db
mov eax, dword [esp + 0x68]
cmp dword [esp + 0x7c], ebp
jae 0x4151c9
lea eax, [esp + 0x68]
push str.Last_Beta_Install_Path
push eax
call fcn.0044f9c0
add esp, 8
test eax, eax
je 0x4151e0
mov esi, 1
mov eax, 0xf
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], ebx
mov byte [esp + 0x30], bl
mov dword [esp + 0x98], eax
mov dword [esp + 0x94], ebx
mov byte [esp + 0x84], bl
mov byte [esp + 0x344], 4
cmp esi, ebx
jne 0x415249
push str.profile
lea edx, [esp + 0xf4]
push edx
lea eax, [esp + 0x114]
push eax
call fcn.004103a0
add esp, 0xc
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0x38]
mov byte [esp + 0x350], 5
call fcn.00402830
jmp 0x415593
push 0x104
lea edx, [esp + 0x238]
push ebx
push edx
mov dword [esp + 0x28], 0x104
call fcn.0044c250
add esp, 0xc
lea eax, [esp + 0x20]
push eax
push 0xf01ff
mov dword [esp + 0x28], ebx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
jne 0x41534c
cmp dword [esp + 0x98], ebp
jb 0x4152a3
mov ecx, dword [esp + 0x84]
push ecx
call fcn.00418a35
add esp, 4
mov esi, 0xf
mov dword [esp + 0x98], esi
mov dword [esp + 0x94], ebx
mov byte [esp + 0x84], bl
cmp dword [esp + 0x44], ebp
jb 0x4152d0
mov edx, dword [esp + 0x30]
push edx
call fcn.00418a35
add esp, 4
mov dword [esp + 0x44], esi
mov dword [esp + 0x40], ebx
mov byte [esp + 0x30], bl
cmp dword [esp + 0x7c], ebp
jb 0x4152ef
mov eax, dword [esp + 0x68]
push eax
call fcn.00418a35
add esp, 4
mov dword [esp + 0x7c], esi
mov dword [esp + 0x78], ebx
mov byte [esp + 0x68], bl
cmp dword [esp + 0xec], ebp
jb 0x415314
mov ecx, dword [esp + 0xd8]
push ecx
call fcn.00418a35
add esp, 4
mov dword [esp + 0xec], esi
mov dword [esp + 0xe8], ebx
mov byte [esp + 0xd8], bl
cmp dword [esp + 0x108], ebp
jb 0x415342
mov edx, dword [esp + 0xf4]
push edx
call fcn.00418a35
add esp, 4
mov eax, 1
jmp 0x4160a3
mov edx, dword [esp + 0x20]
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x238]
push ecx
push edx
call dword [sym.imp.USERENV.dll_GetUserProfileDirectoryA]
test eax, eax
jne 0x415432
cmp dword [esp + 0x98], ebp
jb 0x415385
mov eax, dword [esp + 0x84]
push eax
call fcn.00418a35
add esp, 4
mov esi, 0xf
mov dword [esp + 0x98], esi
mov dword [esp + 0x94], ebx
mov byte [esp + 0x84], bl
cmp dword [esp + 0x44], ebp
jb 0x4153b2
mov ecx, dword [esp + 0x30]
push ecx
call fcn.00418a35
add esp, 4
mov dword [esp + 0x44], esi
mov dword [esp + 0x40], ebx
mov byte [esp + 0x30], bl
cmp dword [esp + 0x7c], ebp
jb 0x4153d1
mov edx, dword [esp + 0x68]
push edx
call fcn.00418a35
add esp, 4
mov dword [esp + 0x7c], esi
mov dword [esp + 0x78], ebx
mov byte [esp + 0x68], bl
cmp dword [esp + 0xec], ebp
jb 0x4153f6
mov eax, dword [esp + 0xd8]
push eax
call fcn.00418a35
add esp, 4
mov dword [esp + 0xec], esi
mov dword [esp + 0xe8], ebx
mov byte [esp + 0xd8], bl
cmp dword [esp + 0x108], ebp
jb 0x415342
mov ecx, dword [esp + 0xf4]
push ecx
call fcn.00418a35
add esp, 4
mov eax, 1
jmp 0x4160a3
lea eax, [esp + 0x234]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x415440
sub eax, edx
push eax
lea edx, [esp + 0x238]
push edx
lea ecx, [esp + 0x34]
call fcn.00402910
push 0x17
push str.Application_DataOpera
lea ecx, [esp + 0x34]
call fcn.00409600
push 1
push 0xffffffffffffffff
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0xfc]
mov byte [esp + 0x20], 0x5c
call fcn.004117b0
cmp eax, 0xffffffff
je 0x415499
push 0xffffffffffffffff
push eax
lea ecx, [esp + 0xf8]
call fcn.004020a0
push 1
push 0xffffffffffffffff
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0xfc]
mov byte [esp + 0x20], 0x5c
call fcn.004117b0
mov edx, dword [esp + 0x104]
push edx
push eax
lea eax, [esp + 0x114]
push eax
lea ecx, [esp + 0xfc]
call fcn.00411eb0
push 0xffffffffffffffff
push ebx
lea ecx, [esp + 0x114]
push ecx
lea ecx, [esp + 0x38]
mov byte [esp + 0x350], 6
call fcn.00409120
push 0xffffffffffffffff
push ebx
lea edx, [esp + 0x34]
push edx
lea ecx, [esp + 0x8c]
call fcn.00402830
push 1
push 0xffffffffffffffff
lea eax, [esp + 0x1c]
lea esi, [edi + 0x140]
push eax
mov ecx, esi
mov byte [esp + 0x20], 0x5c
call fcn.004117b0
push eax
push ebx
lea ecx, [esp + 0x1a0]
push ecx
mov ecx, esi
call fcn.00411eb0
mov byte [esp + 0x344], 7
cmp dword [esp + 0x1ac], ebx
je 0x415554
push 0xffffffffffffffff
push ebx
lea edx, [esp + 0x1a0]
push edx
lea ecx, [esp + 0x8c]
call fcn.00409120
push 0xffffffffffffffff
push ebx
push esi
lea ecx, [esp + 0x38]
call fcn.00409120
cmp dword [esp + 0x1b0], ebp
jb 0x41557a
mov eax, dword [esp + 0x19c]
push eax
call fcn.00418a35
add esp, 4
mov dword [esp + 0x1b0], 0xf
mov dword [esp + 0x1ac], ebx
mov byte [esp + 0x19c], bl
mov byte [esp + 0x344], 4
cmp dword [esp + 0x124], ebp
jb 0x4155b4
mov ecx, dword [esp + 0x110]
push ecx
call fcn.00418a35
add esp, 4
push str.menu
lea edx, [esp + 0x84]
push edx
lea eax, [esp + 0x130]
push eax
call fcn.004103a0
push str.menu_thunder.ini
lea ecx, [esp + 0x138]
push ecx
lea edx, [esp + 0x5c]
push edx
mov byte [esp + 0x35c], 8
call fcn.004103a0
add esp, 0x18
mov eax, dword [esp + 0x12c]
mov byte [esp + 0x344], 9
cmp dword [esp + 0x140], ebp
jae 0x41560f
lea eax, [esp + 0x12c]
mov ecx, dword [esp + 0x18]
push 1
push eax
call fcn.00414440
test eax, eax
jne 0x41563e
mov eax, dword [esp + 0x12c]
cmp dword [esp + 0x140], ebp
jae 0x415636
lea eax, [esp + 0x12c]
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
cmp byte [esp + 0x350], bl
jne 0x415789
mov eax, dword [esp + 0x4c]
cmp dword [esp + 0x60], ebp
jae 0x415659
lea eax, [esp + 0x4c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov eax, dword [esp + 0x30]
cmp dword [esp + 0x44], ebp
jae 0x41566e
lea eax, [esp + 0x30]
mov esi, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
push eax
push 0x497a4e
push str.Download_Manager
push str.User_Prefs
call esi
mov eax, dword [esp + 0x30]
cmp dword [esp + 0x44], ebp
jae 0x415694
lea eax, [esp + 0x30]
push eax
push 0x49851c
push str.Use_External_Download_Manager
push str.User_Prefs
call esi
cmp dword [esp + 0x60], ebp
jb 0x4156b9
mov eax, dword [esp + 0x4c]
push eax
call fcn.00418a35
add esp, 4
mov esi, 0xf
mov dword [esp + 0x60], esi
mov dword [esp + 0x5c], ebx
mov byte [esp + 0x4c], bl
cmp dword [esp + 0x140], ebp
jb 0x4156e3
mov ecx, dword [esp + 0x12c]
push ecx
call fcn.00418a35
add esp, 4
mov dword [esp + 0x140], esi
mov dword [esp + 0x13c], ebx
mov byte [esp + 0x12c], bl
cmp dword [esp + 0x98], ebp
jb 0x415711
mov edx, dword [esp + 0x84]
push edx
call fcn.00418a35
add esp, 4
mov dword [esp + 0x98], esi
mov dword [esp + 0x94], ebx
mov byte [esp + 0x84], bl
cmp dword [esp + 0x44], ebp
jb 0x415739
mov eax, dword [esp + 0x30]
push eax
call fcn.00418a35
add esp, 4
mov dword [esp + 0x44], esi
mov dword [esp + 0x40], ebx
mov byte [esp + 0x30], bl
cmp dword [esp + 0x7c], ebp
jb 0x415758
mov ecx, dword [esp + 0x68]
push ecx
call fcn.00418a35
add esp, 4
mov dword [esp + 0x7c], esi
mov dword [esp + 0x78], ebx
mov byte [esp + 0x68], bl
cmp dword [esp + 0xec], ebp
jb 0x41577d
mov edx, dword [esp + 0xd8]
push edx
call fcn.00418a35
add esp, 4
cmp dword [esp + 0x108], ebp
jmp 0x41607a
mov ecx, dword [esp + 0x24]
add edi, 0x15c
push edi
push ecx
lea edx, [esp + 0x184]
push edx
call fcn.00414660
add esp, 0xc
mov ecx, dword [esp + 0x30]
mov byte [esp + 0x344], 0xa
cmp dword [esp + 0x44], ebp
jae 0x4157bb
lea ecx, [esp + 0x30]
mov eax, dword [esp + 0x4c]
cmp dword [esp + 0x60], ebp
jae 0x4157c9
lea eax, [esp + 0x4c]
mov esi, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
push ecx
push eax
push str.Menu_Configuration
push str.User_Prefs
call esi
mov eax, dword [esp + 0x30]
cmp dword [esp + 0x44], ebp
jae 0x4157eb
lea eax, [esp + 0x30]
push eax
push 0x498958
push str.Use_External_Download_Manager
push str.User_Prefs
call esi
mov ecx, dword [esp + 0x4c]
cmp dword [esp + 0x60], ebp
jae 0x41580b
lea ecx, [esp + 0x4c]
mov eax, dword [esp + 0x180]
cmp dword [esp + 0x194], ebp
jae 0x415822
lea eax, [esp + 0x180]
push ebx
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
push 6
push str.Item__
lea ecx, [esp + 0xc0]
mov dword [esp + 0xd8], 0xf
mov dword [esp + 0xd4], ebx
mov byte [esp + 0xc4], bl
call fcn.00402910
mov esi, dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
push ebx
push ebx
push ebx
lea eax, [esp + 0x1c0]
push eax
push 0xffffffffffffffff
push 0x499400
push ebx
push 0xfde9
mov byte [esp + 0x364], 0xb
call esi
push ebx
push ebx
push eax
lea ecx, [esp + 0x1c0]
push ecx
push 0xffffffffffffffff
push 0x499400
push ebx
push 0xfde9
call esi
lea eax, [esp + 0x1b4]
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x4158a3
sub eax, edi
push eax
lea edx, [esp + 0x1b8]
push edx
lea ecx, [esp + 0xc0]
call fcn.00409600
push 1
push 0x4993fc
lea ecx, [esp + 0xc0]
call fcn.00409600
push 0x12
mov edi, 0xf
push str.Execute_Program___
lea ecx, [esp + 0xa4]
mov dword [esp + 0xbc], edi
mov dword [esp + 0xb8], ebx
mov byte [esp + 0xa8], bl
call fcn.00402910
mov dword [esp + 0x178], edi
mov dword [esp + 0x174], ebx
mov byte [esp + 0x164], bl
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x34]
mov byte [esp + 0x344], 0xd
cmp dword [ecx + 0x38], ebp
jb 0x41592f
mov ecx, dword [ecx + 0x24]
jmp 0x415932
add ecx, 0x24
lea edx, [esp + 0x160]
push edx
push eax
push ecx
call fcn.00403040
push str.XLNonIESvr.exe______l__u_
lea eax, [esp + 0x170]
push eax
lea ecx, [esp + 0x120]
push ecx
call fcn.004103a0
add esp, 0x18
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0xa8]
mov byte [esp + 0x350], 0xe
call fcn.00409120
mov byte [esp + 0x344], 0xd
cmp dword [esp + 0x124], ebp
jb 0x415997
mov edx, dword [esp + 0x110]
push edx
call fcn.00418a35
add esp, 4
mov edx, dword [esp + 0x4c]
cmp dword [esp + 0x60], ebp
jae 0x4159a5
lea edx, [esp + 0x4c]
mov ecx, dword [esp + 0xa0]
cmp dword [esp + 0xb4], ebp
jae 0x4159bc
lea ecx, [esp + 0xa0]
mov eax, dword [esp + 0xbc]
cmp dword [esp + 0xd0], ebp
jae 0x4159d3
lea eax, [esp + 0xbc]
mov edi, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
push edx
push ecx
push eax
push str.Link_Popup_Menu
call edi
mov edx, dword [esp + 0x4c]
cmp dword [esp + 0x60], ebp
jae 0x4159f1
lea edx, [esp + 0x4c]
mov ecx, dword [esp + 0xa0]
cmp dword [esp + 0xb4], ebp
jae 0x415a08
lea ecx, [esp + 0xa0]
mov eax, dword [esp + 0xbc]
cmp dword [esp + 0xd0], ebp
jae 0x415a1f
lea eax, [esp + 0xbc]
push edx
push ecx
push eax
push str.Image_Link_Popup_Menu
call edi
push 0x27
push str.Copy_image_address__Execute_Program___
lea ecx, [esp + 0xa4]
call fcn.00402910
push str.XLNonIESvr.exe______c__u_
lea eax, [esp + 0x164]
push eax
lea ecx, [esp + 0x114]
push ecx
call fcn.004103a0
add esp, 0xc
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0xa8]
mov byte [esp + 0x350], 0xf
call fcn.00409120
mov byte [esp + 0x344], 0xd
cmp dword [esp + 0x124], ebp
jb 0x415a92
mov edx, dword [esp + 0x110]
push edx
call fcn.00418a35
add esp, 4
mov edx, dword [esp + 0x4c]
cmp dword [esp + 0x60], ebp
jae 0x415aa0
lea edx, [esp + 0x4c]
mov ecx, dword [esp + 0xa0]
cmp dword [esp + 0xb4], ebp
jae 0x415ab7
lea ecx, [esp + 0xa0]
mov eax, dword [esp + 0xbc]
cmp dword [esp + 0xd0], ebp
jae 0x415ace
lea eax, [esp + 0xbc]
push edx
push ecx
push eax
push str.Image_Popup_Menu
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
push 6
push str.Item__
lea ecx, [esp + 0xc0]
call fcn.00402910
push ebx
push ebx
push ebx
lea eax, [esp + 0x1c0]
push eax
push 0xffffffffffffffff
push 0x499334
push ebx
push 0xfde9
call esi
push ebx
push ebx
push eax
lea ecx, [esp + 0x1c0]
push ecx
push 0xffffffffffffffff
push 0x499334
push ebx
push 0xfde9
call esi
lea eax, [esp + 0x1b4]
lea edi, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x415b30
sub eax, edi
push eax
lea edx, [esp + 0x1b8]
push edx
lea ecx, [esp + 0xc0]
call fcn.00409600
push 1
push 0x4993fc
lea ecx, [esp + 0xc0]
call fcn.00409600
push 0x12
push str.Execute_Program___
lea ecx, [esp + 0xa4]
call fcn.00402910
push str.XLNonIESvr.exe_____s__u_
lea eax, [esp + 0x164]
push eax
lea ecx, [esp + 0x114]
push ecx
call fcn.004103a0
add esp, 0xc
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0xa8]
mov byte [esp + 0x350], 0x10
call fcn.00409120
mov byte [esp + 0x344], 0xd
cmp dword [esp + 0x124], ebp
jb 0x415bca
mov edx, dword [esp + 0x110]
push edx
call fcn.00418a35
add esp, 4
mov edx, dword [esp + 0x4c]
cmp dword [esp + 0x60], ebp
jae 0x415bd8
lea edx, [esp + 0x4c]
mov ecx, dword [esp + 0xa0]
cmp dword [esp + 0xb4], ebp
jae 0x415bef
lea ecx, [esp + 0xa0]
mov eax, dword [esp + 0xbc]
cmp dword [esp + 0xd0], ebp
jae 0x415c06
lea eax, [esp + 0xbc]
push edx
push ecx
push eax
push str.Document_Popup_Menu
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
push 0x11
push 0x4992f0
lea ecx, [esp + 0x14c]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x164], 0xf
mov dword [esp + 0x160], ebx
mov byte [esp + 0x150], bl
call fcn.00402910
push ebx
push ebx
push ebx
lea eax, [esp + 0x200]
push eax
push 0xffffffffffffffff
push 0x4992e8
push ebx
push 0xfde9
mov byte [esp + 0x364], 0x11
call esi
push ebx
push ebx
push eax
lea ecx, [esp + 0x200]
push ecx
push 0xffffffffffffffff
push 0x4992e8
push ebx
push 0xfde9
call esi
lea eax, [esp + 0x1f4]
lea esi, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x415c90
sub eax, esi
push eax
lea edx, [esp + 0x1f8]
push edx
lea ecx, [esp + 0x14c]
call fcn.00409600
mov eax, dword [esp + 0x30]
cmp dword [esp + 0x44], ebp
jae 0x415cbc
lea eax, [esp + 0x30]
push ebx
push 0x80
push 3
push ebx
push 1
push SysReAllocString
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
je 0x415e8d
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov edi, eax
lea eax, [edi + 1]
push eax
call fcn.00418a40
add esp, 4
push ebx
lea ecx, [esp + 0x2c]
push ecx
mov ebp, eax
push edi
push ebp
push esi
mov dword [esp + 0x34], ebp
mov dword [esp + 0x3c], ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
push esi
mov byte [edi + ebp], bl
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [esp + 0x44], 0x10
mov eax, dword [esp + 0x30]
jae 0x415d26
lea eax, [esp + 0x30]
push ebx
push 0x80
push 2
push ebx
push 2
push 0x40000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov edi, eax
cmp edi, 0xffffffff
je 0x415db7
push str.Download_Manager
push ebp
call fcn.0044f9c0
mov esi, eax
add esp, 8
cmp esi, ebx
je 0x415d81
jmp 0x415d60
cmp byte [esi + 0x10], 0xd
lea eax, [esi + 0x10]
je 0x415dfb
push str.Download_Manager
push eax
call fcn.0044f9c0
mov esi, eax
add esp, 8
cmp esi, ebx
jne 0x415d60
mov eax, ebp
mov dword [esp + 0x1c], ebx
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x415d90
push ebx
sub eax, edx
lea edx, [esp + 0x20]
push edx
push eax
push ebp
push edi
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov dword [esp + 0x1c], 1
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push ebp
call fcn.00418a4b
add esp, 4
cmp dword [esp + 0x1c], ebx
je 0x415e8d
mov eax, dword [esp + 0x30]
mov edi, 0x10
cmp dword [esp + 0x44], edi
jae 0x415ddd
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x1f8]
push eax
push str.Download_Manager
push str.User_Prefs
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
jmp 0x415e92
mov eax, ebp
mov byte [esi], bl
mov dword [esp + 0x18], ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x415e06
mov ebp, dword [sym.imp.KERNEL32.dll_WriteFile]
sub eax, edx
push ebx
lea edx, [esp + 0x1c]
push edx
push eax
mov eax, dword [esp + 0x2c]
push eax
push edi
call ebp
push 2
push ebx
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp dword [esp + 0x15c], 0x10
mov eax, dword [esp + 0x148]
jae 0x415e47
lea eax, [esp + 0x148]
mov edx, dword [esp + 0x158]
push ebx
lea ecx, [esp + 0x1c]
push ecx
push edx
push eax
push edi
call ebp
push 2
push ebx
push ebx
push edi
add esi, 0x10
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov eax, esi
lea ecx, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
inc eax
cmp dl, bl
jne 0x415e70
push ebx
sub eax, ecx
lea ecx, [esp + 0x1c]
push ecx
push eax
push esi
push edi
call ebp
mov ebp, dword [esp + 0x20]
jmp 0x415db0
mov edi, 0x10
mov eax, dword [esp + 0x30]
cmp dword [esp + 0x44], edi
jae 0x415ea0
lea eax, [esp + 0x30]
push eax
push 0x49851c
push str.Show_Download_Manager_Selection_Dialog
push str.User_Prefs
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
cmp dword [esp + 0x15c], edi
jb 0x415ecf
mov ecx, dword [esp + 0x148]
push ecx
call fcn.00418a35
add esp, 4
mov esi, 0xf
mov dword [esp + 0x15c], esi
mov dword [esp + 0x158], ebx
mov byte [esp + 0x148], bl
cmp dword [esp + 0x178], edi
jb 0x415f02
mov edx, dword [esp + 0x164]
push edx
call fcn.00418a35
add esp, 4
mov dword [esp + 0x178], esi
mov dword [esp + 0x174], ebx
mov byte [esp + 0x164], bl
cmp dword [esp + 0xb4], edi
jb 0x415f30
mov eax, dword [esp + 0xa0]
push eax
call fcn.00418a35
add esp, 4
mov dword [esp + 0xb4], esi
mov dword [esp + 0xb0], ebx
mov byte [esp + 0xa0], bl
cmp dword [esp + 0xd0], edi
jb 0x415f5e
mov ecx, dword [esp + 0xbc]
push ecx
call fcn.00418a35
add esp, 4
mov dword [esp + 0xd0], esi
mov dword [esp + 0xcc], ebx
mov byte [esp + 0xbc], bl
cmp dword [esp + 0x194], edi
jb 0x415f8c
mov edx, dword [esp + 0x180]
push edx
call fcn.00418a35
add esp, 4
mov dword [esp + 0x194], esi
mov dword [esp + 0x190], ebx
mov byte [esp + 0x180], bl
cmp dword [esp + 0x60], edi
jb 0x415fb4
mov eax, dword [esp + 0x4c]
push eax
call fcn.00418a35
add esp, 4
mov dword [esp + 0x60], esi
mov dword [esp + 0x5c], ebx
mov byte [esp + 0x4c], bl
cmp dword [esp + 0x140], edi
jb 0x415fd9
mov ecx, dword [esp + 0x12c]
push ecx
call fcn.00418a35
add esp, 4
mov dword [esp + 0x140], esi
mov dword [esp + 0x13c], ebx
mov byte [esp + 0x12c], bl
cmp dword [esp + 0x98], edi
jb 0x416007
mov edx, dword [esp + 0x84]
push edx
call fcn.00418a35
add esp, 4
mov dword [esp + 0x98], esi
mov dword [esp + 0x94], ebx
mov byte [esp + 0x84], bl
cmp dword [esp + 0x44], edi
jb 0x41602f
mov eax, dword [esp + 0x30]
push eax
call fcn.00418a35
add esp, 4
mov dword [esp + 0x44], esi
mov dword [esp + 0x40], ebx
mov byte [esp + 0x30], bl
cmp dword [esp + 0x7c], edi
jb 0x41604e
mov ecx, dword [esp + 0x68]
push ecx
call fcn.00418a35
add esp, 4
mov dword [esp + 0x7c], esi
mov dword [esp + 0x78], ebx
mov byte [esp + 0x68], bl
cmp dword [esp + 0xec], edi
jb 0x416073
mov edx, dword [esp + 0xd8]
push edx
call fcn.00418a35
add esp, 4
cmp dword [esp + 0x108], edi
mov byte [esp + 0xd8], bl
mov dword [esp + 0xe8], ebx
mov dword [esp + 0xec], esi
jb 0x4160a1
mov eax, dword [esp + 0xf4]
push eax
call fcn.00418a35
add esp, 4
xor eax, eax
mov ecx, dword [esp + 0x33c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x324]
xor ecx, esp
call fcn.0044c23d
add esp, 0x334
ret 8