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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x3c
push ebx
push esi
mov esi, ecx
mov dword [esp + 0x1c], edx
push edi
xor ebx, ebx
mov dword [esp + 0x14], esi
mov dword [esp + 0x2c], ebx
mov edi, dword [esi + 0xc]
mov ecx, dword [esi + 0x2c]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x34], edi
mov eax, dword [edi + 0x38]
mov dword [esp + 0x30], ecx
mov eax, dword [eax + 0x24]
bswap eax
mov dword [esp + 0x3c], eax
cmp eax, ecx
jb 0x41fca6
push 0x54b514
push 0xff6e
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.00407d30
add esp, 0x14
lea eax, [ebx + 0xb]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test eax, eax
je 0x420539
mov dl, byte [ebp + 0x10]
xor cl, cl
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x38], ebx
cmp dl, 1
jne 0x41fcf2
cmp eax, dword [esp + 0x30]
ja 0x41fd04
lea ecx, [esp + 0xf]
mov edx, eax
push 0
push ecx
mov ecx, esi
call fcn.0041a190
add esp, 8
test eax, eax
jne 0x420888
cmp byte [esp + 0xf], 2
jne 0x41fd04
mov byte [esp + 0x18], 1
jmp 0x41fd04
cmp dl, 2
movzx ecx, cl
mov eax, 1
cmove ecx, eax
mov dword [esp + 0x18], ecx
mov ecx, dword [edi + 0x48]
test byte [ecx + 0x1c], 4
mov edx, dword [ecx + 0x14]
je 0x41fd24
mov eax, dword [edx + 0x18]
cmp eax, dword [ecx + 0x18]
jb 0x41fd24
cmp dword [edx + 0x60], ebx
je 0x41fd51
call fcn.00414010
jmp 0x41fd49
mov eax, dword [edx + 0x28]
test eax, eax
jne 0x420888
mov eax, dword [edx + 0x94]
cmp eax, dword [edx + 0x98]
jbe 0x41fd44
call fcn.00415cd0
jmp 0x41fd49
call fcn.00415c50
test eax, eax
jne 0x420888
mov edx, dword [esp + 0x3c]
mov eax, dword [edi + 0x38]
lea ecx, [edx - 1]
bswap ecx
mov dword [eax + 0x24], ecx
mov dword [esp + 0x24], ebx
test ebx, ebx
je 0x41fd6f
mov eax, dword [ebx + 0x38]
mov edi, dword [eax]
jmp 0x41fd75
mov eax, dword [edi + 0x38]
mov edi, dword [eax + 0x20]
bswap edi
cmp edi, dword [esp + 0x30]
ja 0x420511
mov ecx, dword [esp + 0x38]
mov eax, ecx
inc ecx
mov dword [esp + 0x38], ecx
cmp eax, edx
ja 0x420511
lea eax, [esp + 0x2c]
mov edx, edi
push 0
push eax
mov ecx, esi
call fcn.0041b640
mov esi, eax
add esp, 8
mov dword [esp + 0x44], esi
test esi, esi
jne 0x4207d3
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x10], edx
mov eax, dword [edx + 0x38]
mov dword [esp + 0x28], eax
mov ebx, dword [eax + 4]
bswap ebx
test ebx, ebx
jne 0x41fe5d
test cl, cl
jne 0x41fe5d
mov ecx, dword [edx + 0x48]
test byte [ecx + 0x1c], 4
mov edx, dword [ecx + 0x14]
je 0x41fe01
mov eax, dword [edx + 0x18]
cmp eax, dword [ecx + 0x18]
jb 0x41fe01
cmp dword [edx + 0x60], ebx
je 0x41fdfd
call fcn.00414010
jmp 0x41fe26
xor esi, esi
jmp 0x41fe30
mov esi, dword [edx + 0x28]
test esi, esi
jne 0x420508
mov eax, dword [edx + 0x94]
cmp eax, dword [edx + 0x98]
jbe 0x41fe21
call fcn.00415cd0
jmp 0x41fe26
call fcn.00415c50
mov esi, eax
test esi, esi
jne 0x420508
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x34]
mov dword [eax], edi
mov eax, dword [edx + 0x38]
mov edi, dword [esp + 0x20]
mov ecx, dword [ecx + 0x38]
mov eax, dword [eax]
mov dword [edi], edx
xor edx, edx
mov dword [ecx + 0x20], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x2c], edx
jmp 0x4203af
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x24]
shr eax, 2
sub eax, 2
cmp ebx, eax
ja 0x4204e5
test cl, cl
mov ecx, dword [ebp + 0xc]
je 0x42015e
cmp ecx, edi
je 0x41fe91
jbe 0x42015e
cmp byte [ebp + 0x10], 2
jne 0x42015e
mov eax, dword [ebp + 8]
mov ecx, dword [edx + 0x48]
mov byte [esp + 0x18], 0
mov dword [eax], edi
test byte [ecx + 0x1c], 4
mov eax, dword [esp + 0x20]
mov dword [eax], edx
mov edx, dword [ecx + 0x14]
je 0x41fec6
mov eax, dword [edx + 0x18]
cmp eax, dword [ecx + 0x18]
jb 0x41fec6
cmp dword [edx + 0x60], 0
je 0x41fec2
call fcn.00414010
jmp 0x41feeb
xor esi, esi
jmp 0x41fef5
mov esi, dword [edx + 0x28]
test esi, esi
jne 0x420508
mov eax, dword [edx + 0x94]
cmp eax, dword [edx + 0x98]
jbe 0x41fee6
call fcn.00415cd0
jmp 0x41feeb
call fcn.00415c50
mov esi, eax
test esi, esi
jne 0x420508
test ebx, ebx
jne 0x41ffb3
mov ebx, dword [esp + 0x24]
test ebx, ebx
jne 0x41ff27
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x34]
mov eax, dword [edx + 0x38]
mov ecx, dword [ecx + 0x38]
mov eax, dword [eax]
mov dword [ecx + 0x20], eax
xor eax, eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x2c], eax
jmp 0x4203af
mov ecx, dword [ebx + 0x48]
test byte [ecx + 0x1c], 4
mov edx, dword [ecx + 0x14]
je 0x41ff67
mov eax, dword [edx + 0x18]
cmp eax, dword [ecx + 0x18]
jb 0x41ff67
cmp dword [edx + 0x60], 0
je 0x41ff48
call fcn.00414010
jmp 0x41ff8c
mov edx, dword [esp + 0x10]
xor esi, esi
mov ecx, dword [ebx + 0x38]
mov eax, dword [edx + 0x38]
mov eax, dword [eax]
mov dword [ecx], eax
xor eax, eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x2c], eax
jmp 0x4203af
mov esi, dword [edx + 0x28]
test esi, esi
jne 0x420508
mov eax, dword [edx + 0x94]
cmp eax, dword [edx + 0x98]
jbe 0x41ff87
call fcn.00415cd0
jmp 0x41ff8c
call fcn.00415c50
mov esi, eax
test esi, esi
jne 0x420508
mov edx, dword [esp + 0x10]
mov ecx, dword [ebx + 0x38]
mov eax, dword [edx + 0x38]
mov eax, dword [eax]
mov dword [ecx], eax
xor eax, eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x2c], eax
jmp 0x4203af
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + 8]
mov edx, eax
bswap edx
mov dword [esp + 0x2c], eax
cmp edx, dword [esp + 0x30]
ja 0x42048d
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x40]
push 0
push eax
call fcn.0041b640
mov esi, eax
add esp, 8
test esi, esi
jne 0x420508
mov edi, dword [esp + 0x40]
mov ecx, dword [edi + 0x48]
test byte [ecx + 0x1c], 4
mov edx, dword [ecx + 0x14]
je 0x420014
mov eax, dword [edx + 0x18]
cmp eax, dword [ecx + 0x18]
jb 0x420014
cmp dword [edx + 0x60], esi
je 0x420010
call fcn.00414010
jmp 0x420039
xor esi, esi
jmp 0x420043
mov esi, dword [edx + 0x28]
test esi, esi
jne 0x42042e
mov eax, dword [edx + 0x94]
cmp eax, dword [edx + 0x98]
jbe 0x420034
call fcn.00415cd0
jmp 0x420039
call fcn.00415c50
mov esi, eax
test esi, esi
jne 0x42042e
mov eax, dword [esp + 0x10]
mov ecx, dword [edi + 0x38]
mov eax, dword [eax + 0x38]
mov eax, dword [eax]
mov dword [ecx], eax
lea ecx, [ebx - 1]
mov eax, dword [edi + 0x38]
bswap ecx
mov dword [eax + 4], ecx
lea eax, [ebx*4 - 4]
push eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x38]
add eax, 0xc
push eax
mov eax, dword [edi + 0x38]
add eax, 8
push eax
call fcn.004f79b0
mov edx, dword [edi + 0x48]
add esp, 0xc
test byte [edx + 0x1c], 0x20
je 0x4200c6
mov eax, dword [edx + 0x14]
dec dword [eax + 0x78]
mov ecx, dword [eax + 0x88]
mov dword [edx + 0x10], ecx
mov edi, dword [eax + 0x3c]
mov dword [eax + 0x88], edx
push dword [edx + 4]
mov ecx, dword [edx + 0x18]
mov eax, dword [eax + 0x98]
dec ecx
mov ebx, dword [edi]
cdq
push edx
push eax
push 0
push ecx
call fcn.004f4a20
push edx
push eax
mov eax, dword [ebx + 0x48]
push edi
call eax
add esp, 0x10
jmp 0x4200cd
mov ecx, edx
call fcn.0040f8d0
mov ebx, dword [esp + 0x24]
test ebx, ebx
jne 0x4200f2
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + 0x38]
mov ecx, dword [esp + 0x2c]
mov dword [eax + 0x20], ecx
xor eax, eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x2c], eax
jmp 0x4203af
mov ecx, dword [ebx + 0x48]
test byte [ecx + 0x1c], 4
mov edx, dword [ecx + 0x14]
je 0x420117
mov eax, dword [edx + 0x18]
cmp eax, dword [ecx + 0x18]
jb 0x420117
cmp dword [edx + 0x60], 0
je 0x420113
call fcn.00414010
jmp 0x42013c
xor esi, esi
jmp 0x420146
mov esi, dword [edx + 0x28]
test esi, esi
jne 0x420508
mov eax, dword [edx + 0x94]
cmp eax, dword [edx + 0x98]
jbe 0x420137
call fcn.00415cd0
jmp 0x42013c
call fcn.00415c50
mov esi, eax
test esi, esi
jne 0x420508
mov eax, dword [ebx + 0x38]
mov ecx, dword [esp + 0x2c]
mov dword [eax], ecx
xor eax, eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x2c], eax
jmp 0x4203af
test ebx, ebx
je 0x4203af
xor eax, eax
mov dword [esp + 0x1c], eax
test ecx, ecx
je 0x420210
mov edx, dword [esp + 0x28]
add edx, 8
cmp byte [ebp + 0x10], 2
jne 0x4201a8
mov edi, dword [ebp + 0xc]
xor ecx, ecx
mov eax, dword [edx]
bswap eax
cmp eax, edi
jbe 0x42019e
inc ecx
add edx, 4
cmp ecx, ebx
jb 0x420186
mov eax, dword [esp + 0x1c]
mov ecx, edi
jmp 0x420210
mov eax, ecx
mov dword [esp + 0x1c], ecx
mov ecx, edi
jmp 0x420210
mov edx, dword [edx]
bswap edx
sub edx, ecx
jns 0x4201c1
cmp edx, 0x80000000
jne 0x4201bf
mov edx, 0x7fffffff
jmp 0x4201c1
neg edx
mov edi, 1
cmp ebx, edi
jbe 0x420210
mov esi, dword [esp + 0x28]
nop
mov ecx, dword [esi + edi*4 + 8]
bswap ecx
sub ecx, dword [ebp + 0xc]
jns 0x4201ec
cmp ecx, 0x80000000
jne 0x4201ea
mov ecx, 0x7fffffff
jmp 0x4201ec
neg ecx
cmp ecx, edx
mov eax, edi
cmovge eax, dword [esp + 0x1c]
inc edi
cmp ecx, edx
mov dword [esp + 0x1c], eax
cmovge ecx, edx
mov edx, ecx
cmp edi, ebx
jb 0x4201d0
mov esi, dword [esp + 0x44]
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0x1c], eax
mov edx, dword [esp + 0x28]
lea edi, [edx + eax*4]
mov eax, dword [edi + 8]
bswap eax
cmp eax, dword [esp + 0x30]
ja 0x4204b9
cmp byte [esp + 0x18], 0
je 0x420241
cmp eax, ecx
je 0x420241
jae 0x4203af
cmp byte [ebp + 0x10], 2
jne 0x4203af
mov esi, dword [ebp + 8]
mov dword [esi], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x48]
test byte [ecx + 0x1c], 4
mov edx, dword [ecx + 0x14]
je 0x42026b
mov eax, dword [edx + 0x18]
cmp eax, dword [ecx + 0x18]
jb 0x42026b
cmp dword [edx + 0x60], 0
je 0x42029d
call fcn.00414010
jmp 0x420290
mov esi, dword [edx + 0x28]
test esi, esi
jne 0x420508
mov eax, dword [edx + 0x94]
cmp eax, dword [edx + 0x98]
jbe 0x42028b
call fcn.00415cd0
jmp 0x420290
call fcn.00415c50
mov esi, eax
test esi, esi
jne 0x420508
mov esi, dword [ebp + 8]
lea ecx, [ebx - 1]
cmp dword [esp + 0x1c], ecx
jae 0x4202b1
mov eax, dword [esp + 0x28]
mov eax, dword [eax + ebx*4 + 4]
mov dword [edi + 8], eax
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x14]
mov esi, dword [esi]
bswap ecx
mov dword [eax + 4], ecx
mov ecx, dword [ebx + 0x3c]
test ecx, ecx
je 0x4202da
cmp esi, dword [ecx]
ja 0x4202d6
mov edx, esi
call fcn.0040f030
test eax, eax
je 0x4202da
xor eax, eax
jmp 0x4202df
mov eax, 1
mov edi, dword [esp + 0x20]
mov edx, esi
push eax
push edi
mov ecx, ebx
call fcn.0041b640
mov esi, eax
add esp, 8
test esi, esi
jne 0x4203aa
mov eax, dword [edi]
mov ecx, dword [eax + 0x48]
test byte [ecx + 0x1c], 4
mov edx, dword [ecx + 0x14]
je 0x420324
mov eax, dword [edx + 0x18]
cmp eax, dword [ecx + 0x18]
jb 0x420324
cmp dword [edx + 0x60], esi
je 0x42031d
call fcn.00414010
jmp 0x420345
xor esi, esi
jmp 0x4203aa
mov esi, dword [edx + 0x28]
test esi, esi
jne 0x42034b
mov eax, dword [edx + 0x94]
cmp eax, dword [edx + 0x98]
jbe 0x420340
call fcn.00415cd0
jmp 0x420345
call fcn.00415c50
mov esi, eax
test esi, esi
je 0x4203aa
mov edx, dword [edi]
test edx, edx
je 0x4203a4
mov edx, dword [edx + 0x48]
test byte [edx + 0x1c], 0x20
je 0x42039d
mov eax, dword [edx + 0x14]
dec dword [eax + 0x78]
mov ecx, dword [eax + 0x88]
mov dword [edx + 0x10], ecx
mov edi, dword [eax + 0x3c]
mov dword [eax + 0x88], edx
push dword [edx + 4]
mov ecx, dword [edx + 0x18]
mov eax, dword [eax + 0x98]
dec ecx
mov ebx, dword [edi]
cdq
push edx
push eax
push 0
push ecx
call fcn.004f4a20
push edx
push eax
mov eax, dword [ebx + 0x48]
push edi
call eax
mov edi, dword [esp + 0x30]
add esp, 0x10
jmp 0x4203a4
mov ecx, edx
call fcn.0040f8d0
mov dword [edi], 0
mov byte [esp + 0x18], 0
mov eax, dword [esp + 0x24]
test eax, eax
je 0x420406
mov edx, dword [eax + 0x48]
test byte [edx + 0x1c], 0x20
je 0x4203ff
mov eax, dword [edx + 0x14]
dec dword [eax + 0x78]
mov ecx, dword [eax + 0x88]
mov dword [edx + 0x10], ecx
mov edi, dword [eax + 0x3c]
mov dword [eax + 0x88], edx
push dword [edx + 4]
mov ecx, dword [edx + 0x18]
mov eax, dword [eax + 0x98]
dec ecx
mov ebx, dword [edi]
cdq
push edx
push eax
push 0
push ecx
call fcn.004f4a20
push edx
push eax
mov eax, dword [ebx + 0x48]
push edi
call eax
add esp, 0x10
jmp 0x420406
mov ecx, edx
call fcn.0040f8d0
cmp byte [esp + 0x18], 0
mov dword [esp + 0x24], 0
je 0x420508
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x34]
mov edx, dword [esp + 0x3c]
jmp 0x41fd60
mov edx, dword [edi + 0x48]
test byte [edx + 0x1c], 0x20
je 0x42047d
mov eax, dword [edx + 0x14]
dec dword [eax + 0x78]
mov ecx, dword [eax + 0x88]
mov dword [edx + 0x10], ecx
mov edi, dword [eax + 0x3c]
mov dword [eax + 0x88], edx
push dword [edx + 4]
mov ecx, dword [edx + 0x18]
mov eax, dword [eax + 0x98]
dec ecx
mov ebx, dword [edi]
cdq
push edx
push eax
push 0
push ecx
call fcn.004f4a20
push edx
push eax
mov eax, dword [ebx + 0x48]
push edi
call eax
mov edx, dword [esp + 0x20]
add esp, 0x10
jmp 0x4207d5
mov ecx, edx
call fcn.0040f8d0
mov edx, dword [esp + 0x10]
jmp 0x4207d5
push 0x54b514
push 0xffe5
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.00407d30
mov edx, dword [esp + 0x24]
add esp, 0x14
mov esi, 0xb
jmp 0x4207d5
push 0x54b514
push 0x10026
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.00407d30
mov edx, dword [esp + 0x24]
add esp, 0x14
mov esi, 0xb
jmp 0x4207d5
push 0x54b514
push 0xffc3
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.00407d30
add esp, 0x14
mov esi, 0xb
mov edx, dword [esp + 0x10]
jmp 0x4207d5
push 0x54b514
push 0xffa6
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.00407d30
add esp, 0x14
mov esi, 0xb
jmp 0x4207d3
mov ecx, dword [edi + 0x48]
xor eax, eax
cmp byte [esi + 0x13], al
sete al
test byte [ecx + 0x1c], 4
mov edx, dword [ecx + 0x14]
mov dword [esp + 0x38], eax
je 0x420565
mov eax, dword [edx + 0x18]
cmp eax, dword [ecx + 0x18]
jb 0x420565
cmp dword [edx + 0x60], ebx
je 0x420592
call fcn.00414010
jmp 0x42058a
mov eax, dword [edx + 0x28]
test eax, eax
jne 0x420888
mov eax, dword [edx + 0x94]
cmp eax, dword [edx + 0x98]
jbe 0x420585
call fcn.00415cd0
jmp 0x42058a
call fcn.00415c50
test eax, eax
jne 0x420888
mov eax, dword [0x55b1cc]
xor edx, edx
div dword [esi + 0x20]
mov edi, dword [esi + 0x2c]
inc edi
mov dword [esi + 0x2c], edi
lea ebx, [eax + 1]
cmp edi, ebx
jne 0x4205ae
inc edi
mov dword [esi + 0x2c], edi
cmp byte [esi + 0x11], 0
mov ecx, edi
je 0x4206f3
cmp edi, 2
jae 0x4205c3
xor eax, eax
jmp 0x4205f2
mov ecx, dword [esp + 0x14]
lea esi, [edi - 2]
mov eax, 0xcccccccd
mul dword [ecx + 0x24]
mov eax, esi
mov ecx, edx
xor edx, edx
shr ecx, 2
inc ecx
div ecx
sub esi, edx
lea eax, [esi + 2]
sub eax, ebx
neg eax
sbb eax, eax
add esi, 3
add eax, esi
mov esi, dword [esp + 0x14]
mov ecx, edi
cmp eax, edi
jne 0x4206ed
push dword [esp + 0x38]
lea eax, [esp + 0x40]
mov dword [esp + 0x40], 0
push eax
mov edx, edi
mov ecx, esi
call fcn.0041b640
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x4206e4
mov esi, dword [esp + 0x3c]
mov ecx, dword [esi + 0x48]
test byte [ecx + 0x1c], 4
mov edx, dword [ecx + 0x14]
je 0x42064b
mov eax, dword [edx + 0x18]
cmp eax, dword [ecx + 0x18]
jb 0x42064b
cmp dword [edx + 0x60], ebx
je 0x420647
call fcn.00414010
jmp 0x42066c
xor ebx, ebx
jmp 0x42066e
mov ebx, dword [edx + 0x28]
test ebx, ebx
jne 0x42066e
mov eax, dword [edx + 0x94]
cmp eax, dword [edx + 0x98]
jbe 0x420667
call fcn.00415cd0
jmp 0x42066c
call fcn.00415c50
mov ebx, eax
mov edx, dword [esi + 0x48]
test byte [edx + 0x1c], 0x20
je 0x4206b6
mov eax, dword [edx + 0x14]
dec dword [eax + 0x78]
mov ecx, dword [eax + 0x88]
mov dword [edx + 0x10], ecx
mov esi, dword [eax + 0x3c]
mov dword [eax + 0x88], edx
push dword [edx + 4]
mov ecx, dword [edx + 0x18]
mov eax, dword [eax + 0x98]
dec ecx
mov edi, dword [esi]
cdq
push edx
push eax
push 0
push ecx
call fcn.004f4a20
push edx
push eax
mov eax, dword [edi + 0x48]
push esi
call eax
add esp, 0x10
jmp 0x4206bd
mov ecx, edx
call fcn.0040f8d0
test ebx, ebx
jne 0x4206e4
mov ebx, dword [esp + 0x14]
xor edx, edx
mov eax, dword [0x55b1cc]
div dword [ebx + 0x20]
mov esi, dword [ebx + 0x2c]
lea ecx, [esi + 1]
mov dword [ebx + 0x2c], ecx
cmp esi, eax
jne 0x4206f5
lea ecx, [esi + 2]
mov dword [ebx + 0x2c], ecx
jmp 0x4206f5
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [esp + 0x14]
jmp 0x4206f5
mov ebx, esi
mov eax, dword [ebx + 0xc]
push dword [esp + 0x38]
mov edi, dword [esp + 0x24]
bswap ecx
mov eax, dword [eax + 0x38]
push edi
mov dword [eax + 0x1c], ecx
mov ecx, ebx
mov eax, dword [ebp + 8]
mov edx, dword [ebx + 0x2c]
mov dword [eax], edx
call fcn.0041b640
add esp, 8
test eax, eax
jne 0x420888
mov eax, dword [edi]
mov ecx, dword [eax + 0x48]
test byte [ecx + 0x1c], 4
mov edx, dword [ecx + 0x14]
je 0x42074d
mov eax, dword [edx + 0x18]
cmp eax, dword [ecx + 0x18]
jb 0x42074d
cmp dword [edx + 0x60], 0
je 0x420746
call fcn.00414010
jmp 0x42076e
xor esi, esi
jmp 0x4207d3
mov esi, dword [edx + 0x28]
test esi, esi
jne 0x420774
mov eax, dword [edx + 0x94]
cmp eax, dword [edx + 0x98]
jbe 0x420769
call fcn.00415cd0
jmp 0x42076e
call fcn.00415c50
mov esi, eax
test esi, esi
je 0x4207d3
mov edx, dword [edi]
test edx, edx
je 0x4207cd
mov edx, dword [edx + 0x48]
test byte [edx + 0x1c], 0x20
je 0x4207c6
mov eax, dword [edx + 0x14]
dec dword [eax + 0x78]
mov ecx, dword [eax + 0x88]
mov dword [edx + 0x10], ecx
mov edi, dword [eax + 0x3c]
mov dword [eax + 0x88], edx
push dword [edx + 4]
mov ecx, dword [edx + 0x18]
mov eax, dword [eax + 0x98]
dec ecx
mov ebx, dword [edi]
cdq
push edx
push eax
push 0
push ecx
call fcn.004f4a20
push edx
push eax
mov eax, dword [ebx + 0x48]
push edi
call eax
mov edi, dword [esp + 0x30]
add esp, 0x10
jmp 0x4207cd
mov ecx, edx
call fcn.0040f8d0
mov dword [edi], 0
xor edx, edx
test edx, edx
je 0x420828
mov edx, dword [edx + 0x48]
test byte [edx + 0x1c], 0x20
je 0x420821
mov eax, dword [edx + 0x14]
dec dword [eax + 0x78]
mov ecx, dword [eax + 0x88]
mov dword [edx + 0x10], ecx
mov edi, dword [eax + 0x3c]
mov dword [eax + 0x88], edx
push dword [edx + 4]
mov ecx, dword [edx + 0x18]
mov eax, dword [eax + 0x98]
dec ecx
mov ebx, dword [edi]
cdq
push edx
push eax
push 0
push ecx
call fcn.004f4a20
push edx
push eax
mov eax, dword [ebx + 0x48]
push edi
call eax
add esp, 0x10
jmp 0x420828
mov ecx, edx
call fcn.0040f8d0
mov eax, dword [esp + 0x24]
test eax, eax
je 0x420886
mov edx, dword [eax + 0x48]
test byte [edx + 0x1c], 0x20
je 0x42087f
mov eax, dword [edx + 0x14]
dec dword [eax + 0x78]
mov ecx, dword [eax + 0x88]
mov dword [edx + 0x10], ecx
mov edi, dword [eax + 0x3c]
mov dword [eax + 0x88], edx
push dword [edx + 4]
mov ecx, dword [edx + 0x18]
mov eax, dword [eax + 0x98]
dec ecx
mov ebx, dword [edi]
cdq
push edx
push eax
push 0
push ecx
call fcn.004f4a20
push edx
push eax
mov eax, dword [ebx + 0x48]
push edi
call eax
add esp, 0x10
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, edx
call fcn.0040f8d0
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret