Function at 0x438cf0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x18
push ebp
mov ebp, dword [esp + 0x24]
push edi
mov edi, eax
cmp dword [edi + 0x340], 0
je 0x438d12
mov eax, dword [esp + 0x38]
test byte [eax + 0x20], 2
jne 0x439099
cmp dword [edi + 0x344], 0
je 0x438d29
mov ecx, dword [esp + 0x38]
test byte [ecx + 0x20], 4
jne 0x439099
lea edx, [esp + 8]
push edx
lea eax, [esp + 0x10]
push eax
mov eax, dword [esp + 0x34]
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x24]
push edx
push eax
call fcn.0051ca90
mov eax, dword [esp + 0x14]
test eax, eax
je 0x439099
mov ecx, dword [esp + 0x18]
push ebx
mov ebx, dword [esp + 0x28]
push eax
push ecx
push ebx
push edi
call fcn.00438b30
test eax, eax
mov dword [esp + 0x2c], eax
je 0x4390d9
push esi
push edi
mov esi, ebp
call fcn.004389b0
mov esi, eax
test esi, esi
je 0x4390b9
mov edx, dword [esp + 0x30]
push edx
push esi
call fcn.00432050
test eax, eax
jne 0x4390a1
mov al, byte [esi + 4]
cmp al, 0xff
jne 0x438da3
mov ecx, dword [esi - 4]
jmp 0x438da6
movzx ecx, al
mov ebx, dword [esp + 0x10]
cmp ecx, ebx
mov dword [esp + 0x34], ecx
mov edx, ecx
jl 0x438db6
mov edx, ebx
test edx, edx
lea eax, [esi + 5]
je 0x438dde
mov ebx, dword [esp + 0x14]
sub ebx, eax
movzx ebp, byte [ebx + eax]
movzx ecx, byte [eax]
sub ecx, ebp
jne 0x438de0
add eax, 1
sub edx, 1
jne 0x438dc3
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x34]
sub ecx, ebx
test ecx, ecx
jne 0x438df0
mov eax, dword [esp + 0x30]
cmp eax, dword [esi]
je 0x439097
push esi
push edi
call fcn.00453f00
push esi
push edi
mov dword [esp + 0x3c], eax
call fcn.00455fe0
push esi
push fcn.0042d3a0
lea ecx, [edi + 0x48]
xor ebp, ebp
push ecx
mov dword [esp + 0x24], eax
mov dword [esp + 0x30], ebp
call fcn.00402290
test eax, eax
jne 0x438e37
push str.folder_name_array_corrupt_n
push 0xffff0000
call fcn.0048f0a0
add esp, 8
push edi
call fcn.00410250
test byte [edi + 0x34c], 0x20
je 0x438e70
mov al, byte [esi + 4]
cmp al, 0xff
jne 0x438e50
mov edx, dword [esi - 4]
lea eax, [edx + esi + 5]
jmp 0x438e57
movzx eax, al
lea eax, [eax + esi + 5]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov eax, dword [esi]
push 0
push 0
push ecx
mov ecx, dword [esp + 0x38]
push edx
push eax
push ecx
push edi
call fcn.004335b0
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
push edx
mov edx, dword [esp + 0x34]
push eax
mov eax, dword [esp + 0x34]
push ecx
push edx
push eax
push edi
call fcn.00433310
mov ebx, eax
test ebx, ebx
je 0x438eb2
call fcn.004afc20
push edx
push eax
push ebx
push 1
push edi
call fcn.00453ff0
push ebx
push 1
push edi
mov ebp, eax
call fcn.004561a0
jmp 0x438eb6
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x34]
push eax
push ebp
push ebx
push ecx
push edx
push esi
push edi
call fcn.00434210
mov ebp, dword [esp + 0x2c]
push ebx
push esi
push ebp
push edi
call fcn.00435380
mov eax, dword [edi + 0x34c]
test eax, 0x3f00
je 0x439041
test eax, 0x2000
je 0x438f1a
push esi
push 0x42d650
lea eax, [edi + 0x78]
push eax
call fcn.00402290
test eax, eax
jne 0x438f1a
push str.corrupt_folder_path_array_n
push 0xffff0000
call fcn.0048f0a0
add esp, 8
push edi
call fcn.00410250
mov eax, dword [edi + 0x34c]
test al, 0x20
je 0x438f59
test eax, 0x100
je 0x438f59
push esi
push 0x432410
lea ecx, [edi + 0xa8]
push ecx
call fcn.00402290
test eax, eax
jne 0x438f59
push str.corrupt_folder_size_array_n
push 0xffff0000
call fcn.0048f0a0
add esp, 8
push edi
call fcn.00410250
test dword [edi + 0x34c], 0x200
je 0x438f93
push esi
push fcn.0042da40
lea edx, [edi + 0xd8]
push edx
call fcn.00402290
test eax, eax
jne 0x438f93
push str.corrupt_folder_date_created_array_n
push 0xffff0000
call fcn.0048f0a0
add esp, 8
push edi
call fcn.00410250
test dword [edi + 0x34c], 0x400
je 0x438fcd
push esi
push fcn.0042d950
lea eax, [edi + 0x108]
push eax
call fcn.00402290
test eax, eax
jne 0x438fcd
push str.corrupt_folder_date_modified_array_n
push 0xffff0000
call fcn.0048f0a0
add esp, 8
push edi
call fcn.00410250
test dword [edi + 0x34c], 0x800
je 0x439007
push esi
push fcn.0042db30
lea ecx, [edi + 0x138]
push ecx
call fcn.00402290
test eax, eax
jne 0x439007
push str.corrupt_folder_date_accessed_array_n
push 0xffff0000
call fcn.0048f0a0
add esp, 8
push edi
call fcn.00410250
test dword [edi + 0x34c], 0x1000
je 0x439041
push esi
push fcn.0042dc20
lea edx, [edi + 0x168]
push edx
call fcn.00402290
test eax, eax
jne 0x439041
push str.corrupt_folder_attributes_array_n
push 0xffff0000
call fcn.0048f0a0
add esp, 8
push edi
call fcn.00410250
mov eax, dword [esp + 0x34]
test eax, eax
je 0x439050
push eax
push edi
call fcn.00453f70
mov eax, dword [esp + 0x18]
test eax, eax
je 0x43905f
push eax
push edi
call fcn.00455220
mov eax, dword [esi]
mov ebx, dword [esp + 0x30]
cmp ebx, eax
je 0x43907c
mov ecx, dword [esp + 0x38]
push ecx
push 0
push 0
push 0
push eax
push ebp
push edi
call fcn.00433960
mov edx, dword [esp + 0x3c]
push edx
push 0
push 0
push 0
push ebx
push ebp
push edi
call fcn.00433960
push esi
push ebp
push edi
call fcn.00431eb0
pop esi
pop ebx
pop edi
pop ebp
add esp, 0x18
ret 0x18
mov eax, dword [esp + 0x38]
push eax
mov ecx, ebp
mov eax, ebx
call fcn.00438ca0
pop esi
pop ebx
pop edi
pop ebp
add esp, 0x18
ret 0x18
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x34]
push ecx
push edx
push eax
mov esi, edi
call fcn.00438c00
pop esi
pop ebx
pop edi
pop ebp
add esp, 0x18
ret 0x18
mov ecx, dword [esp + 0x34]
push ecx
mov ecx, ebp
mov eax, ebx
call fcn.00438ca0
pop ebx
pop edi
pop ebp
add esp, 0x18
ret 0x18