Function at 0x438d20
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 0x438d42
mov eax, dword [esp + 0x38]
test byte [eax + 0x20], 2
jne 0x4390c9
cmp dword [edi + 0x344], 0
je 0x438d59
mov ecx, dword [esp + 0x38]
test byte [ecx + 0x20], 4
jne 0x4390c9
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.0051bb70
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4390c9
mov ecx, dword [esp + 0x18]
push ebx
mov ebx, dword [esp + 0x28]
push eax
push ecx
push ebx
push edi
call fcn.00438b60
test eax, eax
mov dword [esp + 0x2c], eax
je 0x439109
push esi
push edi
mov esi, ebp
call fcn.004389e0
mov esi, eax
test esi, esi
je 0x4390e9
mov edx, dword [esp + 0x30]
push edx
push esi
call fcn.00432110
test eax, eax
jne 0x4390d1
mov al, byte [esi + 4]
cmp al, 0xff
jne 0x438dd3
mov ecx, dword [esi - 4]
jmp 0x438dd6
movzx ecx, al
mov ebx, dword [esp + 0x10]
cmp ecx, ebx
mov dword [esp + 0x34], ecx
mov edx, ecx
jl 0x438de6
mov edx, ebx
test edx, edx
lea eax, [esi + 5]
je 0x438e0e
mov ebx, dword [esp + 0x14]
sub ebx, eax
movzx ebp, byte [ebx + eax]
movzx ecx, byte [eax]
sub ecx, ebp
jne 0x438e10
add eax, 1
sub edx, 1
jne 0x438df3
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x34]
sub ecx, ebx
test ecx, ecx
jne 0x438e20
mov eax, dword [esp + 0x30]
cmp eax, dword [esi]
je 0x4390c7
push esi
push edi
call fcn.00453f20
push esi
push edi
mov dword [esp + 0x3c], eax
call fcn.00455ff0
push esi
push fcn.0042dca0
lea ecx, [edi + 0x48]
xor ebp, ebp
push ecx
mov dword [esp + 0x24], eax
mov dword [esp + 0x30], ebp
call fcn.004022e0
test eax, eax
jne 0x438e67
push str.folder_name_array_corrupt_n
push 0xffff0000
call fcn.0048f0c0
add esp, 8
push edi
call fcn.00410270
test byte [edi + 0x34c], 0x20
je 0x438ea0
mov al, byte [esi + 4]
cmp al, 0xff
jne 0x438e80
mov edx, dword [esi - 4]
lea eax, [edx + esi + 5]
jmp 0x438e87
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.00433600
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.00433360
mov ebx, eax
test ebx, ebx
je 0x438ee2
call fcn.0040f470
push edx
push eax
push ebx
push 1
push edi
call fcn.00454010
push ebx
push 1
push edi
mov ebp, eax
call fcn.004561b0
jmp 0x438ee6
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.00434260
mov ebp, dword [esp + 0x2c]
push ebx
push esi
push ebp
push edi
call fcn.004353d0
mov eax, dword [edi + 0x34c]
test eax, 0x3f00
je 0x439071
test eax, 0x2000
je 0x438f4a
push esi
push 0x42df50
lea eax, [edi + 0x78]
push eax
call fcn.004022e0
test eax, eax
jne 0x438f4a
push str.corrupt_folder_path_array_n
push 0xffff0000
call fcn.0048f0c0
add esp, 8
push edi
call fcn.00410270
mov eax, dword [edi + 0x34c]
test al, 0x20
je 0x438f89
test eax, 0x100
je 0x438f89
push esi
push 0x432450
lea ecx, [edi + 0xa8]
push ecx
call fcn.004022e0
test eax, eax
jne 0x438f89
push str.corrupt_folder_size_array_n
push 0xffff0000
call fcn.0048f0c0
add esp, 8
push edi
call fcn.00410270
test dword [edi + 0x34c], 0x200
je 0x438fc3
push esi
push fcn.0042e340
lea edx, [edi + 0xd8]
push edx
call fcn.004022e0
test eax, eax
jne 0x438fc3
push str.corrupt_folder_date_created_array_n
push 0xffff0000
call fcn.0048f0c0
add esp, 8
push edi
call fcn.00410270
test dword [edi + 0x34c], 0x400
je 0x438ffd
push esi
push fcn.0042e250
lea eax, [edi + 0x108]
push eax
call fcn.004022e0
test eax, eax
jne 0x438ffd
push str.corrupt_folder_date_modified_array_n
push 0xffff0000
call fcn.0048f0c0
add esp, 8
push edi
call fcn.00410270
test dword [edi + 0x34c], 0x800
je 0x439037
push esi
push fcn.0042e430
lea ecx, [edi + 0x138]
push ecx
call fcn.004022e0
test eax, eax
jne 0x439037
push str.corrupt_folder_date_accessed_array_n
push 0xffff0000
call fcn.0048f0c0
add esp, 8
push edi
call fcn.00410270
test dword [edi + 0x34c], 0x1000
je 0x439071
push esi
push fcn.0042e520
lea edx, [edi + 0x168]
push edx
call fcn.004022e0
test eax, eax
jne 0x439071
push str.corrupt_folder_attributes_array_n
push 0xffff0000
call fcn.0048f0c0
add esp, 8
push edi
call fcn.00410270
mov eax, dword [esp + 0x34]
test eax, eax
je 0x439080
push eax
push edi
call fcn.00453f90
mov eax, dword [esp + 0x18]
test eax, eax
je 0x43908f
push eax
push edi
call fcn.00455240
mov eax, dword [esi]
mov ebx, dword [esp + 0x30]
cmp ebx, eax
je 0x4390ac
mov ecx, dword [esp + 0x38]
push ecx
push 0
push 0
push 0
push eax
push ebp
push edi
call fcn.004339b0
mov edx, dword [esp + 0x3c]
push edx
push 0
push 0
push 0
push ebx
push ebp
push edi
call fcn.004339b0
push esi
push ebp
push edi
call fcn.00431f70
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.00438cd0
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.00438c30
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.00438cd0
pop ebx
pop edi
pop ebp
add esp, 0x18
ret 0x18