Function at 0x422477
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x2464
call fcn.00453ed0
push ebx
push esi
xor eax, eax
push edi
mov edi, dword [ebp + 8]
mov ebx, dword [edi + 8]
lea esi, [esp + 0x10]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], eax
call fcn.0042799c
and dword [esp + 0x20], 0
and dword [esp + 0x24], 0
push 2
pop eax
cmp ebx, eax
mov dword [esp + 0x28], 0x48bd18
mov dword [esp + 0x2c], edi
jbe 0x4224dd
mov ecx, edi
call fcn.00405aa7
call fcn.0040fd19
cmp eax, 1
jne 0x4224dd
mov dword [esp + 0xc], SysReAllocString
lea eax, [esp + 0x450]
push eax
lea eax, [esp + 0x1464]
push eax
lea eax, [esp + 0xc60]
push eax
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0x5c]
push eax
push ecx
xor eax, eax
mov ecx, edi
call fcn.00405aa7
mov esi, eax
call fcn.0040fc41
pop ecx
push eax
lea edi, [esp + 0x1c80]
call fcn.00422c6a
test al, al
jne 0x422531
mov dword [0x48bd20], 2
jmp 0x42287b
mov edi, dword [esp + 0x4c]
push 3
pop esi
cmp edi, esi
je 0x42254c
cmp edi, 1
je 0x42254c
mov dword [0x48bd20], esi
jmp 0x42287b
push edi
mov ebx, 0x48bd28
mov eax, 0x48ba08
call fcn.00422d64
test al, al
jne 0x42257a
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov dword [0x48bd24], eax
mov dword [0x48bd20], 4
jmp 0x42287b
cmp edi, esi
je 0x42271b
cmp edi, 1
jne 0x422594
cmp dword [0x48bcf0], 2
je 0x42271b
xor ebx, ebx
lea esi, [esp + 0x30]
mov dword [esp + 0x30], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x44], ebx
call fcn.004279c3
test al, al
mov eax, dword [esp + 0x38]
jne 0x4225bc
mov eax, 0x427cbb
push ebx
push ebx
push edi
lea ecx, [esp + 0x45c]
push ecx
lea ecx, [esp + 0x1470]
push ecx
push dword [esp + 0x5c]
lea ecx, [esp + 0xc70]
push ecx
push dword [0x48bd28]
call eax
cmp eax, ebx
mov dword [esp + 0x20], eax
jne 0x422624
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov esi, dword [sym.imp.KERNEL32.DLL_FreeLibrary]
mov dword [0x48bd24], eax
mov dword [0x48bd20], 7
cmp dword [esp + 0x30], ebx
je 0x422612
push dword [esp + 0x30]
call esi
lea eax, [esp + 0x20]
call fcn.00421ba8
cmp dword [esp + 0x10], ebx
jmp 0x42279e
cmp byte [0x48bc9d], bl
je 0x422633
or dword [esp + 0xc], 2
jmp 0x422638
or dword [esp + 0xc], 1
push ebx
push dword [esp + 0x10]
lea ecx, [esp + 0x1c70]
push SysReAllocString
push ecx
push eax
lea esi, [esp + 0x50]
call fcn.004279f2
call eax
cmp eax, ebx
mov dword [esp + 0x24], eax
jne 0x42268a
call dword [sym.imp.KERNEL32.DLL_GetLastError]
cmp dword [esp + 0x3c], ebx
mov esi, dword [sym.imp.KERNEL32.DLL_FreeLibrary]
mov dword [0x48bd24], eax
mov dword [0x48bd20], 8
je 0x422606
push dword [esp + 0x3c]
call esi
jmp 0x422606
push 0x46d2dc
xor eax, eax
push ecx
mov ecx, dword [ebp + 8]
inc eax
call fcn.00405aa7
mov esi, eax
call fcn.0040fc41
pop ecx
push eax
call fcn.00451cd9
mov ebx, eax
xor edi, edi
cmp ebx, edi
pop ecx
pop ecx
jne 0x4226f8
call dword [sym.imp.KERNEL32.DLL_GetLastError]
cmp dword [esp + 0x3c], edi
mov esi, dword [sym.imp.KERNEL32.DLL_FreeLibrary]
mov dword [0x48bd24], eax
mov dword [0x48bd20], 9
je 0x4226da
push dword [esp + 0x3c]
call esi
cmp dword [esp + 0x30], edi
je 0x4226e6
push dword [esp + 0x30]
call esi
lea eax, [esp + 0x20]
call fcn.00421ba8
cmp dword [esp + 0x10], edi
jmp 0x42279e
cmp dword [esp + 0x3c], edi
je 0x422708
push dword [esp + 0x3c]
call dword [sym.imp.KERNEL32.DLL_FreeLibrary]
cmp dword [esp + 0x30], edi
je 0x4227f3
push dword [esp + 0x30]
jmp 0x4227ed
push str.Wininat.dll
call dword [sym.imp.KERNEL32.DLL_LoadLibraryA]
mov edi, eax
xor esi, esi
cmp edi, esi
je 0x422740
push str.IntwrnetOpenUzm
push edi
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
cmp eax, esi
mov ebx, eax
jne 0x422745
mov ebx, 0x427cc0
mov ecx, dword [ebp + 8]
push esi
push dword [esp + 0x10]
xor eax, eax
push esi
push esi
call fcn.00405aa7
mov esi, eax
call fcn.0040fc41
push eax
push dword [0x48bd28]
call ebx
test eax, eax
mov dword [esp + 0x24], eax
jne 0x4227af
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov dword [0x48bd20], 5
test edi, edi
mov esi, dword [sym.imp.KERNEL32.DLL_FreeLibrary]
mov dword [0x48bd24], eax
je 0x422790
push edi
call esi
lea eax, [esp + 0x20]
call fcn.00421ba8
cmp dword [esp + 0x10], 0
je 0x422895
push dword [esp + 0x10]
call esi
jmp 0x422895
push 0x46d2dc
xor eax, eax
push ecx
mov ecx, dword [ebp + 8]
inc eax
call fcn.00405aa7
mov esi, eax
call fcn.0040fc41
pop ecx
push eax
call fcn.00451cd9
mov ebx, eax
test ebx, ebx
pop ecx
pop ecx
jne 0x4227e8
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov dword [0x48bd20], 6
jmp 0x42277e
test edi, edi
je 0x4227f3
push edi
call dword [sym.imp.KERNEL32.DLL_FreeLibrary]
xor edi, edi
inc edi
mov dword [esp + 0x1c], edi
cmp dword [esp + 0x20], 0
jne 0x422811
push dword [esp + 0x24]
call fcn.0042289e
cmp eax, 0xc8
jne 0x42286a
lea esi, [esp + 0x10]
call fcn.0042799c
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x422827
mov eax, 0x40db03
lea ecx, [esp + 0x1c]
push ecx
push 0x400
lea ecx, [esp + 0x58]
push ecx
push dword [esp + 0x30]
call eax
test eax, eax
je 0x42286a
cmp dword [esp + 0x1c], 0
je 0x422874
push ebx
push edi
push dword [esp + 0x24]
lea eax, [esp + 0x5c]
push eax
call fcn.00451fc2
mov eax, dword [esp + 0x2c]
add dword [0x48bd1c], eax
add esp, 0x10
test eax, eax
jne 0x4227fa
jmp 0x422874
mov dword [0x48bd20], 0xa
push ebx
call fcn.004520b6
pop ecx
lea eax, [esp + 0x20]
call fcn.00421ba8
cmp dword [esp + 0x10], 0
je 0x422895
push dword [esp + 0x10]
call dword [sym.imp.KERNEL32.DLL_FreeLibrary]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4