Function at 0x40a690
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.00403d30
cmp eax, 0x62445345
je 0x40a6cd
push str.invalid_db_magic_n
call fcn.0048f080
mov eax, dword [esp + 0x38]
add esp, 4
pop edi
pop ebp
pop ebx
add esp, 0x3c
ret 4
push ebp
call fcn.00403d30
cmp eax, 0x1070014
je 0x40a6f4
push str.unsupported_db_version_n
call fcn.0048f080
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.00403d30
push eax
push esi
call fcn.0048e2b0
push ebp
call fcn.00403d30
push ebp
mov dword [esp + 0x14], eax
call fcn.00403d30
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.0048f0a0
add esp, 0x14
push ebx
mov esi, ebp
call fcn.0040a420
cmp dword [0x5990e4], 0
mov ebx, 2
jne 0x40a793
cmp byte [0x598f4e], 0
jne 0x40a793
mov esi, dword [edi + 0x14]
xor eax, eax
test esi, esi
je 0x40a793
nop
cmp dword [esi + 8], ebx
jne 0x40a783
cmp dword [esi + 0x18], 0
je 0x40a783
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.00439c50
mov eax, 1
mov esi, dword [esi]
test esi, esi
jne 0x40a760
test eax, eax
je 0x40a793
push edi
call fcn.0043f660
push ebp
call fcn.004039b0
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.0041f930
push ebp
mov dword [esi], eax
call fcn.0041f930
push ebp
mov dword [edi + 0x330], eax
call fcn.0041f930
push esi
mov dword [edi + 0x334], eax
call fcn.0041efd0
cmp dword [esp + 0x10], 0
je 0x40ab10
mov esi, dword [esp + 0x10]
add esi, esi
add esi, esi
push esi
call fcn.004a47b0
mov ebx, eax
push esi
push ebx
push ebp
mov dword [esp + 0x28], ebx
call fcn.00403850
add esi, ebx
cmp ebx, esi
mov eax, ebx
je 0x40a822
mov ecx, dword [edi + 0x1c]
mov edx, dword [esp + 0x10]
add ecx, edx
cmp dword [eax], ecx
jae 0x40a8ad
add eax, 4
cmp eax, esi
jne 0x40a813
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.00401d40
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 0x40a8da
call fcn.0048f1e0
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 0x40aaea
jmp 0x40a880
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 0x40aaa1
mov dword [esi], 0
jmp 0x40aac6
mov eax, dword [eax]
push ecx
push eax
push str.invalid_parent_folder_index__d____d___d_n
call fcn.0048f080
add esp, 0xc
test ebx, ebx
je 0x40a8c8
push ebx
call fcn.004a4810
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 0x40a90f
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + eax*4]
cmp eax, ebp
jb 0x40a904
sub eax, ebp
push eax
push edi
call fcn.004376b0
mov edx, dword [eax + 8]
mov esi, dword [esp + 0x50]
push esi
mov dword [esp + 0x40], eax
mov dword [esp + 0x38], edx
call fcn.00403d50
mov ebx, eax
test ebx, ebx
je 0x40a94d
push esi
call fcn.00403d50
mov ecx, dword [esp + 0x18]
cmp eax, ecx
ja 0x40aa89
sub ecx, eax
mov dword [esp + 0x18], ecx
jmp 0x40a951
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 0x40a967
add eax, 4
mov edx, dword [esp + 0x34]
test edx, edx
je 0x40a979
cmp edx, 3
jne 0x40a97c
add eax, 0x14
jmp 0x40a97c
add eax, 0xc
lea esi, [ebx + ecx]
cmp esi, 0xff
mov dword [esp + 0x40], esi
jb 0x40a98e
add eax, 4
push eax
push edi
call fcn.00437d90
mov edx, dword [esp + 0x30]
cmp edx, dword [esp + 0x10]
mov ebp, eax
jb 0x40a9ab
mov eax, dword [esp + 0x3c]
mov dword [ebp], eax
add ebp, 4
cmp esi, 0xff
mov eax, dword [esp + 0x18]
jb 0x40a9c3
mov dword [ebp], esi
add ebp, 4
mov byte [ebp + 4], 0xff
jmp 0x40a9ca
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 0x40a9fa
mov edx, dword [esp + 0x20]
push eax
push edx
push ebp
call fcn.00549c80
add esp, 0xc
mov dword [esp + 0x20], ebp
add ebp, dword [esp + 0x18]
jmp 0x40a9fe
mov dword [esp + 0x20], ebp
test ebx, ebx
mov esi, dword [esp + 0x50]
je 0x40aa18
push ebx
push ebp
push esi
call fcn.00403850
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.00403850
mov eax, dword [esp + 0x34]
add ebp, dword [edi + 0x354]
xor ebx, ebx
cmp eax, ebx
je 0x40aa49
cmp eax, 3
jne 0x40aa58
push 0x10
push ebp
push esi
call fcn.00403850
mov dword [ebp + 0x10], ebx
jmp 0x40aa58
push esi
call fcn.004039d0
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 0x40a8f2
mov eax, dword [esp + 0x2c]
add eax, 4
cmp eax, dword [esp + 0x48]
mov dword [esp + 0x2c], eax
jne 0x40a8d6
mov ebx, dword [esp + 0x1c]
jmp 0x40a856
push ecx
push eax
push str.Invalid_folder_code_offset__d____d._n
call fcn.0048f080
mov ebx, dword [esp + 0x28]
add esp, 0xc
jmp 0x40a8be
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 0x40a894
mov eax, dword [esp + 0x2c]
add eax, 4
cmp eax, dword [esp + 0x48]
mov dword [esp + 0x2c], eax
jne 0x40a880
mov ebx, dword [esp + 0x1c]
call fcn.0048f1e0
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.0048f0a0
add esp, 0xc
push ebx
call fcn.004a4810
mov ebp, dword [esp + 0x50]
mov eax, dword [esp + 0x14]
xor ebx, ebx
cmp eax, ebx
je 0x40ab44
push eax
lea esi, [edi + 0x60]
push esi
call fcn.00401d40
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 0x40b4f5
push ebp
call fcn.00403d30
test eax, eax
je 0x40ac04
lea ecx, [edi + 0x2a4]
push eax
push ecx
call fcn.00401d40
cmp dword [edi + 0x2b8], 0
mov dword [esp + 0x2c], 0
jbe 0x40ac04
mov ecx, dword [esp + 0x2c]
jmp 0x40ab80
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 0x40abf1
lea esp, [esp]
mov eax, dword [esp + 0x50]
push eax
call fcn.00403d30
mov ecx, eax
cmp ecx, dword [esp + 0x10]
jae 0x40b732
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 0x40abe4
push eax
push edi
call fcn.0042c110
mov dword [ebx], esi
add ebx, 4
cmp ebx, ebp
jne 0x40aba0
mov ecx, dword [esp + 0x2c]
add ecx, 1
cmp ecx, dword [edi + 0x2b8]
mov dword [esp + 0x2c], ecx
jb 0x40ab80
mov ebp, dword [esp + 0x50]
push ebp
call fcn.00403d30
test eax, eax
je 0x40acc0
lea ecx, [edi + 0x2bc]
push eax
push ecx
call fcn.00401d40
cmp dword [edi + 0x2d0], 0
mov dword [esp + 0x2c], 0
jbe 0x40acc0
mov ecx, dword [esp + 0x2c]
jmp 0x40ac40
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 0x40acb1
lea esp, [esp]
mov eax, dword [esp + 0x50]
push eax
call fcn.00403d30
mov ecx, eax
cmp ecx, dword [esp + 0x10]
jae 0x40b732
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 0x40aca4
push eax
push edi
call fcn.0042c150
mov dword [ebx], esi
add ebx, 4
cmp ebx, ebp
jne 0x40ac60
mov ecx, dword [esp + 0x2c]
add ecx, 1
cmp ecx, dword [edi + 0x2d0]
mov dword [esp + 0x2c], ecx
jb 0x40ac40
cmp dword [esp + 0x10], 0
je 0x40b07b
test dword [edi + 0x34c], 0x2000
je 0x40ad5b
mov edx, dword [esp + 0x10]
lea eax, [edi + 0x78]
push edx
push eax
call fcn.00401d40
xor ebp, ebp
cmp dword [edi + 0x8c], ebp
jbe 0x40ad5b
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 0x40ad50
jmp 0x40ad10
mov edx, dword [esp + 0x50]
push edx
call fcn.00403d30
mov ecx, eax
cmp ecx, dword [esp + 0x10]
jae 0x40b732
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 0x40ad10
add ebp, 1
cmp ebp, dword [edi + 0x8c]
jb 0x40acf3
mov eax, dword [edi + 0x34c]
test al, 0x20
je 0x40adfb
test eax, 0x100
je 0x40adfb
mov ecx, dword [esp + 0x10]
lea eax, [edi + 0xa8]
push ecx
push eax
call fcn.00401d40
xor ebp, ebp
cmp dword [edi + 0xbc], ebp
jbe 0x40adfb
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 0x40adf0
jmp 0x40adb0
mov edx, dword [esp + 0x50]
push edx
call fcn.00403d30
mov ecx, eax
cmp ecx, dword [esp + 0x10]
jae 0x40b732
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 0x40adb0
add ebp, 1
cmp ebp, dword [edi + 0xbc]
jb 0x40ad90
test dword [edi + 0x34c], 0x200
je 0x40ae9b
mov ecx, dword [esp + 0x10]
lea eax, [edi + 0xd8]
push ecx
push eax
call fcn.00401d40
xor ebp, ebp
cmp dword [edi + 0xec], ebp
jbe 0x40ae9b
jmp 0x40ae30
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 0x40ae90
jmp 0x40ae50
mov edx, dword [esp + 0x50]
push edx
call fcn.00403d30
mov ecx, eax
cmp ecx, dword [esp + 0x10]
jae 0x40b732
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 0x40ae50
add ebp, 1
cmp ebp, dword [edi + 0xec]
jb 0x40ae30
test dword [edi + 0x34c], 0x400
je 0x40af3b
mov ecx, dword [esp + 0x10]
lea eax, [edi + 0x108]
push ecx
push eax
call fcn.00401d40
xor ebp, ebp
cmp dword [edi + 0x11c], ebp
jbe 0x40af3b
jmp 0x40aed0
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 0x40af30
jmp 0x40aef0
mov edx, dword [esp + 0x50]
push edx
call fcn.00403d30
mov ecx, eax
cmp ecx, dword [esp + 0x10]
jae 0x40b732
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 0x40aef0
add ebp, 1
cmp ebp, dword [edi + 0x11c]
jb 0x40aed0
test dword [edi + 0x34c], 0x800
je 0x40afdb
mov ecx, dword [esp + 0x10]
lea eax, [edi + 0x138]
push ecx
push eax
call fcn.00401d40
xor ebp, ebp
cmp dword [edi + 0x14c], ebp
jbe 0x40afdb
jmp 0x40af70
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 0x40afd0
jmp 0x40af90
mov edx, dword [esp + 0x50]
push edx
call fcn.00403d30
mov ecx, eax
cmp ecx, dword [esp + 0x10]
jae 0x40b732
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 0x40af90
add ebp, 1
cmp ebp, dword [edi + 0x14c]
jb 0x40af70
test dword [edi + 0x34c], 0x1000
je 0x40b07b
mov ecx, dword [esp + 0x10]
lea eax, [edi + 0x168]
push ecx
push eax
call fcn.00401d40
xor ebp, ebp
cmp dword [edi + 0x17c], ebp
jbe 0x40b07b
jmp 0x40b010
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 0x40b070
jmp 0x40b030
mov edx, dword [esp + 0x50]
push edx
call fcn.00403d30
mov ecx, eax
cmp ecx, dword [esp + 0x10]
jae 0x40b732
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 0x40b030
add ebp, 1
cmp ebp, dword [edi + 0x17c]
jb 0x40b010
cmp dword [esp + 0x14], 0
je 0x40b4db
test dword [edi + 0x34c], 0x2000
je 0x40b11b
mov ecx, dword [esp + 0x14]
lea eax, [edi + 0x90]
push ecx
push eax
call fcn.00401d40
xor ebp, ebp
cmp dword [edi + 0xa4], ebp
jbe 0x40b11b
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 0x40b110
lea esp, [esp]
mov edx, dword [esp + 0x50]
push edx
call fcn.00403d30
mov ecx, eax
cmp ecx, dword [esp + 0x14]
jae 0x40b74e
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 0x40b0d0
add ebp, 1
cmp ebp, dword [edi + 0xa4]
jb 0x40b0b1
test dword [edi + 0x34c], 0x100
je 0x40b1bb
mov ecx, dword [esp + 0x14]
lea eax, [edi + 0xc0]
push ecx
push eax
call fcn.00401d40
xor ebp, ebp
cmp dword [edi + 0xd4], ebp
jbe 0x40b1bb
jmp 0x40b150
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 0x40b1b0
jmp 0x40b170
mov edx, dword [esp + 0x50]
push edx
call fcn.00403d30
mov ecx, eax
cmp ecx, dword [esp + 0x14]
jae 0x40b74e
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 0x40b170
add ebp, 1
cmp ebp, dword [edi + 0xd4]
jb 0x40b150
test dword [edi + 0x34c], 0x200
je 0x40b25b
mov ecx, dword [esp + 0x14]
lea eax, [edi + 0xf0]
push ecx
push eax
call fcn.00401d40
xor ebp, ebp
cmp dword [edi + 0x104], ebp
jbe 0x40b25b
jmp 0x40b1f0
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 0x40b250
jmp 0x40b210
mov edx, dword [esp + 0x50]
push edx
call fcn.00403d30
mov ecx, eax
cmp ecx, dword [esp + 0x14]
jae 0x40b74e
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 0x40b210
add ebp, 1
cmp ebp, dword [edi + 0x104]
jb 0x40b1f0
test dword [edi + 0x34c], 0x400
je 0x40b2fb
mov ecx, dword [esp + 0x14]
lea eax, [edi + 0x120]
push ecx
push eax
call fcn.00401d40
xor ebp, ebp
cmp dword [edi + 0x134], ebp
jbe 0x40b2fb
jmp 0x40b290
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 0x40b2f0
jmp 0x40b2b0
mov edx, dword [esp + 0x50]
push edx
call fcn.00403d30
mov ecx, eax
cmp ecx, dword [esp + 0x14]
jae 0x40b74e
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 0x40b2b0
add ebp, 1
cmp ebp, dword [edi + 0x134]
jb 0x40b290
test dword [edi + 0x34c], 0x800
je 0x40b39b
mov ecx, dword [esp + 0x14]
lea eax, [edi + 0x150]
push ecx
push eax
call fcn.00401d40
xor ebp, ebp
cmp dword [edi + 0x164], ebp
jbe 0x40b39b
jmp 0x40b330
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 0x40b390
jmp 0x40b350
mov edx, dword [esp + 0x50]
push edx
call fcn.00403d30
mov ecx, eax
cmp ecx, dword [esp + 0x14]
jae 0x40b74e
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 0x40b350
add ebp, 1
cmp ebp, dword [edi + 0x164]
jb 0x40b330
test dword [edi + 0x34c], 0x1000
je 0x40b43b
mov ecx, dword [esp + 0x14]
lea eax, [edi + 0x180]
push ecx
push eax
call fcn.00401d40
xor ebp, ebp
cmp dword [edi + 0x194], ebp
jbe 0x40b43b
jmp 0x40b3d0
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 0x40b430
jmp 0x40b3f0
mov edx, dword [esp + 0x50]
push edx
call fcn.00403d30
mov ecx, eax
cmp ecx, dword [esp + 0x14]
jae 0x40b74e
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 0x40b3f0
add ebp, 1
cmp ebp, dword [edi + 0x194]
jb 0x40b3d0
test dword [edi + 0x34c], 0x4000
je 0x40b4db
mov ecx, dword [esp + 0x14]
lea eax, [edi + 0x198]
push ecx
push eax
call fcn.00401d40
xor ebp, ebp
cmp dword [edi + 0x1ac], ebp
jbe 0x40b4db
jmp 0x40b470
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 0x40b4d0
jmp 0x40b490
mov edx, dword [esp + 0x50]
push edx
call fcn.00403d30
mov ecx, eax
cmp ecx, dword [esp + 0x14]
jae 0x40b74e
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 0x40b490
add ebp, 1
cmp ebp, dword [edi + 0x1ac]
jb 0x40b470
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.00403d30
mov ecx, dword [edi + 0x1c]
mov esi, eax
mov eax, dword [esp + 0x10]
add ecx, eax
cmp esi, ecx
jae 0x40b6f3
cmp esi, eax
jb 0x40b542
mov edx, esi
sub edx, eax
push edx
push edi
call fcn.004376b0
mov dword [esp + 0x2c], eax
jmp 0x40b58a
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 0x40b578
jmp 0x40b570
mov ecx, eax
mov eax, dword [eax]
test eax, eax
jne 0x40b570
cmp byte [ecx + 4], 0xff
jne 0x40b583
mov ecx, dword [ecx - 8]
jmp 0x40b586
mov ecx, dword [ecx - 4]
mov dword [esp + 0x2c], ecx
push ebp
call fcn.00403d50
mov ebx, eax
test ebx, ebx
je 0x40b5b0
push ebp
call fcn.00403d50
mov ecx, dword [esp + 0x18]
cmp eax, ecx
ja 0x40b715
sub ecx, eax
mov dword [esp + 0x18], ecx
jmp 0x40b5b4
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 0x40b5d1
add eax, 4
cmp esi, dword [esp + 0x10]
jb 0x40b5da
add eax, 4
push eax
push edi
call fcn.00437d90
mov ecx, dword [esp + 0x10]
cmp esi, ecx
mov ebp, eax
jb 0x40b5f5
mov eax, dword [esp + 0x2c]
mov dword [ebp], eax
add ebp, 4
mov eax, dword [esp + 0x34]
cmp eax, 0xff
jb 0x40b60c
mov dword [ebp], eax
add ebp, 4
mov byte [ebp + 4], 0xff
jmp 0x40b615
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 0x40b62f
mov dword [ebp], 0
jmp 0x40b673
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 0x40b66c
cmp ecx, 3
jne 0x40b673
push eax
push edi
call fcn.0042c150
jmp 0x40b673
push eax
push edi
call fcn.0042c110
mov eax, dword [esp + 0x18]
add ebp, 5
test eax, eax
je 0x40b697
mov edx, dword [esp + 0x28]
push eax
push edx
push ebp
call fcn.00549c80
add esp, 0xc
mov dword [esp + 0x28], ebp
add ebp, dword [esp + 0x18]
jmp 0x40b69b
mov dword [esp + 0x28], ebp
test ebx, ebx
je 0x40b6b5
mov eax, dword [esp + 0x50]
push ebx
push ebp
push eax
call fcn.00403850
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.00403850
mov ecx, dword [esp + 0x48]
cmp dword [esp + 0x24], ecx
jne 0x40b510
mov eax, dword [esp + 0x20]
add eax, 4
cmp eax, dword [esp + 0x44]
mov dword [esp + 0x20], eax
jne 0x40b4f1
mov ebp, dword [esp + 0x50]
jmp 0x40ab44
mov edx, dword [edi + 0x1c]
add edx, eax
push edx
push esi
push str.invalid_parent_folder_index__d____d___d_n
call fcn.0048f080
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.0048f080
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.0048f080
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.0048f080
mov eax, dword [esp + 0x40]
add esp, 8
pop esi
pop edi
pop ebp
pop ebx
add esp, 0x3c
ret 4