Function at 0x5a68a0
Capabilities:
Get file size
Get number of processors
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5cfe46
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xf0
push ebx
xor eax, eax
push esi
mov ebx, ecx
push edi
mov dword [esp + 0x30], ebx
mov dword [esp + 0x38], vtable.CFile.0
mov dword [esp + 0x78], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x104], eax
mov eax, ebx
call fcn.005a4990
mov edi, ebx
call fcn.005a2fc0
mov eax, dword [ebx + 0x64]
cmp eax, dword [ebx + 0x68]
jne 0x5a6bb2
mov ecx, dword [ebx + 0x84]
cmp ecx, dword [ebx + 0x88]
jne 0x5a6bb2
push 0xc
xor edi, edi
push str.__GLOBAL.bin
lea ecx, [esp + 0x9c]
mov dword [esp + 0xb0], 0xf
mov dword [esp + 0xac], edi
mov byte [esp + 0x9c], 0
call fcn.00405440
mov eax, dword [ebp + 0xc]
push edi
push edi
lea edx, [esp + 0x9c]
push edx
push eax
lea ecx, [esp + 0x48]
mov byte [esp + 0x114], 1
call fcn.005ad1b0
mov byte [esp + 0x104], 0
cmp dword [esp + 0xa8], 0x10
mov byte [esp + 0x37], al
jb 0x5a6987
mov ecx, dword [esp + 0x94]
push ecx
call fcn.0052d217
add esp, 4
cmp byte [esp + 0x37], 0
je 0x5a6bb4
push 4
lea edx, [esp + 0x1c]
push edx
lea ecx, [esp + 0x40]
mov dword [esp + 0x20], edi
call fcn.005aca10
mov eax, dword [esp + 0x18]
push eax
lea ecx, [ebx + 0x64]
call fcn.0040e7e0
lea esi, [ebx + 0x74]
mov ebx, dword [esp + 0x18]
mov eax, ebx
call fcn.004067a0
cmp ebx, edi
jbe 0x5a69db
xor edi, edi
mov ecx, dword [esi]
add ecx, edi
push ecx
lea ecx, [esp + 0x3c]
call fcn.005ad120
add edi, 0x1c
dec ebx
jne 0x5a69c7
push 4
lea edx, [esp + 0x14]
push edx
lea ecx, [esp + 0x40]
mov dword [esp + 0x18], 0
call fcn.005aca10
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x30]
mov eax, ebx
lea esi, [edi + 0x84]
call fcn.004067a0
lea esi, [edi + 0x94]
mov eax, ebx
call fcn.004067a0
test ebx, ebx
je 0x5a6a38
xor edi, edi
jmp 0x5a6a20
mov eax, dword [esi]
add eax, edi
push eax
lea ecx, [esp + 0x3c]
call fcn.005ad120
add edi, 0x1c
dec ebx
jne 0x5a6a20
mov edi, dword [esp + 0x30]
push 4
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x40]
mov dword [esp + 0x18], 0
call fcn.005aca10
mov eax, dword [edi + 0xb8]
mov ecx, dword [edi + 0xb4]
lea esi, [edi + 0xb4]
cmp ecx, eax
je 0x5a6ab3
mov edx, dword [esp + 0x20]
push edx
push ecx
push eax
push eax
call fcn.0040dfa0
mov ebx, dword [esi + 4]
add esp, 0x10
mov dword [esp + 0x14], eax
mov edi, eax
cmp eax, ebx
je 0x5a6aac
cmp dword [edi + 0x14], 0x10
jb 0x5a6a94
mov eax, dword [edi]
push eax
call fcn.0052d217
add esp, 4
mov dword [edi + 0x14], 0xf
mov dword [edi + 0x10], 0
mov byte [edi], 0
add edi, 0x1c
cmp edi, ebx
jne 0x5a6a83
mov eax, dword [esp + 0x14]
mov dword [esi + 4], eax
mov ebx, dword [esp + 0x10]
mov eax, ebx
call fcn.004067a0
test ebx, ebx
je 0x5a6ad8
xor edi, edi
mov ecx, dword [esi]
add ecx, edi
push ecx
lea ecx, [esp + 0x3c]
call fcn.005ad120
add edi, 0x1c
dec ebx
jne 0x5a6ac4
push 4
lea edx, [esp + 0x14]
xor ebx, ebx
push edx
lea ecx, [esp + 0x40]
mov dword [esp + 0x18], ebx
call fcn.005aca10
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x30]
mov dword [esi + 0x57c], eax
cmp eax, ebx
jle 0x5a6b47
lea edi, [esi + 0xc4]
call fcn.00406a40
mov eax, dword [esi + 0x57c]
mov ecx, dword [edi]
add eax, eax
add eax, eax
add eax, eax
push eax
push ecx
lea ecx, [esp + 0x40]
call fcn.005aca10
mov edx, dword [esi]
mov eax, dword [edx + 4]
mov ecx, esi
call eax
test eax, eax
jne 0x5a6b24
mov dword [esi + 0x588], 0xffffffff
mov dword [esi + 0x584], ebx
mov dword [esi + 0x58c], ebx
mov eax, dword [esp + 0x78]
dec eax
je 0x5a6b99
dec eax
je 0x5a6b73
dec eax
jne 0x5a6bac
cmp dword [esp + 0x4c], ebx
je 0x5a6b5e
mov dword [esp + 0x4c], ebx
mov eax, dword [esp + 0x48]
cmp eax, ebx
je 0x5a6bac
push eax
call dword [sym.imp.KERNEL32.dll_FreeResource]
mov dword [esp + 0x48], ebx
jmp 0x5a6bac
cmp byte [esp + 0x88], bl
je 0x5a6bac
mov eax, dword [esp + 0x80]
cmp eax, ebx
je 0x5a6bac
push eax
call fcn.0052eb6c
add esp, 4
mov dword [esp + 0x80], ebx
jmp 0x5a6bac
mov eax, dword [esp + 0x40]
cmp eax, ebx
je 0x5a6bac
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esp + 0x40], ebx
mov dword [esp + 0x78], ebx
mov ebx, esi
xor edi, edi
mov eax, dword [esp + 0x78]
cmp dword [ebp + 0xc], edi
je 0x5a6cc4
dec eax
je 0x5a6c10
dec eax
je 0x5a6be9
dec eax
jne 0x5a6c23
cmp dword [esp + 0x4c], edi
je 0x5a6bd4
mov dword [esp + 0x4c], edi
mov eax, dword [esp + 0x48]
cmp eax, edi
je 0x5a6c23
push eax
call dword [sym.imp.KERNEL32.dll_FreeResource]
mov dword [esp + 0x48], edi
jmp 0x5a6c23
cmp byte [esp + 0x88], 0
je 0x5a6c23
mov eax, dword [esp + 0x80]
cmp eax, edi
je 0x5a6c23
push eax
call fcn.0052eb6c
add esp, 4
mov dword [esp + 0x80], edi
jmp 0x5a6c23
mov eax, dword [esp + 0x40]
cmp eax, edi
je 0x5a6c23
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esp + 0x40], edi
mov ecx, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
push ecx
mov dword [esp + 0x7c], 0
call fcn.005aeb80
mov edi, eax
test edi, edi
je 0x5a6c80
mov eax, dword [edi + 0x58]
push eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], 0
call fcn.0051b9c2
add esp, 4
mov esi, eax
mov eax, dword [ebp + 0xc]
lea edx, [esp + 0x80]
push edx
push eax
mov dword [esp + 0x88], esi
call fcn.005ae750
test al, al
jne 0x5a6c99
test esi, esi
je 0x5a6c80
push esi
call fcn.0052eb6c
add esp, 4
xor al, al
mov ecx, dword [esp + 0xfc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [esp + 0x58]
add ecx, esi
mov dword [esp + 0x7c], esi
mov esi, dword [ebp + 8]
mov dword [esp + 0x84], ecx
mov dword [esp + 0x78], 2
mov byte [esp + 0x88], 1
xor edi, edi
jmp 0x5a6d98
dec eax
je 0x5a6d13
dec eax
je 0x5a6cec
dec eax
jne 0x5a6d22
cmp dword [esp + 0x4c], edi
je 0x5a6cd7
mov dword [esp + 0x4c], edi
mov eax, dword [esp + 0x48]
cmp eax, edi
je 0x5a6d22
push eax
call dword [sym.imp.KERNEL32.dll_FreeResource]
mov dword [esp + 0x48], edi
jmp 0x5a6d22
cmp byte [esp + 0x88], 0
je 0x5a6d22
mov eax, dword [esp + 0x80]
cmp eax, edi
je 0x5a6d22
push eax
call fcn.0052eb6c
add esp, 4
mov dword [esp + 0x80], edi
jmp 0x5a6d22
mov eax, dword [esp + 0x40]
cmp eax, edi
je 0x5a6d22
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, dword [ebp + 8]
cmp dword [esi + 0x14], 0x10
mov dword [esp + 0x78], edi
jb 0x5a6d33
mov eax, dword [esi]
jmp 0x5a6d35
mov eax, esi
push edi
push 0x80
push 3
push edi
push 1
push SysReAllocString
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [esp + 0x40], eax
cmp eax, 0xffffffff
je 0x5a6c80
lea edx, [esp + 0x10]
push edx
push eax
mov dword [esp + 0x80], 1
call dword [sym.imp.KERNEL32.dll_GetFileSize]
xor ecx, ecx
add eax, edi
adc ecx, dword [esp + 0x10]
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], edi
mov dword [esp + 0x64], edi
mov dword [esp + 0x68], edi
mov dword [esp + 0x6c], edi
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], ecx
push 0xffffffffffffffff
push edi
push esi
lea ecx, [ebx + 8]
call fcn.004018d0
mov dword [esp + 0x94], edi
mov dword [esp + 0x98], edi
mov dword [esp + 0x9c], edi
push 4
lea eax, [esp + 0x14]
mov byte [esp + 0x108], 2
push eax
lea ecx, [esp + 0x40]
mov dword [esp + 0x18], edi
call fcn.005aca10
mov esi, dword [esp + 0x10]
cmp esi, edi
jbe 0x5a6e04
mov eax, esi
lea edi, [esp + 0x94]
call fcn.00406a40
mov edx, dword [esp + 0x94]
lea ecx, [esi*8]
push ecx
push edx
lea ecx, [esp + 0x40]
call fcn.005aca10
push 4
lea eax, [esp + 0x14]
xor esi, esi
push eax
lea ecx, [esp + 0x40]
mov dword [esp + 0x18], esi
call fcn.005aca10
mov eax, dword [esp + 0x10]
lea edi, [ebx + 0xc4]
mov dword [ebx + 0x57c], eax
call fcn.00406a40
mov eax, dword [ebx + 0x57c]
cmp eax, esi
jle 0x5a6e4d
mov edx, dword [edi]
lea ecx, [eax*8]
push ecx
push edx
lea ecx, [esp + 0x40]
call fcn.005aca10
mov dword [ebx + 0x580], esi
mov eax, dword [edi + 4]
sub eax, dword [edi]
sar eax, 3
dec eax
js 0x5a6e7c
mov edi, dword [edi]
lea ecx, [edi + eax*8]
cmp dword [ecx], 0x1d
je 0x5a6e72
dec eax
sub ecx, 8
cmp eax, esi
jge 0x5a6e63
jmp 0x5a6e7c
mov eax, dword [edi + eax*8 + 4]
mov dword [ebx + 0x580], eax
push 4
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x40]
mov dword [esp + 0x20], esi
call fcn.005aca10
mov eax, dword [ebx + 0xb8]
mov ecx, dword [ebx + 0xb4]
lea esi, [ebx + 0xb4]
cmp ecx, eax
je 0x5a6ef9
mov edx, dword [esp + 0x20]
push edx
push ecx
push eax
push eax
call fcn.0040dfa0
mov ecx, dword [esi + 4]
add esp, 0x10
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ecx
mov edi, eax
cmp eax, ecx
je 0x5a6ef2
cmp dword [edi + 0x14], 0x10
jb 0x5a6ed8
mov eax, dword [edi]
push eax
call fcn.0052d217
add esp, 4
mov dword [edi + 0x14], 0xf
mov dword [edi + 0x10], 0
mov byte [edi], 0
add edi, 0x1c
cmp edi, dword [esp + 0x10]
jne 0x5a6ec7
mov eax, dword [esp + 0x14]
mov dword [esi + 4], eax
mov edi, dword [esp + 0x18]
mov eax, edi
call fcn.004067a0
test edi, edi
je 0x5a6f29
mov ecx, dword [esp + 0x18]
xor edi, edi
mov dword [esp + 0x10], ecx
mov edx, dword [esi]
add edx, edi
push edx
lea ecx, [esp + 0x3c]
call fcn.005ad120
add edi, 0x1c
dec dword [esp + 0x10]
jne 0x5a6f12
push 4
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x40]
mov dword [esp + 0x20], 0
call fcn.005aca10
mov eax, dword [ebx + 0x28]
mov edi, dword [ebx + 0x24]
mov ecx, dword [esp + 0x18]
lea esi, [ebx + 0x24]
mov dword [esp + 0x10], ecx
cmp edi, eax
je 0x5a6f77
mov ecx, eax
sub ecx, eax
sar ecx, 2
add ecx, ecx
add ecx, ecx
push ecx
push eax
push edi
mov dword [esp + 0x20], ecx
call fcn.0052d5a0
add esp, 0xc
add edi, dword [esp + 0x14]
mov dword [esi + 4], edi
mov eax, dword [ebx + 0x38]
mov ecx, dword [ebx + 0x34]
add ebx, 0x34
mov dword [esp + 0x14], ebx
cmp ecx, eax
je 0x5a6fdb
mov edx, dword [esp + 0x20]
push edx
push ecx
push eax
push eax
call fcn.0040dfa0
mov ecx, ebx
mov ebx, dword [ecx + 4]
add esp, 0x10
mov dword [esp + 0x20], eax
mov edi, eax
cmp eax, ebx
je 0x5a6fd0
cmp dword [edi + 0x14], 0x10
jb 0x5a6fb8
mov eax, dword [edi]
push eax
call fcn.0052d217
add esp, 4
mov dword [edi + 0x14], 0xf
mov dword [edi + 0x10], 0
mov byte [edi], 0
add edi, 0x1c
cmp edi, ebx
jne 0x5a6fa7
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x14]
mov dword [eax + 4], edx
mov ecx, dword [esi + 4]
mov edx, dword [esi]
mov edi, dword [esp + 0x18]
mov eax, ecx
sub eax, edx
sar eax, 2
cmp eax, edi
jbe 0x5a701a
lea edi, [edx + edi*4]
cmp edi, ecx
je 0x5a7092
mov eax, ecx
sub eax, ecx
sar eax, 2
lea ebx, [eax*4]
push ebx
push ecx
push edi
call fcn.0052d5a0
add esp, 0xc
add edi, ebx
mov dword [esi + 4], edi
jmp 0x5a7092
jae 0x5a7092
mov ecx, edi
sub ecx, eax
mov ebx, 0x3fffffff
sub ebx, ecx
cmp ebx, eax
jae 0x5a7035
push str.vector_T__too_long
call fcn.0051b104
add eax, ecx
mov ecx, dword [esi + 8]
sub ecx, edx
sar ecx, 2
cmp eax, ecx
jbe 0x5a7066
mov edx, ecx
shr edx, 1
mov ebx, 0x3fffffff
sub ebx, edx
cmp ebx, ecx
jae 0x5a7056
xor ecx, ecx
jmp 0x5a7058
add ecx, edx
cmp ecx, eax
jae 0x5a705e
mov ecx, eax
push ecx
mov ecx, esi
call fcn.0040e8d0
mov edx, dword [esi + 4]
mov eax, edx
sub eax, dword [esi]
mov ecx, edi
sar eax, 2
sub ecx, eax
je 0x5a7080
xor eax, eax
mov edi, edx
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x18]
mov eax, dword [esi + 4]
mov ecx, eax
sub ecx, dword [esi]
sar ecx, 2
sub edi, ecx
lea edx, [eax + edi*4]
mov dword [esi + 4], edx
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov eax, edi
mov esi, ebx
call fcn.004067a0
test edi, edi
je 0x5a70c4
xor esi, esi
lea esp, [esp]
mov eax, dword [ebx]
add eax, esi
push eax
lea ecx, [esp + 0x3c]
call fcn.005ad120
add esi, 0x1c
dec edi
jne 0x5a70b0
push 4
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esp + 0x40]
mov dword [esp + 0x1c], 0
call fcn.005aca10
mov esi, dword [esp + 0x30]
mov eax, dword [esi + 0x48]
mov ecx, dword [esi + 0x44]
mov ebx, dword [esp + 0x14]
add esi, 0x44
cmp ecx, eax
je 0x5a7144
mov edx, dword [esp + 0x20]
push edx
push ecx
push eax
push eax
call fcn.0040dfa0
mov ecx, dword [esi + 4]
add esp, 0x10
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], ecx
mov edi, eax
cmp eax, ecx
je 0x5a713d
cmp dword [edi + 0x14], 0x10
jb 0x5a7123
mov eax, dword [edi]
push eax
call fcn.0052d217
add esp, 4
mov dword [edi + 0x14], 0xf
mov dword [edi + 0x10], 0
mov byte [edi], 0
add edi, 0x1c
cmp edi, dword [esp + 0x20]
jne 0x5a7112
mov eax, dword [esp + 0x18]
mov dword [esi + 4], eax
lea eax, [ebx + 4]
call fcn.004067a0
mov esi, dword [esp + 0x30]
add esi, 0x54
lea eax, [ebx + 4]
call fcn.004067a0
test ebx, ebx
je 0x5a717c
xor edi, edi
mov dword [esp + 0x18], ebx
mov ecx, dword [esi]
add ecx, edi
push ecx
lea ecx, [esp + 0x3c]
call fcn.005ad120
add edi, 0x1c
dec dword [esp + 0x18]
jne 0x5a7165
mov ecx, dword [esi]
lea edi, [ebx*8]
sub edi, ebx
add edi, edi
push 0x20
add edi, edi
add ecx, edi
push 0x6414b8
call fcn.00405440
mov edx, dword [esi]
push 0x17
lea ecx, [edx + edi + 0x1c]
push 0x6414dc
call fcn.00405440
mov edx, dword [esi]
mov edi, ebx
lea eax, [edi + 2]
lea ecx, [eax*8]
sub ecx, eax
push 0x17
lea ecx, [edx + ecx*4]
push 0x6414f4
call fcn.00405440
mov edx, dword [esi]
lea eax, [edi + 3]
lea ecx, [eax*8]
sub ecx, eax
push 0x17
lea ecx, [edx + ecx*4]
push 0x64150c
call fcn.00405440
push 4
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x40]
mov dword [esp + 0x18], 0
call fcn.005aca10
mov eax, dword [esp + 0x10]
test eax, eax
je 0x5a7243
mov edi, dword [esp + 0x30]
add edi, 0x12c
mov ebx, eax
push 0x44
lea ecx, [esp + 0xb4]
push ecx
lea ecx, [esp + 0x40]
call fcn.005aca10
lea edx, [esp + 0xb0]
push edx
mov eax, edi
call fcn.0040acc0
push eax
push edi
lea esi, [esp + 0x28]
call fcn.00409280
dec ebx
jne 0x5a7213
push 4
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x40]
call fcn.005aca10
test eax, eax
je 0x5a7712
mov ebx, dword [esp + 0x30]
add ebx, 0xec
push 4
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x40]
mov dword [esp + 0x18], 0
call fcn.005aca10
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x78]
add edi, edi
add edi, edi
add edi, edi
cmp eax, 4
ja case.0x5a7290.0
jmp dword [eax*4 + 0x5a77f0]
mov edx, dword [esp + 0x40]
push 1
push 0
push edi
push edx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov eax, edi
cdq
add dword [esp + 0x60], eax
adc dword [esp + 0x64], edx
jmp case.0x5a7290.0
add dword [esp + 0x7c], edi
jmp case.0x5a7290.0
mov ecx, dword [esp + 0x5c]
mov eax, edi
cdq
add dword [esp + 0x60], eax
mov eax, dword [esp + 0x64]
adc eax, edx
mov dword [esp + 0x64], eax
cmp eax, ecx
jb case.0x5a7290.0
mov eax, dword [esp + 0x58]
ja 0x5a72df
cmp dword [esp + 0x60], eax
jbe case.0x5a7290.0
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ecx
push 4
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x40]
mov dword [esp + 0x18], 0
call fcn.005aca10
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x20]
mov dword [esp + 0x20], ecx
push edx
mov ecx, ebx
call fcn.00406c30
mov esi, dword [esp + 0x10]
lea edi, [eax + 0x30]
mov eax, esi
call fcn.00406a40
test esi, esi
je 0x5a734e
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x20]
push ecx
mov ecx, ebx
mov dword [esp + 0x24], eax
call fcn.00406c30
mov eax, dword [eax + 0x30]
lea edx, [esi*8]
push edx
push eax
lea ecx, [esp + 0x40]
call fcn.005aca10
push 4
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x40]
mov dword [esp + 0x18], 0
call fcn.005aca10
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x20]
push eax
mov ecx, ebx
mov dword [esp + 0x24], edx
call fcn.00406c30
mov edi, eax
mov eax, dword [edi + 0x24]
mov ecx, dword [edi + 0x20]
cmp ecx, eax
je 0x5a73d9
mov edx, dword [esp + 0x20]
push edx
push ecx
push eax
push eax
call fcn.0040dfa0
mov ecx, dword [edi + 0x24]
add esp, 0x10
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], ecx
mov esi, eax
cmp eax, ecx
je 0x5a73d2
cmp dword [esi + 0x14], 0x10
jb 0x5a73b8
mov eax, dword [esi]
push eax
call fcn.0052d217
add esp, 4
mov dword [esi + 0x14], 0xf
mov dword [esi + 0x10], 0
mov byte [esi], 0
add esi, 0x1c
cmp esi, dword [esp + 0x20]
jne 0x5a73a7
mov eax, dword [esp + 0x14]
mov dword [edi + 0x24], eax
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x20]
mov dword [esp + 0x20], ecx
push edx
mov ecx, ebx
call fcn.00406c30
mov edi, dword [esp + 0x10]
lea esi, [eax + 0x20]
mov eax, edi
call fcn.004067a0
test edi, edi
je 0x5a742a
xor esi, esi
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x20]
push ecx
mov ecx, ebx
mov dword [esp + 0x24], eax
call fcn.00406c30
mov edx, dword [eax + 0x20]
add edx, esi
push edx
lea ecx, [esp + 0x3c]
call fcn.005ad120
add esi, 0x1c
dec edi
jne 0x5a7401
push 4
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x40]
mov dword [esp + 0x1c], 0
call fcn.005aca10
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x20]
mov dword [esp + 0x20], ecx
push edx
mov ecx, ebx
call fcn.00406c30
mov ecx, eax
mov eax, dword [ecx + 4]
mov dword [esp + 0x10], ecx
mov ecx, dword [ecx]
cmp ecx, eax
je 0x5a74ba
mov edx, dword [esp + 0x20]
push edx
push ecx
push eax
push eax
call fcn.0040dfa0
mov ecx, dword [esp + 0x20]
mov edi, dword [ecx + 4]
add esp, 0x10
mov dword [esp + 0x20], eax
mov esi, eax
cmp eax, edi
je 0x5a74af
cmp dword [esi + 0x14], 0x10
jb 0x5a7497
mov eax, dword [esi]
push eax
call fcn.0052d217
add esp, 4
mov dword [esi + 0x14], 0xf
mov dword [esi + 0x10], 0
mov byte [esi], 0
add esi, 0x1c
cmp esi, edi
jne 0x5a7486
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
mov dword [eax + 4], edx
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x20]
mov dword [esp + 0x20], ecx
push edx
mov ecx, ebx
call fcn.00406c30
mov edi, dword [esp + 0x14]
mov esi, eax
mov eax, edi
call fcn.004067a0
test edi, edi
je 0x5a7509
xor esi, esi
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x20]
push ecx
mov ecx, ebx
mov dword [esp + 0x24], eax
call fcn.00406c30
mov edx, dword [eax]
add edx, esi
push edx
lea ecx, [esp + 0x3c]
call fcn.005ad120
add esi, 0x1c
dec edi
jne 0x5a74e1
push 4
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x40]
mov dword [esp + 0x18], 0
call fcn.005aca10
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x20]
mov dword [esp + 0x20], ecx
push edx
mov ecx, ebx
call fcn.00406c30
mov edi, eax
mov eax, dword [edi + 0x14]
mov ecx, dword [edi + 0x10]
cmp ecx, eax
je 0x5a7594
mov edx, dword [esp + 0x20]
push edx
push ecx
push eax
push eax
call fcn.0040dfa0
mov ecx, dword [edi + 0x14]
add esp, 0x10
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], ecx
mov esi, eax
cmp eax, ecx
je 0x5a758d
cmp dword [esi + 0x14], 0x10
jb 0x5a7573
mov eax, dword [esi]
push eax
call fcn.0052d217
add esp, 4
mov dword [esi + 0x14], 0xf
mov dword [esi + 0x10], 0
mov byte [esi], 0
add esi, 0x1c
cmp esi, dword [esp + 0x20]
jne 0x5a7562
mov eax, dword [esp + 0x14]
mov dword [edi + 0x14], eax
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x20]
mov dword [esp + 0x20], ecx
push edx
mov ecx, ebx
call fcn.00406c30
mov edi, dword [esp + 0x10]
lea esi, [eax + 0x10]
mov eax, edi
call fcn.004067a0
test edi, edi
je 0x5a75e9
xor esi, esi
lea esp, [esp]
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x20]
push ecx
mov ecx, ebx
mov dword [esp + 0x24], eax
call fcn.00406c30
mov edx, dword [eax + 0x10]
add edx, esi
push edx
lea ecx, [esp + 0x3c]
call fcn.005ad120
add esi, 0x1c
dec edi
jne 0x5a75c0
push 4
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x40]
mov dword [esp + 0x18], 0
call fcn.005aca10
mov eax, dword [esp + 0x10]
mov esi, eax
shl esi, 4
add esi, eax
mov eax, dword [esp + 0x78]
add esi, esi
add esi, esi
cmp eax, 4
ja case.0x5a7619.0
jmp dword [eax*4 + 0x5a7804]
mov ecx, dword [esp + 0x40]
push 1
push 0
push esi
push ecx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov eax, esi
cdq
add dword [esp + 0x60], eax
adc dword [esp + 0x64], edx
jmp case.0x5a7619.0
add dword [esp + 0x7c], esi
jmp case.0x5a7619.0
mov ecx, dword [esp + 0x5c]
mov eax, esi
cdq
add dword [esp + 0x60], eax
mov eax, dword [esp + 0x64]
adc eax, edx
mov dword [esp + 0x64], eax
cmp eax, ecx
jb case.0x5a7619.0
mov eax, dword [esp + 0x58]
ja 0x5a7668
cmp dword [esp + 0x60], eax
jbe case.0x5a7619.0
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ecx
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x20]
push eax
mov ecx, ebx
mov dword [esp + 0x24], edx
call fcn.00406c30
mov esi, dword [eax + 0x34]
sub esi, dword [eax + 0x30]
sar esi, 3
dec esi
js 0x5a76fa
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x20]
mov dword [esp + 0x20], ecx
push edx
mov ecx, ebx
call fcn.00406c30
mov eax, dword [eax + 0x30]
cmp dword [eax + esi*8], 0x1d
je 0x5a76b2
dec esi
jns 0x5a7690
jmp 0x5a76fa
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x20]
mov dword [esp + 0x20], ecx
push edx
mov ecx, ebx
call fcn.00406c30
mov edi, dword [esp + 0x30]
mov eax, dword [eax + 0x30]
mov ecx, dword [edi + 0x580]
cmp ecx, dword [eax + esi*8 + 4]
jge 0x5a76fa
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x20]
push eax
mov ecx, ebx
mov dword [esp + 0x24], edx
call fcn.00406c30
mov ecx, dword [eax + 0x30]
mov edx, dword [ecx + esi*8 + 4]
mov dword [edi + 0x580], edx
push 4
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x40]
call fcn.005aca10
test eax, eax
jne 0x5a7265
mov edi, dword [esp + 0x30]
inc dword [edi + 0x580]
mov eax, dword [edi + 0x580]
push eax
lea ecx, [edi + 0xa4]
call fcn.00401030
lea esi, [esp + 0x38]
call fcn.005ac630
mov ebx, dword [esp + 0x94]
cmp ebx, dword [esp + 0x98]
je 0x5a77b6
lea esi, [edi + 0xc4]
push esi
lea ecx, [esp + 0x24]
push ecx
call fcn.00406880
lea edx, [esp + 0x94]
push edx
mov eax, esi
mov byte [esp + 0x108], 3
call fcn.00406930
nop
mov eax, dword [edi]
mov edx, dword [eax + 4]
mov ecx, edi
call edx
test eax, eax
jne 0x5a7770
lea eax, [esp + 0x20]
push eax
lea eax, [edi + 0xc4]
call fcn.00406930
mov eax, dword [esp + 0x20]
xor ecx, ecx
mov dword [edi + 0x588], 0xffffffff
mov dword [edi + 0x584], ecx
mov dword [edi + 0x58c], ecx
cmp eax, ecx
je 0x5a77b6
push eax
call fcn.0052d217
add esp, 4
test ebx, ebx
je 0x5a77c3
push ebx
call fcn.0052d217
add esp, 4
lea esi, [esp + 0x38]
mov dword [esp + 0x38], vtable.CFile.0
call fcn.005ac630
mov ecx, dword [esp + 0xfc]
pop edi
pop esi
mov al, 1
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 8