Function at 0x4253b1
Capabilities:
Write file on windows

Disassembly:
push ebp
xor eax, eax
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x4c
mov ebx, dword [ebp + 8]
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
test ebx, ebx
jne 0x4253ec
mov dword [esp + 8], 0x170
mov dword [esp + 4], str.net.c
mov dword [esp], str.url___NULL
call dword [0x491228]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
add eax, 5
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [ebp - 0x30], eax
test eax, eax
jne 0x425417
mov dword [esp], str.Could_not_allocate_signature_URL
call fcn.0043d9e0
jmp 0x4255fc
mov dword [esp + 4], ebx
mov eax, dword [ebp - 0x30]
mov dword [esp], eax
call sub.msvcrt.dll_strcpy
mov dword [esp + 4], str..sig
mov eax, dword [ebp - 0x30]
mov dword [esp], eax
call sub.msvcrt.dll_strcat
xor eax, eax
mov dword [esp], ebx
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x24]
mov dword [esp + 0xc], eax
xor eax, eax
mov dword [esp + 0x10], esi
mov dword [esp + 8], eax
mov dword [esp + 4], eax
call fcn.00423db4
mov ebx, eax
test eax, eax
je 0x4255fc
lea eax, [ebp - 0x20]
xor edi, edi
mov dword [esp + 0xc], eax
xor eax, eax
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], edi
mov dword [esp + 8], eax
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x30]
mov dword [esp], eax
call fcn.00423db4
mov edi, dword [ebp - 0x24]
cmp eax, 0x100
je 0x4254fc
mov dword [esp], str.FATAL:_Download_signature_is_invalid_
call fcn.0043d9e0
mov dword [0x520ee8], 0x193
mov dword [0x4dfd80], 0xe003120d
mov dword [esp], esi
mov dword [esp + 4], 0x3f2
call dword [sym.imp.USER32.dll_GetDlgItem]
xor ecx, ecx
push edx
push edx
mov dword [esp + 0xc], ecx
mov dword [esp + 8], 2
mov dword [esp + 4], 0x410
mov dword [esp], eax
call dword [sym.imp.USER32.dll_SendMessageW]
sub esp, 0x10
mov dword [esp], 4
call fcn.004412f8
jmp 0x4255fc
mov dword [esp + 0xc], 0x100
mov eax, dword [ebp - 0x20]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp], edi
call fcn.00429a7e
test eax, eax
je 0x425496
mov dword [esp], str.Download_signature_is_valid_
call fcn.0043d9e0
mov eax, dword [ebp + 0xc]
mov ecx, pe_nt_image_headers32
mov edx, 0xc0000000
mov dword [0x520ee8], 0xce
call fcn.004237bc
mov dword [ebp - 0x2c], eax
inc eax
jne 0x425575
call fcn.0043df77
mov ebx, eax
mov eax, dword [ebp + 0xc]
call fcn.004236bc
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov dword [esp], str.Unable_to_create_file__s:__s
call fcn.0043d9e0
jmp 0x4255fc
xor eax, eax
mov dword [esp + 8], ebx
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x1c]
mov dword [esp + 0xc], eax
mov dword [esp + 4], edi
mov eax, dword [ebp - 0x2c]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.DLL_WriteFile]
sub esp, 0x14
test eax, eax
jne 0x4255c2
call fcn.0043df77
mov ebx, eax
mov eax, dword [ebp + 0xc]
call fcn.004236bc
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov dword [esp], str.Error_writing_file__s:__s
call fcn.0043d9e0
jmp 0x4255e9
mov edi, dword [ebp - 0x1c]
cmp edi, ebx
je 0x4255f0
mov eax, dword [ebp + 0xc]
call fcn.004236bc
mov dword [esp + 0xc], ebx
mov dword [esp + 8], edi
mov dword [esp + 4], eax
mov dword [esp], str.Error_writing_file__s:_Only__d__d_bytes_written
call fcn.0043d9e0
xor eax, eax
mov dword [ebp - 0x1c], eax
jmp 0x425603
mov dword [0x520ee8], 0xc8
jmp 0x425603
mov dword [ebp - 0x2c], 0xffffffff
test esi, esi
je 0x425628
xor edi, edi
mov dword [esp + 0xc], edi
mov eax, dword [ebp - 0x1c]
mov dword [esp + 4], 0x8003
mov dword [esp + 8], eax
mov dword [esp], esi
call dword [sym.imp.USER32.dll_SendMessageW]
sub esp, 0x10
cmp dword [ebp + 0x14], 0
je 0x425720
cmp dword [0x520ee8], 0xc8
je 0x425720
xor ebx, ebx
mov dword [esp + 0xc], 0xcaa
mov dword [esp + 8], ebx
mov dword [esp + 4], ebx
mov dword [esp], 1
call fcn.00422f82
mov eax, dword [0x520fcc]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.DLL_SetLastError]
push esi
mov ax, word [0x48fbc0]
cmp dword [0x524134], 1
mov word [ebp - 0x32], ax
sbb ebx, ebx
mov dword [esp], 0xbe4
and ebx, 0xffe80000
add ebx, 0x180010
call fcn.00422df0
mov esi, eax
mov eax, dword [0x4dfd80]
test eax, eax
jns 0x4256b5
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0043eaac
jmp 0x4256ba
call fcn.0043df77
mov edx, dword [0x5241b4]
mov dword [ebp - 0x38], edx
call fcn.004236f2
mov edi, eax
mov eax, esi
call fcn.004236f2
mov esi, eax
movzx eax, word [ebp - 0x32]
mov dword [esp + 0xc], ebx
mov dword [esp + 8], esi
mov dword [esp + 0x10], eax
mov dword [esp + 4], edi
mov edx, dword [ebp - 0x38]
mov dword [esp], edx
call dword [sym.imp.USER32.dll_MessageBoxExW]
sub esp, 0x14
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov ebx, eax
test edi, edi
je 0x42570a
mov dword [esp], edi
call sub.msvcrt.dll_free
test esi, esi
je 0x425716
mov dword [esp], esi
call sub.msvcrt.dll_free
mov dword [esp], ebx
call dword [sym.imp.KERNEL32.DLL_SetLastError]
push edx
mov eax, dword [ebp - 0x2c]
dec eax
cmp eax, 0xfffffffd
ja 0x425736
mov eax, dword [ebp - 0x2c]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
push eax
mov eax, dword [ebp - 0x30]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [ebp - 0x20]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [ebp - 0x1c]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret