Function at 0x446850
Capabilities:
Resolve function by parsing pe exports
Write file on windows

Disassembly:
push ebp
xor ebp, ebp
push edi
push esi
mov esi, eax
push ebx
sub esp, 0x8c
movzx ebx, word [esi + 0x26]
mov dword [esp + 0x50], eax
mov eax, ecx
mov dword [esp + 0x30], edx
xor edx, edx
shld edx, eax, 2
shl eax, 2
mov dword [esp + 0x6c], ecx
movzx ecx, byte [esi + 0x28]
mov dword [esp + 0x28], eax
mov eax, dword [esi + 0x44]
mov dword [esp + 0x2c], edx
xor edx, edx
shld edx, eax, cl
shl eax, cl
test cl, 0x20
mov dword [esp + 0x78], 0
cmovne edx, eax
cmovne eax, ebp
xor edi, edi
mov dword [esp + 0x20], eax
mov eax, dword [esi + 0x48]
mov dword [esp + 0x24], edx
xor edx, edx
shld edx, eax, cl
shl eax, cl
test cl, 0x20
cmovne edx, eax
cmovne eax, edi
mov ebp, edx
mov dword [esp + 0x64], edx
movzx edx, byte [esi + 0x41]
mov dword [esp + 0x60], eax
test dl, dl
je 0x4468e0
add dword [esp + 0x20], eax
adc dword [esp + 0x24], ebp
cmp dl, 1
ja 0x446b74
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x60]
mov edx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x64]
cmp eax, edi
mov eax, edx
sbb eax, ebp
jae 0x446c3d
add ebx, 0xfff
lea eax, [esp + 0x78]
mov dword [esp], 0
shr ebx, cl
mov dword [esp + 8], eax
shl ebx, cl
mov dword [esp + 4], ebx
mov dword [esp + 0x48], ebx
call fcn.00427280
mov edi, edx
mov dword [esp + 0x54], eax
or edi, eax
mov dword [esp + 0x58], edx
jne 0x446cdb
mov eax, dword [esp + 0x30]
mov eax, dword [eax]
mov ebx, dword [eax + 0x38]
test ebx, ebx
je 0x446958
call fcn.00445f10
mov esi, edx
mov dword [esp + 0x54], eax
or esi, eax
mov dword [esp + 0x58], edx
jne 0x446e92
mov esi, dword [esp + 0x60]
mov edi, dword [esp + 0x64]
sub esi, dword [esp + 0x28]
sbb edi, dword [esp + 0x2c]
mov edx, edi
or edx, esi
je 0x446edc
mov eax, dword [esp + 0x20]
mov ebp, dword [esp + 0x6c]
mov dword [esp + 0x5c], 0
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x3c], eax
mov ecx, dword [esp + 0x68]
add ecx, dword [esp + 0x28]
xor edx, edx
xor ebx, ebx
mov eax, ecx
div dword [esp + 0x48]
mov eax, ecx
mov dword [esp + 0x20], edx
mov ebp, dword [esp + 0x20]
xor edx, edx
sub eax, ebp
sbb edx, ebx
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edx
xor edx, edx
mov ecx, ebx
sub ecx, ebp
mov ebp, edx
cmp ecx, esi
mov eax, ecx
sbb ebp, edi
jb 0x4469e5
mov ebx, dword [esp + 0x50]
movzx ebp, word [ebx + 0x26]
lea ebx, [ebp - 1]
neg ebp
add ebx, esi
add ebx, dword [esp + 0x20]
and ebx, ebp
cmp esi, ecx
mov ecx, edi
mov dword [esp + 0x30], eax
sbb ecx, edx
mov dword [esp + 0x34], edx
jae 0x4469fd
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], edi
lea eax, [esp + 0x7c]
mov edx, dword [esp + 0x44]
mov esi, dword [esp + 0x30]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 8], edx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x7c], 0
mov dword [esp + 4], eax
mov eax, dword [esp + 0x50]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.00415cf0
mov edi, edx
mov dword [esp + 0x54], eax
or edi, eax
mov dword [esp + 0x58], edx
jne 0x446df7
mov edi, dword [esp + 0x7c]
cmp ebx, edi
jne 0x446d69
lea eax, [esi*8]
mov ebx, dword [esp + 0x78]
lea esi, [eax + 0x1f]
mov dword [esp + 0x40], eax
shr esi, 5
mov dword [esp + 0x3c], ebx
je 0x446b60
mov edi, dword [esp + 0x20]
mov ebp, dword [esp + 0x4c]
add edi, ebx
lea eax, [ebp + 1]
mov ecx, dword [edi]
cmp ecx, eax
jne 0x446b67
xor edx, edx
jmp 0x446aa7
lea ebx, [edx + 2]
mov ecx, dword [edi + eax*4]
mov edx, eax
lea eax, [ebp + ebx]
cmp ecx, eax
jne 0x446b50
lea eax, [edx + 1]
cmp esi, eax
jne 0x446a93
add dword [esp + 0x5c], esi
mov edx, esi
mov dword [esp + 0x4c], ecx
shl edx, 5
cmp dword [esp + 0x40], edx
jne 0x446b02
mov ecx, dword [esp + 0xa4]
test ecx, ecx
jne 0x446ad8
mov edx, dword [esp + 0x5c]
test edx, edx
jne 0x446e89
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x60]
add dword [esp + 0x28], eax
mov edi, dword [esp + 0x64]
adc dword [esp + 0x2c], edx
sub esi, dword [esp + 0x28]
sbb edi, dword [esp + 0x2c]
mov edx, edi
or edx, esi
jne 0x446992
mov eax, dword [esp + 0x5c]
mov ebp, dword [esp + 0x4c]
test eax, eax
je 0x446edc
cmp dword [esp + 0x6c], ebp
je 0x446f08
mov eax, dword [esp + 0xa8]
mov esi, dword [esp + 0x6c]
mov dword [eax + 4], esi
mov esi, dword [esp + 0xa8]
mov eax, dword [esp + 0xa0]
mov dword [esi], eax
mov eax, esi
mov esi, dword [esp + 0x5c]
mov dword [eax + 0xc], ebp
mov dword [eax + 8], esi
jmp 0x446c12
mov dword [esp + 0x4c], ecx
shl edx, 5
add dword [esp + 0x5c], ebx
jmp 0x446abb
xor edx, edx
jmp 0x446abb
mov dword [esp + 0x4c], ecx
xor edx, edx
mov ebx, 1
jmp 0x446b57
mov ebx, dword [fcn.004a1b90]
mov byte [esp + 0x20], dl
mov dword [esp], 2
call ebx
movzx edx, byte [esp + 0x20]
mov dword [esp + 0x14], str.exfat_fat_process_extent
mov dword [esp + 0x10], 0x5aa
mov dword [esp + 0x18], edx
mov dword [esp + 0xc], 0x53d612
mov dword [esp + 8], 0x53d618
mov dword [esp + 4], 0x53d718
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], 0x53d439
call sub.msvcrt.dll_fwrite
mov dword [esp], 2
call ebx
mov dword [esp], eax
call sub.msvcrt.dll_fflush
mov eax, dword [esp + 0x78]
mov dword [esp + 0x54], 6
mov dword [esp + 0x58], 0
mov dword [esp + 0x3c], eax
mov esi, dword [esp + 0x3c]
test esi, esi
je 0x446c2a
lea eax, [esp + 0x78]
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.0041d440
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x58]
add esp, 0x8c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp], 2
mov ebx, dword [fcn.004a1b90]
call ebx
mov edi, dword [esp + 0x60]
mov ebp, dword [esp + 0x64]
mov dword [esp + 8], 0x53d400
mov dword [esp + 4], 0x53d84c
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x28]
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], ebp
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], 0x53d439
call sub.msvcrt.dll_fwrite
mov dword [esp], 2
call ebx
mov dword [esp], eax
call sub.msvcrt.dll_fflush
mov eax, dword [esp + 0x78]
mov dword [esp + 0x54], 5
mov dword [esp + 0x58], 0
mov dword [esp + 0x3c], eax
jmp 0x446c12
mov dword [esp + 4], edx
mov edi, eax
mov dword [esp], eax
call fcn.0041d490
mov dword [esp], 2
mov ebx, dword [fcn.004a1b90]
mov esi, eax
call ebx
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x48]
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], esi
mov dword [esp + 8], 0x53d400
mov dword [esp + 4], 0x53d8c4
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], 0x53d439
call sub.msvcrt.dll_fwrite
mov dword [esp], 2
call ebx
mov dword [esp], eax
call sub.msvcrt.dll_fflush
mov eax, dword [esp + 0x78]
mov dword [esp + 0x3c], eax
jmp 0x446c12
mov esi, dword [fcn.004a1b90]
mov dword [esp], 2
call esi
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], edi
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ecx
mov dword [esp + 8], 0x53d400
mov dword [esp + 4], 0x53d9ac
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov dword [esp], 2
call esi
mov dword [esp + 8], 2
mov dword [esp + 0xc], eax
mov dword [esp + 4], 1
mov dword [esp], 0x53d439
call sub.msvcrt.dll_fwrite
mov dword [esp], 2
call esi
mov dword [esp], eax
call sub.msvcrt.dll_fflush
mov dword [esp + 0x54], 5
mov dword [esp + 0x58], 0
jmp 0x446d5c
mov dword [esp + 4], edx
mov ebp, eax
mov dword [esp], eax
call fcn.0041d490
mov esi, dword [fcn.004a1b90]
mov dword [esp], 2
mov edi, eax
call esi
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x40]
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0x44]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], ebp
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0x53d400
mov dword [esp + 4], 0x53d960
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov dword [esp], 2
call esi
mov dword [esp + 8], 2
mov dword [esp + 0xc], eax
mov dword [esp + 4], 1
mov dword [esp], 0x53d439
call sub.msvcrt.dll_fwrite
mov dword [esp], 2
call esi
mov dword [esp], eax
call sub.msvcrt.dll_fflush
jmp 0x446d5c
mov ebp, dword [esp + 0x4c]
jmp 0x446b12
mov edi, dword [esp + 0x54]
mov eax, dword [esp + 0x58]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.0041d490
mov dword [esp], 2
mov ebx, dword [fcn.004a1b90]
mov esi, eax
call ebx
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], edi
mov dword [esp + 8], 0x53d400
mov dword [esp + 4], 0x53d764
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
jmp 0x446d22
mov dword [esp], 2
mov ebx, dword [fcn.004a1b90]
call ebx
mov dword [esp + 8], 0x53d400
mov dword [esp + 4], 0x53d918
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
jmp 0x446c84
mov dword [esp], 2
mov ebx, dword [fcn.004a1b90]
call ebx
mov esi, dword [esp + 0x6c]
mov dword [esp + 8], 0x53d400
mov dword [esp + 4], 0x53da08
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], esi
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
jmp 0x446c84