Function at 0x4213e0
Capabilities:
Write file on windows

Disassembly:
mov eax, 0x45fd00
call fcn.0045d320
sub esp, 0x230
push ebx
push esi
mov esi, ecx
push edi
lea eax, [ebp - 0xf]
push 2
mov ecx, dword [esi + 0x7f8]
push eax
call fcn.004186a8
xor edi, edi
push 1
cmp dword [esi + 0x854], edi
pop ebx
je 0x4214a7
movzx eax, word [ebp - 0xf]
mov dword [esi + 0x800], eax
lea eax, [esi + 0x3fc]
push eax
lea eax, [esi + 0xff]
push eax
lea eax, [ebp - 0x23c]
push str._s_s
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
lea eax, [ebp - 0x23c]
push eax
lea eax, [esi + 0x6f9]
push eax
call sub.MSVCRT.dll_strcpy
add esp, 0x18
lea eax, [ebp - 0x23c]
push edi
push 0x8000000
push 2
push edi
push 3
push 0x40000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [esi + 0x858], eax
mov eax, dword [esi + 0x800]
inc eax
xor edx, edx
push ebx
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x804]
shl ecx, 1
div ecx
mov ecx, esi
push eax
push edi
push edi
call fcn.004226ae
mov dword [esi + 0x854], edi
mov dword [esi + 0x844], ebx
cmp word [ebp - 0xf], di
jne 0x4215a4
mov ecx, dword [esi + 0x7f8]
lea eax, [ebp - 0x18]
push 4
push eax
call fcn.004186a8
cmp dword [esi + 0x858], 0xffffffff
jne 0x421518
push str.Could_not_create_file
mov ecx, esi
call fcn.00421699
push 0x30
push str.Download_Failed
push str.Download_failed:_could_not_create_local_file
push dword [esi + 0x814]
call dword [sym.imp.USER32.dll_MessageBoxA]
push edi
push edi
push 0x402
push dword [esi + 0x828]
call dword [sym.imp.USER32.dll_SendMessageA]
push edi
push 0x460
push 0x111
push dword [esi + 0x814]
jmp 0x421599
lea eax, [ebp - 0x24]
mov ecx, esi
push eax
push dword [ebp - 0x18]
call fcn.004284c2
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x24]
push eax
push dword [esi + 0x858]
call dword [sym.imp.KERNEL32.dll_SetFileTime]
push edi
push edi
push 0x402
push dword [esi + 0x828]
call dword [sym.imp.USER32.dll_SendMessageA]
push 0x47a148
push dword [esi + 0x82c]
call dword [sym.imp.USER32.dll_SetWindowTextA]
push dword [esi + 0x858]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [esi + 0xff]
mov ecx, esi
push eax
call fcn.004216de
push edi
push 0x460
push 0x111
mov dword [esi + 0x854], ebx
push dword [esi + 0x814]
mov dword [esi + 0x844], edi
call dword [sym.imp.USER32.dll_PostMessageA]
jmp 0x42168a
movzx eax, word [ebp - 0xf]
push eax
lea ecx, [ebp - 0x38]
call fcn.00411c93
lea ecx, [ebp - 0x38]
mov dword [ebp - 4], edi
call fcn.00412465
movzx ecx, word [ebp - 0xf]
push ecx
mov ecx, dword [esi + 0x7f8]
push eax
mov dword [ebp - 0x18], eax
call fcn.004186a8
mov ecx, dword [esi + 0x7f8]
push ebx
lea eax, [ebp - 0x11]
push ebx
push eax
mov byte [ebp - 0x11], 0x8b
call fcn.004186bb
push dword [esi + 0x814]
mov ecx, esi
call fcn.0042203e
cmp dword [esi + 0x848], edi
jne 0x421608
push str.Download_cancelled_by_user
mov ecx, esi
call fcn.00421699
jmp 0x42167e
mov eax, dword [esi + 0x858]
cmp eax, 0xffffffff
jne 0x421639
push str.Could_not_create_file
mov ecx, esi
call fcn.00421699
push 0x30
push str.Download_Failed
push str.Download_failed:_could_not_create_local_file
push dword [esi + 0x814]
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x42167e
lea ecx, [ebp - 0x1c]
push edi
push ecx
movzx ecx, word [ebp - 0xf]
push ecx
push dword [ebp - 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov ecx, dword [ebp - 0x1c]
lea eax, [esi + 0x7fc]
add dword [eax], ecx
mov ecx, dword [esi + 0x800]
mov edx, dword [eax]
lea ecx, [ecx + ecx*4]
shl ecx, 1
cmp edx, ecx
jb 0x42167e
push edi
push edi
push 0x405
mov dword [eax], edi
push dword [esi + 0x828]
call dword [sym.imp.USER32.dll_SendMessageA]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x38]
call fcn.00411cb9
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret