Function at 0x433900
Capabilities:
Write file on windows

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov ebp, dword [esp + 0x74]
mov ebx, dword [esp + 0x78]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
test ecx, ecx
je 0x43394d
movzx ecx, byte [edx]
mov esi, 0xc
xor edi, edi
xor edx, edx
shld edi, esi, cl
shl esi, cl
test cl, 0x20
cmovne edi, esi
cmovne esi, edx
mov dword [esp + 0x34], edi
mov dword [esp + 0x30], esi
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0x70]
lea edx, [esp + 0x4c]
mov dword [esp + 0xc], ebp
mov esi, dword [esp + 0x30]
mov dword [esp + 0x14], edx
mov dword [esp + 8], edi
mov dword [esp + 0x10], ecx
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.00415cf0
mov edi, edx
mov dword [esp + 0x30], eax
or edi, eax
mov dword [esp + 0x38], edx
jne 0x433ae0
mov esi, dword [esp + 0x4c]
cmp ebp, esi
jne 0x433a50
mov eax, dword [esp + 0x3c]
mov edx, 1
mov edi, dword [esp + 0x70]
movzx ecx, byte [eax]
mov eax, 0xb
shl edx, cl
shl eax, cl
mov ecx, edx
add edi, eax
shr ecx, 2
mov edx, dword [edi]
mov ebp, ecx
cmp ecx, 1
jbe 0x433a07
mov esi, 1
cmp dword [edi + esi*4], edx
je 0x4339f2
mov eax, dword [ebx]
mov dword [esp + 0xc], esi
mov dword [esp + 8], ebp
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], edi
mov dword [esp], eax
call dword [ebx + 4]
mov ecx, edx
or ecx, eax
jne 0x433b70
mov edx, dword [edi]
add esi, 1
cmp ebp, esi
jne 0x4339c5
mov eax, dword [esp + 0x3c]
movzx ecx, byte [eax]
mov eax, 0xb
shl eax, cl
mov dword [esp + 4], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x3c], edx
mov dword [esp], eax
call fcn.0040da70
mov edx, dword [esp + 0x3c]
cmp eax, edx
je 0x433ac9
mov ecx, dword [ebx]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp], eax
call dword [ebx + 8]
mov dword [esp + 0x30], eax
mov dword [esp + 0x38], edx
jmp 0x433ac9
mov ebx, dword [fcn.004a1b90]
mov dword [esp], 2
call ebx
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 0x537cc0
mov dword [esp + 4], str.__s__Failed_to_read_entire_boot_subregion._Requested_bytes:__Iu_Read_bytes:__Iu
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov dword [esp], 2
call ebx
mov dword [esp + 8], 2
mov dword [esp + 0xc], eax
mov dword [esp + 4], 1
mov dword [esp], 0x537cf5
call sub.msvcrt.dll_fwrite
mov dword [esp], 2
call ebx
mov dword [esp], eax
call sub.msvcrt.dll_fflush
mov dword [esp + 0x30], 5
mov dword [esp + 0x38], 0
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x38]
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 4], edx
mov edi, eax
mov dword [esp], eax
call fcn.0041d490
mov ebx, dword [fcn.004a1b90]
mov dword [esp], 2
mov esi, eax
call ebx
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], edi
mov dword [esp + 8], 0x537cc0
mov dword [esp + 4], str.__s__Failed_to_read_boot_subregion:__lu___s_
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov dword [esp], 2
call ebx
mov dword [esp + 8], 2
mov dword [esp + 0xc], eax
mov dword [esp + 4], 1
mov dword [esp], 0x537cf5
call sub.msvcrt.dll_fwrite
mov dword [esp], 2
call ebx
mov dword [esp], eax
call sub.msvcrt.dll_fflush
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x38]
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x38]
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret