Function at 0x467eb0
Capabilities:
Write file on windows

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
mov dword [esp + 0x4c], 0
mov ebx, dword [esp + 0x88]
mov esi, dword [esp + 0x8c]
test eax, eax
sete cl
test edx, edx
sete dl
test ebx, ebx
sete bl
test esi, esi
sete al
mov esi, eax
test cl, cl
jne 0x468287
test dl, dl
jne 0x468287
mov eax, dword [esp + 0x80]
test eax, eax
je 0x467f32
mov eax, dword [esp + 0x78]
test eax, eax
mov eax, dword [esp + 0x84]
sete byte [esp + 0x28]
test eax, eax
sete al
cmp byte [esp + 0x28], 0
mov edi, eax
jne 0x4682a0
test al, al
jne 0x4682a0
test bl, bl
jne 0x468287
mov eax, esi
test al, al
jne 0x468287
mov eax, dword [esp + 0x88]
mov ebp, dword [eax]
mov eax, dword [esp + 0x8c]
movzx eax, byte [eax]
mov byte [esp + 0x30], al
mov eax, dword [esp + 0x74]
sub eax, 1
mov dword [esp + 0x38], eax
je 0x468421
mov eax, dword [esp + 0x74]
mov ebx, dword [esp + 0x70]
xor esi, esi
mov ecx, esi
add eax, 0x7fffffe
mov dword [esp + 0x2c], eax
shl eax, 5
lea edx, [ebx + eax + 1]
mov ebx, dword [esp + 0x38]
lea esi, [esi]
lea esi, [ecx + 5]
mov edi, edx
mov eax, esi
mov esi, edx
mov edx, eax
movzx eax, byte [edi]
or al, byte [edi + 1]
je 0x467fbb
lea eax, [ecx + 1]
add edi, 2
cmp al, dl
je 0x468210
mov ecx, eax
movzx eax, byte [edi]
or al, byte [edi + 1]
jne 0x467fa3
mov esi, ecx
test ebp, ebp
jne 0x467fcb
mov eax, esi
test al, al
jne 0x468467
movzx ecx, byte [esp + 0x30]
mov eax, esi
cmp al, cl
jbe 0x468423
movzx ebx, al
lea eax, [esp + 0x4c]
mov dword [esp + 4], ebp
mov dword [esp + 0x10], eax
movzx eax, cl
add ebx, ebx
add eax, eax
mov dword [esp + 0xc], ebx
mov dword [esp + 8], eax
mov dword [esp], 0
call fcn.00427410
mov edi, eax
mov eax, edx
mov ebp, edx
or eax, edi
jne 0x468490
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x70]
mov byte [esp + 0x2c], 0
mov ecx, dword [esp + 0x4c]
shl eax, 5
lea eax, [ebx + eax + 1]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x34], eax
mov eax, esi
mov byte [esp + 0x3f], al
lea esi, [esi]
movzx ebx, byte [esp + 0x2c]
mov edx, dword [esp + 0x30]
mov edi, ecx
mov byte [esp + 0x28], bl
lea eax, [ebx + 5]
mov ebp, eax
movzx ecx, byte [edx]
movzx eax, byte [edx + 1]
mov ebx, ecx
or bl, al
je 0x468380
test edi, edi
je 0x468076
movzx esi, byte [esp + 0x28]
lea esi, [edi + esi*2]
mov byte [esi], cl
mov byte [esi + 1], al
add byte [esp + 0x28], 1
movzx ebx, byte [esp + 0x28]
mov eax, ebp
add edx, 2
cmp bl, al
jne 0x468054
mov ebp, dword [esp + 0x30]
mov ecx, edi
movzx esi, byte [ebp + 0xd]
movzx edi, byte [ebp + 0xe]
mov ebx, esi
mov edx, edi
or dl, bl
je 0x468380
lea edx, [ebp + 0xf]
movzx ebx, byte [esp + 0x2c]
mov dword [esp + 0x28], edx
mov edx, edi
mov edi, ecx
lea ebp, [ebx + 0xb]
mov ecx, edx
mov ebx, esi
jmp 0x4680dc
mov esi, dword [esp + 0x28]
movzx ebx, byte [esi]
movzx ecx, byte [esi + 1]
add esi, 2
mov dword [esp + 0x28], esi
mov edx, ebx
or dl, cl
je 0x468414
test edi, edi
je 0x4680eb
movzx esi, al
lea esi, [edi + esi*2]
mov byte [esi], bl
mov byte [esi + 1], cl
add eax, 1
mov ebx, ebp
cmp bl, al
jne 0x4680c0
mov ecx, edi
mov edi, dword [esp + 0x30]
movzx eax, byte [edi + 0x1c]
movzx edx, byte [edi + 0x1b]
mov ebx, eax
or bl, dl
je 0x46845c
test ecx, ecx
je 0x468363
mov ebx, ebp
add byte [esp + 0x2c], 0xc
movzx ebp, bl
lea ebx, [ecx + ebp*2]
mov byte [ebx + 1], al
mov byte [ebx], dl
movzx edx, byte [edi + 0x1e]
movzx ebx, byte [edi + 0x1d]
mov eax, edx
or al, bl
je 0x468146
movzx eax, byte [esp + 0x2c]
lea eax, [ecx + eax*2]
mov byte [eax], bl
mov byte [eax + 1], dl
add byte [esp + 0x2c], 1
sub dword [esp + 0x30], 0x20
sub dword [esp + 0x34], 1
jne 0x468040
movzx esi, byte [esp + 0x3f]
movzx ebx, byte [esp + 0x2c]
mov eax, esi
cmp bl, al
je 0x468394
mov edi, dword [fcn.004a1b90]
mov dword [esp], 2
xor ebp, ebp
call edi
mov ecx, esi
mov dword [esp + 0xc], ebx
movzx edx, cl
mov dword [esp + 8], 0x5451a0
mov dword [esp + 0x10], edx
mov dword [esp + 4], str.__s__Not_enough_name_dirents_to_fill_whole_name__Expected_length:__u_Actual_length:__u
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov dword [esp], 2
call edi
mov dword [esp + 8], 2
mov dword [esp + 0xc], eax
mov dword [esp + 4], 1
mov dword [esp], 0x5451e4
call sub.msvcrt.dll_fwrite
mov dword [esp], 2
call edi
mov edi, 5
mov dword [esp], eax
call sub.msvcrt.dll_fflush
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x468202
mov ebx, dword [esp + 0x88]
cmp dword [ebx], eax
je 0x468202
lea edx, [esp + 0x4c]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.0041d440
add esp, 0x5c
mov eax, edi
mov edx, ebp
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, edx
mov edx, esi
mov esi, eax
movzx eax, byte [edx + 0xe]
or al, byte [edx + 0xd]
je 0x467fbd
lea edi, [ecx + 2]
lea esi, [edx + 0xf]
add ecx, 7
mov dword [esp + 0x28], edx
mov eax, edi
jmp 0x468236
mov eax, edi
movzx edx, byte [esi]
or dl, byte [esi + 1]
je 0x468280
lea edi, [eax + 1]
add esi, 2
mov edx, edi
cmp dl, cl
jne 0x468234
mov edx, dword [esp + 0x28]
mov edi, eax
movzx eax, byte [edx + 0x1b]
or al, byte [edx + 0x1c]
je 0x468267
movzx ecx, byte [edx + 0x1d]
or cl, byte [edx + 0x1e]
setne cl
lea ecx, [edi + ecx + 2]
sub edx, 0x20
sub ebx, 1
jne 0x467f90
jmp 0x467fbb
mov esi, eax
jmp 0x467fbd
mov eax, dword [esp + 0x78]
test eax, eax
mov eax, dword [esp + 0x84]
sete byte [esp + 0x28]
test eax, eax
sete al
mov edi, eax
mov ebp, dword [esp + 0x80]
movzx ecx, cl
movzx edx, dl
movzx ebx, bl
mov dword [esp], 2
test ebp, ebp
setne al
add edx, ecx
mov ebp, eax
movzx eax, byte [esp + 0x28]
and eax, ebp
movzx eax, al
add eax, edx
mov edx, ebp
xor ebp, ebp
and edx, edi
mov edi, 0x16
movzx edx, dl
add eax, edx
add ebx, eax
mov eax, esi
movzx esi, al
add ebx, esi
mov esi, dword [fcn.004a1b90]
call esi
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0x5451a0
mov dword [esp + 4], str.__s___d_invalid_parameters_for_function.
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], 0x5451e4
call sub.msvcrt.dll_fwrite
mov dword [esp], 2
call esi
mov dword [esp], eax
call sub.msvcrt.dll_fflush
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x468202
mov edx, dword [esp + 0x88]
test edx, edx
jne 0x4681e7
jmp 0x4681f2
mov ebx, dword [esp + 0x30]
add byte [esp + 0x2c], 0xc
movzx eax, byte [ebx + 0x1e]
or al, byte [ebx + 0x1d]
jne 0x468141
jmp 0x468146
movzx ebx, byte [esp + 0x28]
movzx esi, byte [esp + 0x3f]
mov eax, esi
cmp bl, al
jne 0x46816a
mov ebx, dword [esp + 0x80]
test ebx, ebx
je 0x468445
mov eax, dword [esp + 0x38]
mov ebx, dword [esp + 0x84]
mov dword [esp + 8], 1
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x80]
shl eax, 5
add eax, dword [esp + 0x70]
mov dword [esp + 0xc], edx
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x78]
mov dword [esp + 0x10], ebx
movzx edx, byte [eax + 0xc]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.004673b0
mov eax, dword [esp + 0x4c]
mov ebx, dword [esp + 0x88]
xor edi, edi
xor ebp, ebp
mov edx, ebp
mov dword [ebx], eax
mov ebx, dword [esp + 0x8c]
mov eax, esi
mov byte [ebx], al
add esp, 0x5c
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
ret
movzx esi, byte [esp + 0x3f]
movzx ebx, al
jmp 0x46838a
xor esi, esi
mov edi, dword [esp + 0x38]
mov dword [esp + 0x4c], ebp
test edi, edi
je 0x468516
mov eax, dword [esp + 0x74]
add eax, 0x7fffffe
mov dword [esp + 0x2c], eax
jmp 0x468012
mov ecx, dword [esp + 0x84]
test ecx, ecx
je 0x4683ec
mov eax, dword [esp + 0x84]
mov byte [eax], 0
jmp 0x4683ec
mov eax, ebp
mov byte [esp + 0x2c], al
jmp 0x468146
movzx ebx, al
lea eax, [esp + 0x4c]
mov dword [esp + 4], 0
mov dword [esp + 0x10], eax
movzx eax, byte [esp + 0x30]
add ebx, ebx
mov dword [esp + 0xc], ebx
add eax, eax
mov dword [esp + 8], eax
jmp 0x467ff8
mov dword [esp + 4], edx
mov dword [esp], edi
call fcn.0041d490
mov esi, dword [fcn.004a1b90]
mov dword [esp], 2
mov dword [esp + 0x28], eax
call esi
mov edx, dword [esp + 0x28]
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], ebx
mov dword [esp + 0x14], edx
mov dword [esp + 8], 0x5451a0
mov dword [esp + 4], str.__s__Error_while_allocating__Iu_byte_name_buffer:__lu___s_
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], 0x5451e4
call sub.msvcrt.dll_fwrite
mov dword [esp], 2
call esi
mov dword [esp], eax
call sub.msvcrt.dll_fflush
jmp 0x4681df
xor ebx, ebx
jmp 0x46838a