Function at 0x408ae0
Capabilities:
Check if file exists
Copy file
Create directory
Delete file
Get common file path
Get file attributes
Get file size
Read .ini file
Read file on windows
Write file on windows

Disassembly:
push 0xffffffffffffffff
push 0x41eac6
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x324
mov eax, dword [esp + 0x334]
push ebx
imul eax, eax, 0xb0
push ebp
push esi
push edi
xor ebx, ebx
lea ebp, [eax + ecx]
push 0xffffffffffffffff
lea eax, [ebp + 0x104]
push ebx
mov dword [esp + 0x15c], ecx
mov esi, 0xf
push eax
lea ecx, [esp + 0xf0]
mov dword [esp + 0x108], esi
mov dword [esp + 0x104], ebx
mov byte [esp + 0xf4], bl
mov dword [esp + 0x44], eax
call fcn.00401580
push 0xffffffffffffffff
push ebx
lea ecx, [ebp + 0x124]
push ecx
lea ecx, [esp + 0xd4]
mov dword [esp + 0x348], ebx
mov dword [esp + 0xec], esi
mov dword [esp + 0xe8], ebx
mov byte [esp + 0xd8], bl
call fcn.00401580
push 0xffffffffffffffff
push ebx
lea edx, [ebp + 0xe8]
push edx
lea ecx, [esp + 0x64]
mov byte [esp + 0x348], 1
mov dword [esp + 0x7c], esi
mov dword [esp + 0x78], ebx
mov byte [esp + 0x68], bl
call fcn.00401580
lea eax, [esp + 0xc8]
push eax
lea ecx, [esp + 0xe8]
push ecx
lea edx, [esp + 0x108]
push edx
mov byte [esp + 0x348], 2
call fcn.00408110
mov ecx, dword [eax + 0x18]
add esp, 0xc
cmp ecx, 0x10
jb 0x408bda
mov eax, dword [eax + 4]
jmp 0x408bdd
add eax, 4
push eax
push ebx
push str.Multi_User
push str.System
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov edi, eax
cmp dword [esp + 0x118], 0x10
jb 0x408c0b
mov eax, dword [esp + 0x104]
push eax
call fcn.00418537
add esp, 4
cmp dword [esp + 0x70], 0x10
mov eax, dword [esp + 0x5c]
jae 0x408c1a
lea eax, [esp + 0x5c]
push str.Last_Install_Path
push eax
call fcn.0040e0b0
add esp, 8
test eax, eax
jne 0x408c4d
cmp dword [esp + 0x70], 0x10
mov eax, dword [esp + 0x5c]
jae 0x408c3b
lea eax, [esp + 0x5c]
push str.Last_Beta_Install_Path
push eax
call fcn.0040e0b0
add esp, 8
test eax, eax
je 0x408c52
mov edi, 1
mov dword [esp + 0x34], esi
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
mov dword [esp + 0x8c], esi
mov dword [esp + 0x88], ebx
mov byte [esp + 0x78], bl
cmp edi, ebx
mov byte [esp + 0x33c], 4
jne 0x408cbb
push str.profile
lea ecx, [esp + 0xe8]
push ecx
lea edx, [esp + 0x108]
push edx
call fcn.00404940
add esp, 0xc
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0x28]
mov byte [esp + 0x348], 5
call fcn.00401580
cmp dword [esp + 0x118], 0x10
jmp 0x409003
xor eax, eax
mov ecx, 0x41
lea edi, [esp + 0x230]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x18]
push ecx
push 0xf01ff
mov dword [esp + 0x1c], 0x104
mov dword [esp + 0x20], ebx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
jne 0x408db8
mov eax, dword [esp + 0x8c]
mov edi, 0x10
cmp eax, edi
jb 0x408d13
mov edx, dword [esp + 0x78]
push edx
call fcn.00418537
add esp, 4
cmp dword [esp + 0x34], edi
mov dword [esp + 0x8c], esi
mov dword [esp + 0x88], ebx
mov byte [esp + 0x78], bl
jb 0x408d38
mov eax, dword [esp + 0x20]
push eax
call fcn.00418537
add esp, 4
cmp dword [esp + 0x70], edi
mov dword [esp + 0x34], esi
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
jb 0x408d57
mov ecx, dword [esp + 0x5c]
push ecx
call fcn.00418537
add esp, 4
cmp dword [esp + 0xe0], edi
mov dword [esp + 0x70], esi
mov dword [esp + 0x6c], ebx
mov byte [esp + 0x5c], bl
jb 0x408d7c
mov edx, dword [esp + 0xcc]
push edx
call fcn.00418537
add esp, 4
cmp dword [esp + 0xfc], edi
mov dword [esp + 0xe0], esi
mov dword [esp + 0xdc], ebx
mov byte [esp + 0xcc], bl
jb 0x408e8c
mov eax, dword [esp + 0xe8]
push eax
call fcn.00418537
add esp, 4
mov eax, 1
jmp 0x409ac3
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x234]
push edx
push eax
call dword [sym.imp.USERENV.dll_GetUserProfileDirectoryA]
test eax, eax
jne 0x408e96
mov eax, dword [esp + 0x8c]
mov edi, 0x10
cmp eax, edi
jb 0x408df5
mov ecx, dword [esp + 0x78]
push ecx
call fcn.00418537
add esp, 4
cmp dword [esp + 0x34], edi
mov dword [esp + 0x8c], esi
mov dword [esp + 0x88], ebx
mov byte [esp + 0x78], bl
jb 0x408e1a
mov edx, dword [esp + 0x20]
push edx
call fcn.00418537
add esp, 4
cmp dword [esp + 0x70], edi
mov dword [esp + 0x34], esi
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
jb 0x408e39
mov eax, dword [esp + 0x5c]
push eax
call fcn.00418537
add esp, 4
cmp dword [esp + 0xe0], edi
mov dword [esp + 0x70], esi
mov dword [esp + 0x6c], ebx
mov byte [esp + 0x5c], bl
jb 0x408e5e
mov ecx, dword [esp + 0xcc]
push ecx
call fcn.00418537
add esp, 4
cmp dword [esp + 0xfc], edi
mov dword [esp + 0xe0], esi
mov dword [esp + 0xdc], ebx
mov byte [esp + 0xcc], bl
jb 0x408e8c
mov edx, dword [esp + 0xe8]
push edx
call fcn.00418537
add esp, 4
mov eax, 1
jmp 0x409ac3
lea eax, [esp + 0x230]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x408ea0
sub eax, edx
push eax
lea eax, [esp + 0x234]
push eax
lea ecx, [esp + 0x24]
call fcn.00401d30
push 0x17
push str.Application_DataOpera
lea ecx, [esp + 0x24]
call fcn.00404830
push 1
push 0xffffffffffffffff
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esp + 0xf0]
mov byte [esp + 0x1c], 0x5c
call fcn.00406930
cmp eax, 0xffffffff
je 0x408ef9
push 0xffffffffffffffff
push eax
lea ecx, [esp + 0xec]
call fcn.00401390
push 1
push 0xffffffffffffffff
lea edx, [esp + 0x18]
push edx
lea ecx, [esp + 0xf0]
mov byte [esp + 0x1c], 0x5c
call fcn.00406930
mov ecx, dword [esp + 0xf8]
push ecx
push eax
lea edx, [esp + 0x108]
push edx
lea ecx, [esp + 0xf0]
call fcn.00406b00
push 0xffffffffffffffff
push ebx
lea eax, [esp + 0x108]
push eax
lea ecx, [esp + 0x28]
mov byte [esp + 0x348], 6
call fcn.00404740
push 0xffffffffffffffff
push ebx
lea ecx, [esp + 0x24]
push ecx
lea ecx, [esp + 0x80]
call fcn.00401580
push 1
push 0xffffffffffffffff
lea edx, [esp + 0x18]
lea esi, [ebp + 0x140]
push edx
mov ecx, esi
mov byte [esp + 0x1c], 0x5c
call fcn.00406930
push eax
push ebx
lea eax, [esp + 0x19c]
push eax
mov ecx, esi
call fcn.00406b00
cmp dword [esp + 0x1a8], ebx
mov byte [esp + 0x33c], 7
je 0x408fb4
push 0xffffffffffffffff
push ebx
lea ecx, [esp + 0x19c]
push ecx
lea ecx, [esp + 0x80]
call fcn.00404740
push 0xffffffffffffffff
push ebx
push esi
lea ecx, [esp + 0x28]
call fcn.00404740
mov eax, dword [esp + 0x1ac]
mov esi, 0x10
cmp eax, esi
jb 0x408fe1
mov edx, dword [esp + 0x198]
push edx
call fcn.00418537
add esp, 4
mov eax, dword [esp + 0x118]
mov dword [esp + 0x1ac], 0xf
mov dword [esp + 0x1a8], ebx
mov byte [esp + 0x198], bl
cmp eax, esi
mov byte [esp + 0x33c], 4
jb 0x40901d
mov eax, dword [esp + 0x104]
push eax
call fcn.00418537
add esp, 4
push str.menu
lea ecx, [esp + 0x78]
push ecx
lea edx, [esp + 0x124]
push edx
call fcn.00404940
push str.menu_thunder.ini
lea eax, [esp + 0x12c]
push eax
lea ecx, [esp + 0x50]
push ecx
mov byte [esp + 0x354], 8
call fcn.00404940
add esp, 0x18
mov eax, dword [esp + 0x134]
mov edi, 0x10
cmp eax, edi
mov eax, dword [esp + 0x120]
mov byte [esp + 0x33c], 9
jae 0x40907c
lea eax, [esp + 0x120]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x40908c
test al, 0x10
jne 0x4090ab
cmp dword [esp + 0x134], edi
mov eax, dword [esp + 0x120]
jae 0x4090a3
lea eax, [esp + 0x120]
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
cmp byte [esp + 0x348], bl
jne 0x4091cd
cmp dword [esp + 0x54], edi
mov eax, dword [esp + 0x40]
jae 0x4090c6
lea eax, [esp + 0x40]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
cmp dword [esp + 0x54], edi
jb 0x4090e0
mov edx, dword [esp + 0x40]
push edx
call fcn.00418537
add esp, 4
cmp dword [esp + 0x134], edi
mov esi, 0xf
mov dword [esp + 0x54], esi
mov dword [esp + 0x50], ebx
mov byte [esp + 0x40], bl
jb 0x40910a
mov eax, dword [esp + 0x120]
push eax
call fcn.00418537
add esp, 4
cmp dword [esp + 0x8c], edi
mov dword [esp + 0x134], esi
mov dword [esp + 0x130], ebx
mov byte [esp + 0x120], bl
jb 0x409135
mov ecx, dword [esp + 0x78]
push ecx
call fcn.00418537
add esp, 4
cmp dword [esp + 0x34], edi
mov dword [esp + 0x8c], esi
mov dword [esp + 0x88], ebx
mov byte [esp + 0x78], bl
jb 0x40915a
mov edx, dword [esp + 0x20]
push edx
call fcn.00418537
add esp, 4
cmp dword [esp + 0x70], edi
mov dword [esp + 0x34], esi
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
jb 0x409179
mov eax, dword [esp + 0x5c]
push eax
call fcn.00418537
add esp, 4
cmp dword [esp + 0xe0], edi
mov dword [esp + 0x70], esi
mov dword [esp + 0x6c], ebx
mov byte [esp + 0x5c], bl
jb 0x40919e
mov ecx, dword [esp + 0xcc]
push ecx
call fcn.00418537
add esp, 4
cmp dword [esp + 0xfc], edi
mov dword [esp + 0xe0], esi
mov dword [esp + 0xdc], ebx
mov byte [esp + 0xcc], bl
jb 0x409ac1
mov edx, dword [esp + 0xe8]
push edx
jmp 0x409ab9
mov eax, dword [esp + 0x38]
add ebp, 0x15c
push ebp
push eax
lea ecx, [esp + 0x180]
push ecx
call fcn.00408110
add esp, 0xc
cmp dword [esp + 0x34], edi
mov ecx, dword [esp + 0x20]
mov byte [esp + 0x33c], 0xa
jae 0x4091ff
lea ecx, [esp + 0x20]
cmp dword [esp + 0x54], edi
mov eax, dword [esp + 0x40]
jae 0x40920d
lea eax, [esp + 0x40]
mov ebp, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
push ecx
push eax
push str.Menu_Configuration
push str.User_Prefs
call ebp
cmp dword [esp + 0x54], edi
mov ecx, dword [esp + 0x40]
jae 0x40922f
lea ecx, [esp + 0x40]
cmp dword [esp + 0x190], edi
mov eax, dword [esp + 0x17c]
jae 0x409246
lea eax, [esp + 0x17c]
push ebx
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
push 6
push str.Item__
lea ecx, [esp + 0x98]
mov dword [esp + 0xb0], 0xf
mov dword [esp + 0xac], ebx
mov byte [esp + 0x9c], bl
call fcn.00401d30
mov esi, dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
push ebx
push ebx
push ebx
lea edx, [esp + 0x1bc]
push edx
push 0xffffffffffffffff
push 0x4201e4
push ebx
push 0xfde9
mov byte [esp + 0x35c], 0xb
call esi
push ebx
push ebx
push eax
lea eax, [esp + 0x1bc]
push eax
push 0xffffffffffffffff
push 0x4201e4
push ebx
push 0xfde9
call esi
lea eax, [esp + 0x1b0]
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x4092c7
sub eax, edi
push eax
lea ecx, [esp + 0x1b4]
push ecx
lea ecx, [esp + 0x98]
call fcn.00404830
push 1
push 0x41f7e4
lea ecx, [esp + 0x98]
call fcn.00404830
push 0x12
mov edi, 0xf
push str.Execute_Program___
lea ecx, [esp + 0xb4]
mov dword [esp + 0xcc], edi
mov dword [esp + 0xc8], ebx
mov byte [esp + 0xb8], bl
call fcn.00401d30
mov dword [esp + 0x174], edi
mov dword [esp + 0x170], ebx
mov byte [esp + 0x160], bl
mov ecx, dword [esp + 0x154]
cmp dword [ecx + 0x38], 0x10
mov eax, dword [ecx + 0x34]
mov byte [esp + 0x33c], 0xd
jb 0x409357
mov ecx, dword [ecx + 0x24]
jmp 0x40935a
add ecx, 0x24
lea edx, [esp + 0x15c]
push edx
push eax
push ecx
call fcn.00408080
push str.XLNonIESvr.exe______l__u_
lea eax, [esp + 0x16c]
push eax
lea ecx, [esp + 0x114]
push ecx
call fcn.00404940
add esp, 0x18
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0xb8]
mov byte [esp + 0x348], 0xe
call fcn.00404740
mov eax, dword [esp + 0x118]
mov edi, 0x10
cmp eax, edi
mov byte [esp + 0x33c], 0xd
jb 0x4093c6
mov edx, dword [esp + 0x104]
push edx
call fcn.00418537
add esp, 4
cmp dword [esp + 0x54], edi
mov edx, dword [esp + 0x40]
jae 0x4093d4
lea edx, [esp + 0x40]
cmp dword [esp + 0xc4], edi
mov ecx, dword [esp + 0xb0]
jae 0x4093eb
lea ecx, [esp + 0xb0]
cmp dword [esp + 0xa8], edi
mov eax, dword [esp + 0x94]
jae 0x409402
lea eax, [esp + 0x94]
push edx
push ecx
push eax
push str.Link_Popup_Menu
call ebp
cmp dword [esp + 0x54], edi
mov edx, dword [esp + 0x40]
jae 0x40941a
lea edx, [esp + 0x40]
cmp dword [esp + 0xc4], edi
mov ecx, dword [esp + 0xb0]
jae 0x409431
lea ecx, [esp + 0xb0]
cmp dword [esp + 0xa8], edi
mov eax, dword [esp + 0x94]
jae 0x409448
lea eax, [esp + 0x94]
push edx
push ecx
push eax
push str.Image_Link_Popup_Menu
call ebp
push 0x27
push str.Copy_image_address__Execute_Program___
lea ecx, [esp + 0xb4]
call fcn.00401d30
push str.XLNonIESvr.exe______c__u_
lea eax, [esp + 0x160]
push eax
lea ecx, [esp + 0x108]
push ecx
call fcn.00404940
add esp, 0xc
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0xb8]
mov byte [esp + 0x348], 0xf
call fcn.00404740
cmp dword [esp + 0x118], edi
mov byte [esp + 0x33c], 0xd
jb 0x4094bb
mov edx, dword [esp + 0x104]
push edx
call fcn.00418537
add esp, 4
cmp dword [esp + 0x54], edi
mov edx, dword [esp + 0x40]
jae 0x4094c9
lea edx, [esp + 0x40]
cmp dword [esp + 0xc4], edi
mov ecx, dword [esp + 0xb0]
jae 0x4094e0
lea ecx, [esp + 0xb0]
cmp dword [esp + 0xa8], edi
mov eax, dword [esp + 0x94]
jae 0x4094f7
lea eax, [esp + 0x94]
push edx
push ecx
push eax
push str.Image_Popup_Menu
call ebp
push 6
push str.Item__
lea ecx, [esp + 0x98]
call fcn.00401d30
push ebx
push ebx
push ebx
lea eax, [esp + 0x1bc]
push eax
push 0xffffffffffffffff
push 0x42011c
push ebx
push 0xfde9
call esi
push ebx
push ebx
push eax
lea ecx, [esp + 0x1bc]
push ecx
push 0xffffffffffffffff
push 0x42011c
push ebx
push 0xfde9
call esi
lea eax, [esp + 0x1b0]
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x409552
sub eax, edi
push eax
lea edx, [esp + 0x1b4]
push edx
lea ecx, [esp + 0x98]
call fcn.00404830
push 1
push 0x41f7e4
lea ecx, [esp + 0x98]
call fcn.00404830
push 0x12
push str.Execute_Program___
lea ecx, [esp + 0xb4]
call fcn.00401d30
push str.XLNonIESvr.exe_____s__u_
lea eax, [esp + 0x160]
push eax
lea ecx, [esp + 0x108]
push ecx
call fcn.00404940
add esp, 0xc
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0xb8]
mov byte [esp + 0x348], 0x10
call fcn.00404740
cmp dword [esp + 0x118], 0x10
mov byte [esp + 0x33c], 0xd
jb 0x4095ed
mov edx, dword [esp + 0x104]
push edx
call fcn.00418537
add esp, 4
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x40]
mov edi, 0x10
cmp eax, edi
jae 0x409602
lea edx, [esp + 0x40]
cmp dword [esp + 0xc4], edi
mov ecx, dword [esp + 0xb0]
jae 0x409619
lea ecx, [esp + 0xb0]
cmp dword [esp + 0xa8], edi
mov eax, dword [esp + 0x94]
jae 0x409630
lea eax, [esp + 0x94]
push edx
push ecx
push eax
push str.Document_Popup_Menu
call ebp
push 0x11
push str.Download_Manager
lea ecx, [esp + 0x140]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x158], 0xf
mov dword [esp + 0x154], ebx
mov byte [esp + 0x144], bl
call fcn.00401d30
push ebx
push ebx
push ebx
lea eax, [esp + 0x1fc]
push eax
push 0xffffffffffffffff
push 0x4200d0
push ebx
push 0xfde9
mov byte [esp + 0x35c], 0x11
call esi
push ebx
push ebx
push eax
lea ecx, [esp + 0x1fc]
push ecx
push 0xffffffffffffffff
push 0x4200d0
push ebx
push 0xfde9
call esi
lea eax, [esp + 0x1f0]
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x4096b0
sub eax, esi
push eax
lea edx, [esp + 0x1f4]
push edx
lea ecx, [esp + 0x140]
call fcn.00404830
cmp dword [esp + 0x34], edi
mov eax, dword [esp + 0x20]
jae 0x4096dc
lea eax, [esp + 0x20]
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 0x4098b3
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov edi, eax
lea eax, [edi + 1]
push eax
call fcn.00418532
add esp, 4
push ebx
lea ecx, [esp + 0x15c]
push ecx
mov ebp, eax
push edi
push ebp
push esi
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x16c], 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 + 0x34], 0x10
mov eax, dword [esp + 0x20]
jae 0x40974c
lea eax, [esp + 0x20]
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 0x4097d7
push 0x4200bc
push ebp
call fcn.0040e0b0
mov esi, eax
add esp, 8
cmp esi, ebx
je 0x4097a3
mov edi, edi
mov cl, byte [esi + 0x10]
cmp cl, 0xd
lea eax, [esi + 0x10]
je 0x40981f
push 0x4200bc
push eax
call fcn.0040e0b0
mov esi, eax
add esp, 8
cmp esi, ebx
jne 0x409780
mov eax, ebp
mov dword [esp + 0x14], ebx
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x4097b0
push ebx
sub eax, edx
lea edx, [esp + 0x18]
push edx
push eax
push ebp
push edi
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov dword [esp + 0x14], 1
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push ebp
call fcn.00418537
mov eax, dword [esp + 0x18]
add esp, 4
cmp eax, ebx
je 0x4098b3
mov eax, dword [esp + 0x34]
mov edi, 0x10
cmp eax, edi
mov eax, dword [esp + 0x20]
jae 0x409801
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x1f4]
push eax
push 0x4200bc
push str.User_Prefs
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
jmp 0x4098b8
mov eax, ebp
mov byte [esi], bl
mov dword [esp + 0x18], ebx
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x409830
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 + 0x44]
push eax
push edi
call ebp
push 2
push ebx
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp dword [esp + 0x150], 0x10
mov eax, dword [esp + 0x13c]
jae 0x409871
lea eax, [esp + 0x13c]
mov edx, dword [esp + 0x14c]
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]
mov dl, byte [eax]
inc eax
cmp dl, bl
jne 0x409896
push ebx
sub eax, ecx
lea ecx, [esp + 0x1c]
push ecx
push eax
push esi
push edi
call ebp
mov ebp, dword [esp + 0x38]
jmp 0x4097d0
mov edi, 0x10
cmp dword [esp + 0x34], edi
mov eax, dword [esp + 0x20]
jae 0x4098c6
lea eax, [esp + 0x20]
push eax
push 0x41f6ec
push str.Show_Download_Manager_Selection_Dialog
push str.User_Prefs
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
cmp dword [esp + 0x150], edi
jb 0x4098f5
mov ecx, dword [esp + 0x13c]
push ecx
call fcn.00418537
add esp, 4
cmp dword [esp + 0x174], edi
mov esi, 0xf
mov dword [esp + 0x150], esi
mov dword [esp + 0x14c], ebx
mov byte [esp + 0x13c], bl
jb 0x409928
mov edx, dword [esp + 0x160]
push edx
call fcn.00418537
add esp, 4
cmp dword [esp + 0xc4], edi
mov dword [esp + 0x174], esi
mov dword [esp + 0x170], ebx
mov byte [esp + 0x160], bl
jb 0x409956
mov eax, dword [esp + 0xb0]
push eax
call fcn.00418537
add esp, 4
cmp dword [esp + 0xa8], edi
mov dword [esp + 0xc4], esi
mov dword [esp + 0xc0], ebx
mov byte [esp + 0xb0], bl
jb 0x409984
mov ecx, dword [esp + 0x94]
push ecx
call fcn.00418537
add esp, 4
cmp dword [esp + 0x190], edi
mov dword [esp + 0xa8], esi
mov dword [esp + 0xa4], ebx
mov byte [esp + 0x94], bl
jb 0x4099b2
mov edx, dword [esp + 0x17c]
push edx
call fcn.00418537
add esp, 4
cmp dword [esp + 0x54], edi
mov dword [esp + 0x190], esi
mov dword [esp + 0x18c], ebx
mov byte [esp + 0x17c], bl
jb 0x4099da
mov eax, dword [esp + 0x40]
push eax
call fcn.00418537
add esp, 4
cmp dword [esp + 0x134], edi
mov dword [esp + 0x54], esi
mov dword [esp + 0x50], ebx
mov byte [esp + 0x40], bl
jb 0x4099ff
mov ecx, dword [esp + 0x120]
push ecx
call fcn.00418537
add esp, 4
cmp dword [esp + 0x8c], edi
mov dword [esp + 0x134], esi
mov dword [esp + 0x130], ebx
mov byte [esp + 0x120], bl
jb 0x409a2a
mov edx, dword [esp + 0x78]
push edx
call fcn.00418537
add esp, 4
cmp dword [esp + 0x34], edi
mov dword [esp + 0x8c], esi
mov dword [esp + 0x88], ebx
mov byte [esp + 0x78], bl
jb 0x409a4f
mov eax, dword [esp + 0x20]
push eax
call fcn.00418537
add esp, 4
cmp dword [esp + 0x70], edi
mov dword [esp + 0x34], esi
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
jb 0x409a6e
mov ecx, dword [esp + 0x5c]
push ecx
call fcn.00418537
add esp, 4
cmp dword [esp + 0xe0], edi
mov dword [esp + 0x70], esi
mov dword [esp + 0x6c], ebx
mov byte [esp + 0x5c], bl
jb 0x409a93
mov edx, dword [esp + 0xcc]
push edx
call fcn.00418537
add esp, 4
cmp dword [esp + 0xfc], edi
mov dword [esp + 0xe0], esi
mov dword [esp + 0xdc], ebx
mov byte [esp + 0xcc], bl
jb 0x409ac1
mov eax, dword [esp + 0xe8]
push eax
call fcn.00418537
add esp, 4
xor eax, eax
mov ecx, dword [esp + 0x334]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x330
ret 8