Function at 0x408c80
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 0x41ec76
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.004015d0
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.004015d0
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.004015d0
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.004082b0
mov ecx, dword [eax + 0x18]
add esp, 0xc
cmp ecx, 0x10
jb 0x408d7a
mov eax, dword [eax + 4]
jmp 0x408d7d
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 0x408dab
mov eax, dword [esp + 0x104]
push eax
call fcn.004186e7
add esp, 4
cmp dword [esp + 0x70], 0x10
mov eax, dword [esp + 0x5c]
jae 0x408dba
lea eax, [esp + 0x5c]
push str.Last_Install_Path
push eax
call fcn.0040e260
add esp, 8
test eax, eax
jne 0x408ded
cmp dword [esp + 0x70], 0x10
mov eax, dword [esp + 0x5c]
jae 0x408ddb
lea eax, [esp + 0x5c]
push str.Last_Beta_Install_Path
push eax
call fcn.0040e260
add esp, 8
test eax, eax
je 0x408df2
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 0x408e5b
push str.profile
lea ecx, [esp + 0xe8]
push ecx
lea edx, [esp + 0x108]
push edx
call fcn.00404ae0
add esp, 0xc
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0x28]
mov byte [esp + 0x348], 5
call fcn.004015d0
cmp dword [esp + 0x118], 0x10
jmp 0x4091a3
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 0x408f58
mov eax, dword [esp + 0x8c]
mov edi, 0x10
cmp eax, edi
jb 0x408eb3
mov edx, dword [esp + 0x78]
push edx
call fcn.004186e7
add esp, 4
cmp dword [esp + 0x34], edi
mov dword [esp + 0x8c], esi
mov dword [esp + 0x88], ebx
mov byte [esp + 0x78], bl
jb 0x408ed8
mov eax, dword [esp + 0x20]
push eax
call fcn.004186e7
add esp, 4
cmp dword [esp + 0x70], edi
mov dword [esp + 0x34], esi
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
jb 0x408ef7
mov ecx, dword [esp + 0x5c]
push ecx
call fcn.004186e7
add esp, 4
cmp dword [esp + 0xe0], edi
mov dword [esp + 0x70], esi
mov dword [esp + 0x6c], ebx
mov byte [esp + 0x5c], bl
jb 0x408f1c
mov edx, dword [esp + 0xcc]
push edx
call fcn.004186e7
add esp, 4
cmp dword [esp + 0xfc], edi
mov dword [esp + 0xe0], esi
mov dword [esp + 0xdc], ebx
mov byte [esp + 0xcc], bl
jb 0x40902c
mov eax, dword [esp + 0xe8]
push eax
call fcn.004186e7
add esp, 4
mov eax, 1
jmp 0x409c63
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 0x409036
mov eax, dword [esp + 0x8c]
mov edi, 0x10
cmp eax, edi
jb 0x408f95
mov ecx, dword [esp + 0x78]
push ecx
call fcn.004186e7
add esp, 4
cmp dword [esp + 0x34], edi
mov dword [esp + 0x8c], esi
mov dword [esp + 0x88], ebx
mov byte [esp + 0x78], bl
jb 0x408fba
mov edx, dword [esp + 0x20]
push edx
call fcn.004186e7
add esp, 4
cmp dword [esp + 0x70], edi
mov dword [esp + 0x34], esi
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
jb 0x408fd9
mov eax, dword [esp + 0x5c]
push eax
call fcn.004186e7
add esp, 4
cmp dword [esp + 0xe0], edi
mov dword [esp + 0x70], esi
mov dword [esp + 0x6c], ebx
mov byte [esp + 0x5c], bl
jb 0x408ffe
mov ecx, dword [esp + 0xcc]
push ecx
call fcn.004186e7
add esp, 4
cmp dword [esp + 0xfc], edi
mov dword [esp + 0xe0], esi
mov dword [esp + 0xdc], ebx
mov byte [esp + 0xcc], bl
jb 0x40902c
mov edx, dword [esp + 0xe8]
push edx
call fcn.004186e7
add esp, 4
mov eax, 1
jmp 0x409c63
lea eax, [esp + 0x230]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x409040
sub eax, edx
push eax
lea eax, [esp + 0x234]
push eax
lea ecx, [esp + 0x24]
call fcn.00401d80
push 0x17
push str.Application_DataOpera
lea ecx, [esp + 0x24]
call fcn.004049d0
push 1
push 0xffffffffffffffff
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esp + 0xf0]
mov byte [esp + 0x1c], 0x5c
call fcn.00406ad0
cmp eax, 0xffffffff
je 0x409099
push 0xffffffffffffffff
push eax
lea ecx, [esp + 0xec]
call fcn.004013e0
push 1
push 0xffffffffffffffff
lea edx, [esp + 0x18]
push edx
lea ecx, [esp + 0xf0]
mov byte [esp + 0x1c], 0x5c
call fcn.00406ad0
mov ecx, dword [esp + 0xf8]
push ecx
push eax
lea edx, [esp + 0x108]
push edx
lea ecx, [esp + 0xf0]
call fcn.00406ca0
push 0xffffffffffffffff
push ebx
lea eax, [esp + 0x108]
push eax
lea ecx, [esp + 0x28]
mov byte [esp + 0x348], 6
call fcn.004048e0
push 0xffffffffffffffff
push ebx
lea ecx, [esp + 0x24]
push ecx
lea ecx, [esp + 0x80]
call fcn.004015d0
push 1
push 0xffffffffffffffff
lea edx, [esp + 0x18]
lea esi, [ebp + 0x140]
push edx
mov ecx, esi
mov byte [esp + 0x1c], 0x5c
call fcn.00406ad0
push eax
push ebx
lea eax, [esp + 0x19c]
push eax
mov ecx, esi
call fcn.00406ca0
cmp dword [esp + 0x1a8], ebx
mov byte [esp + 0x33c], 7
je 0x409154
push 0xffffffffffffffff
push ebx
lea ecx, [esp + 0x19c]
push ecx
lea ecx, [esp + 0x80]
call fcn.004048e0
push 0xffffffffffffffff
push ebx
push esi
lea ecx, [esp + 0x28]
call fcn.004048e0
mov eax, dword [esp + 0x1ac]
mov esi, 0x10
cmp eax, esi
jb 0x409181
mov edx, dword [esp + 0x198]
push edx
call fcn.004186e7
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 0x4091bd
mov eax, dword [esp + 0x104]
push eax
call fcn.004186e7
add esp, 4
push str.menu
lea ecx, [esp + 0x78]
push ecx
lea edx, [esp + 0x124]
push edx
call fcn.00404ae0
push str.menu_thunder.ini
lea eax, [esp + 0x12c]
push eax
lea ecx, [esp + 0x50]
push ecx
mov byte [esp + 0x354], 8
call fcn.00404ae0
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 0x40921c
lea eax, [esp + 0x120]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x40922c
test al, 0x10
jne 0x40924b
cmp dword [esp + 0x134], edi
mov eax, dword [esp + 0x120]
jae 0x409243
lea eax, [esp + 0x120]
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
cmp byte [esp + 0x348], bl
jne 0x40936d
cmp dword [esp + 0x54], edi
mov eax, dword [esp + 0x40]
jae 0x409266
lea eax, [esp + 0x40]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
cmp dword [esp + 0x54], edi
jb 0x409280
mov edx, dword [esp + 0x40]
push edx
call fcn.004186e7
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 0x4092aa
mov eax, dword [esp + 0x120]
push eax
call fcn.004186e7
add esp, 4
cmp dword [esp + 0x8c], edi
mov dword [esp + 0x134], esi
mov dword [esp + 0x130], ebx
mov byte [esp + 0x120], bl
jb 0x4092d5
mov ecx, dword [esp + 0x78]
push ecx
call fcn.004186e7
add esp, 4
cmp dword [esp + 0x34], edi
mov dword [esp + 0x8c], esi
mov dword [esp + 0x88], ebx
mov byte [esp + 0x78], bl
jb 0x4092fa
mov edx, dword [esp + 0x20]
push edx
call fcn.004186e7
add esp, 4
cmp dword [esp + 0x70], edi
mov dword [esp + 0x34], esi
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
jb 0x409319
mov eax, dword [esp + 0x5c]
push eax
call fcn.004186e7
add esp, 4
cmp dword [esp + 0xe0], edi
mov dword [esp + 0x70], esi
mov dword [esp + 0x6c], ebx
mov byte [esp + 0x5c], bl
jb 0x40933e
mov ecx, dword [esp + 0xcc]
push ecx
call fcn.004186e7
add esp, 4
cmp dword [esp + 0xfc], edi
mov dword [esp + 0xe0], esi
mov dword [esp + 0xdc], ebx
mov byte [esp + 0xcc], bl
jb 0x409c61
mov edx, dword [esp + 0xe8]
push edx
jmp 0x409c59
mov eax, dword [esp + 0x38]
add ebp, 0x15c
push ebp
push eax
lea ecx, [esp + 0x180]
push ecx
call fcn.004082b0
add esp, 0xc
cmp dword [esp + 0x34], edi
mov ecx, dword [esp + 0x20]
mov byte [esp + 0x33c], 0xa
jae 0x40939f
lea ecx, [esp + 0x20]
cmp dword [esp + 0x54], edi
mov eax, dword [esp + 0x40]
jae 0x4093ad
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 0x4093cf
lea ecx, [esp + 0x40]
cmp dword [esp + 0x190], edi
mov eax, dword [esp + 0x17c]
jae 0x4093e6
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.00401d80
mov esi, dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
push ebx
push ebx
push ebx
lea edx, [esp + 0x1bc]
push edx
push 0xffffffffffffffff
push 0x42129c
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 0x42129c
push ebx
push 0xfde9
call esi
lea eax, [esp + 0x1b0]
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x409467
sub eax, edi
push eax
lea ecx, [esp + 0x1b4]
push ecx
lea ecx, [esp + 0x98]
call fcn.004049d0
push 1
push 0x420804
lea ecx, [esp + 0x98]
call fcn.004049d0
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.00401d80
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 0x4094f7
mov ecx, dword [ecx + 0x24]
jmp 0x4094fa
add ecx, 0x24
lea edx, [esp + 0x15c]
push edx
push eax
push ecx
call fcn.00408220
push str.XLNonIESvr.exe______l__u_
lea eax, [esp + 0x16c]
push eax
lea ecx, [esp + 0x114]
push ecx
call fcn.00404ae0
add esp, 0x18
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0xb8]
mov byte [esp + 0x348], 0xe
call fcn.004048e0
mov eax, dword [esp + 0x118]
mov edi, 0x10
cmp eax, edi
mov byte [esp + 0x33c], 0xd
jb 0x409566
mov edx, dword [esp + 0x104]
push edx
call fcn.004186e7
add esp, 4
cmp dword [esp + 0x54], edi
mov edx, dword [esp + 0x40]
jae 0x409574
lea edx, [esp + 0x40]
cmp dword [esp + 0xc4], edi
mov ecx, dword [esp + 0xb0]
jae 0x40958b
lea ecx, [esp + 0xb0]
cmp dword [esp + 0xa8], edi
mov eax, dword [esp + 0x94]
jae 0x4095a2
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 0x4095ba
lea edx, [esp + 0x40]
cmp dword [esp + 0xc4], edi
mov ecx, dword [esp + 0xb0]
jae 0x4095d1
lea ecx, [esp + 0xb0]
cmp dword [esp + 0xa8], edi
mov eax, dword [esp + 0x94]
jae 0x4095e8
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.00401d80
push str.XLNonIESvr.exe______c__u_
lea eax, [esp + 0x160]
push eax
lea ecx, [esp + 0x108]
push ecx
call fcn.00404ae0
add esp, 0xc
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0xb8]
mov byte [esp + 0x348], 0xf
call fcn.004048e0
cmp dword [esp + 0x118], edi
mov byte [esp + 0x33c], 0xd
jb 0x40965b
mov edx, dword [esp + 0x104]
push edx
call fcn.004186e7
add esp, 4
cmp dword [esp + 0x54], edi
mov edx, dword [esp + 0x40]
jae 0x409669
lea edx, [esp + 0x40]
cmp dword [esp + 0xc4], edi
mov ecx, dword [esp + 0xb0]
jae 0x409680
lea ecx, [esp + 0xb0]
cmp dword [esp + 0xa8], edi
mov eax, dword [esp + 0x94]
jae 0x409697
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.00401d80
push ebx
push ebx
push ebx
lea eax, [esp + 0x1bc]
push eax
push 0xffffffffffffffff
push 0x4211d4
push ebx
push 0xfde9
call esi
push ebx
push ebx
push eax
lea ecx, [esp + 0x1bc]
push ecx
push 0xffffffffffffffff
push 0x4211d4
push ebx
push 0xfde9
call esi
lea eax, [esp + 0x1b0]
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x4096f2
sub eax, edi
push eax
lea edx, [esp + 0x1b4]
push edx
lea ecx, [esp + 0x98]
call fcn.004049d0
push 1
push 0x420804
lea ecx, [esp + 0x98]
call fcn.004049d0
push 0x12
push str.Execute_Program___
lea ecx, [esp + 0xb4]
call fcn.00401d80
push str.XLNonIESvr.exe_____s__u_
lea eax, [esp + 0x160]
push eax
lea ecx, [esp + 0x108]
push ecx
call fcn.00404ae0
add esp, 0xc
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0xb8]
mov byte [esp + 0x348], 0x10
call fcn.004048e0
cmp dword [esp + 0x118], 0x10
mov byte [esp + 0x33c], 0xd
jb 0x40978d
mov edx, dword [esp + 0x104]
push edx
call fcn.004186e7
add esp, 4
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x40]
mov edi, 0x10
cmp eax, edi
jae 0x4097a2
lea edx, [esp + 0x40]
cmp dword [esp + 0xc4], edi
mov ecx, dword [esp + 0xb0]
jae 0x4097b9
lea ecx, [esp + 0xb0]
cmp dword [esp + 0xa8], edi
mov eax, dword [esp + 0x94]
jae 0x4097d0
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.00401d80
push ebx
push ebx
push ebx
lea eax, [esp + 0x1fc]
push eax
push 0xffffffffffffffff
push 0x421188
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 0x421188
push ebx
push 0xfde9
call esi
lea eax, [esp + 0x1f0]
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x409850
sub eax, esi
push eax
lea edx, [esp + 0x1f4]
push edx
lea ecx, [esp + 0x140]
call fcn.004049d0
cmp dword [esp + 0x34], edi
mov eax, dword [esp + 0x20]
jae 0x40987c
lea eax, [esp + 0x20]
push ebx
push 0x80
push 3
push ebx
push 1
push 0x80000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
je 0x409a53
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov edi, eax
lea eax, [edi + 1]
push eax
call fcn.004186e2
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 0x4098ec
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 0x409977
push 0x421174
push ebp
call fcn.0040e260
mov esi, eax
add esp, 8
cmp esi, ebx
je 0x409943
mov edi, edi
mov cl, byte [esi + 0x10]
cmp cl, 0xd
lea eax, [esi + 0x10]
je 0x4099bf
push 0x421174
push eax
call fcn.0040e260
mov esi, eax
add esp, 8
cmp esi, ebx
jne 0x409920
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 0x409950
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.004186e7
mov eax, dword [esp + 0x18]
add esp, 4
cmp eax, ebx
je 0x409a53
mov eax, dword [esp + 0x34]
mov edi, 0x10
cmp eax, edi
mov eax, dword [esp + 0x20]
jae 0x4099a1
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x1f4]
push eax
push 0x421174
push str.User_Prefs
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
jmp 0x409a58
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 0x4099d0
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 0x409a11
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 0x409a36
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 0x409970
mov edi, 0x10
cmp dword [esp + 0x34], edi
mov eax, dword [esp + 0x20]
jae 0x409a66
lea eax, [esp + 0x20]
push eax
push 0x42070c
push str.Show_Download_Manager_Selection_Dialog
push str.User_Prefs
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
cmp dword [esp + 0x150], edi
jb 0x409a95
mov ecx, dword [esp + 0x13c]
push ecx
call fcn.004186e7
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 0x409ac8
mov edx, dword [esp + 0x160]
push edx
call fcn.004186e7
add esp, 4
cmp dword [esp + 0xc4], edi
mov dword [esp + 0x174], esi
mov dword [esp + 0x170], ebx
mov byte [esp + 0x160], bl
jb 0x409af6
mov eax, dword [esp + 0xb0]
push eax
call fcn.004186e7
add esp, 4
cmp dword [esp + 0xa8], edi
mov dword [esp + 0xc4], esi
mov dword [esp + 0xc0], ebx
mov byte [esp + 0xb0], bl
jb 0x409b24
mov ecx, dword [esp + 0x94]
push ecx
call fcn.004186e7
add esp, 4
cmp dword [esp + 0x190], edi
mov dword [esp + 0xa8], esi
mov dword [esp + 0xa4], ebx
mov byte [esp + 0x94], bl
jb 0x409b52
mov edx, dword [esp + 0x17c]
push edx
call fcn.004186e7
add esp, 4
cmp dword [esp + 0x54], edi
mov dword [esp + 0x190], esi
mov dword [esp + 0x18c], ebx
mov byte [esp + 0x17c], bl
jb 0x409b7a
mov eax, dword [esp + 0x40]
push eax
call fcn.004186e7
add esp, 4
cmp dword [esp + 0x134], edi
mov dword [esp + 0x54], esi
mov dword [esp + 0x50], ebx
mov byte [esp + 0x40], bl
jb 0x409b9f
mov ecx, dword [esp + 0x120]
push ecx
call fcn.004186e7
add esp, 4
cmp dword [esp + 0x8c], edi
mov dword [esp + 0x134], esi
mov dword [esp + 0x130], ebx
mov byte [esp + 0x120], bl
jb 0x409bca
mov edx, dword [esp + 0x78]
push edx
call fcn.004186e7
add esp, 4
cmp dword [esp + 0x34], edi
mov dword [esp + 0x8c], esi
mov dword [esp + 0x88], ebx
mov byte [esp + 0x78], bl
jb 0x409bef
mov eax, dword [esp + 0x20]
push eax
call fcn.004186e7
add esp, 4
cmp dword [esp + 0x70], edi
mov dword [esp + 0x34], esi
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
jb 0x409c0e
mov ecx, dword [esp + 0x5c]
push ecx
call fcn.004186e7
add esp, 4
cmp dword [esp + 0xe0], edi
mov dword [esp + 0x70], esi
mov dword [esp + 0x6c], ebx
mov byte [esp + 0x5c], bl
jb 0x409c33
mov edx, dword [esp + 0xcc]
push edx
call fcn.004186e7
add esp, 4
cmp dword [esp + 0xfc], edi
mov dword [esp + 0xe0], esi
mov dword [esp + 0xdc], ebx
mov byte [esp + 0xcc], bl
jb 0x409c61
mov eax, dword [esp + 0xe8]
push eax
call fcn.004186e7
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