Function at 0x40a670
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.00403d10
cmp eax, 0x62445345
je 0x40a6ad
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.00403d10
cmp eax, 0x1070014
je 0x40a6d4
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.00403d10
push eax
push esi
call fcn.0048e2b0
push ebp
call fcn.00403d10
push ebp
mov dword [esp + 0x14], eax
call fcn.00403d10
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.0040a400
cmp dword [0x599104], 0
mov ebx, 2
jne 0x40a773
cmp byte [0x598f6e], 0
jne 0x40a773
mov esi, dword [edi + 0x14]
xor eax, eax
test esi, esi
je 0x40a773
nop
cmp dword [esi + 8], ebx
jne 0x40a763
cmp dword [esi + 0x18], 0
je 0x40a763
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 0x40a740
test eax, eax
je 0x40a773
push edi
call fcn.0043f660
push ebp
call fcn.00403990
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.0041f920
push ebp
mov dword [esi], eax
call fcn.0041f920
push ebp
mov dword [edi + 0x330], eax
call fcn.0041f920
push esi
mov dword [edi + 0x334], eax
call fcn.0041efc0
cmp dword [esp + 0x10], 0
je 0x40aaf0
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.00403830
add esi, ebx
cmp ebx, esi
mov eax, ebx
je 0x40a802
mov ecx, dword [edi + 0x1c]
mov edx, dword [esp + 0x10]
add ecx, edx
cmp dword [eax], ecx
jae 0x40a88d
add eax, 4
cmp eax, esi
jne 0x40a7f3
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.00401d20
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 0x40a8ba
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 0x40aaca
jmp 0x40a860
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 0x40aa81
mov dword [esi], 0
jmp 0x40aaa6
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 0x40a8a8
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 0x40a8ef
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + eax*4]
cmp eax, ebp
jb 0x40a8e4
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.00403d30
mov ebx, eax
test ebx, ebx
je 0x40a92d
push esi
call fcn.00403d30
mov ecx, dword [esp + 0x18]
cmp eax, ecx
ja 0x40aa69
sub ecx, eax
mov dword [esp + 0x18], ecx
jmp 0x40a931
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 0x40a947
add eax, 4
mov edx, dword [esp + 0x34]
test edx, edx
je 0x40a959
cmp edx, 3
jne 0x40a95c
add eax, 0x14
jmp 0x40a95c
add eax, 0xc
lea esi, [ebx + ecx]
cmp esi, 0xff
mov dword [esp + 0x40], esi
jb 0x40a96e
add eax, 4
push eax
push edi
call fcn.00437d90
mov edx, dword [esp + 0x30]
cmp edx, dword [esp + 0x10]
mov ebp, eax
jb 0x40a98b
mov eax, dword [esp + 0x3c]
mov dword [ebp], eax
add ebp, 4
cmp esi, 0xff
mov eax, dword [esp + 0x18]
jb 0x40a9a3
mov dword [ebp], esi
add ebp, 4
mov byte [ebp + 4], 0xff
jmp 0x40a9aa
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 0x40a9da
mov edx, dword [esp + 0x20]
push eax
push edx
push ebp
call fcn.00549cb0
add esp, 0xc
mov dword [esp + 0x20], ebp
add ebp, dword [esp + 0x18]
jmp 0x40a9de
mov dword [esp + 0x20], ebp
test ebx, ebx
mov esi, dword [esp + 0x50]
je 0x40a9f8
push ebx
push ebp
push esi
call fcn.00403830
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.00403830
mov eax, dword [esp + 0x34]
add ebp, dword [edi + 0x354]
xor ebx, ebx
cmp eax, ebx
je 0x40aa29
cmp eax, 3
jne 0x40aa38
push 0x10
push ebp
push esi
call fcn.00403830
mov dword [ebp + 0x10], ebx
jmp 0x40aa38
push esi
call fcn.004039b0
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 0x40a8d2
mov eax, dword [esp + 0x2c]
add eax, 4
cmp eax, dword [esp + 0x48]
mov dword [esp + 0x2c], eax
jne 0x40a8b6
mov ebx, dword [esp + 0x1c]
jmp 0x40a836
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 0x40a89e
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 0x40a874
mov eax, dword [esp + 0x2c]
add eax, 4
cmp eax, dword [esp + 0x48]
mov dword [esp + 0x2c], eax
jne 0x40a860
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 0x40ab24
push eax
lea esi, [edi + 0x60]
push esi
call fcn.00401d20
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 0x40b4d5
push ebp
call fcn.00403d10
test eax, eax
je 0x40abe4
lea ecx, [edi + 0x2a4]
push eax
push ecx
call fcn.00401d20
cmp dword [edi + 0x2b8], 0
mov dword [esp + 0x2c], 0
jbe 0x40abe4
mov ecx, dword [esp + 0x2c]
jmp 0x40ab60
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 0x40abd1
lea esp, [esp]
mov eax, dword [esp + 0x50]
push eax
call fcn.00403d10
mov ecx, eax
cmp ecx, dword [esp + 0x10]
jae 0x40b712
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 0x40abc4
push eax
push edi
call fcn.0042c100
mov dword [ebx], esi
add ebx, 4
cmp ebx, ebp
jne 0x40ab80
mov ecx, dword [esp + 0x2c]
add ecx, 1
cmp ecx, dword [edi + 0x2b8]
mov dword [esp + 0x2c], ecx
jb 0x40ab60
mov ebp, dword [esp + 0x50]
push ebp
call fcn.00403d10
test eax, eax
je 0x40aca0
lea ecx, [edi + 0x2bc]
push eax
push ecx
call fcn.00401d20
cmp dword [edi + 0x2d0], 0
mov dword [esp + 0x2c], 0
jbe 0x40aca0
mov ecx, dword [esp + 0x2c]
jmp 0x40ac20
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 0x40ac91
lea esp, [esp]
mov eax, dword [esp + 0x50]
push eax
call fcn.00403d10
mov ecx, eax
cmp ecx, dword [esp + 0x10]
jae 0x40b712
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 0x40ac84
push eax
push edi
call fcn.0042c140
mov dword [ebx], esi
add ebx, 4
cmp ebx, ebp
jne 0x40ac40
mov ecx, dword [esp + 0x2c]
add ecx, 1
cmp ecx, dword [edi + 0x2d0]
mov dword [esp + 0x2c], ecx
jb 0x40ac20
cmp dword [esp + 0x10], 0
je 0x40b05b
test dword [edi + 0x34c], 0x2000
je 0x40ad3b
mov edx, dword [esp + 0x10]
lea eax, [edi + 0x78]
push edx
push eax
call fcn.00401d20
xor ebp, ebp
cmp dword [edi + 0x8c], ebp
jbe 0x40ad3b
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 0x40ad30
jmp 0x40acf0
mov edx, dword [esp + 0x50]
push edx
call fcn.00403d10
mov ecx, eax
cmp ecx, dword [esp + 0x10]
jae 0x40b712
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 0x40acf0
add ebp, 1
cmp ebp, dword [edi + 0x8c]
jb 0x40acd3
mov eax, dword [edi + 0x34c]
test al, 0x20
je 0x40addb
test eax, 0x100
je 0x40addb
mov ecx, dword [esp + 0x10]
lea eax, [edi + 0xa8]
push ecx
push eax
call fcn.00401d20
xor ebp, ebp
cmp dword [edi + 0xbc], ebp
jbe 0x40addb
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 0x40add0
jmp 0x40ad90
mov edx, dword [esp + 0x50]
push edx
call fcn.00403d10
mov ecx, eax
cmp ecx, dword [esp + 0x10]
jae 0x40b712
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 0x40ad90
add ebp, 1
cmp ebp, dword [edi + 0xbc]
jb 0x40ad70
test dword [edi + 0x34c], 0x200
je 0x40ae7b
mov ecx, dword [esp + 0x10]
lea eax, [edi + 0xd8]
push ecx
push eax
call fcn.00401d20
xor ebp, ebp
cmp dword [edi + 0xec], ebp
jbe 0x40ae7b
jmp 0x40ae10
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 0x40ae70
jmp 0x40ae30
mov edx, dword [esp + 0x50]
push edx
call fcn.00403d10
mov ecx, eax
cmp ecx, dword [esp + 0x10]
jae 0x40b712
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 0x40ae30
add ebp, 1
cmp ebp, dword [edi + 0xec]
jb 0x40ae10
test dword [edi + 0x34c], 0x400
je 0x40af1b
mov ecx, dword [esp + 0x10]
lea eax, [edi + 0x108]
push ecx
push eax
call fcn.00401d20
xor ebp, ebp
cmp dword [edi + 0x11c], ebp
jbe 0x40af1b
jmp 0x40aeb0
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 0x40af10
jmp 0x40aed0
mov edx, dword [esp + 0x50]
push edx
call fcn.00403d10
mov ecx, eax
cmp ecx, dword [esp + 0x10]
jae 0x40b712
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 0x40aed0
add ebp, 1
cmp ebp, dword [edi + 0x11c]
jb 0x40aeb0
test dword [edi + 0x34c], 0x800
je 0x40afbb
mov ecx, dword [esp + 0x10]
lea eax, [edi + 0x138]
push ecx
push eax
call fcn.00401d20
xor ebp, ebp
cmp dword [edi + 0x14c], ebp
jbe 0x40afbb
jmp 0x40af50
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 0x40afb0
jmp 0x40af70
mov edx, dword [esp + 0x50]
push edx
call fcn.00403d10
mov ecx, eax
cmp ecx, dword [esp + 0x10]
jae 0x40b712
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 0x40af70
add ebp, 1
cmp ebp, dword [edi + 0x14c]
jb 0x40af50
test dword [edi + 0x34c], 0x1000
je 0x40b05b
mov ecx, dword [esp + 0x10]
lea eax, [edi + 0x168]
push ecx
push eax
call fcn.00401d20
xor ebp, ebp
cmp dword [edi + 0x17c], ebp
jbe 0x40b05b
jmp 0x40aff0
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 0x40b050
jmp 0x40b010
mov edx, dword [esp + 0x50]
push edx
call fcn.00403d10
mov ecx, eax
cmp ecx, dword [esp + 0x10]
jae 0x40b712
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 0x40b010
add ebp, 1
cmp ebp, dword [edi + 0x17c]
jb 0x40aff0
cmp dword [esp + 0x14], 0
je 0x40b4bb
test dword [edi + 0x34c], 0x2000
je 0x40b0fb
mov ecx, dword [esp + 0x14]
lea eax, [edi + 0x90]
push ecx
push eax
call fcn.00401d20
xor ebp, ebp
cmp dword [edi + 0xa4], ebp
jbe 0x40b0fb
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 0x40b0f0
lea esp, [esp]
mov edx, dword [esp + 0x50]
push edx
call fcn.00403d10
mov ecx, eax
cmp ecx, dword [esp + 0x14]
jae 0x40b72e
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 0x40b0b0
add ebp, 1
cmp ebp, dword [edi + 0xa4]
jb 0x40b091
test dword [edi + 0x34c], 0x100
je 0x40b19b
mov ecx, dword [esp + 0x14]
lea eax, [edi + 0xc0]
push ecx
push eax
call fcn.00401d20
xor ebp, ebp
cmp dword [edi + 0xd4], ebp
jbe 0x40b19b
jmp 0x40b130
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 0x40b190
jmp 0x40b150
mov edx, dword [esp + 0x50]
push edx
call fcn.00403d10
mov ecx, eax
cmp ecx, dword [esp + 0x14]
jae 0x40b72e
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 0x40b150
add ebp, 1
cmp ebp, dword [edi + 0xd4]
jb 0x40b130
test dword [edi + 0x34c], 0x200
je 0x40b23b
mov ecx, dword [esp + 0x14]
lea eax, [edi + 0xf0]
push ecx
push eax
call fcn.00401d20
xor ebp, ebp
cmp dword [edi + 0x104], ebp
jbe 0x40b23b
jmp 0x40b1d0
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 0x40b230
jmp 0x40b1f0
mov edx, dword [esp + 0x50]
push edx
call fcn.00403d10
mov ecx, eax
cmp ecx, dword [esp + 0x14]
jae 0x40b72e
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 0x40b1f0
add ebp, 1
cmp ebp, dword [edi + 0x104]
jb 0x40b1d0
test dword [edi + 0x34c], 0x400
je 0x40b2db
mov ecx, dword [esp + 0x14]
lea eax, [edi + 0x120]
push ecx
push eax
call fcn.00401d20
xor ebp, ebp
cmp dword [edi + 0x134], ebp
jbe 0x40b2db
jmp 0x40b270
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 0x40b2d0
jmp 0x40b290
mov edx, dword [esp + 0x50]
push edx
call fcn.00403d10
mov ecx, eax
cmp ecx, dword [esp + 0x14]
jae 0x40b72e
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 0x40b290
add ebp, 1
cmp ebp, dword [edi + 0x134]
jb 0x40b270
test dword [edi + 0x34c], 0x800
je 0x40b37b
mov ecx, dword [esp + 0x14]
lea eax, [edi + 0x150]
push ecx
push eax
call fcn.00401d20
xor ebp, ebp
cmp dword [edi + 0x164], ebp
jbe 0x40b37b
jmp 0x40b310
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 0x40b370
jmp 0x40b330
mov edx, dword [esp + 0x50]
push edx
call fcn.00403d10
mov ecx, eax
cmp ecx, dword [esp + 0x14]
jae 0x40b72e
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 0x40b330
add ebp, 1
cmp ebp, dword [edi + 0x164]
jb 0x40b310
test dword [edi + 0x34c], 0x1000
je 0x40b41b
mov ecx, dword [esp + 0x14]
lea eax, [edi + 0x180]
push ecx
push eax
call fcn.00401d20
xor ebp, ebp
cmp dword [edi + 0x194], ebp
jbe 0x40b41b
jmp 0x40b3b0
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 0x40b410
jmp 0x40b3d0
mov edx, dword [esp + 0x50]
push edx
call fcn.00403d10
mov ecx, eax
cmp ecx, dword [esp + 0x14]
jae 0x40b72e
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 0x40b3d0
add ebp, 1
cmp ebp, dword [edi + 0x194]
jb 0x40b3b0
test dword [edi + 0x34c], 0x4000
je 0x40b4bb
mov ecx, dword [esp + 0x14]
lea eax, [edi + 0x198]
push ecx
push eax
call fcn.00401d20
xor ebp, ebp
cmp dword [edi + 0x1ac], ebp
jbe 0x40b4bb
jmp 0x40b450
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 0x40b4b0
jmp 0x40b470
mov edx, dword [esp + 0x50]
push edx
call fcn.00403d10
mov ecx, eax
cmp ecx, dword [esp + 0x14]
jae 0x40b72e
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 0x40b470
add ebp, 1
cmp ebp, dword [edi + 0x1ac]
jb 0x40b450
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.00403d10
mov ecx, dword [edi + 0x1c]
mov esi, eax
mov eax, dword [esp + 0x10]
add ecx, eax
cmp esi, ecx
jae 0x40b6d3
cmp esi, eax
jb 0x40b522
mov edx, esi
sub edx, eax
push edx
push edi
call fcn.004376b0
mov dword [esp + 0x2c], eax
jmp 0x40b56a
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 0x40b558
jmp 0x40b550
mov ecx, eax
mov eax, dword [eax]
test eax, eax
jne 0x40b550
cmp byte [ecx + 4], 0xff
jne 0x40b563
mov ecx, dword [ecx - 8]
jmp 0x40b566
mov ecx, dword [ecx - 4]
mov dword [esp + 0x2c], ecx
push ebp
call fcn.00403d30
mov ebx, eax
test ebx, ebx
je 0x40b590
push ebp
call fcn.00403d30
mov ecx, dword [esp + 0x18]
cmp eax, ecx
ja 0x40b6f5
sub ecx, eax
mov dword [esp + 0x18], ecx
jmp 0x40b594
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 0x40b5b1
add eax, 4
cmp esi, dword [esp + 0x10]
jb 0x40b5ba
add eax, 4
push eax
push edi
call fcn.00437d90
mov ecx, dword [esp + 0x10]
cmp esi, ecx
mov ebp, eax
jb 0x40b5d5
mov eax, dword [esp + 0x2c]
mov dword [ebp], eax
add ebp, 4
mov eax, dword [esp + 0x34]
cmp eax, 0xff
jb 0x40b5ec
mov dword [ebp], eax
add ebp, 4
mov byte [ebp + 4], 0xff
jmp 0x40b5f5
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 0x40b60f
mov dword [ebp], 0
jmp 0x40b653
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 0x40b64c
cmp ecx, 3
jne 0x40b653
push eax
push edi
call fcn.0042c140
jmp 0x40b653
push eax
push edi
call fcn.0042c100
mov eax, dword [esp + 0x18]
add ebp, 5
test eax, eax
je 0x40b677
mov edx, dword [esp + 0x28]
push eax
push edx
push ebp
call fcn.00549cb0
add esp, 0xc
mov dword [esp + 0x28], ebp
add ebp, dword [esp + 0x18]
jmp 0x40b67b
mov dword [esp + 0x28], ebp
test ebx, ebx
je 0x40b695
mov eax, dword [esp + 0x50]
push ebx
push ebp
push eax
call fcn.00403830
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.00403830
mov ecx, dword [esp + 0x48]
cmp dword [esp + 0x24], ecx
jne 0x40b4f0
mov eax, dword [esp + 0x20]
add eax, 4
cmp eax, dword [esp + 0x44]
mov dword [esp + 0x20], eax
jne 0x40b4d1
mov ebp, dword [esp + 0x50]
jmp 0x40ab24
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