Function at 0x4b2f2b
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x14c
mov eax, dword [0x5345d0]
xor eax, esp
mov dword [esp + 0x148], eax
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0xc]
push edi
push 6
pop ecx
xor eax, eax
lea edi, [esp + 0x2d]
mov byte [esp + 0x2c], 0
rep stosd dword es:[edi], eax
push 0x103
mov byte [esp + 0x4c], al
xor edi, edi
lea eax, [esp + 0x4d]
push edi
push eax
mov dword [esp + 0x2c], esi
call fcn.004b53e0
add esp, 0xc
mov edx, esi
mov dword [esp + 0x18], edi
call fcn.0047c3ca
test eax, eax
jne 0x4b34c7
cmp ebx, edi
je 0x4b34c7
cmp dword [ebx + 0x90], edi
je 0x4b2fb1
cmp dword [ebx + 0x8c], edi
jle 0x4b2fb1
push str.:5:LoadSales___has_detected_a_potential_memory_leak:_Extended_emp_sales_data_has_not_been_freed_
call fcn.00417db7
pop ecx
push 0x300c
push edi
push ebx
call fcn.004b53e0
add esp, 0xc
push esi
mov ecx, 0x104
lea eax, [esp + 0x4c]
call fcn.0047c3fc
pop ecx
mov edx, eax
call fcn.0047cea7
mov eax, edx
push eax
mov esi, 0x4d3dec
call fcn.0047c50b
mov esi, eax
neg esi
sbb esi, esi
inc esi
cmp esi, edi
pop ecx
mov dword [esp + 0x28], edi
je 0x4b311d
push edi
push edi
push edi
push edi
push edi
lea eax, [esp + 0x40]
push eax
push 0x19
pop eax
call fcn.004400a7
add esp, 0x18
lea edx, [esp + 0x2c]
call fcn.0047c3ca
test eax, eax
jne 0x4b3037
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x4c]
push eax
call fcn.0047d058
test eax, eax
pop ecx
pop ecx
je 0x4b3037
mov dword [esp + 0x28], 1
call fcn.004b586d
push eax
push edi
push edi
call fcn.0045e8df
pop ecx
pop ecx
push eax
lea eax, [esp + 0x50]
push str._stemp_d.sls
push eax
call fcn.004b532e
add esp, 0x10
cmp dword [esp + 0x28], edi
je 0x4b3078
cmp dword [ebp + 0x10], edi
je 0x4b3078
push 0x286
push str..GetSalesSa7.c
push 0x40
call fcn.004463fb
add esp, 0xc
call fcn.004a4ba8
mov ecx, dword [esp + 0x20]
push edi
lea edx, [esp + 0x4c]
mov dword [esp + 0x18], eax
call fcn.0041aab4
cmp eax, edi
pop ecx
jne 0x4b310a
mov ecx, dword [esp + 0x20]
push 0x4e20
call fcn.0041b10f
test eax, eax
pop ecx
jne 0x4b30c6
cmp dword [esp + 0x28], edi
je 0x4b34c7
cmp dword [ebp + 0x10], edi
je 0x4b34c7
push 0x40
call fcn.00447288
jmp 0x4b34c6
call fcn.004a4ba8
sub eax, dword [esp + 0x14]
cmp eax, 0x1388
jae 0x4b30f4
push 0xfa
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, dword [esp + 0x20]
push edi
lea edx, [esp + 0x4c]
call fcn.0041aab4
cmp eax, edi
pop ecx
jne 0x4b310a
lea eax, [esp + 0x48]
push eax
push dword [esp + 0x24]
push str.:7:LoadSales___FAILED_to_CopyFileSafe___s_____s___0__
call fcn.00417db7
add esp, 0xc
cmp dword [esp + 0x28], edi
je 0x4b311d
cmp dword [ebp + 0x10], edi
je 0x4b311d
push 0x40
call fcn.00447288
pop ecx
push 0x29c
push str..GetSalesSa7.c
mov edx, 0x4d3128
lea ecx, [esp + 0x50]
call fcn.0041cea8
cmp eax, edi
pop ecx
pop ecx
mov dword [esp + 0x10], eax
je 0x4b34c7
push eax
push 1
lea eax, [esp + 0x20]
push 4
push eax
call fcn.004b56f6
add esp, 0x10
cmp eax, 1
jne 0x4b34a4
mov ecx, dword [esp + 0x18]
cmp ecx, edi
je 0x4b34a4
mov eax, 0x300c
cmp ecx, eax
jbe 0x4b318b
push eax
push ecx
push str.:7:LoadSales___will_fail:_SALESPARAMS_has_decreased_in_size_from__d_to__d.
call fcn.00417db7
mov ecx, 0x300c
add esp, 0xc
mov dword [esp + 0x18], ecx
push dword [esp + 0x10]
add ecx, 0xfffffffc
push ecx
lea eax, [ebx + 4]
push 1
push eax
call fcn.004b56f6
add eax, 4
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x28]
add esp, 0x10
mov dword [ebx], eax
mov dword [ebx + 0x90], edi
call fcn.004b3c00
cmp eax, 0x96
jle 0x4b31d2
call fcn.004b3c00
push eax
push str.:8:LoadSalesSub___has_detected_a_potential_memory_leak____d_units_
call fcn.00417db7
pop ecx
pop ecx
mov eax, dword [ebx + 0x8c]
cmp eax, edi
mov dword [esp + 0x1c], edi
jle 0x4b32e0
cmp eax, 0x1f4
jle 0x4b31f3
push eax
push str.:7:LoadSales___FAILED:_iNumIndividualEmps___d_is_corrupt_
jmp 0x4b3216
shl eax, 6
push eax
call fcn.004b5967
cmp eax, edi
pop ecx
mov dword [ebx + 0x90], eax
jne 0x4b3222
mov eax, dword [ebx + 0x8c]
shl eax, 6
push eax
push str.:7:LoadSales___FAILED:_malloc__ld__FAILED_to_allocate_individual_employee_details_
call fcn.004178df
pop ecx
pop ecx
jmp 0x4b32e0
cmp dword [ebx + 0x8c], edi
mov dword [esp + 0x1c], 1
mov dword [esp + 0x14], edi
jle 0x4b32e0
push dword [esp + 0x10]
lea eax, [esp + 0x1c]
push 1
push 4
push eax
call fcn.004b56f6
add esp, 0x10
cmp eax, 1
jne 0x4b32ab
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4b32c9
cmp eax, 0x40
ja 0x4b32c9
push dword [esp + 0x10]
add eax, 0xfffffffc
push 1
push eax
mov eax, dword [ebx + 0x90]
lea eax, [edi + eax + 4]
push eax
call fcn.004b56f6
mov edx, dword [ebx + 0x90]
add esp, 0x10
cmp eax, 1
push 0x40
pop ecx
mov dword [edi + edx], ecx
jne 0x4b32b8
mov eax, dword [esp + 0x18]
add dword [esp + 0x24], eax
inc dword [esp + 0x14]
mov eax, dword [esp + 0x14]
add edi, ecx
cmp eax, dword [ebx + 0x8c]
jl 0x4b323a
jmp 0x4b32de
push str.:7:LoadSales___FAILED:_fread___failed_to_load_the_EMPSALESPARAMS_dwSize.
call fcn.004178df
pop ecx
jmp 0x4b32d9
push dword [esp + 0x14]
push str.:7:LoadSales___FAILED:_fread___failed_to_load_emp_index__d.
call fcn.004178df
pop ecx
jmp 0x4b32b5
push 0x40
push eax
push str.:7:LoadSales___FAILED:_The_EMPSALESPARAMS_dwSize__ld_is_invalid___Current_size_is__ld.
call fcn.004178df
add esp, 0xc
and dword [esp + 0x1c], 0
xor edi, edi
mov ecx, dword [esp + 0x10]
call fcn.0041d2f0
cmp esi, edi
je 0x4b32f6
lea eax, [esp + 0x48]
call fcn.0041aa09
mov ecx, dword [ebx]
xor edx, edx
neg ecx
cmp dword [esp + 0x24], edi
mov dword [esp + 0x10], edi
jle 0x4b3361
mov dword [esp + 0x14], ebx
sub dword [esp + 0x14], ecx
cmp edx, 4
jb 0x4b3318
cmp edx, 8
jb 0x4b335a
cmp edx, 0x90
jl 0x4b3328
cmp edx, 0x94
jl 0x4b335a
lea eax, [ecx + edx]
cmp eax, edi
jl 0x4b334e
cmp dword [esp + 0x1c], edi
je 0x4b335a
mov esi, dword [ebx + 0x8c]
shl esi, 6
cmp eax, esi
jge 0x4b335a
mov esi, dword [ebx + 0x90]
movzx eax, byte [eax + esi]
jmp 0x4b3356
mov esi, dword [esp + 0x14]
movzx eax, byte [esi + eax]
add dword [esp + 0x10], eax
inc edx
cmp edx, dword [esp + 0x24]
jl 0x4b330e
mov eax, dword [esp + 0x24]
add dword [esp + 0x10], eax
cmp dword [esp + 0x1c], edi
mov dword [ebx + 0xc], edi
mov dword [ebx + 0x10], edi
mov dword [ebx + 0x20], edi
jne 0x4b3395
mov eax, dword [ebx + 0x90]
cmp eax, edi
mov dword [ebx + 0x8c], edi
je 0x4b338f
push eax
call fcn.004b4080
pop ecx
mov dword [ebx + 0x90], edi
mov eax, dword [esp + 0x10]
lea esi, [ebx + 4]
cmp eax, dword [esi]
mov dword [ebx], 0x300c
je 0x4b348e
cmp dword [0x6463f0], edi
mov eax, dword [ebx + 0x90]
mov dword [ebx + 0x8c], edi
jne 0x4b344d
cmp eax, edi
je 0x4b33cd
push eax
call fcn.004b4080
pop ecx
cmp dword [esp + 0x28], edi
mov dword [ebx + 0x90], edi
mov dword [esp + 0x14], edi
je 0x4b3400
cmp dword [ebp + 0x10], edi
jne 0x4b3400
push edi
push 0x40
call fcn.00446339
test eax, eax
pop ecx
pop ecx
je 0x4b3400
push 0x40
mov dword [esp + 0x18], 1
call fcn.00447288
pop ecx
push 0x368
mov esi, str..GetSalesSa7.c
push esi
push 0x40
call fcn.00443703
add esp, 0xc
cmp dword [esp + 0x14], edi
je 0x4b342b
push 0x36a
push esi
push 0x40
call fcn.004463fb
add esp, 0xc
push dword [ebp + 0x10]
mov dword [0x6463f0], 1
push dword [esp + 0x24]
push ebx
call fcn.004b2f2b
add esp, 0xc
mov dword [0x6463f0], edi
jmp 0x4b34c9
cmp eax, edi
je 0x4b3458
push eax
call fcn.004b4080
pop ecx
mov al, byte [0x54b19e]
inc byte [0x54b19e]
cmp al, 0xa
mov dword [ebx + 0x90], edi
jae 0x4b34c7
push dword [esp + 0x10]
movzx eax, byte [0x54b19e]
push dword [esi]
push dword [esp + 0x28]
push eax
push str.:5:__d_of_10:_LoadSales___s___FAILED:_The_checksum_failed:_Should_be__ld__but_was_calculated_to_be__ld.
call fcn.004178df
add esp, 0x14
jmp 0x4b34c7
mov ebx, dword [ebx + 0x90]
cmp ebx, edi
je 0x4b349f
mov esi, ebx
call fcn.004b3b8e
xor eax, eax
inc eax
jmp 0x4b34c9
mov ecx, dword [esp + 0x10]
call fcn.0041d2f0
push edi
xor edx, edx
lea ecx, [esp + 0x4c]
call fcn.0041b6bd
pop ecx
push eax
push str.:7:LoadSales___FAILED_to_read_the_size_of_the_sales_file.__GetFileSize_____ld.
call fcn.004178df
pop ecx
pop ecx
xor eax, eax
mov ecx, dword [esp + 0x154]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004b4c95
mov esp, ebp
pop ebp
ret