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

Disassembly:
sub esp, 0x3c
push ebx
push ebp
mov ebp, dword [esp + 0x48]
push edi
mov ebx, eax
mov edi, dword [ebx]
push ebp
mov dword [esp + 0x38], 0
call fcn.00403d50
cmp eax, 0x62445345
je 0x40a6fd
push str.invalid_db_magic_n
call fcn.0048f0d0
mov eax, dword [esp + 0x38]
add esp, 4
pop edi
pop ebp
pop ebx
add esp, 0x3c
ret 4
push ebp
call fcn.00403d50
cmp eax, 0x1070014
je 0x40a724
push str.unsupported_db_version_n
call fcn.0048f0d0
mov eax, dword [esp + 0x38]
add esp, 4
pop edi
pop ebp
pop ebx
add esp, 0x3c
ret 4
push esi
push ebp
lea esi, [edi + 0x34c]
call fcn.00403d50
push eax
push esi
call fcn.0048e300
push ebp
call fcn.00403d50
push ebp
mov dword [esp + 0x14], eax
call fcn.00403d50
mov ecx, dword [esi]
push eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x14]
push eax
push ecx
push str.Loading_structure__08x:__d_folders___d_files..._n
push 0xffffff00
call fcn.0048f0f0
add esp, 0x14
push ebx
mov esi, ebp
call fcn.0040a450
cmp dword [0x598104], 0
mov ebx, 2
jne 0x40a7c3
cmp byte [0x597f6e], 0
jne 0x40a7c3
mov esi, dword [edi + 0x14]
xor eax, eax
test esi, esi
je 0x40a7c3
nop
cmp dword [esi + 8], ebx
jne 0x40a7b3
cmp dword [esi + 0x18], 0
je 0x40a7b3
mov edx, dword [esi + 0x20]
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x14]
push edx
push eax
push ecx
push esi
push edi
call fcn.00439cd0
mov eax, 1
mov esi, dword [esi]
test esi, esi
jne 0x40a790
test eax, eax
je 0x40a7c3
push edi
call fcn.0043f6d0
push ebp
call fcn.004039d0
movzx eax, al
mov edx, eax
and edx, 1
and eax, ebx
push ebp
mov dword [edi + 0x340], edx
mov dword [edi + 0x344], eax
lea esi, [edi + 0x32c]
call fcn.0041f9d0
push ebp
mov dword [esi], eax
call fcn.0041f9d0
push ebp
mov dword [edi + 0x330], eax
call fcn.0041f9d0
push esi
mov dword [edi + 0x334], eax
call fcn.0041f070
cmp dword [esp + 0x10], 0
je 0x40ab40
mov esi, dword [esp + 0x10]
add esi, esi
add esi, esi
push esi
call fcn.004a49a0
mov ebx, eax
push esi
push ebx
push ebp
mov dword [esp + 0x28], ebx
call fcn.00403870
add esi, ebx
cmp ebx, esi
mov eax, ebx
je 0x40a852
mov ecx, dword [edi + 0x1c]
mov edx, dword [esp + 0x10]
add ecx, edx
cmp dword [eax], ecx
jae 0x40a8dd
add eax, 4
cmp eax, esi
jne 0x40a843
mov ecx, dword [esp + 0x10]
xor eax, eax
push ecx
lea esi, [edi + 0x48]
push esi
mov dword [esp + 0x28], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x2c], ebx
call fcn.00401d60
mov eax, dword [esi]
mov edx, dword [edi + 0x5c]
lea ecx, [eax + edx*4]
cmp eax, ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x48], ecx
jne 0x40a90a
call fcn.0048f230
mov ecx, dword [edi + 0x5c]
mov dword [esp + 0x44], eax
mov eax, dword [edi + 0x48]
lea ecx, [eax + ecx*4]
cmp eax, ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x48], ecx
je 0x40ab1a
jmp 0x40a8b0
mov edx, dword [esp + 0x2c]
mov eax, dword [edx]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
lea ebp, [ecx + edx*4]
lea ebx, [ecx + eax]
add ebp, eax
mov esi, dword [ebx]
mov eax, dword [esi]
cmp eax, dword [esp + 0x10]
jb 0x40aad1
mov dword [esi], 0
jmp 0x40aaf6
mov eax, dword [eax]
push ecx
push eax
push str.invalid_parent_folder_index__d____d___d_n
call fcn.0048f0d0
add esp, 0xc
test ebx, ebx
je 0x40a8f8
push ebx
call fcn.004a4a00
mov eax, dword [esp + 0x38]
pop esi
pop edi
pop ebp
pop ebx
add esp, 0x3c
ret 4
mov eax, dword [esp + 0x2c]
mov eax, dword [eax]
mov ecx, dword [eax + 8]
lea edx, [ecx + eax]
mov dword [esp + 0x28], edx
mov edx, dword [eax + 0xc]
lea ecx, [ecx + edx*4]
add ecx, eax
mov dword [esp + 0x44], ecx
mov eax, dword [esp + 0x24]
mov eax, dword [eax]
mov ebp, dword [esp + 0x10]
cmp eax, ebp
mov dword [esp + 0x30], eax
jae 0x40a93f
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + eax*4]
cmp eax, ebp
jb 0x40a934
sub eax, ebp
push eax
push edi
call fcn.00437730
mov edx, dword [eax + 8]
mov esi, dword [esp + 0x50]
push esi
mov dword [esp + 0x40], eax
mov dword [esp + 0x38], edx
call fcn.00403d70
mov ebx, eax
test ebx, ebx
je 0x40a97d
push esi
call fcn.00403d70
mov ecx, dword [esp + 0x18]
cmp eax, ecx
ja 0x40aab9
sub ecx, eax
mov dword [esp + 0x18], ecx
jmp 0x40a981
mov ecx, dword [esp + 0x18]
cmp dword [esp + 0x30], ebp
mov edx, dword [edi + 0x354]
lea eax, [ebx + ecx]
lea eax, [eax + edx + 5]
jb 0x40a997
add eax, 4
mov edx, dword [esp + 0x34]
test edx, edx
je 0x40a9a9
cmp edx, 3
jne 0x40a9ac
add eax, 0x14
jmp 0x40a9ac
add eax, 0xc
lea esi, [ebx + ecx]
cmp esi, 0xff
mov dword [esp + 0x40], esi
jb 0x40a9be
add eax, 4
push eax
push edi
call fcn.00437e10
mov edx, dword [esp + 0x30]
cmp edx, dword [esp + 0x10]
mov ebp, eax
jb 0x40a9db
mov eax, dword [esp + 0x3c]
mov dword [ebp], eax
add ebp, 4
cmp esi, 0xff
mov eax, dword [esp + 0x18]
jb 0x40a9f3
mov dword [ebp], esi
add ebp, 4
mov byte [ebp + 4], 0xff
jmp 0x40a9fa
mov cl, al
add cl, bl
mov byte [ebp + 4], cl
mov ecx, dword [esp + 0x28]
mov dword [ecx], ebp
add ecx, 4
mov dword [ebp], edx
add ebp, 5
test eax, eax
mov dword [esp + 0x28], ecx
je 0x40aa2a
mov edx, dword [esp + 0x20]
push eax
push edx
push ebp
call fcn.00549ad0
add esp, 0xc
mov dword [esp + 0x20], ebp
add ebp, dword [esp + 0x18]
jmp 0x40aa2e
mov dword [esp + 0x20], ebp
test ebx, ebx
mov esi, dword [esp + 0x50]
je 0x40aa48
push ebx
push ebp
push esi
call fcn.00403870
mov eax, dword [esp + 0x40]
mov dword [esp + 0x18], eax
add ebp, ebx
mov ecx, dword [edi + 0x354]
push ecx
push ebp
push esi
call fcn.00403870
mov eax, dword [esp + 0x34]
add ebp, dword [edi + 0x354]
xor ebx, ebx
cmp eax, ebx
je 0x40aa79
cmp eax, 3
jne 0x40aa88
push 0x10
push ebp
push esi
call fcn.00403870
mov dword [ebp + 0x10], ebx
jmp 0x40aa88
push esi
call fcn.004039f0
mov dword [ebp], eax
mov dword [ebp + 4], edx
mov dword [ebp + 8], ebx
mov edx, dword [esp + 0x44]
add dword [esp + 0x24], 4
cmp dword [esp + 0x28], edx
jne 0x40a922
mov eax, dword [esp + 0x2c]
add eax, 4
cmp eax, dword [esp + 0x48]
mov dword [esp + 0x2c], eax
jne 0x40a906
mov ebx, dword [esp + 0x1c]
jmp 0x40a886
push ecx
push eax
push str.Invalid_folder_code_offset__d____d._n
call fcn.0048f0d0
mov ebx, dword [esp + 0x28]
add esp, 0xc
jmp 0x40a8ee
mov ecx, eax
mov eax, 0x828cbfbf
mul ecx
mov eax, dword [edi + 0x48]
shr edx, 9
mov eax, dword [eax + edx*4]
imul edx, edx, 0x3ec
sub ecx, edx
mov edx, dword [eax + 8]
lea ecx, [edx + ecx*4]
mov edx, dword [ecx + eax]
mov dword [esi], edx
add ebx, 4
cmp ebx, ebp
jne 0x40a8c4
mov eax, dword [esp + 0x2c]
add eax, 4
cmp eax, dword [esp + 0x48]
mov dword [esp + 0x2c], eax
jne 0x40a8b0
mov ebx, dword [esp + 0x1c]
call fcn.0048f230
sub eax, dword [esp + 0x44]
push eax
push str.convert_all_folder_parent_indexes_into_folder_parent_folders__f_seconds_n
push 0xff0000ff
call fcn.0048f0f0
add esp, 0xc
push ebx
call fcn.004a4a00
mov ebp, dword [esp + 0x50]
mov eax, dword [esp + 0x14]
xor ebx, ebx
cmp eax, ebx
je 0x40ab74
push eax
lea esi, [edi + 0x60]
push esi
call fcn.00401d60
mov esi, dword [esi]
mov eax, dword [edi + 0x74]
lea eax, [esi + eax*4]
cmp esi, eax
mov dword [esp + 0x20], esi
mov dword [esp + 0x44], eax
mov dword [esp + 0x28], ebx
mov dword [esp + 0x18], ebx
jne 0x40b525
push ebp
call fcn.00403d50
test eax, eax
je 0x40ac34
lea ecx, [edi + 0x2a4]
push eax
push ecx
call fcn.00401d60
cmp dword [edi + 0x2b8], 0
mov dword [esp + 0x2c], 0
jbe 0x40ac34
mov ecx, dword [esp + 0x2c]
jmp 0x40abb0
mov eax, dword [edi + 0x2a4]
mov eax, dword [eax + ecx*4]
mov ebp, dword [eax + 8]
mov edx, dword [eax + 0xc]
lea ebx, [eax + ebp]
lea ebp, [ebp + edx*4]
add ebp, eax
cmp ebx, ebp
je 0x40ac21
lea esp, [esp]
mov eax, dword [esp + 0x50]
push eax
call fcn.00403d50
mov ecx, eax
cmp ecx, dword [esp + 0x10]
jae 0x40b762
mov eax, 0x828cbfbf
mul ecx
mov eax, dword [edi + 0x48]
shr edx, 9
mov eax, dword [eax + edx*4]
imul edx, edx, 0x3ec
sub ecx, edx
mov edx, dword [eax + 8]
lea ecx, [edx + ecx*4]
mov esi, dword [ecx + eax]
mov eax, dword [esi]
test eax, eax
je 0x40ac14
push eax
push edi
call fcn.0042ca60
mov dword [ebx], esi
add ebx, 4
cmp ebx, ebp
jne 0x40abd0
mov ecx, dword [esp + 0x2c]
add ecx, 1
cmp ecx, dword [edi + 0x2b8]
mov dword [esp + 0x2c], ecx
jb 0x40abb0
mov ebp, dword [esp + 0x50]
push ebp
call fcn.00403d50
test eax, eax
je 0x40acf0
lea ecx, [edi + 0x2bc]
push eax
push ecx
call fcn.00401d60
cmp dword [edi + 0x2d0], 0
mov dword [esp + 0x2c], 0
jbe 0x40acf0
mov ecx, dword [esp + 0x2c]
jmp 0x40ac70
mov edx, dword [edi + 0x2bc]
mov eax, dword [edx + ecx*4]
mov ebp, dword [eax + 8]
mov edx, dword [eax + 0xc]
lea ebx, [eax + ebp]
lea ebp, [ebp + edx*4]
add ebp, eax
cmp ebx, ebp
je 0x40ace1
lea esp, [esp]
mov eax, dword [esp + 0x50]
push eax
call fcn.00403d50
mov ecx, eax
cmp ecx, dword [esp + 0x10]
jae 0x40b762
mov eax, 0x828cbfbf
mul ecx
mov eax, dword [edi + 0x48]
shr edx, 9
mov eax, dword [eax + edx*4]
imul edx, edx, 0x3ec
sub ecx, edx
mov edx, dword [eax + 8]
lea ecx, [edx + ecx*4]
mov esi, dword [ecx + eax]
mov eax, dword [esi]
test eax, eax
je 0x40acd4
push eax
push edi
call fcn.0042caa0
mov dword [ebx], esi
add ebx, 4
cmp ebx, ebp
jne 0x40ac90
mov ecx, dword [esp + 0x2c]
add ecx, 1
cmp ecx, dword [edi + 0x2d0]
mov dword [esp + 0x2c], ecx
jb 0x40ac70
cmp dword [esp + 0x10], 0
je 0x40b0ab
test dword [edi + 0x34c], 0x2000
je 0x40ad8b
mov edx, dword [esp + 0x10]
lea eax, [edi + 0x78]
push edx
push eax
call fcn.00401d60
xor ebp, ebp
cmp dword [edi + 0x8c], ebp
jbe 0x40ad8b
mov eax, dword [edi + 0x78]
mov eax, dword [eax + ebp*4]
mov ebx, dword [eax + 8]
mov ecx, dword [eax + 0xc]
lea esi, [ebx + eax]
lea ebx, [ebx + ecx*4]
add ebx, eax
cmp esi, ebx
je 0x40ad80
jmp 0x40ad40
mov edx, dword [esp + 0x50]
push edx
call fcn.00403d50
mov ecx, eax
cmp ecx, dword [esp + 0x10]
jae 0x40b762
mov eax, 0x828cbfbf
mul ecx
mov eax, dword [edi + 0x48]
shr edx, 9
mov eax, dword [eax + edx*4]
imul edx, edx, 0x3ec
sub ecx, edx
mov edx, dword [eax + 8]
lea ecx, [edx + ecx*4]
mov edx, dword [ecx + eax]
mov dword [esi], edx
add esi, 4
cmp esi, ebx
jne 0x40ad40
add ebp, 1
cmp ebp, dword [edi + 0x8c]
jb 0x40ad23
mov eax, dword [edi + 0x34c]
test al, 0x20
je 0x40ae2b
test eax, 0x100
je 0x40ae2b
mov ecx, dword [esp + 0x10]
lea eax, [edi + 0xa8]
push ecx
push eax
call fcn.00401d60
xor ebp, ebp
cmp dword [edi + 0xbc], ebp
jbe 0x40ae2b
nop
mov edx, dword [edi + 0xa8]
mov eax, dword [edx + ebp*4]
mov ebx, dword [eax + 8]
mov ecx, dword [eax + 0xc]
lea esi, [ebx + eax]
lea ebx, [ebx + ecx*4]
add ebx, eax
cmp esi, ebx
je 0x40ae20
jmp 0x40ade0
mov edx, dword [esp + 0x50]
push edx
call fcn.00403d50
mov ecx, eax
cmp ecx, dword [esp + 0x10]
jae 0x40b762
mov eax, 0x828cbfbf
mul ecx
mov eax, dword [edi + 0x48]
shr edx, 9
mov eax, dword [eax + edx*4]
imul edx, edx, 0x3ec
sub ecx, edx
mov edx, dword [eax + 8]
lea ecx, [edx + ecx*4]
mov edx, dword [ecx + eax]
mov dword [esi], edx
add esi, 4
cmp esi, ebx
jne 0x40ade0
add ebp, 1
cmp ebp, dword [edi + 0xbc]
jb 0x40adc0
test dword [edi + 0x34c], 0x200
je 0x40aecb
mov ecx, dword [esp + 0x10]
lea eax, [edi + 0xd8]
push ecx
push eax
call fcn.00401d60
xor ebp, ebp
cmp dword [edi + 0xec], ebp
jbe 0x40aecb
jmp 0x40ae60
mov edx, dword [edi + 0xd8]
mov eax, dword [edx + ebp*4]
mov ebx, dword [eax + 8]
mov ecx, dword [eax + 0xc]
lea esi, [ebx + eax]
lea ebx, [ebx + ecx*4]
add ebx, eax
cmp esi, ebx
je 0x40aec0
jmp 0x40ae80
mov edx, dword [esp + 0x50]
push edx
call fcn.00403d50
mov ecx, eax
cmp ecx, dword [esp + 0x10]
jae 0x40b762
mov eax, 0x828cbfbf
mul ecx
mov eax, dword [edi + 0x48]
shr edx, 9
mov eax, dword [eax + edx*4]
imul edx, edx, 0x3ec
sub ecx, edx
mov edx, dword [eax + 8]
lea ecx, [edx + ecx*4]
mov edx, dword [ecx + eax]
mov dword [esi], edx
add esi, 4
cmp esi, ebx
jne 0x40ae80
add ebp, 1
cmp ebp, dword [edi + 0xec]
jb 0x40ae60
test dword [edi + 0x34c], 0x400
je 0x40af6b
mov ecx, dword [esp + 0x10]
lea eax, [edi + 0x108]
push ecx
push eax
call fcn.00401d60
xor ebp, ebp
cmp dword [edi + 0x11c], ebp
jbe 0x40af6b
jmp 0x40af00
mov edx, dword [edi + 0x108]
mov eax, dword [edx + ebp*4]
mov ebx, dword [eax + 8]
mov ecx, dword [eax + 0xc]
lea esi, [ebx + eax]
lea ebx, [ebx + ecx*4]
add ebx, eax
cmp esi, ebx
je 0x40af60
jmp 0x40af20
mov edx, dword [esp + 0x50]
push edx
call fcn.00403d50
mov ecx, eax
cmp ecx, dword [esp + 0x10]
jae 0x40b762
mov eax, 0x828cbfbf
mul ecx
mov eax, dword [edi + 0x48]
shr edx, 9
mov eax, dword [eax + edx*4]
imul edx, edx, 0x3ec
sub ecx, edx
mov edx, dword [eax + 8]
lea ecx, [edx + ecx*4]
mov edx, dword [ecx + eax]
mov dword [esi], edx
add esi, 4
cmp esi, ebx
jne 0x40af20
add ebp, 1
cmp ebp, dword [edi + 0x11c]
jb 0x40af00
test dword [edi + 0x34c], 0x800
je 0x40b00b
mov ecx, dword [esp + 0x10]
lea eax, [edi + 0x138]
push ecx
push eax
call fcn.00401d60
xor ebp, ebp
cmp dword [edi + 0x14c], ebp
jbe 0x40b00b
jmp 0x40afa0
mov edx, dword [edi + 0x138]
mov eax, dword [edx + ebp*4]
mov ebx, dword [eax + 8]
mov ecx, dword [eax + 0xc]
lea esi, [ebx + eax]
lea ebx, [ebx + ecx*4]
add ebx, eax
cmp esi, ebx
je 0x40b000
jmp 0x40afc0
mov edx, dword [esp + 0x50]
push edx
call fcn.00403d50
mov ecx, eax
cmp ecx, dword [esp + 0x10]
jae 0x40b762
mov eax, 0x828cbfbf
mul ecx
mov eax, dword [edi + 0x48]
shr edx, 9
mov eax, dword [eax + edx*4]
imul edx, edx, 0x3ec
sub ecx, edx
mov edx, dword [eax + 8]
lea ecx, [edx + ecx*4]
mov edx, dword [ecx + eax]
mov dword [esi], edx
add esi, 4
cmp esi, ebx
jne 0x40afc0
add ebp, 1
cmp ebp, dword [edi + 0x14c]
jb 0x40afa0
test dword [edi + 0x34c], 0x1000
je 0x40b0ab
mov ecx, dword [esp + 0x10]
lea eax, [edi + 0x168]
push ecx
push eax
call fcn.00401d60
xor ebp, ebp
cmp dword [edi + 0x17c], ebp
jbe 0x40b0ab
jmp 0x40b040
mov edx, dword [edi + 0x168]
mov eax, dword [edx + ebp*4]
mov ebx, dword [eax + 8]
mov ecx, dword [eax + 0xc]
lea esi, [ebx + eax]
lea ebx, [ebx + ecx*4]
add ebx, eax
cmp esi, ebx
je 0x40b0a0
jmp 0x40b060
mov edx, dword [esp + 0x50]
push edx
call fcn.00403d50
mov ecx, eax
cmp ecx, dword [esp + 0x10]
jae 0x40b762
mov eax, 0x828cbfbf
mul ecx
mov eax, dword [edi + 0x48]
shr edx, 9
mov eax, dword [eax + edx*4]
imul edx, edx, 0x3ec
sub ecx, edx
mov edx, dword [eax + 8]
lea ecx, [edx + ecx*4]
mov edx, dword [ecx + eax]
mov dword [esi], edx
add esi, 4
cmp esi, ebx
jne 0x40b060
add ebp, 1
cmp ebp, dword [edi + 0x17c]
jb 0x40b040
cmp dword [esp + 0x14], 0
je 0x40b50b
test dword [edi + 0x34c], 0x2000
je 0x40b14b
mov ecx, dword [esp + 0x14]
lea eax, [edi + 0x90]
push ecx
push eax
call fcn.00401d60
xor ebp, ebp
cmp dword [edi + 0xa4], ebp
jbe 0x40b14b
mov edx, dword [edi + 0x90]
mov eax, dword [edx + ebp*4]
mov ebx, dword [eax + 8]
mov ecx, dword [eax + 0xc]
lea esi, [ebx + eax]
lea ebx, [ebx + ecx*4]
add ebx, eax
cmp esi, ebx
je 0x40b140
lea esp, [esp]
mov edx, dword [esp + 0x50]
push edx
call fcn.00403d50
mov ecx, eax
cmp ecx, dword [esp + 0x14]
jae 0x40b77e
mov eax, 0x828cbfbf
mul ecx
mov eax, dword [edi + 0x60]
shr edx, 9
mov eax, dword [eax + edx*4]
imul edx, edx, 0x3ec
sub ecx, edx
mov edx, dword [eax + 8]
lea ecx, [edx + ecx*4]
mov edx, dword [ecx + eax]
mov dword [esi], edx
add esi, 4
cmp esi, ebx
jne 0x40b100
add ebp, 1
cmp ebp, dword [edi + 0xa4]
jb 0x40b0e1
test dword [edi + 0x34c], 0x100
je 0x40b1eb
mov ecx, dword [esp + 0x14]
lea eax, [edi + 0xc0]
push ecx
push eax
call fcn.00401d60
xor ebp, ebp
cmp dword [edi + 0xd4], ebp
jbe 0x40b1eb
jmp 0x40b180
mov edx, dword [edi + 0xc0]
mov eax, dword [edx + ebp*4]
mov ebx, dword [eax + 8]
mov ecx, dword [eax + 0xc]
lea esi, [ebx + eax]
lea ebx, [ebx + ecx*4]
add ebx, eax
cmp esi, ebx
je 0x40b1e0
jmp 0x40b1a0
mov edx, dword [esp + 0x50]
push edx
call fcn.00403d50
mov ecx, eax
cmp ecx, dword [esp + 0x14]
jae 0x40b77e
mov eax, 0x828cbfbf
mul ecx
mov eax, dword [edi + 0x60]
shr edx, 9
mov eax, dword [eax + edx*4]
imul edx, edx, 0x3ec
sub ecx, edx
mov edx, dword [eax + 8]
lea ecx, [edx + ecx*4]
mov edx, dword [ecx + eax]
mov dword [esi], edx
add esi, 4
cmp esi, ebx
jne 0x40b1a0
add ebp, 1
cmp ebp, dword [edi + 0xd4]
jb 0x40b180
test dword [edi + 0x34c], 0x200
je 0x40b28b
mov ecx, dword [esp + 0x14]
lea eax, [edi + 0xf0]
push ecx
push eax
call fcn.00401d60
xor ebp, ebp
cmp dword [edi + 0x104], ebp
jbe 0x40b28b
jmp 0x40b220
mov edx, dword [edi + 0xf0]
mov eax, dword [edx + ebp*4]
mov ebx, dword [eax + 8]
mov ecx, dword [eax + 0xc]
lea esi, [ebx + eax]
lea ebx, [ebx + ecx*4]
add ebx, eax
cmp esi, ebx
je 0x40b280
jmp 0x40b240
mov edx, dword [esp + 0x50]
push edx
call fcn.00403d50
mov ecx, eax
cmp ecx, dword [esp + 0x14]
jae 0x40b77e
mov eax, 0x828cbfbf
mul ecx
mov eax, dword [edi + 0x60]
shr edx, 9
mov eax, dword [eax + edx*4]
imul edx, edx, 0x3ec
sub ecx, edx
mov edx, dword [eax + 8]
lea ecx, [edx + ecx*4]
mov edx, dword [ecx + eax]
mov dword [esi], edx
add esi, 4
cmp esi, ebx
jne 0x40b240
add ebp, 1
cmp ebp, dword [edi + 0x104]
jb 0x40b220
test dword [edi + 0x34c], 0x400
je 0x40b32b
mov ecx, dword [esp + 0x14]
lea eax, [edi + 0x120]
push ecx
push eax
call fcn.00401d60
xor ebp, ebp
cmp dword [edi + 0x134], ebp
jbe 0x40b32b
jmp 0x40b2c0
mov edx, dword [edi + 0x120]
mov eax, dword [edx + ebp*4]
mov ebx, dword [eax + 8]
mov ecx, dword [eax + 0xc]
lea esi, [ebx + eax]
lea ebx, [ebx + ecx*4]
add ebx, eax
cmp esi, ebx
je 0x40b320
jmp 0x40b2e0
mov edx, dword [esp + 0x50]
push edx
call fcn.00403d50
mov ecx, eax
cmp ecx, dword [esp + 0x14]
jae 0x40b77e
mov eax, 0x828cbfbf
mul ecx
mov eax, dword [edi + 0x60]
shr edx, 9
mov eax, dword [eax + edx*4]
imul edx, edx, 0x3ec
sub ecx, edx
mov edx, dword [eax + 8]
lea ecx, [edx + ecx*4]
mov edx, dword [ecx + eax]
mov dword [esi], edx
add esi, 4
cmp esi, ebx
jne 0x40b2e0
add ebp, 1
cmp ebp, dword [edi + 0x134]
jb 0x40b2c0
test dword [edi + 0x34c], 0x800
je 0x40b3cb
mov ecx, dword [esp + 0x14]
lea eax, [edi + 0x150]
push ecx
push eax
call fcn.00401d60
xor ebp, ebp
cmp dword [edi + 0x164], ebp
jbe 0x40b3cb
jmp 0x40b360
mov edx, dword [edi + 0x150]
mov eax, dword [edx + ebp*4]
mov ebx, dword [eax + 8]
mov ecx, dword [eax + 0xc]
lea esi, [ebx + eax]
lea ebx, [ebx + ecx*4]
add ebx, eax
cmp esi, ebx
je 0x40b3c0
jmp 0x40b380
mov edx, dword [esp + 0x50]
push edx
call fcn.00403d50
mov ecx, eax
cmp ecx, dword [esp + 0x14]
jae 0x40b77e
mov eax, 0x828cbfbf
mul ecx
mov eax, dword [edi + 0x60]
shr edx, 9
mov eax, dword [eax + edx*4]
imul edx, edx, 0x3ec
sub ecx, edx
mov edx, dword [eax + 8]
lea ecx, [edx + ecx*4]
mov edx, dword [ecx + eax]
mov dword [esi], edx
add esi, 4
cmp esi, ebx
jne 0x40b380
add ebp, 1
cmp ebp, dword [edi + 0x164]
jb 0x40b360
test dword [edi + 0x34c], 0x1000
je 0x40b46b
mov ecx, dword [esp + 0x14]
lea eax, [edi + 0x180]
push ecx
push eax
call fcn.00401d60
xor ebp, ebp
cmp dword [edi + 0x194], ebp
jbe 0x40b46b
jmp 0x40b400
mov edx, dword [edi + 0x180]
mov eax, dword [edx + ebp*4]
mov ebx, dword [eax + 8]
mov ecx, dword [eax + 0xc]
lea esi, [ebx + eax]
lea ebx, [ebx + ecx*4]
add ebx, eax
cmp esi, ebx
je 0x40b460
jmp 0x40b420
mov edx, dword [esp + 0x50]
push edx
call fcn.00403d50
mov ecx, eax
cmp ecx, dword [esp + 0x14]
jae 0x40b77e
mov eax, 0x828cbfbf
mul ecx
mov eax, dword [edi + 0x60]
shr edx, 9
mov eax, dword [eax + edx*4]
imul edx, edx, 0x3ec
sub ecx, edx
mov edx, dword [eax + 8]
lea ecx, [edx + ecx*4]
mov edx, dword [ecx + eax]
mov dword [esi], edx
add esi, 4
cmp esi, ebx
jne 0x40b420
add ebp, 1
cmp ebp, dword [edi + 0x194]
jb 0x40b400
test dword [edi + 0x34c], 0x4000
je 0x40b50b
mov ecx, dword [esp + 0x14]
lea eax, [edi + 0x198]
push ecx
push eax
call fcn.00401d60
xor ebp, ebp
cmp dword [edi + 0x1ac], ebp
jbe 0x40b50b
jmp 0x40b4a0
mov edx, dword [edi + 0x198]
mov eax, dword [edx + ebp*4]
mov ebx, dword [eax + 8]
mov ecx, dword [eax + 0xc]
lea esi, [ebx + eax]
lea ebx, [ebx + ecx*4]
add ebx, eax
cmp esi, ebx
je 0x40b500
jmp 0x40b4c0
mov edx, dword [esp + 0x50]
push edx
call fcn.00403d50
mov ecx, eax
cmp ecx, dword [esp + 0x14]
jae 0x40b77e
mov eax, 0x828cbfbf
mul ecx
mov eax, dword [edi + 0x60]
shr edx, 9
mov eax, dword [eax + edx*4]
imul edx, edx, 0x3ec
sub ecx, edx
mov edx, dword [eax + 8]
lea ecx, [edx + ecx*4]
mov edx, dword [ecx + eax]
mov dword [esi], edx
add esi, 4
cmp esi, ebx
jne 0x40b4c0
add ebp, 1
cmp ebp, dword [edi + 0x1ac]
jb 0x40b4a0
pop esi
pop edi
mov dword [esp + 0x30], 1
mov eax, dword [esp + 0x30]
pop ebp
pop ebx
add esp, 0x3c
ret 4
mov esi, dword [esp + 0x20]
mov eax, dword [esi]
mov ecx, dword [eax + 8]
lea edx, [ecx + eax]
mov dword [esp + 0x24], edx
mov edx, dword [eax + 0xc]
lea ecx, [ecx + edx*4]
add ecx, eax
mov dword [esp + 0x48], ecx
lea ecx, [ecx]
mov ebp, dword [esp + 0x50]
push ebp
call fcn.00403d50
mov ecx, dword [edi + 0x1c]
mov esi, eax
mov eax, dword [esp + 0x10]
add ecx, eax
cmp esi, ecx
jae 0x40b723
cmp esi, eax
jb 0x40b572
mov edx, esi
sub edx, eax
push edx
push edi
call fcn.00437730
mov dword [esp + 0x2c], eax
jmp 0x40b5ba
mov eax, 0x828cbfbf
mul esi
mov eax, dword [edi + 0x48]
shr edx, 9
mov eax, dword [eax + edx*4]
imul edx, edx, 0x3ec
mov ecx, esi
sub ecx, edx
mov edx, dword [eax + 8]
lea ecx, [edx + ecx*4]
mov ecx, dword [ecx + eax]
mov eax, dword [ecx]
test eax, eax
je 0x40b5a8
jmp 0x40b5a0
mov ecx, eax
mov eax, dword [eax]
test eax, eax
jne 0x40b5a0
cmp byte [ecx + 4], 0xff
jne 0x40b5b3
mov ecx, dword [ecx - 8]
jmp 0x40b5b6
mov ecx, dword [ecx - 4]
mov dword [esp + 0x2c], ecx
push ebp
call fcn.00403d70
mov ebx, eax
test ebx, ebx
je 0x40b5e0
push ebp
call fcn.00403d70
mov ecx, dword [esp + 0x18]
cmp eax, ecx
ja 0x40b745
sub ecx, eax
mov dword [esp + 0x18], ecx
jmp 0x40b5e4
mov ecx, dword [esp + 0x18]
mov edx, dword [edi + 0x350]
add edx, ebx
lea eax, [edx + ecx + 5]
add ecx, ebx
cmp ecx, 0xff
mov dword [esp + 0x34], ecx
jb 0x40b601
add eax, 4
cmp esi, dword [esp + 0x10]
jb 0x40b60a
add eax, 4
push eax
push edi
call fcn.00437e10
mov ecx, dword [esp + 0x10]
cmp esi, ecx
mov ebp, eax
jb 0x40b625
mov eax, dword [esp + 0x2c]
mov dword [ebp], eax
add ebp, 4
mov eax, dword [esp + 0x34]
cmp eax, 0xff
jb 0x40b63c
mov dword [ebp], eax
add ebp, 4
mov byte [ebp + 4], 0xff
jmp 0x40b645
mov dl, byte [esp + 0x18]
add dl, bl
mov byte [ebp + 4], dl
mov eax, dword [esp + 0x24]
mov dword [eax], ebp
add eax, 4
cmp esi, ecx
mov dword [esp + 0x24], eax
jb 0x40b65f
mov dword [ebp], 0
jmp 0x40b6a3
mov eax, 0x828cbfbf
mul esi
mov eax, dword [edi + 0x48]
shr edx, 9
mov eax, dword [eax + edx*4]
imul edx, edx, 0x3ec
mov ecx, dword [eax + 8]
sub esi, edx
lea edx, [ecx + esi*4]
mov eax, dword [edx + eax]
mov ecx, dword [esp + 0x2c]
mov dword [ebp], eax
mov ecx, dword [ecx + 8]
test ecx, ecx
je 0x40b69c
cmp ecx, 3
jne 0x40b6a3
push eax
push edi
call fcn.0042caa0
jmp 0x40b6a3
push eax
push edi
call fcn.0042ca60
mov eax, dword [esp + 0x18]
add ebp, 5
test eax, eax
je 0x40b6c7
mov edx, dword [esp + 0x28]
push eax
push edx
push ebp
call fcn.00549ad0
add esp, 0xc
mov dword [esp + 0x28], ebp
add ebp, dword [esp + 0x18]
jmp 0x40b6cb
mov dword [esp + 0x28], ebp
test ebx, ebx
je 0x40b6e5
mov eax, dword [esp + 0x50]
push ebx
push ebp
push eax
call fcn.00403870
mov ecx, dword [esp + 0x34]
add ebp, ebx
mov dword [esp + 0x18], ecx
mov edx, dword [edi + 0x350]
mov eax, dword [esp + 0x50]
push edx
push ebp
push eax
call fcn.00403870
mov ecx, dword [esp + 0x48]
cmp dword [esp + 0x24], ecx
jne 0x40b540
mov eax, dword [esp + 0x20]
add eax, 4
cmp eax, dword [esp + 0x44]
mov dword [esp + 0x20], eax
jne 0x40b521
mov ebp, dword [esp + 0x50]
jmp 0x40ab74
mov edx, dword [edi + 0x1c]
add edx, eax
push edx
push esi
push str.invalid_parent_folder_index__d____d___d_n
call fcn.0048f0d0
mov eax, dword [esp + 0x44]
add esp, 0xc
pop esi
pop edi
pop ebp
pop ebx
add esp, 0x3c
ret 4
push ecx
push eax
push str.Invalid_file_code_offset__d____d._n
call fcn.0048f0d0
mov eax, dword [esp + 0x44]
add esp, 0xc
pop esi
pop edi
pop ebp
pop ebx
add esp, 0x3c
ret 4
push ecx
push str.invalid_folder_index__u_n
call fcn.0048f0d0
mov eax, dword [esp + 0x40]
add esp, 8
pop esi
pop edi
pop ebp
pop ebx
add esp, 0x3c
ret 4
push ecx
push str.invalid_file_index__u_n
call fcn.0048f0d0
mov eax, dword [esp + 0x40]
add esp, 8
pop esi
pop edi
pop ebp
pop ebx
add esp, 0x3c
ret 4