Function at 0x4136d1
Capabilities:
Read file on windows

Disassembly:
push ebp
lea ebp, [esp - 0x1348]
mov eax, 0x13c8
call fcn.00468c00
mov eax, dword [0x488548]
xor eax, ebp
mov dword [ebp + 0x1344], eax
mov eax, dword [ebp + 0x1358]
mov ecx, dword [ebp + 0x1354]
push ebx
push esi
mov esi, dword [ebp + 0x1350]
mov dword [ebp - 0x80], eax
xor ebx, ebx
lea eax, [ebp + 0x510]
push edi
mov dword [ebp - 0x74], esi
mov dword [ebp - 0x70], ebx
sub eax, ecx
movzx edx, word [ecx]
mov word [eax + ecx], dx
inc ecx
inc ecx
cmp dx, bx
jne 0x413718
lea eax, [ebp + 0x510]
push 0x2a
push eax
call fcn.0046891a
pop ecx
pop ecx
cmp eax, ebx
je 0x413740
xor ecx, ecx
mov word [eax - 2], cx
xor eax, eax
mov word [ebp + 0xe94], ax
mov edi, 0x258
push edi
lea eax, [ebp + 0xe94]
push eax
push str.X_cache
call dword [sym.imp.PPLIB32W.DLL__GetCustData_12]
lea eax, [ebp + 0xe94]
cmp word [ebp + 0xe94], bx
jne 0x4137a7
push ebx
push eax
push edi
call dword [sym.imp.PPLIB32W.DLL__MakeTempEntry_12]
lea edi, [ebp + 0xe94]
dec edi
dec edi
mov ax, word [edi + 2]
inc edi
inc edi
cmp ax, bx
jne 0x413781
mov esi, str.cache
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push ebx
lea eax, [ebp + 0xe94]
push eax
movsd dword es:[edi], dword [esi]
call dword [sym.imp.PPLIB32W.DLL__MakeDirectories_8]
mov esi, dword [ebp - 0x74]
jmp 0x4137b6
push 0x18
push 0x48ab20
push eax
push ebx
call dword [sym.imp.PPLIB32W.DLL__VFSFixPath_16]
push ebx
push 0xffffffffffffffff
lea eax, [ebp + 0x510]
push eax
call fcn.0040c974
push eax
lea eax, [ebp + 0xe94]
push eax
push str._s_08X
push esi
call dword [sym.imp.USER32.dll_wsprintfW]
lea edx, [esi + eax*2]
mov eax, 0x47654c
add esp, 0x10
mov dword [ebp - 0x7c], edx
sub edx, eax
movzx ecx, word [eax]
mov word [edx + eax], cx
inc eax
inc eax
cmp cx, bx
jne 0x4137e9
push ebx
push 0x8000000
push 3
push ebx
push 3
push 0x80000000
push esi
jmp 0x41390e
push ebx
lea eax, [ebp - 0x78]
push eax
push 0x4d2
lea eax, [ebp + 0x9c0]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x41382e
mov dword [ebp - 0x78], eax
jmp 0x413831
mov eax, dword [ebp - 0x78]
mov byte [ebp + eax + 0x9c0], bl
push esi
mov byte [ebp + eax + 0x9c1], bl
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x11
pop ecx
mov edi, 0x476470
lea esi, [ebp + 0x9c0]
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x41387a
push 0x258
lea eax, [ebp - 0x68]
push eax
push 0xffffffffffffffff
lea eax, [ebp + 0x9d1]
push eax
push 1
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea esi, [ebp - 0x68]
jmp 0x413895
push 0x11
pop ecx
mov edi, str._ListFile_r_n_Base
lea esi, [ebp + 0x9c2]
xor eax, eax
repe cmpsw word [esi], word es:[edi]
jne 0x4138e4
lea esi, [ebp + 0x9e4]
push 0x7c
push esi
call fcn.0046891a
pop ecx
pop ecx
mov dword [ebp - 0x6c], eax
cmp eax, ebx
je 0x4138e4
xor ecx, ecx
mov word [eax], cx
add dword [ebp - 0x6c], 2
lea eax, [ebp + 0x510]
mov cx, word [esi]
cmp cx, word [eax]
jne 0x4138db
cmp cx, bx
je 0x4138d7
mov cx, word [esi + 2]
cmp cx, word [eax + 2]
jne 0x4138db
add esi, 4
add eax, 4
cmp cx, bx
jne 0x4138b5
xor eax, eax
jmp 0x4138e0
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x413923
push dword [ebp - 0x70]
push str._d.txt
push dword [ebp - 0x7c]
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
inc dword [ebp - 0x70]
push ebx
push 0x8000000
push 3
push ebx
push 3
push 0x80000000
push dword [ebp - 0x74]
call dword [sym.imp.PPLIB32W.DLL__CreateFileL_28]
mov esi, eax
cmp esi, 0xffffffff
jne 0x41380d
xor eax, eax
jmp 0x413939
mov esi, dword [ebp - 0x80]
cmp esi, ebx
je 0x413936
lea eax, [ebp - 0x6c]
push eax
call dword [sym.imp.PPLIB32W.DLL__GetNumber_4]
mov dword [esi], eax
xor eax, eax
inc eax
mov ecx, dword [ebp + 0x1344]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0046890b
add ebp, 0x1348
leave
ret 0xc