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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x200
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
xor ecx, ecx
push edi
mov dword [ebp - 8], ecx
mov byte [ebp - 0x5d], cl
mov esi, dword [edi]
mov eax, dword [edi + 0x68]
mov ebx, eax
mov dword [ebp - 4], eax
mov dword [ebp - 0x1c], esi
mov al, byte [esi + 0x4e]
mov byte [ebp - 0x3d], al
mov eax, dword [edi + 0x58]
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x84], ecx
mov dword [ebp - 0x14], eax
call fcn.100405df
pop ecx
xor ecx, ecx
or eax, 0xffffffff
cmp dword [esi + 0x148], ecx
je 0x100406cb
mov ecx, dword [esi + 0x150]
xor edx, edx
mov eax, dword [edi + 0xb4]
div ecx
sub ecx, edx
mov dword [ebp - 0x6c], ecx
xor ecx, ecx
jmp 0x100406ce
mov dword [ebp - 0x6c], eax
push 7
pop eax
mov dword [ebp - 0xb0], 0x14
mov dword [ebp - 0xa8], 1
cmp dword [edi + 0x28], eax
je 0x10044fec
mov dword [edi + 0x38], ecx
mov dword [edi + 0x3c], ecx
mov dword [edi + 0x78], ecx
mov dword [esi + 0x19c], ecx
cmp dword [esi + 0x110], ecx
jne 0x10044701
imul ebx, dword [edi + 0x24], 0x14
mov eax, dword [ebp - 4]
mov dword [ebp - 0xa4], 0x3e40
add ebx, eax
mov cl, byte [ebx]
inc dword [ebp - 0x84]
movzx edx, cl
mov dword [ebp - 0x4c], ebx
mov byte [ebp - 0x39], cl
mov dword [ebp - 0x20], edx
cmp edx, 0xa8
ja case.0x1004073c.86
jmp dword [edx*4 + 0x10045029]
imul ecx, dword [ebx + 4], 0x28
push 4
pop eax
push 0x14
pop edi
add ecx, dword [ebp - 0x14]
mov word [ecx + 8], ax
mov eax, ebx
sub eax, dword [ebp - 4]
cdq
idiv edi
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x10044b7f
imul eax, dword [ebx + 4], 0x28
mov ecx, 0x80
add eax, dword [ebp - 0x14]
imul ebx, dword [eax], 0x14
add ebx, dword [ebp - 4]
mov word [eax + 8], cx
jmp 0x10044b8b
imul ecx, dword [ebx + 4], 0x28
mov eax, dword [ebx + 0xc]
push 4
add ecx, dword [ebp - 0x14]
dec eax
cdq
mov dword [ecx], eax
pop eax
mov word [ecx + 8], ax
xor eax, eax
mov dword [ecx + 4], edx
cmp dword [ebx + 8], eax
jne 0x10044b7f
jmp 0x10044b8b
imul ecx, dword [ebx + 4], 0x28
mov edx, dword [ebp - 4]
add ecx, dword [ebp - 0x14]
lea ebx, [edx - 0x14]
imul eax, dword [ecx], 0x14
imul eax, dword [eax + edx + 8], 0x14
add ebx, eax
mov eax, 0x80
mov word [ecx + 8], ax
jmp 0x10044b8b
imul esi, dword [ebx + 4], 0x28
sub ebx, eax
push 4
pop ecx
mov eax, ebx
cdq
push 0x14
pop ebx
idiv ebx
add esi, dword [ebp - 0x14]
cdq
mov word [esi + 8], cx
mov ecx, dword [esi]
imul ebx, ecx, 0x14
mov dword [esi], eax
mov eax, dword [ebp - 4]
mov dword [esi + 4], edx
mov esi, dword [ebp - 0x1c]
add ebx, eax
jmp case.0x1004073c.86
imul eax, dword [ebx + 0xc], 0x28
xor edx, edx
mov ecx, dword [ebp - 0x14]
inc edx
test byte [eax + ecx + 8], dl
je 0x10044b8b
mov eax, ebx
sub eax, dword [ebp - 4]
push 0x14
cdq
pop ecx
idiv ecx
mov edx, eax
xor eax, eax
mov dword [ebp - 0xc], edx
cmp dword [ebx + 4], eax
jne 0x10044b9b
mov ecx, dword [edi + 0xc8]
test ecx, ecx
je 0x10044b9b
mov eax, dword [ecx + 4]
dec dword [edi + 0xd0]
mov dword [edi + 0xc8], eax
mov eax, dword [edi + 0x2c]
add dword [esi + 0x68], eax
push ecx
mov dword [esi + 0x64], eax
call fcn.10045692
pop ecx
push 4
pop ecx
cmp dword [ebx + 8], ecx
jne 0x1004086e
imul ecx, eax, 0x14
mov eax, dword [edi + 0x68]
mov eax, dword [ecx + eax + 8]
dec eax
mov edx, dword [edi + 0x68]
mov ecx, dword [edi + 0x58]
imul ebx, eax, 0x14
mov dword [ebp - 4], edx
mov dword [ebp - 0x14], ecx
add ebx, edx
jmp 0x10044b8b
push ebx
push edi
call fcn.1001d1b7
pop ecx
pop ecx
mov ecx, eax
mov eax, dword [ebx + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x10044b8b
push ebx
push edi
call fcn.1001d1b7
mov edx, dword [ebx + 0x10]
pop ecx
pop ecx
mov ecx, dword [edx]
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
jmp 0x10044b8b
push ebx
push edi
call fcn.1001d1b7
pop ecx
pop ecx
push 8
pop ecx
mov word [eax + 8], cx
mov ecx, dword [ebx + 0x10]
movsd xmm0, qword [ecx]
movsd qword [eax], xmm0
jmp 0x10044b8b
push ebx
push edi
call fcn.1001d1b7
push dword [ebx + 0x10]
mov dword [ebp - 0x2c], eax
mov byte [ebx], 0x48
call fcn.1003de30
xor ecx, ecx
mov dword [ebx + 4], eax
inc ecx
add esp, 0xc
cmp byte [ebp - 0x3d], cl
je 0x1004096c
xor eax, eax
push eax
push ecx
or eax, 0xffffffff
push eax
push dword [ebx + 0x10]
push dword [ebp - 0x2c]
call fcn.100469d0
add esp, 0x14
mov dword [ebp - 8], eax
test eax, eax
jne 0x10044e4f
movzx ecx, byte [ebp - 0x3d]
push ecx
push dword [ebp - 0x2c]
call fcn.1004020f
pop ecx
pop ecx
test eax, eax
jne 0x10044fec
mov ecx, dword [ebp - 0x2c]
mov dword [ecx + 0x18], eax
mov eax, 0x800
or word [ecx + 8], ax
cmp byte [ebx + 1], 0xf9
jne 0x1004095c
cmp dword [ebx + 0x10], 0
je 0x1004095c
push dword [ebx + 0x10]
push esi
call fcn.1002b676
pop ecx
pop ecx
mov ecx, dword [ebp - 0x2c]
mov byte [ebx + 1], 0xf9
mov eax, dword [ecx + 0x10]
mov dword [ebx + 0x10], eax
mov eax, dword [ecx + 0xc]
mov dword [ebx + 4], eax
mov eax, dword [ebx + 4]
cmp eax, dword [esi + 0x6c]
jg 0x10044e4f
push ebx
push edi
call fcn.1001d1b7
mov edi, eax
mov eax, 0xa02
pop ecx
pop ecx
mov word [edi + 8], ax
mov ecx, dword [ebx + 0x10]
mov al, byte [ebp - 0x3d]
mov dword [edi + 0x10], ecx
mov ecx, dword [ebx + 4]
mov dword [edi + 0xc], ecx
mov byte [edi + 0xa], al
mov eax, dword [ebx + 0xc]
test eax, eax
jle 0x10044b8b
mov esi, dword [ebp - 0x14]
imul ecx, eax, 0x28
movzx eax, word [ebx + 2]
cdq
cmp dword [ecx + esi], eax
mov esi, dword [ebp - 0x1c]
jne 0x10044b8b
mov eax, dword [ebp - 0x14]
cmp dword [ecx + eax + 4], edx
jne 0x10044b8b
mov eax, 0xa10
mov word [edi + 8], ax
jmp 0x10044b8b
push ebx
push edi
call fcn.1001d1b7
mov edx, dword [ebx + 0xc]
mov edi, 0x101
sub edx, dword [ebx + 8]
pop ecx
pop ecx
xor ecx, ecx
mov dword [ebp - 0xc], edx
inc ecx
cmp dword [ebx + 4], 0
cmovne ecx, edi
lea edi, [eax + 0xc]
movzx ecx, cx
mov word [eax + 8], cx
xor eax, eax
mov dword [ebp - 0x10], ecx
mov dword [edi], eax
test edx, edx
jle 0x10044b8b
mov esi, edx
mov ebx, ecx
lea edi, [edi + 0x28]
lea eax, [edi - 0xc]
push eax
call fcn.100468fc
xor eax, eax
mov word [edi - 4], bx
dec esi
mov dword [edi], eax
pop ecx
test esi, esi
jg 0x10040a19
mov ebx, dword [ebp - 0x4c]
mov esi, dword [ebp - 0x1c]
jmp 0x10044b8b
imul ecx, dword [ebx + 4], 0x28
mov edx, 0xff41
add ecx, dword [ebp - 0x14]
mov ax, word [ecx + 8]
and ax, dx
xor edx, edx
inc edx
or ax, dx
jmp 0x100407c6
push ebx
push edi
call fcn.1001d1b7
mov esi, eax
xor eax, eax
push eax
push eax
push dword [ebx + 4]
push dword [ebx + 0x10]
push esi
call fcn.100469d0
mov al, byte [ebp - 0x3d]
add esp, 0x1c
mov byte [esi + 0xa], al
jmp 0x10040a36
imul ecx, dword [ebx + 4], 0x28
mov eax, dword [edi + 0x64]
add ecx, 0xffffffd8
add eax, ecx
push eax
mov dword [ebp - 0xc], eax
call fcn.10046c2c
pop ecx
test eax, eax
jne 0x10044e4f
imul edi, dword [ebx + 8], 0x28
mov eax, 0x2400
add edi, dword [ebp - 0x14]
test word [edi + 8], ax
je 0x10040ab7
push edi
call fcn.100468fc
pop ecx
push 0x14
pop eax
push eax
push dword [ebp - 0xc]
push edi
call fcn.1005d780
mov ax, word [edi + 8]
mov ecx, 0xebff
and ax, cx
add esp, 0xc
mov ecx, 0x840
or ax, cx
jmp 0x100409d2
mov eax, dword [ebx + 0xc]
imul ecx, dword [ebx + 4], 0x28
mov dword [ebp - 0x38], eax
imul eax, dword [ebx + 8], 0x28
add ecx, dword [ebp - 0x14]
mov dword [ebp - 0x18], ecx
add eax, dword [ebp - 0x14]
mov dword [ebp - 0x24], eax
push ecx
push eax
call fcn.10046740
mov eax, dword [ebp - 0x24]
pop ecx
pop ecx
mov ecx, 0x1000
test word [eax + 8], cx
je 0x10040b23
push eax
call fcn.100466ef
pop ecx
test eax, eax
jne 0x10044fec
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x18]
add eax, 0x28
add ecx, 0x28
mov dword [ebp - 0x24], eax
dec dword [ebp - 0x38]
mov dword [ebp - 0x18], ecx
jne 0x10040afa
jmp 0x10044b8b
mov eax, dword [ebx + 0xc]
imul ecx, dword [ebx + 8], 0x28
mov dword [ebp - 0x18], eax
imul eax, dword [ebx + 4], 0x28
add eax, dword [ebp - 0x14]
add ecx, dword [ebp - 0x14]
push 0x1000
push eax
push ecx
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x38], eax
call fcn.10046b66
mov ecx, dword [ebp - 0x24]
mov eax, 0x1000
add esp, 0xc
test word [ecx + 8], ax
je 0x10040b85
push ecx
call fcn.100466ef
pop ecx
test eax, eax
jne 0x10044fec
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x18]
mov eax, edx
dec edx
mov dword [ebp - 0x18], edx
test eax, eax
je 0x10044b8b
mov eax, dword [ebp - 0x38]
add ecx, 0x28
add eax, 0x28
jmp 0x10040b50
mov eax, 0x1000
push eax
imul eax, dword [ebx + 4], 0x28
add eax, dword [ebp - 0x14]
push eax
imul eax, dword [ebx + 8], 0x28
add eax, dword [ebp - 0x14]
push eax
call fcn.10046b66
add esp, 0xc
jmp 0x10044b8b
imul eax, dword [ebx + 4], 0x28
mov edi, dword [ebp - 0x14]
push dword [eax + edi + 4]
push dword [eax + edi]
imul eax, dword [ebx + 8], 0x28
add eax, edi
push eax
call fcn.100468c6
jmp 0x10040bbc
imul edx, dword [ebx + 4], 0x28
imul eax, dword [ebx + 8], 0x28
imul ecx, dword [ebx + 0xc], 0x28
mov esi, dword [ebp - 0x1c]
add edx, dword [ebp - 0x14]
add eax, dword [ebp - 0x14]
add ecx, dword [ebp - 0x14]
mov dword [ebp - 0x34], ecx
movzx ecx, word [edx + 8]
mov dword [ebp - 0x20], eax
mov al, byte [eax + 8]
or al, cl
mov dword [ebp - 0x2c], ecx
xor ecx, ecx
mov dword [ebp - 0x28], edx
inc ecx
test cl, al
mov ecx, dword [ebp - 0x34]
je 0x10040c23
push ecx
call fcn.100468fc
pop ecx
jmp 0x10044b8b
mov eax, dword [ebp - 0x2c]
test al, 0x12
jne 0x10040c58
xor eax, eax
push eax
push dword [ebp - 0x3d]
push edx
call fcn.10046bbc
add esp, 0xc
test eax, eax
jne 0x10044fec
mov eax, dword [ebp - 0x28]
mov ecx, 0xfffd
mov ax, word [eax + 8]
and ax, cx
movzx edx, ax
mov dword [ebp - 0x2c], edx
jmp 0x10040c85
mov ecx, 0x4000
test ecx, eax
je 0x10040c85
push edx
call fcn.10046454
pop ecx
test eax, eax
jne 0x10044fec
mov eax, dword [ebp - 0x28]
mov ecx, 0xfffd
mov ax, word [eax + 8]
and ax, cx
movzx eax, ax
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x20]
movzx ecx, word [eax + 8]
mov dword [ebp - 0x24], ecx
test cl, 0x12
jne 0x10040ca5
xor ecx, ecx
push ecx
push dword [ebp - 0x3d]
push eax
call fcn.10046bbc
add esp, 0xc
jmp 0x10040cb5
mov edx, 0x4000
test edx, ecx
je 0x10040cd2
push eax
call fcn.10046454
pop ecx
test eax, eax
jne 0x10044fec
mov eax, dword [ebp - 0x20]
mov ecx, 0xfffd
mov ax, word [eax + 8]
and ax, cx
movzx eax, ax
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x20]
mov eax, dword [eax + 0xc]
add eax, dword [ecx + 0xc]
cdq
mov dword [ebp - 0x48], eax
mov ecx, edx
mov eax, dword [esi + 0x6c]
cdq
cmp ecx, edx
jg 0x10044e4f
mov edx, dword [ebp - 0x48]
jl 0x10040cfd
cmp edx, eax
ja 0x10044e4f
mov ecx, dword [ebp - 0x34]
xor eax, eax
cmp ecx, dword [ebp - 0x20]
sete al
push eax
lea eax, [edx + 3]
push eax
push ecx
call fcn.10046576
add esp, 0xc
test eax, eax
jne 0x10044fec
mov ecx, dword [ebp - 0x34]
mov edx, 0x3e40
mov edi, dword [ebp - 0x20]
push 2
mov ax, word [ecx + 8]
and ax, dx
pop edx
or ax, dx
mov word [ecx + 8], ax
cmp ecx, edi
je 0x10040d59
push dword [edi + 0xc]
push dword [edi + 0x10]
push dword [ecx + 0x10]
call fcn.1005d780
mov eax, dword [ebp - 0x24]
add esp, 0xc
mov ecx, dword [ebp - 0x34]
mov word [edi + 8], ax
mov eax, dword [ebp - 0x28]
push dword [eax + 0xc]
push dword [eax + 0x10]
mov eax, dword [ecx + 0x10]
add eax, dword [edi + 0xc]
push eax
call fcn.1005d780
mov eax, dword [ebp - 0x28]
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x48]
mov word [eax + 8], cx
mov ecx, dword [ebp - 0x34]
mov eax, dword [ecx + 0x10]
mov byte [edx + eax], 0
mov eax, dword [ecx + 0x10]
mov byte [edx + eax + 1], 0
mov eax, dword [ecx + 0x10]
mov byte [edx + eax + 2], 0
mov eax, 0x200
or word [ecx + 8], ax
mov al, byte [ebp - 0x3d]
mov dword [ecx + 0xc], edx
mov byte [ecx + 0xa], al
jmp 0x10044b8b
imul edi, dword [ebx + 4], 0x28
add edi, dword [ebp - 0x14]
push edi
call fcn.1001cc50
mov esi, dword [ebp - 0x4c]
movzx ebx, ax
imul eax, dword [esi + 8], 0x28
add eax, dword [ebp - 0x14]
push eax
mov dword [ebp - 0x2c], eax
call fcn.1001cc50
pop ecx
pop ecx
movzx ecx, ax
imul eax, dword [esi + 0xc], 0x28
and cl, bl
mov esi, dword [ebp - 0x2c]
mov ebx, dword [ebp - 0x4c]
push 4
pop edx
add eax, dword [ebp - 0x14]
mov dword [ebp - 0x24], eax
mov ax, word [esi + 8]
or ax, word [edi + 8]
movzx eax, ax
test dl, cl
je 0x10040ef6
mov eax, dword [esi]
mov ecx, dword [edi]
mov edx, dword [edi + 4]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x94], eax
mov eax, dword [esi + 4]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x90], eax
movzx eax, byte [ebx]
sub eax, 0x64
je 0x10040eb2
dec eax
je 0x10040ea2
dec eax
je 0x10040e92
dec eax
mov eax, ecx
je 0x10040e5c
or eax, edx
je 0x10040fd0
mov eax, ecx
or esi, 0xffffffff
and eax, edx
cmp eax, esi
jne 0x10040e4c
xor eax, eax
mov edx, eax
lea ecx, [eax + 1]
mov eax, dword [ebp - 0x18]
push edx
push ecx
push dword [ebp - 0x38]
push eax
call fcn.1005ee50
jmp 0x10040ed3
or eax, edx
je 0x10040fd0
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
jne 0x10040e82
mov eax, dword [esi]
test eax, eax
jne 0x10040e85
cmp dword [esi + 4], 0x80000000
je 0x10040f01
jmp 0x10040e85
mov eax, dword [ebp - 0x18]
push edx
push ecx
push dword [ebp - 0x38]
push eax
call fcn.1005ec80
jmp 0x10040ed3
push edx
push ecx
lea eax, [ebp - 0x94]
push eax
call fcn.100358ec
jmp 0x10040ec0
push edx
push ecx
lea eax, [ebp - 0x94]
push eax
call fcn.1003de4d
jmp 0x10040ec0
push edx
push ecx
lea eax, [ebp - 0x94]
push eax
call fcn.10025130
add esp, 0xc
test eax, eax
jne 0x10040f01
mov edx, dword [ebp - 0x90]
mov eax, dword [ebp - 0x94]
mov ecx, dword [ebp - 0x24]
push 4
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov ax, word [ecx + 8]
mov edx, 0x3e40
and ax, dx
pop edx
or ax, dx
mov word [ecx + 8], ax
jmp 0x10040a36
xor ecx, ecx
inc ecx
test cl, al
jne 0x10040fd0
push edi
call fcn.10047154
fstp qword [ebp - 0x58]
push esi
call fcn.10047154
movzx eax, byte [ebx]
pop ecx
fstp qword [ebp - 0x74]
pop ecx
sub eax, 0x64
je 0x10040f9c
dec eax
je 0x10040f90
dec eax
je 0x10040f84
dec eax
je 0x10040f66
push edi
call fcn.10045c46
push dword [ebp - 0x2c]
mov esi, eax
mov edi, edx
call fcn.10045c46
pop ecx
pop ecx
mov ecx, esi
or ecx, edi
je 0x10040fd0
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x10040f54
xor ecx, ecx
mov edi, ecx
lea esi, [ecx + 1]
push edi
push esi
push edx
push eax
call fcn.1005ee50
mov ecx, eax
call fcn.1005f47f
jmp 0x10040fa6
movsd xmm1, qword [ebp - 0x58]
ucomisd xmm1, qword [0x10075f10]
lahf
test ah, 0x44
jnp 0x10040fd0
movsd xmm0, qword [ebp - 0x74]
divsd xmm0, xmm1
jmp 0x10040fa6
movsd xmm0, qword [ebp - 0x74]
mulsd xmm0, qword [ebp - 0x58]
jmp 0x10040fa6
movsd xmm0, qword [ebp - 0x74]
subsd xmm0, qword [ebp - 0x58]
jmp 0x10040fa6
movsd xmm0, qword [ebp - 0x74]
addsd xmm0, qword [ebp - 0x58]
push ecx
push ecx
movsd qword [ebp - 0x58], xmm0
movsd qword [esp], xmm0
call fcn.1003484b
pop ecx
pop ecx
test eax, eax
jne 0x10040fd0
mov ecx, dword [ebp - 0x24]
movsd xmm0, qword [ebp - 0x58]
push 8
movsd qword [ecx], xmm0
jmp 0x10040edd
mov ecx, dword [ebp - 0x24]
push ecx
call fcn.100468fc
pop ecx
jmp 0x10040a36
mov eax, dword [ebx + 4]
test eax, eax
je 0x10044b8b
xor ecx, ecx
imul eax, eax, 0x28
push ecx
push ecx
add eax, dword [ebp - 0x14]
jmp 0x10040bd8
imul ecx, dword [ebx + 8], 0x28
imul edi, dword [ebx + 4], 0x28
mov eax, dword [ebp - 0x14]
imul edx, dword [ebx + 0xc], 0x28
add ecx, eax
add edi, eax
add edx, eax
mov al, byte [ecx + 8]
or al, byte [edi + 8]
mov dword [ebp - 0xc], edx
test al, 1
je 0x10041021
push edx
jmp 0x10040c18
push ecx
call fcn.10045c46
push edi
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], edx
call fcn.10045c46
pop ecx
pop ecx
mov cl, byte [ebx]
mov edi, eax
mov byte [ebp - 0x39], cl
cmp cl, 0x60
jne 0x1004104c
and dword [ebp - 0x68], edi
and dword [ebp - 0x64], edx
jmp 0x10041134
cmp cl, 0x61
jne 0x1004105c
or dword [ebp - 0x68], edi
or dword [ebp - 0x64], edx
jmp 0x10041134
mov eax, edi
or eax, edx
je 0x10041134
xor eax, eax
cmp edx, eax
jg 0x100410a6
jl 0x10041072
cmp edi, eax
jae 0x1004109b
mov al, 0xc5
sub al, cl
mov cl, al
or eax, 0xffffffff
mov byte [ebp - 0x39], cl
cmp edx, eax
jl 0x10041094
jg 0x10041089
cmp edi, 0xffffffc0
jbe 0x10041094
neg edi
push 0
pop eax
adc edx, eax
neg edx
jmp 0x1004109b
push 0x40
xor eax, eax
pop edi
mov edx, eax
cmp edx, eax
jl 0x100410c3
jg 0x100410a6
cmp edi, 0x40
jb 0x100410c3
cmp dword [ebp - 0x64], eax
jg 0x100410ba
jl 0x100410b2
cmp dword [ebp - 0x68], eax
jae 0x100410ba
cmp cl, 0x62
je 0x100410ba
or eax, 0xffffffff
cdq
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], edx
jmp 0x10041134
push 8
pop eax
push eax
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x80]
push eax
call fcn.1005d780
mov eax, dword [ebp - 0x80]
add esp, 0xc
cmp byte [ebp - 0x39], 0x62
mov ecx, edi
mov edx, dword [ebp - 0x7c]
jne 0x100410f2
call fcn.1005ef10
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], edx
jmp 0x10041120
call fcn.1005f0c0
mov dword [ebp - 0x80], eax
xor eax, eax
mov dword [ebp - 0x7c], edx
cmp dword [ebp - 0x64], eax
jg 0x10041120
jl 0x1004110b
cmp dword [ebp - 0x68], eax
jae 0x10041120
push 0x40
pop ecx
or edx, 0xffffffff
sub ecx, edi
mov eax, edx
call fcn.1005ef10
or dword [ebp - 0x80], eax
or dword [ebp - 0x7c], edx
push 8
pop eax
push eax
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp - 0x68]
push eax
call fcn.1005d780
add esp, 0xc
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x68]
mov dword [ecx], eax
mov eax, dword [ebp - 0x64]
mov dword [ecx + 4], eax
mov ax, word [ecx + 8]
mov edx, 0x3e40
push 4
and ax, dx
pop edx
jmp 0x10040a54
imul esi, dword [ebx + 4], 0x28
add esi, dword [ebp - 0x14]
push esi
call fcn.100466c3
mov eax, dword [ebx + 8]
cdq
add dword [esi], eax
pop ecx
adc dword [esi + 4], edx
jmp 0x10040a36
imul ecx, dword [ebx + 4], 0x28
push 4
pop edx
add ecx, dword [ebp - 0x14]
mov dword [ebp - 0xc], ecx
movzx eax, word [ecx + 8]
test dl, al
jne 0x100411b6
push dword [ebp - 0x3d]
push 0x43
push ecx
call fcn.1000d489
mov ecx, dword [ebp - 0xc]
add esp, 0xc
movzx eax, word [ecx + 8]
push 4
pop edx
test dl, al
jne 0x100411b6
xor eax, eax
cmp dword [ebx + 8], eax
jne 0x10044b7f
push 0x14
pop eax
jmp 0x10044c54
mov edi, 0x3e40
and eax, edi
or eax, edx
jmp 0x100407c6
imul eax, dword [ebx + 4], 0x28
add eax, dword [ebp - 0x14]
test byte [eax + 8], 0x24
je 0x10044b8b
push eax
call fcn.10046847
jmp 0x10040c1d
imul eax, dword [ebx + 4], 0x28
mov ecx, 0x4000
add eax, dword [ebp - 0x14]
mov dword [ebp - 0xc], eax
test word [eax + 8], cx
je 0x100411fe
push eax
call fcn.10046454
pop ecx
jmp 0x10041200
xor eax, eax
push dword [ebp - 0x3d]
mov dword [ebp - 8], eax
movzx eax, byte [ebx + 8]
push eax
push dword [ebp - 0xc]
call fcn.1004631f
add esp, 0xc
mov eax, dword [ebp - 8]
test eax, eax
jne 0x10044c54
jmp 0x10044b8b
imul edi, dword [ebx + 0xc], 0x28
imul eax, dword [ebx + 4], 0x28
add edi, dword [ebp - 0x14]
add eax, dword [ebp - 0x14]
mov dword [ebp - 0x28], eax
movzx edx, word [edi + 8]
movzx eax, word [eax + 8]
mov ecx, edx
or ecx, eax
mov dword [ebp - 0x20], eax
xor eax, eax
mov dword [ebp - 0x34], edx
inc eax
test al, cl
je 0x100412b7
movzx eax, word [ebx + 2]
mov ecx, 0x80
test cl, al
je 0x1004128b
mov cl, dl
mov al, cl
and al, byte [ebp - 0x20]
test al, 1
je 0x10041279
test edx, 0x100
jne 0x10041279
xor eax, eax
mov edx, eax
jmp 0x10041454
xor eax, eax
inc eax
test al, cl
mov edx, eax
push 0xffffffffffffffff
pop eax
cmovne edx, eax
jmp 0x1004143b
test al, 0x20
je 0x100412ad
imul ecx, dword [ebx + 8], 0x28
xor edx, edx
inc edx
mov edi, 0x3e40
mov dword [ebp - 0x78], edx
add ecx, dword [ebp - 0x14]
mov ax, word [ecx + 8]
and ax, di
jmp 0x10040a54
push 0x10
pop ecx
test cl, al
jmp 0x1004079f
mov al, byte [ebx + 2]
and al, 0x47
cmp al, 0x43
jl 0x100413bd
push 2
pop edx
test dl, cl
je 0x100412ff
mov al, byte [ebp - 0x20]
and al, 0x2e
cmp al, dl
jne 0x100412eb
xor eax, eax
push eax
push dword [ebp - 0x28]
call fcn.1000d4eb
movzx eax, word [edi + 8]
pop ecx
pop ecx
push 2
mov dword [ebp - 0x34], eax
pop edx
mov al, byte [ebp - 0x34]
and al, 0x2e
cmp al, dl
jne 0x100412ff
xor eax, eax
push eax
push edi
call fcn.1000d4eb
pop ecx
pop ecx
mov eax, dword [ebp - 0x28]
push 4
pop ecx
mov al, byte [eax + 8]
and al, byte [edi + 8]
test cl, al
je 0x1004142a
mov eax, dword [ebp - 0x28]
mov ecx, dword [edi + 4]
mov edx, dword [edi]
cmp ecx, dword [eax + 4]
jl 0x100413b3
jg 0x1004132a
cmp edx, dword [eax]
jbe 0x100413a0
xor ecx, ecx
lea edx, [ecx + 1]
movzx eax, byte [ebx]
movzx ecx, byte [eax + 0x1006b960]
mov esi, dword [ebp - 0x28]
mov ax, word [ebp - 0x20]
mov dword [ebp - 0x24], ecx
mov word [esi + 8], ax
mov ax, word [ebp - 0x34]
mov esi, dword [ebp - 0x1c]
mov word [edi + 8], ax
movzx eax, word [ebx + 2]
test al, 0x20
je 0x10041463
imul edi, dword [ebx + 8], 0x28
mov dword [ebp - 0x78], edx
add edi, dword [ebp - 0x14]
test al, 8
je 0x1004137c
xor eax, eax
cmp byte [ebx], 0x35
sete al
cmp eax, ecx
je 0x10044b8b
mov cx, word [edi + 8]
mov eax, 0x3e40
and cx, ax
push 4
pop eax
or cx, ax
mov eax, dword [ebp - 0x24]
mov word [edi + 8], cx
cdq
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x10044b8b
cmp ecx, dword [eax + 4]
jg 0x10041270
jl 0x100413b3
cmp edx, dword [eax]
jae 0x10041270
or eax, 0xffffffff
mov edx, eax
jmp 0x1004143f
cmp al, 0x42
jne 0x1004142a
mov al, byte [ebp - 0x20]
push 2
pop ecx
test cl, al
jne 0x100413fb
test al, 0x2c
je 0x100413fb
xor eax, eax
inc eax
push eax
push dword [ebp - 0x3d]
push dword [ebp - 0x28]
call fcn.10046bbc
mov eax, dword [ebp - 0x28]
add esp, 0xc
mov ecx, 0x3e40
mov ax, word [eax + 8]
xor ax, word [ebp - 0x20]
and ax, cx
xor word [ebp - 0x20], ax
push 2
pop ecx
mov al, byte [ebp - 0x34]
test cl, al
jne 0x1004142a
test al, 0x2c
je 0x1004142a
xor eax, eax
inc eax
push eax
push dword [ebp - 0x3d]
push edi
call fcn.10046bbc
mov ax, word [edi + 8]
mov ecx, 0x3e40
xor ax, word [ebp - 0x34]
add esp, 0xc
and ax, cx
xor word [ebp - 0x34], ax
push dword [ebx + 0x10]
push dword [ebp - 0x28]
push edi
call fcn.100357c6
add esp, 0xc
mov edx, eax
test edx, edx
jns 0x1004144e
movzx ecx, byte [ebx]
movzx ecx, byte [ecx + 0x1006b950]
jmp 0x10041339
jne 0x1004132f
movzx eax, byte [ebx]
movzx ecx, byte [eax + 0x1006b958]
jmp 0x10041339
test ecx, ecx
jmp 0x1004079f
cmp dword [ebp - 0x78], 0
jne 0x10044b7f
jmp case.0x1004073c.86
xor eax, eax
inc eax
test byte [ebx + 2], al
jne 0x10041485
xor eax, eax
jmp 0x1004148d
mov eax, dword [ebx - 4]
push 4
pop ecx
add eax, ecx
mov edi, dword [ebx + 4]
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebx + 0x10]
mov dword [ebp - 0x30], edi
mov edi, dword [ebx + 8]
mov dword [ebp - 0x10], edi
xor edi, edi
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0xc], edx
test ecx, ecx
jle 0x10044b8b
add edx, 0x14
mov dword [ebp - 0x18], edx
test eax, eax
je 0x100414c1
mov ecx, dword [eax + edi*4]
jmp 0x100414c3
mov ecx, edi
mov eax, dword [ebp - 0xc]
push dword [edx]
mov eax, dword [eax + 0x10]
movzx eax, byte [edi + eax]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x10]
add eax, ecx
imul eax, eax, 0x28
add eax, dword [ebp - 0x14]
push eax
mov eax, dword [ebp - 0x30]
add eax, ecx
imul eax, eax, 0x28
add eax, dword [ebp - 0x14]
push eax
call fcn.100357c6
mov edx, eax
add esp, 0xc
mov dword [ebp - 0x78], edx
test edx, edx
jne 0x10041514
mov edx, dword [ebp - 0x18]
inc edi
push 4
pop eax
add edx, eax
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x18], edx
cmp edi, dword [ebp - 0x24]
jl 0x100414b8
jmp 0x10044b8b
cmp dword [ebp - 0x2c], 0
je 0x10044b8b
neg edx
mov dword [ebp - 0x78], edx
jmp 0x10044b8b
mov eax, dword [ebp - 0x78]
test eax, eax
jns 0x10041538
imul eax, dword [ebx + 4], 0x14
jmp 0x10044b83
je 0x10044b7f
imul eax, dword [ebx + 0xc], 0x14
jmp 0x10044b83
push 2
pop eax
push eax
imul eax, dword [ebx + 4], 0x28
add eax, dword [ebp - 0x14]
push eax
call fcn.100401c7
imul ecx, dword [ebx + 8], 0x28
mov edi, eax
push 2
pop eax
push eax
add ecx, dword [ebp - 0x14]
push ecx
call fcn.100401c7
add esp, 0x10
mov edx, eax
cmp byte [ebx], 0x2c
jne 0x10041582
imul ecx, edi, 3
movzx eax, byte [ecx + edx + 0x1006b554]
jmp 0x1004158d
imul eax, edi, 3
movzx eax, byte [eax + edx + 0x1006b5ac]
imul ecx, dword [ebx + 0xc], 0x28
push 2
pop edx
add ecx, dword [ebp - 0x14]
cmp eax, edx
jne 0x100415a5
mov edx, 0x3e40
jmp 0x10040a4a
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x10041142
imul eax, dword [ebx + 4], 0x28
push dword [ebx + 0xc]
add eax, dword [ebp - 0x14]
push eax
call fcn.100401c7
xor eax, dword [ebx + 0x10]
cdq
push edx
push eax
imul eax, dword [ebx + 8], 0x28
add eax, dword [ebp - 0x14]
push eax
call fcn.100468c6
add esp, 0x14
jmp 0x10044b8b
imul eax, dword [ebx + 4], 0x28
xor ecx, ecx
imul edi, dword [ebx + 8], 0x28
inc ecx
add eax, dword [ebp - 0x14]
add edi, dword [ebp - 0x14]
test byte [eax + 8], cl
jne 0x10041605
xor ecx, ecx
push ecx
push eax
call fcn.100401c7
neg eax
sbb eax, eax
inc eax
cdq
push edx
push eax
push edi
jmp 0x100415ce
push edi
jmp 0x10040c18
imul edi, dword [ebx + 8], 0x28
imul eax, dword [ebx + 4], 0x28
add edi, dword [ebp - 0x14]
add eax, dword [ebp - 0x14]
push edi
mov dword [ebp - 0xc], eax
call fcn.100468fc
mov eax, dword [ebp - 0xc]
pop ecx
xor ecx, ecx
inc ecx
test byte [eax + 8], cl
jne 0x10044b8b
push 4
pop ecx
push eax
mov word [edi + 8], cx
call fcn.10045c46
pop ecx
not eax
not edx
jmp 0x10041396
mov eax, dword [edi + 0xc8]
test eax, eax
je 0x10041699
mov eax, ebx
sub eax, dword [edi + 0x68]
cdq
push 0x14
pop ecx
idiv ecx
mov edx, dword [edi + 0xc8]
mov ecx, eax
shr eax, 3
mov dword [ebp - 0xc], eax
and ecx, 7
mov edx, dword [edx + 0x18]
mov dword [ebp - 0x10], edx
mov ah, byte [eax + edx]
xor edx, edx
inc edx
shl edx, cl
test ah, dl
jne 0x10044b7f
xor edx, edx
inc edx
mov al, dl
mov edx, dword [ebp - 0x10]
shl al, cl
mov ecx, dword [ebp - 0xc]
or al, ah
mov byte [ecx + edx], al
jmp 0x100416a8
mov eax, dword [edi + 0x68]
mov eax, dword [eax + 4]
cmp eax, dword [ebx + 4]
je 0x10044b7f
mov eax, dword [edi + 0x68]
mov eax, dword [eax + 4]
mov dword [ebx + 4], eax
jmp 0x10044b8b
imul eax, dword [ebx + 4], 0x28
push dword [ebx + 0xc]
add eax, dword [ebp - 0x14]
push eax
call fcn.100401c7
pop ecx
pop ecx
test eax, eax
jmp 0x1004079f
xor eax, eax
xor ecx, ecx
cmp dword [ebx + 0xc], ecx
sete al
push eax
imul eax, dword [ebx + 4], 0x28
add eax, dword [ebp - 0x14]
push eax
call fcn.100401c7
pop ecx
pop ecx
test eax, eax
je 0x10044b7f
jmp 0x10044b8b
imul eax, dword [ebx + 4], 0x28
xor edx, edx
mov ecx, dword [ebp - 0x14]
inc edx
test byte [eax + ecx + 8], dl
jmp 0x1004079f
imul eax, dword [ebx + 4], 0x28
xor edx, edx
mov ecx, dword [ebp - 0x14]
inc edx
test byte [eax + ecx + 8], dl
jmp 0x100416eb
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
cmp byte [eax + 2], 0
je 0x10044b8b
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0x14]
push eax
call fcn.100468fc
pop ecx
jmp 0x10044b7f
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x48], eax
mov eax, dword [ebx + 8]
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x48]
push eax
call fcn.100404c6
mov dword [ebp - 8], eax
pop ecx
pop ecx
test eax, eax
jne 0x10044c54
imul ecx, dword [ebx + 0xc], 0x28
mov esi, dword [ebp - 0x48]
add ecx, dword [ebp - 0x14]
mov eax, dword [esi + 0x1c]
mov edx, dword [esi + 0x48]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x50], edx
cmp eax, dword [edi + 0x20]
je 0x10041845
cmp byte [esi + 2], 0
je 0x100417b1
cmp byte [esi], 3
jne 0x10040fd3
imul ecx, dword [esi + 0x20], 0x28
add ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 0xc]
mov dword [esi + 0x54], eax
mov dword [esi + 0x50], eax
mov eax, dword [ecx + 0x10]
mov dword [esi + 0x4c], eax
jmp 0x100417e8
mov esi, dword [esi + 0x28]
push esi
call fcn.10018fed
mov ecx, dword [ebp - 0x48]
mov eax, dword [esi + 0x2c]
mov dword [ecx + 0x50], eax
lea eax, [ecx + 0x54]
push eax
push esi
call fcn.10028fe5
mov esi, dword [ebp - 0x48]
add esp, 0xc
mov ecx, dword [ebp - 0x1c]
mov dword [esi + 0x4c], eax
mov eax, dword [esi + 0x50]
cmp eax, dword [ecx + 0x6c]
ja 0x10044e4d
mov edx, dword [ebp - 0x50]
mov eax, dword [edi + 0x20]
mov dword [esi + 0x1c], eax
mov ecx, dword [esi + 0x4c]
mov al, byte [ecx]
cmp al, 0x80
jae 0x10041801
movzx eax, al
mov dword [edx], eax
xor eax, eax
inc eax
jmp 0x10041810
push edx
push ecx
call fcn.10032e8c
mov edx, dword [ebp - 0x50]
pop ecx
pop ecx
movzx eax, al
movzx eax, al
mov dword [esi + 0x30], eax
xor eax, eax
mov word [esi + 0x3a], ax
mov eax, dword [esi + 0x54]
cmp eax, dword [edx]
jae 0x100418fe
xor eax, eax
mov dword [esi + 0x4c], eax
mov dword [esi + 0x54], eax
mov eax, dword [edx]
cmp eax, 0x18003
ja 0x100419aa
cmp eax, dword [esi + 0x50]
ja 0x100419aa
movzx eax, word [esi + 0x3a]
mov ecx, dword [ebp - 0x34]
cmp eax, ecx
jg 0x10041a23
mov eax, dword [esi + 0x30]
cmp eax, dword [edx]
jae 0x10041a14
mov eax, dword [esi + 0x4c]
mov dword [ebp - 0x2c], eax
test eax, eax
jne 0x100418a9
push 0x28
push eax
lea eax, [ebp - 0x1d8]
push eax
call fcn.1005ddd0
lea eax, [ebp - 0x1d8]
push eax
mov eax, dword [ebp - 0x50]
push dword [eax]
xor eax, eax
push eax
push dword [esi + 0x28]
call fcn.1004651c
add esp, 0x1c
mov dword [ebp - 8], eax
test eax, eax
jne 0x10044c51
mov eax, dword [ebp - 0x1c8]
mov edx, dword [ebp - 0x50]
mov dword [ebp - 0x2c], eax
movzx ecx, word [esi + 0x3a]
lea esi, [esi + 0x58]
mov edi, dword [esi - 0x28]
add edi, dword [ebp - 0x2c]
mov dword [ebp - 0x24], ecx
mov eax, dword [edx + ecx*4]
lea ecx, [esi + ecx*4]
mov esi, dword [ebp - 0x24]
mov dword [ebp - 0x44], eax
xor eax, eax
mov ebx, eax
mov dword [ebp - 0x38], ecx
mov eax, dword [edx]
add eax, dword [ebp - 0x2c]
mov dword [ebp - 0x18], eax
movzx eax, byte [edi]
mov edx, 0x80
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x30], eax
mov dword [ecx], eax
cmp eax, edx
jae 0x10041903
movzx eax, al
inc edi
movzx eax, byte [eax + 0x1006b388]
cdq
add dword [ebp - 0x44], eax
adc ebx, edx
mov edx, dword [ebp - 0x44]
jmp 0x10041933
mov eax, dword [esi + 0x4c]
jmp 0x100418a6
lea eax, [ebp - 0x30]
push eax
push edi
call fcn.10032e8c
mov ecx, dword [ebp - 0x38]
movzx eax, al
add edi, eax
mov eax, dword [ebp - 0x30]
push eax
mov dword [ebp - 0x20], eax
mov dword [ecx], eax
call fcn.10047af1
mov edx, dword [ebp - 0x44]
add esp, 0xc
add edx, eax
mov dword [ebp - 0x44], edx
push 0
pop eax
adc ebx, eax
push 4
pop eax
add ecx, eax
inc esi
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x38], ecx
mov dword [eax + esi*4], edx
cmp esi, dword [ebp - 0x34]
jg 0x1004194c
cmp edi, dword [ebp - 0x18]
jb 0x100418d4
mov ecx, dword [ebp - 0x18]
cmp edi, ecx
mov dword [ebp - 0x44], edi
mov edi, dword [ebp + 8]
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x38], ebx
mov ebx, dword [ebp - 0x4c]
mov dword [ebp - 0x24], esi
mov esi, dword [ebp - 0x48]
jb 0x1004197a
cmp eax, ecx
ja 0x10041988
cmp edx, dword [esi + 0x50]
jne 0x10041988
mov ecx, dword [ebp - 0x38]
test ecx, ecx
jne 0x10041988
jmp 0x1004197d
mov ecx, dword [ebp - 0x38]
test ecx, ecx
jb 0x100419c5
ja 0x10041988
cmp edx, dword [esi + 0x50]
jbe 0x100419c5
mov eax, dword [ebp - 0x50]
xor edx, edx
cmp dword [eax], edx
jne 0x10041998
mov eax, dword [ebp - 0x18]
mov ecx, edx
jmp 0x100419ca
cmp dword [esi + 0x4c], edx
jne 0x100419aa
lea eax, [ebp - 0x1d8]
push eax
call fcn.10046870
pop ecx
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0xc]
test eax, eax
jle 0x10044c46
imul eax, eax, 0x14
lea ebx, [edx - 0x14]
add ebx, eax
jmp 0x10040a36
mov ecx, dword [ebp - 0x24]
xor edx, edx
sub eax, dword [ebp - 0x2c]
mov word [esi + 0x3a], cx
mov dword [esi + 0x30], eax
cmp dword [esi + 0x4c], edx
jne 0x100419e6
lea eax, [ebp - 0x1d8]
push eax
call fcn.10046870
pop ecx
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x20]
movzx eax, word [esi + 0x3a]
cmp eax, ecx
jg 0x10041a2d
cmp byte [ebx + 1], 0xf5
mov esi, dword [ebp - 0x28]
jne 0x10041a1d
mov eax, 0x800
push eax
push dword [ebx + 0x10]
push esi
call fcn.10046b66
add esp, 0xc
jmp 0x10040a36
xor eax, eax
mov edx, eax
mov dword [ebp - 0x20], edx
jmp 0x100419ec
push esi
jmp 0x10040fd4
mov eax, dword [ebp - 0x34]
mov edx, dword [esi + eax*4 + 0x58]
mov dword [ebp - 0x20], edx
mov ecx, dword [ebp - 0x28]
mov eax, 0x2400
test word [ecx + 8], ax
je 0x10041a45
push ecx
call fcn.100468fc
mov edx, dword [ebp - 0x20]
pop ecx
mov edi, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x34]
mov eax, dword [esi + 0x54]
cmp eax, dword [edi + ecx*4 + 4]
mov edi, dword [ebp + 8]
mov ecx, dword [ebp - 0x28]
jb 0x10041afc
mov eax, dword [esi + 0x4c]
mov ecx, dword [ebp - 0x34]
mov esi, dword [ebp - 0x50]
add eax, dword [esi + ecx*4]
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0xc], eax
cmp edx, 0xc
jae 0x10041a7f
push ecx
push edx
push eax
call fcn.100477ab
jmp 0x10041a0c
mov al, byte [ebp - 0x3d]
lea esi, [edx - 0xc]
shr esi, 1
mov byte [ecx + 0xa], al
mov dword [ebp - 0x10], esi
mov dword [ecx + 0xc], esi
lea eax, [esi + 2]
cmp dword [ecx + 0x18], eax
jge 0x10041ab9
xor edx, edx
inc edx
mov word [ecx + 8], dx
xor edx, edx
push edx
push eax
push ecx
call fcn.10046576
add esp, 0xc
test eax, eax
jne 0x10044fe9
mov ecx, dword [ebp - 0x28]
jmp 0x10041abf
mov eax, dword [ecx + 0x14]
mov dword [ecx + 0x10], eax
push esi
push dword [ebp - 0xc]
push dword [ecx + 0x10]
call fcn.1005d780
mov esi, dword [ebp - 0x28]
xor edx, edx
mov ecx, dword [ebp - 0x10]
add esp, 0xc
mov eax, dword [esi + 0x10]
mov byte [ecx + eax], dl
mov eax, dword [esi + 0x10]
mov byte [ecx + eax + 1], dl
xor ecx, ecx
mov eax, dword [ebp - 0x20]
inc ecx
and eax, ecx
mov ax, word [eax*2 + 0x1006c1b4]
mov word [esi + 8], ax
jmp 0x10040a36
mov al, byte [ebp - 0x3d]
mov byte [ecx + 0xa], al
movzx eax, word [ebx + 2]
test al, 0xc0
je 0x10041b18
cmp edx, 0xc
jb 0x10041b14
test dl, 1
je 0x10041b25
test al, al
js 0x10041b25
push edx
call fcn.10047af1
add esp, 4
test eax, eax
jne 0x10041b31
push ecx
push edx
push 0x1007dc78
jmp 0x10041a78
push ecx
mov ecx, dword [ebp - 0x34]
push eax
mov eax, dword [ebp - 0x50]
push dword [eax + ecx*4]
push dword [esi + 0x28]
call fcn.1004651c
add esp, 0x10
mov dword [ebp - 8], eax
test eax, eax
jne 0x10044c51
mov esi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
push esi
push eax
push dword [esi + 0x10]
call fcn.100477ab
mov eax, 0xefff
add esp, 0xc
and word [esi + 8], ax
jmp 0x10040a36
imul edi, dword [ebx + 4], 0x28
mov ecx, dword [ebx + 0x10]
mov dword [ebp - 0x30], ecx
add edi, dword [ebp - 0x14]
push dword [ebp - 0x3d]
movzx eax, byte [ecx]
push eax
push edi
call fcn.1000d489
mov ecx, dword [ebp - 0x30]
add esp, 0xc
cmp byte [ecx], 0x45
jne 0x10041baf
movzx eax, word [edi + 8]
push 4
pop edx
test dl, al
je 0x10041baf
and eax, 0xfffb
or eax, 0x20
mov word [edi + 8], ax
inc ecx
mov dword [ebp - 0x30], ecx
cmp byte [ecx], 0
je 0x10044b8b
add edi, 0x28
jmp 0x10041b80
imul edx, dword [ebx + 4], 0x28
xor eax, eax
mov ecx, dword [ebx + 0x10]
xorps xmm0, xmm0
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x34], eax
imul eax, dword [ebx + 8], 0x28
add edx, dword [ebp - 0x14]
movlpd qword [ebp - 0x8c], xmm0
movlpd qword [ebp - 0x74], xmm0
mov dword [ebp - 0xc], ecx
add eax, 0xffffffd8
mov dword [ebp - 0x50], edx
add eax, edx
mov dword [ebp - 0x10], eax
movzx eax, byte [edi + 0x93]
mov dword [ebp - 0x30], eax
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0x14]
mov dword [ebp - 0x2c], eax
test ecx, ecx
je 0x10041c51
push 4
lea edi, [edx + 8]
mov esi, ecx
pop ebx
push dword [ebp - 0x3d]
movzx eax, byte [esi]
push eax
lea eax, [edi - 8]
push eax
call fcn.1000d489
add esp, 0xc
cmp byte [esi], 0x45
jne 0x10041c3f
movzx eax, word [edi]
test bl, al
je 0x10041c3f
and eax, 0xfffb
or eax, 0x20
mov word [edi], ax
inc esi
add edi, 0x28
cmp byte [esi], 0
jne 0x10041c15
mov ebx, dword [ebp - 0x4c]
mov edi, dword [ebp + 8]
mov esi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x88]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebp - 0x8c]
mov dword [ebp - 0x28], ecx
mov ecx, dword [ebp - 0x70]
mov dword [ebp - 0x44], ecx
mov ecx, dword [ebp - 0x74]
mov dword [ebp - 0x48], ecx
lea ecx, [ebp - 0x98]
mov dword [ebp - 0x18], eax
push ecx
push dword [ebp - 0x30]
push eax
call fcn.100479ac
mov ecx, dword [ebp - 0x18]
mov edx, 0x4000
add esp, 0xc
mov dword [ebp - 0x24], eax
test word [ecx + 8], dx
je 0x10041cd2
test eax, eax
jne 0x10041ca5
push 0xa
pop eax
mov dword [ebp - 0x24], eax
jmp 0x10041cd2
mov eax, dword [ebp - 0x28]
or eax, dword [ebp - 0x20]
je 0x10041cbe
push ecx
call fcn.10046454
pop ecx
test eax, eax
jne 0x10044fec
jmp 0x10041ccf
mov ecx, dword [ecx]
mov eax, ecx
cdq
add dword [ebp - 0x48], eax
adc dword [ebp - 0x44], edx
sub dword [ebp - 0x98], ecx
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x28]
add ecx, dword [ebp - 0x98]
push 0
mov dword [ebp - 0x28], ecx
pop ecx
adc dword [ebp - 0x20], ecx
cmp eax, 0x7f
ja 0x10041cee
xor eax, eax
inc eax
jmp 0x10041cf7
push ecx
push eax
call fcn.1003fefa
pop ecx
pop ecx
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x24]
add ecx, eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x34], ecx
mov dword [eax + 0x1c], edx
cmp eax, dword [ebp - 0x50]
je 0x10041d15
sub eax, 0x28
jmp 0x10041c72
cmp ecx, 0x7e
jle 0x10041d43
mov eax, ecx
cdq
push edx
push eax
call fcn.1003fefa
mov esi, eax
mov eax, dword [ebp - 0x34]
add eax, esi
mov dword [ebp - 0x34], eax
cdq
push edx
push eax
call fcn.1003fefa
mov ecx, dword [ebp - 0x34]
add esp, 0x10
cmp esi, eax
mov esi, dword [ebp - 0x1c]
jge 0x10041d47
inc ecx
mov dword [ebp - 0x34], ecx
mov eax, ecx
cdq
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x28]
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x38], edx
mov edx, dword [ebp - 0x20]
adc edx, dword [ebp - 0x38]
mov dword [ebp - 0x28], eax
add eax, dword [ebp - 0x48]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x2c]
adc edx, dword [ebp - 0x44]
mov dword [ebp - 0x20], edx
mov eax, dword [eax + 0x18]
cdq
cmp dword [ebp - 0x20], edx
jg 0x10041d89
jl 0x10041d7e
cmp dword [ebp - 0x30], eax
ja 0x10041d89
mov edx, dword [ebp - 0x2c]
mov eax, dword [edx + 0x14]
mov dword [edx + 0x10], eax
jmp 0x10041dbc
mov eax, dword [esi + 0x6c]
cdq
cmp dword [ebp - 0x20], edx
jg 0x10044e4f
jl 0x10041da1
cmp dword [ebp - 0x30], eax
ja 0x10044e4f
push dword [ebp - 0x28]
push dword [ebp - 0x2c]
call fcn.100463be
pop ecx
pop ecx
test eax, eax
jne 0x10044fec
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x28]
mov edi, dword [ebp - 0x48]
mov dword [edx + 0xc], eax
push 0x10
pop eax
mov word [edx + 8], ax
mov eax, edi
or eax, dword [ebp - 0x44]
je 0x10041dde
mov eax, 0x4010
mov dword [edx], edi
mov word [edx + 8], ax
mov edi, dword [edx + 0x10]
mov edx, 0x80
lea eax, [edi + ecx]
mov dword [ebp - 0x18], eax
cmp ecx, edx
jae 0x10041df9
mov byte [edi], cl
xor ecx, ecx
inc ecx
mov eax, ecx
jmp 0x10041e0e
push dword [ebp - 0x38]
push dword [ebp - 0x24]
push edi
call fcn.1003a047
xor ecx, ecx
add esp, 0xc
inc ecx
lea edx, [ecx + 0x7f]
mov esi, dword [ebp - 0x50]
mov ebx, dword [ebp - 0x10]
movzx eax, al
add edi, eax
mov eax, dword [esi + 0x1c]
mov dword [ebp - 0xc], eax
cmp eax, edx
jae 0x10041e29
mov byte [edi], al
mov eax, ecx
jmp 0x10041e36
xor ecx, ecx
push ecx
push eax
push edi
call fcn.1003a047
add esp, 0xc
push dword [ebp - 0xc]
movzx eax, al
push esi
push dword [ebp - 0x18]
add edi, eax
call fcn.1004792b
add dword [ebp - 0x18], eax
add esp, 0xc
add esi, 0x28
push 1
pop ecx
lea edx, [ecx + 0x7f]
cmp esi, ebx
jbe 0x10041e19
jmp 0x10040a33
mov ecx, dword [ebx + 4]
xorps xmm0, xmm0
mov eax, dword [edi + 0x60]
movlpd qword [ebp - 0x8c], xmm0
mov eax, dword [eax + ecx*4]
lea ecx, [ebp - 0x8c]
push ecx
push dword [eax + 0x28]
call fcn.10027948
mov dword [ebp - 8], eax
pop ecx
pop ecx
test eax, eax
jne 0x10044c54
push ebx
push edi
call fcn.1001d1b7
pop ecx
pop ecx
mov ecx, dword [ebp - 0x8c]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x88]
jmp 0x100408b0
mov ecx, dword [ebx + 4]
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x18], eax
test ecx, ecx
jne 0x10041f7a
cmp dword [esi + 0xb4], ecx
jg 0x10044d2a
push eax
call fcn.1003de30
mov ecx, dword [esi + 0x1d0]
add ecx, dword [esi + 0x1cc]
mov dword [ebp - 0x10], eax
xor eax, eax
push ecx
push eax
push esi
call fcn.10048d56
add esp, 0x10
mov dword [ebp - 8], eax
xor ecx, ecx
test eax, eax
jne 0x10044c56
mov eax, dword [ebp - 0x10]
push ecx
add eax, 0x21
push eax
push esi
call fcn.1002b6e1
mov edi, eax
add esp, 0xc
test edi, edi
je 0x10044b8b
mov ecx, dword [ebp - 0x10]
lea edx, [edi + 0x20]
inc ecx
mov dword [edi], edx
push ecx
push dword [ebp - 0x18]
push edx
call fcn.1005d780
add esp, 0xc
cmp byte [esi + 0x4f], 0
je 0x10041f3c
xor eax, eax
mov byte [esi + 0x4f], al
inc eax
mov byte [esi + 0x57], al
jmp 0x10041f42
inc dword [esi + 0x1cc]
mov eax, dword [esi + 0x1c4]
mov dword [edi + 0x18], eax
mov eax, dword [esi + 0x1d8]
mov dword [esi + 0x1c4], edi
mov dword [edi + 8], eax
mov eax, dword [esi + 0x1dc]
mov dword [edi + 0xc], eax
mov eax, dword [esi + 0x1e0]
mov dword [edi + 0x10], eax
mov eax, dword [esi + 0x1e4]
mov dword [edi + 0x14], eax
jmp 0x10044b8b
xor eax, eax
mov dword [ebp - 0x20], eax
mov eax, dword [esi + 0x1c4]
mov dword [ebp - 0x28], eax
test eax, eax
je 0x10044d61
mov esi, dword [ebp - 0x18]
mov edi, eax
mov ebx, dword [ebp - 0x20]
push esi
push dword [edi]
call fcn.1003dddc
pop ecx
pop ecx
test eax, eax
je 0x10041fae
mov edi, dword [edi + 0x18]
inc ebx
test edi, edi
jne 0x10041f98
mov esi, dword [ebp - 0x1c]
test edi, edi
mov dword [ebp - 0x20], ebx
mov ebx, dword [ebp - 0x4c]
mov dword [ebp - 0x28], edi
mov edi, dword [ebp + 8]
je 0x10044d61
mov edx, dword [ebp - 0x34]
xor ecx, ecx
cmp dword [esi + 0xb4], ecx
jle 0x10041fdd
xor eax, eax
inc eax
cmp edx, eax
je 0x10044d3e
mov eax, dword [ebp - 0x28]
cmp dword [eax + 0x18], ecx
jne 0x1004202e
cmp byte [esi + 0x57], cl
je 0x1004202e
xor eax, eax
inc eax
mov dword [ebp - 0x18], eax
cmp edx, eax
jne 0x10042031
push eax
push edi
call fcn.10040306
mov dword [ebp - 8], eax
pop ecx
pop ecx
test eax, eax
jne 0x10044ce8
inc eax
push edi
mov byte [esi + 0x4f], al
call fcn.1004580d
pop ecx
push 5
pop ecx
cmp eax, ecx
je 0x10044d45
xor eax, eax
mov byte [esi + 0x57], al
mov eax, dword [edi + 0x28]
mov dword [ebp - 8], eax
jmp 0x1004210f
mov dword [ebp - 0x18], ecx
mov eax, dword [esi + 0x1cc]
sub eax, dword [ebp - 0x20]
push 2
dec eax
pop ecx
mov dword [ebp - 0x20], eax
cmp edx, ecx
jne 0x10042179
mov eax, dword [esi + 0x18]
xor ecx, ecx
inc ecx
and eax, ecx
xor ecx, ecx
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x10], ecx
cmp dword [esi + 0x14], ecx
jle 0x100420aa
xor edx, edx
mov dword [ebp - 0x30], ecx
test eax, eax
sete dl
mov dword [ebp - 0xc], edx
mov eax, dword [esi + 0x10]
push edx
push 0x204
push dword [ecx + eax + 4]
call fcn.100294d0
add esp, 0xc
mov dword [ebp - 8], eax
test eax, eax
jne 0x10044c54
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x30]
inc eax
push 0x10
pop edx
add ecx, edx
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0x30], ecx
cmp eax, dword [esi + 0x14]
jl 0x1004206b
mov edx, dword [ebp - 0x34]
xor ecx, ecx
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x10], ecx
cmp dword [esi + 0x14], ecx
jle 0x100420f3
mov dword [ebp - 0x30], ecx
push eax
mov eax, dword [esi + 0x10]
push edx
push dword [ecx + eax + 4]
call fcn.100291a3
add esp, 0xc
mov dword [ebp - 8], eax
test eax, eax
jne 0x10044c54
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x30]
inc eax
push 0x10
pop edx
add ecx, edx
mov dword [ebp - 0x10], eax
cmp eax, dword [esi + 0x14]
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x30], ecx
jl 0x100420b8
xor ecx, ecx
cmp dword [ebp - 0x38], 0
je 0x1004210f
push ecx
push esi
call fcn.1002cfe0
push esi
call fcn.1003a862
xor eax, eax
add esp, 0xc
inc eax
or dword [esi + 0x18], eax
mov ecx, dword [ebp - 0x28]
cmp dword [esi + 0x1c4], ecx
je 0x10042148
mov edi, ecx
mov ecx, dword [esi + 0x1c4]
push ecx
push esi
mov eax, dword [ecx + 0x18]
mov dword [esi + 0x1c4], eax
call fcn.1002b676
dec dword [esi + 0x1cc]
pop ecx
pop ecx
cmp dword [esi + 0x1c4], edi
jne 0x1004211c
mov edi, dword [ebp + 8]
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x34]
xor eax, eax
inc eax
cmp edx, eax
jne 0x10042183
mov eax, dword [ecx + 0x18]
push ecx
push esi
mov dword [esi + 0x1c4], eax
call fcn.1002b676
cmp dword [ebp - 0x18], 0
pop ecx
pop ecx
jne 0x10041216
dec dword [esi + 0x1cc]
mov edx, dword [ebp - 0x34]
jmp 0x100421b8
xor ecx, ecx
mov dword [ebp - 0x38], ecx
jmp 0x100420ad
cmp dword [ebp - 0x18], 0
mov eax, dword [ecx + 8]
mov dword [esi + 0x1d8], eax
mov eax, dword [ecx + 0xc]
mov dword [esi + 0x1dc], eax
mov eax, dword [ecx + 0x10]
mov dword [esi + 0x1e0], eax
mov eax, dword [ecx + 0x14]
mov dword [esi + 0x1e4], eax
je 0x100421b8
push 2
pop eax
cmp edx, eax
jne 0x10041216
mov ecx, dword [ebp - 0x20]
push ecx
push edx
push esi
call fcn.10048d56
add esp, 0xc
mov dword [ebp - 8], eax
test eax, eax
jne 0x10044c54
jmp 0x10041219
xor eax, eax
mov edx, eax
mov dword [ebp - 0x24], edx
cmp dword [ebx + 8], eax
je 0x100421f4
mov eax, dword [esi + 0x20]
xor ecx, ecx
and eax, 0x100000
or eax, ecx
jne 0x10044d7a
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 4]
mov dword [ebp - 0x10], eax
test eax, eax
je 0x100422d8
lea ecx, [ebp - 0x24]
push ecx
push dword [ebx + 8]
push eax
call fcn.100273ae
add esp, 0xc
mov dword [ebp - 8], eax
test eax, eax
jne 0x10044d82
xor edx, edx
cmp dword [ebx + 8], edx
je 0x1004235b
mov ecx, 0x80
test byte [edi + 0x98], cl
je 0x1004235b
cmp byte [esi + 0x4f], dl
je 0x10042256
xor ecx, ecx
inc ecx
cmp dword [esi + 0xb0], ecx
jle 0x1004235b
cmp dword [edi + 0x30], edx
jne 0x10042270
mov eax, dword [esi + 0x1cc]
inc dword [esi + 0x1d0]
add eax, dword [esi + 0x1d0]
mov dword [edi + 0x30], eax
mov eax, dword [edi + 0x30]
dec eax
push eax
push edx
push esi
call fcn.10048d56
add esp, 0xc
mov dword [ebp - 8], eax
test eax, eax
jne 0x100422b1
mov eax, dword [ebp - 0x10]
mov esi, dword [edi + 0x30]
push eax
mov edi, dword [eax + 4]
call fcn.10027d8f
push esi
push dword [edi]
call fcn.10036cde
push dword [ebp - 0x10]
mov dword [ebp - 8], eax
call fcn.10028629
mov edi, dword [ebp + 8]
add esp, 0x10
mov esi, dword [ebp - 0x1c]
mov eax, dword [esi + 0x1d8]
mov edx, dword [ebp - 0x24]
mov dword [edi + 0x48], eax
mov eax, dword [esi + 0x1dc]
mov dword [edi + 0x4c], eax
mov eax, dword [esi + 0x1e0]
mov dword [edi + 0x50], eax
mov eax, dword [esi + 0x1e4]
mov dword [edi + 0x54], eax
mov eax, dword [ebp - 8]
xor ecx, ecx
cmp word [ebx + 2], cx
je 0x10042368
cmp edx, dword [ebx + 0xc]
jne 0x10042300
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax + 4]
cmp eax, dword [ebx + 0x10]
je 0x10042363
cmp dword [edi + 0x7c], 0
je 0x10042311
push dword [edi + 0x7c]
push esi
call fcn.1002b676
pop ecx
pop ecx
push str.database_schema_has_changed
push esi
call fcn.1002b8c0
pop ecx
mov dword [edi + 0x7c], eax
mov eax, dword [esi + 0x10]
pop ecx
mov ecx, dword [ebx + 4]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov ecx, dword [ebp - 0x24]
cmp dword [eax], ecx
je 0x1004233f
push dword [ebx + 4]
push esi
call fcn.1003a8c7
pop ecx
pop ecx
mov eax, dword [edi + 0x98]
xor ecx, ecx
and eax, 0xfffffffd
inc ecx
or eax, ecx
push 0x11
mov dword [edi + 0x98], eax
pop eax
mov dword [ebp - 8], eax
jmp 0x10042366
mov edx, dword [ebp - 0x24]
jmp 0x100422db
mov eax, dword [ebp - 8]
xor ecx, ecx
test eax, eax
jne 0x10044c56
jmp 0x10044b8b
mov ecx, dword [ebx + 4]
lea eax, [ebp - 0xd8]
push eax
mov eax, dword [esi + 0x10]
add ecx, ecx
push dword [ebx + 0xc]
push dword [eax + ecx*8 + 4]
call fcn.10027e42
push ebx
push edi
call fcn.1001d1b7
mov ecx, eax
add esp, 0x14
mov eax, dword [ebp - 0xd8]
jmp 0x10040892
mov eax, dword [ebx + 4]
push dword [ebx + 0xc]
shl eax, 4
add eax, dword [esi + 0x10]
push dword [ebx + 8]
mov dword [ebp - 0x10], eax
push dword [eax + 4]
call fcn.1002954a
xor edx, edx
mov dword [ebp - 8], eax
inc edx
add esp, 0xc
cmp dword [ebx + 8], edx
jne 0x100423df
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebx + 0xc]
mov ecx, dword [ecx + 0xc]
mov dword [ecx], eax
or dword [esi + 0x18], edx
jmp 0x100423f3
push 2
pop eax
cmp dword [ebx + 8], eax
jne 0x100423f3
mov ecx, dword [ebp - 0x10]
mov al, byte [ebx + 0xc]
mov ecx, dword [ecx + 0xc]
mov byte [ecx + 0x4c], al
cmp dword [ebx + 4], edx
jne 0x10041216
xor eax, eax
push eax
push esi
call fcn.1002cfe0
and dword [edi + 0x98], 0xfffffffc
pop ecx
pop ecx
jmp 0x10041216
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x1004242c
mov eax, dword [edx + 0x34]
cmp eax, dword [ebx + 8]
je 0x10042529
mov cl, byte [ebp - 0x39]
mov eax, dword [edi + 0x98]
xor edx, edx
and al, 3
inc edx
cmp al, dl
je 0x10044da3
mov edx, dword [ebx + 8]
xor eax, eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x38], eax
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x30], eax
shl eax, 4
add eax, dword [esi + 0x10]
mov dword [ebp - 0x18], edx
mov edx, dword [eax + 4]
mov dword [ebp - 0x24], edx
mov edx, dword [ebp - 0x18]
cmp cl, 0x6d
jne 0x1004248d
mov eax, dword [eax + 0xc]
movzx ecx, word [ebx + 2]
and ecx, 8
or ecx, 4
mov al, byte [eax + 0x4c]
mov dword [ebp - 0x10], ecx
cmp al, byte [edi + 0x93]
jae 0x10042492
mov byte [edi + 0x93], al
jmp 0x10042492
xor eax, eax
mov dword [ebp - 0x10], eax
push 0x10
pop eax
test byte [ebx + 2], al
je 0x100424af
imul esi, edx, 0x28
add esi, dword [ebp - 0x14]
push esi
call fcn.100466c3
mov eax, dword [esi]
mov esi, dword [ebp - 0x1c]
pop ecx
mov dword [ebp - 0x18], eax
mov al, byte [ebx + 1]
cmp al, 0xf7
jne 0x100424c2
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x38], eax
movzx eax, word [eax + 8]
jmp 0x100424ce
cmp al, 0xfd
jne 0x100424cb
mov eax, dword [ebx + 0x10]
jmp 0x100424ce
mov eax, dword [ebp - 0xc]
xor ecx, ecx
push ecx
push dword [ebp - 0x30]
push eax
push dword [ebx + 4]
push edi
call fcn.1000c6da
add esp, 0x14
mov dword [ebp - 0xc], eax
test eax, eax
je 0x10044fec
xor ecx, ecx
push 4
inc ecx
mov byte [eax + 2], cl
pop ecx
push dword [eax + 0x28]
or dword [eax + 8], ecx
push dword [ebp - 0x38]
mov ecx, dword [ebp - 0x18]
push dword [ebp - 0x10]
mov dword [eax + 0x34], ecx
push ecx
push dword [ebp - 0x24]
call fcn.10027a56
mov edx, dword [ebp - 0xc]
add esp, 0x14
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x38]
mov dword [edx + 0x2c], eax
cmp byte [ebx + 1], 0xf7
setne al
mov byte [edx + 4], al
mov cl, byte [ebx + 2]
mov eax, dword [edx + 0x28]
and cl, 3
mov byte [eax + 3], cl
jmp 0x10041216
mov ecx, dword [ebx + 8]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
xor ecx, ecx
push ecx
or ecx, 0xffffffff
mov dword [ebp - 0xc], eax
push ecx
movsx eax, word [eax + 0x38]
push eax
push dword [ebx + 4]
push edi
call fcn.1000c6da
mov edx, eax
add esp, 0x14
test edx, edx
je 0x10044fec
mov edi, dword [ebp - 0xc]
xor eax, eax
inc eax
or dword [edx + 8], eax
mov byte [edx + 2], al
mov ecx, dword [edi + 0x2c]
mov dword [edx + 0x2c], ecx
mov al, byte [edi + 4]
push 4
pop ecx
push dword [edx + 0x28]
mov byte [edx + 4], al
mov eax, dword [edi + 0x34]
push dword [edx + 0x2c]
mov dword [edx + 0x34], eax
mov eax, dword [edi + 8]
xor eax, dword [edx + 8]
push ecx
push dword [edx + 0x34]
and eax, ecx
xor dword [edx + 8], eax
push dword [edi + 0xc]
call fcn.10027a56
add esp, 0x14
mov dword [ebp - 8], eax
jmp 0x10044b8b
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 4]
mov esi, dword [eax + ecx*4]
xor eax, eax
test esi, esi
je 0x100425e9
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], eax
mov dword [esi + 0x1c], eax
cmp dword [esi + 0xc], eax
je 0x100426da
push eax
push dword [esi + 0x34]
push dword [esi + 0xc]
call fcn.100275fe
add esp, 0xc
mov dword [ebp - 8], eax
jmp 0x100426dd
push eax
or eax, 0xffffffff
push eax
push dword [ebx + 8]
push ecx
push edi
call fcn.1000c6da
mov esi, eax
add esp, 0x14
test esi, esi
je 0x10044fe9
push 0x41e
xor eax, eax
push 5
inc eax
or dword [esi + 8], eax
lea eax, [esi + 0xc]
movzx ecx, word [ebx + 2]
pop edx
or ecx, edx
push ecx
mov ecx, dword [ebp - 0x1c]
push eax
push ecx
xor eax, eax
push eax
push dword [ecx]
call fcn.10028a7f
add esp, 0x18
mov dword [ebp - 8], eax
test eax, eax
jne 0x100426c0
push eax
inc eax
push eax
push dword [esi + 0xc]
call fcn.100273ae
add esp, 0xc
mov dword [ebp - 8], eax
test eax, eax
jne 0x100426c0
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0xc], eax
mov dword [esi + 0x2c], eax
test eax, eax
je 0x1004269b
movzx eax, word [ebx + 2]
lea ecx, [esi + 0x34]
push 2
pop edx
or eax, edx
push eax
push ecx
push dword [esi + 0xc]
call fcn.10027a2a
add esp, 0xc
mov dword [ebp - 8], eax
test eax, eax
jne 0x10042697
push dword [esi + 0x28]
push dword [ebp - 0xc]
push 4
pop eax
push eax
push dword [esi + 0x34]
push dword [esi + 0xc]
call fcn.10027a56
add esp, 0x14
mov dword [ebp - 8], eax
xor eax, eax
jmp 0x100426bd
push dword [esi + 0x28]
xor eax, eax
xor ecx, ecx
push eax
push 4
pop eax
inc ecx
push eax
push ecx
push dword [esi + 0xc]
mov dword [esi + 0x34], ecx
call fcn.10027a56
mov dword [ebp - 8], eax
add esp, 0x14
xor eax, eax
inc eax
mov byte [esi + 4], al
xor eax, eax
push 8
pop ecx
cmp word [ebx + 2], cx
push 4
setne al
shl eax, 2
xor eax, dword [esi + 8]
pop ecx
and eax, ecx
xor dword [esi + 8], eax
mov eax, dword [ebp - 8]
test eax, eax
jne 0x10044c51
inc eax
mov byte [esi + 2], al
jmp 0x10040a36
xor eax, eax
inc eax
push eax
or eax, 0xffffffff
push eax
push dword [ebx + 8]
push dword [ebx + 4]
push edi
call fcn.1000c6da
add esp, 0x14
test eax, eax
je 0x10044fec
mov ecx, dword [ebx + 0x10]
push eax
mov dword [eax + 0x2c], ecx
push dword [ebx + 0xc]
push esi
call fcn.10047c98
add esp, 0xc
mov dword [ebp - 8], eax
jmp 0x10041219
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 4]
mov edx, dword [eax + ecx*4]
xor eax, eax
inc eax
mov edi, dword [edx + 0x10]
mov ecx, edi
mov esi, dword [edx + 0x14]
add ecx, eax
mov eax, esi
mov dword [edx + 0x10], ecx
adc eax, 0
or edi, esi
mov esi, dword [ebp - 0x1c]
mov dword [edx + 0x14], eax
jmp 0x100416eb
push 3
or eax, 0xffffffff
push eax
push dword [ebx + 0xc]
push dword [ebx + 4]
push edi
call fcn.1000c6da
add esp, 0x14
test eax, eax
je 0x10044fec
xor edx, edx
inc edx
mov byte [eax + 2], dl
mov ecx, dword [ebx + 8]
mov dword [eax + 0x20], ecx
mov byte [eax + 4], dl
mov dword [eax + 0x28], 0x1007d924
jmp 0x10044b8b
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
push dword [eax + ecx*4]
push edi
call fcn.10045709
mov eax, dword [edi + 0x60]
xor edx, edx
pop ecx
pop ecx
mov ecx, dword [ebx + 4]
mov dword [eax + ecx*4], edx
jmp 0x10044b8b
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 4]
mov ecx, dword [eax + ecx*4]
xor eax, eax
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x24], eax
mov word [ecx + 2], ax
mov dword [ecx + 0x1c], eax
cmp byte [ecx + 4], al
je 0x100428b9
imul ecx, dword [ebx + 0xc], 0x28
push 2
pop edx
add ecx, dword [ebp - 0x14]
mov dword [ebp - 0x18], ecx
mov al, byte [ecx + 8]
and al, 0x2e
cmp al, dl
jne 0x100427f1
xor eax, eax
push eax
push ecx
call fcn.1000d4eb
pop ecx
pop ecx
mov ecx, dword [ebp - 0x18]
push ecx
call fcn.10045c46
pop ecx
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x48], edx
movzx ecx, word [ecx + 8]
test cl, 0x24
jne 0x1004287e
test cl, 8
jne 0x10042845
xor eax, eax
inc eax
test al, cl
jne 0x10044b7f
cmp dword [ebp - 0x20], 0x18
jge 0x10044b7f
lea eax, [ebp - 0x5c]
push eax
mov eax, dword [ebp - 0x2c]
push dword [eax + 0x28]
call fcn.100285d4
mov dword [ebp - 8], eax
pop ecx
pop ecx
test eax, eax
jne 0x10044c54
jmp 0x100429d1
mov edx, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x38]
call fcn.1005f47f
mov eax, dword [ebp - 0x18]
movsd xmm1, qword [eax]
comisd xmm0, xmm1
jbe 0x1004286a
mov eax, dword [ebp - 0x20]
xor ecx, ecx
inc ecx
test cl, al
je 0x1004287e
dec eax
jmp 0x1004287b
comisd xmm1, xmm0
jbe 0x1004287e
mov eax, dword [ebp - 0x20]
xor ecx, ecx
inc ecx
test cl, al
jne 0x1004287e
inc eax
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x5c]
push eax
xor eax, eax
push eax
push dword [ebp - 0x48]
push dword [ebp - 0x38]
push eax
mov eax, dword [ebp - 0x2c]
push dword [eax + 0x28]
call fcn.100286a9
mov ecx, dword [ebp - 0x2c]
add esp, 0x18
mov edx, dword [ebp - 0x38]
mov dword [ebp - 8], eax
mov dword [ecx + 0x40], edx
mov edx, dword [ebp - 0x48]
mov dword [ecx + 0x44], edx
test eax, eax
jne 0x10044c54
jmp 0x10042943
mov eax, dword [ecx + 0x28]
test byte [eax + 3], 2
mov eax, dword [ebp - 0x24]
cmovne eax, dword [ebp - 0xa8]
mov dword [ebp - 0x24], eax
mov eax, dword [ecx + 0x2c]
mov dword [ebp - 0xe8], eax
mov ax, word [ebx + 0x10]
mov word [ebp - 0xe0], ax
mov eax, edx
xor edx, edx
inc edx
and al, dl
neg al
sbb al, al
xor edx, edx
and al, 0xfe
mov byte [ebp - 0xda], dl
inc al
mov byte [ebp - 0xde], al
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0x14]
mov dword [ebp - 0xe4], eax
lea eax, [ebp - 0x5c]
push eax
push edx
push edx
push edx
lea eax, [ebp - 0xe8]
push eax
push dword [ecx + 0x28]
call fcn.100286a9
add esp, 0x18
mov dword [ebp - 8], eax
test eax, eax
jne 0x10044c54
cmp dword [ebp - 0x24], eax
je 0x10042940
cmp byte [ebp - 0xda], al
je 0x100429d1
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x5c]
cmp eax, 0x18
jl 0x1004298e
test edx, edx
js 0x10042960
jne 0x10042959
cmp eax, 0x19
je 0x10042960
xor eax, eax
mov dword [ebp - 0x5c], eax
jmp 0x100429db
xor eax, eax
push eax
push dword [ecx + 0x28]
mov dword [ebp - 0x5c], eax
call fcn.10028a36
mov dword [ebp - 8], eax
pop ecx
pop ecx
test eax, eax
je 0x100429db
cmp eax, 0x65
jne 0x10044c54
xor eax, eax
mov dword [ebp - 8], eax
inc eax
mov dword [ebp - 0x5c], eax
jmp 0x10044b7f
test edx, edx
jg 0x100429a8
jne 0x10042999
cmp eax, 0x16
je 0x100429a8
mov eax, dword [ecx + 0x28]
xor ecx, ecx
cmp byte [eax], cl
setne cl
mov dword [ebp - 0x5c], ecx
jmp 0x100429d1
xor eax, eax
push eax
push dword [ecx + 0x28]
mov dword [ebp - 0x5c], eax
call fcn.10029011
mov dword [ebp - 8], eax
pop ecx
pop ecx
test eax, eax
je 0x100429db
cmp eax, 0x65
jne 0x10044c54
xor eax, eax
mov dword [ebp - 8], eax
inc eax
mov dword [ebp - 0x5c], eax
cmp dword [ebp - 0x5c], 0
jne 0x10044b7f
cmp dword [ebp - 0x24], 0
je 0x10044b8b
push 0x14
pop eax
jmp 0x10044b89
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 4]
push 8
pop edx
mov ecx, dword [eax + ecx*4]
mov eax, dword [ebx + 8]
shl eax, 3
xor eax, dword [ecx + 8]
and eax, edx
xor dword [ecx + 8], eax
jmp 0x10044b8b
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
test byte [eax + 8], 8
jne 0x10044b8b
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov edx, dword [eax + ecx*4]
xor eax, eax
imul ecx, dword [ebx + 0xc], 0x28
mov dword [ebp - 0x24], edx
add ecx, dword [ebp - 0x14]
mov dword [ebp - 0xc], ecx
cmp dword [ebx + 0x10], eax
jle 0x10042a63
mov eax, dword [edx + 0x2c]
mov dword [ebp - 0x140], eax
mov ax, word [ebx + 0x10]
mov dword [ebp - 0x13c], ecx
xor ecx, ecx
mov word [ebp - 0x138], ax
lea eax, [ebp - 0x140]
mov dword [ebp - 0x10], ecx
jmp 0x10042ab8
mov eax, 0x4000
test word [ecx + 8], ax
push 0
pop eax
je 0x10042a7b
push ecx
call fcn.10046454
mov edx, dword [ebp - 0x24]
pop ecx
test eax, eax
jne 0x10044fec
push dword [edx + 0x2c]
call fcn.10040155
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x10], eax
pop ecx
test eax, eax
je 0x10044fec
mov edx, dword [ebp - 0x24]
push eax
mov eax, dword [ebp - 0xc]
push dword [eax + 0x10]
push dword [eax + 0xc]
push dword [edx + 0x2c]
call fcn.100475c8
mov eax, dword [ebp - 0x30]
add esp, 0x10
mov edx, dword [ebp - 0x24]
xor ecx, ecx
mov byte [eax + 0xa], cl
cmp byte [ebx], 0x1b
mov dword [ebp - 0x30], ecx
jne 0x10042af5
mov dword [ebp - 0x18], ecx
movzx ecx, word [eax + 8]
test ecx, ecx
jle 0x10042af5
mov ecx, dword [eax + 4]
add ecx, 8
test byte [ecx], 1
jne 0x10042aef
movzx esi, word [eax + 8]
add ecx, 0x28
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
mov esi, dword [ebp - 0x1c]
jl 0x10042ad6
jmp 0x10042af5
xor ecx, ecx
inc ecx
mov dword [ebp - 0x30], ecx
lea ecx, [ebp - 0xc8]
push ecx
xor ecx, ecx
push ecx
push ecx
push ecx
push eax
push dword [edx + 0x28]
call fcn.100286a9
mov ecx, dword [ebp - 0x10]
add esp, 0x18
mov dword [ebp - 8], eax
test ecx, ecx
je 0x10042b23
push ecx
push esi
call fcn.1002b676
mov eax, dword [ebp - 8]
pop ecx
pop ecx
xor ecx, ecx
test eax, eax
jne 0x10044c56
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0xc8]
test eax, eax
sete cl
mov dword [edx + 0x20], eax
xor eax, eax
inc eax
sub al, cl
mov byte [edx + 2], al
xor eax, eax
mov byte [edx + 3], al
mov dword [edx + 0x1c], eax
cmp byte [ebx], 0x1d
je 0x10041463
cmp dword [ebp - 0x30], eax
jne 0x10044b7f
test ecx, ecx
jmp 0x100416eb
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0x14]
mov dword [ebp - 0xc], eax
movzx ecx, word [eax + 8]
test cl, 0x24
jne case.0x1004073c.31
push dword [ebp - 0x3d]
mov esi, ecx
push 0x43
push eax
call fcn.1000d489
mov ecx, dword [ebp - 0xc]
xor edx, edx
inc edx
add esp, 0xc
movzx eax, word [ecx + 8]
shr eax, 2
not eax
mov word [ecx + 8], si
and eax, edx
jne 0x100445a3
mov eax, dword [edi + 0x60]
xor edx, edx
mov ecx, dword [ebx + 4]
mov esi, dword [ebp - 0x4c]
mov dword [ebp - 0x10], edx
mov ebx, dword [eax + ecx*4]
imul eax, dword [esi + 0xc], 0x28
mov ecx, dword [ebp - 0x14]
mov esi, dword [eax + ecx]
mov edi, dword [eax + ecx + 4]
lea eax, [ebp - 0x10]
push eax
push edx
push edi
push esi
push edx
push dword [ebx + 0x28]
call fcn.100286a9
mov dword [ebp - 8], eax
add esp, 0x18
xor eax, eax
mov dword [ebx + 0x40], esi
mov word [ebx + 2], ax
mov dword [ebx + 0x1c], eax
mov eax, dword [ebp - 0x10]
mov dword [ebx + 0x44], edi
mov dword [ebx + 0x20], eax
mov ebx, dword [ebp - 0x4c]
test eax, eax
je 0x10042c11
xor eax, eax
cmp dword [ebx + 8], eax
jne 0x100445a3
push 0x158e2
call fcn.1002a4f5
pop ecx
mov dword [ebp - 8], eax
jmp 0x10042c14
mov eax, dword [ebp - 8]
mov esi, dword [ebp - 0x1c]
test eax, eax
je 0x10044b8b
mov edi, dword [ebp + 8]
jmp 0x10044c54
push ebx
push edi
call fcn.1001d1b7
mov edx, dword [ebx + 4]
pop ecx
pop ecx
mov ecx, dword [edi + 0x60]
push 0
mov edx, dword [ecx + edx*4]
mov ecx, dword [edx + 0x10]
mov dword [eax], ecx
mov ecx, dword [edx + 0x14]
mov dword [eax + 4], ecx
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
xor ecx, ecx
inc ecx
add dword [eax + 0x10], ecx
pop ecx
adc dword [eax + 0x14], ecx
jmp 0x10044b8b
xorps xmm0, xmm0
xor eax, eax
push ebx
push edi
movlpd qword [ebp - 0x58], xmm0
mov dword [ebp - 0x2c], eax
call fcn.1001d1b7
mov edx, dword [ebx + 4]
pop ecx
pop ecx
mov ecx, dword [edi + 0x60]
push 2
mov dword [ebp - 0x30], eax
pop eax
mov edx, dword [ecx + edx*4]
mov dword [ebp - 0x34], edx
test byte [edx + 8], al
jne 0x10042cf5
lea eax, [ebp - 0x2c]
push eax
push dword [edx + 0x28]
call fcn.100285d4
mov dword [ebp - 8], eax
pop ecx
pop ecx
test eax, eax
jne 0x10044c54
cmp dword [ebp - 0x2c], eax
je 0x10042cb4
lea ecx, [eax + 1]
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x54], eax
jmp 0x10042cfb
mov eax, dword [ebp - 0x34]
push dword [eax + 0x28]
call fcn.100282c5
pop ecx
mov ecx, eax
mov eax, edx
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x54], eax
cmp eax, 0x7fffffff
jl 0x10042ce9
jg 0x10042ce0
or edx, 0xffffffff
cmp ecx, edx
jb 0x10042ce9
mov edx, dword [ebp - 0x34]
or dword [edx + 8], 2
jmp 0x10042d01
xor edx, edx
inc edx
add ecx, edx
push 0
pop edx
adc eax, edx
jmp 0x10042cac
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x58]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x20], ecx
mov edx, dword [ebx + 0xc]
test edx, edx
je 0x10042d95
mov ecx, dword [edi + 0xc8]
test ecx, ecx
jne 0x10042d7e
imul eax, edx, 0x28
add eax, dword [ebp - 0x14]
push eax
mov dword [ebp - 0x10], eax
call fcn.100466c3
mov edx, dword [ebp - 0x10]
pop ecx
mov eax, dword [edx]
mov ecx, dword [edx + 4]
cmp eax, 0xffffffff
jne 0x10042d3f
cmp ecx, 0x7fffffff
je 0x10042e05
mov esi, dword [ebp - 0x34]
test byte [esi + 8], 2
mov esi, dword [ebp - 0x1c]
jne 0x10042e05
add eax, 1
mov dword [ebp - 0x10], eax
push 0
pop eax
adc ecx, eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0xc], ecx
cmp eax, ecx
jg 0x10042d8d
jl 0x10042d6e
mov ecx, dword [ebp - 0x20]
cmp ecx, dword [ebp - 0x10]
jae 0x10042d90
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x54], eax
jmp 0x10042d90
mov ecx, eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x10042d7c
imul eax, edx, 0x28
add eax, dword [ecx + 0x10]
jmp 0x10042d1c
mov ecx, dword [ebp - 0x20]
mov dword [edx], ecx
mov dword [edx + 4], eax
mov edx, dword [ebp - 0x34]
test byte [edx + 8], 2
je 0x10042e15
xor eax, eax
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x58]
push eax
push 8
pop eax
push eax
call fcn.100070f3
mov eax, dword [ebp - 0x54]
xor edx, edx
mov ecx, dword [ebp - 0x58]
inc edx
push 0
and eax, 0x3fffffff
add ecx, edx
pop edx
adc eax, edx
mov dword [ebp - 0x20], ecx
lea edx, [ebp - 0x2c]
mov dword [ebp - 0x28], eax
push edx
xor edx, edx
mov dword [ebp - 0x54], eax
push edx
push eax
mov eax, dword [ebp - 0x34]
push ecx
push edx
mov dword [ebp - 0x58], ecx
push dword [eax + 0x28]
call fcn.100286a9
add esp, 0x20
mov dword [ebp - 8], eax
test eax, eax
jne 0x10044c54
cmp dword [ebp - 0x2c], eax
jne 0x10042e0c
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
cmp eax, 0x64
jl 0x10042da3
push 0xd
jmp 0x100411b0
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x34]
and dword [edx + 0x1c], 0
mov byte [edx + 3], 0
mov edx, dword [ebp - 0x30]
mov dword [edx], ecx
mov dword [edx + 4], eax
jmp 0x10044b8b
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 4]
imul edx, dword [ebx + 8], 0x28
mov esi, dword [ebp - 0x14]
mov ecx, dword [eax + ecx*4]
imul eax, dword [ebx + 0xc], 0x28
add edx, esi
mov dword [ebp - 0x18], ecx
cmp byte [ebx + 1], 0xfa
mov esi, dword [eax + esi]
mov dword [ebp - 0x160], esi
mov dword [ebp - 0xc], esi
mov esi, dword [ebp - 0x14]
mov eax, dword [eax + esi + 4]
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x15c], eax
jne 0x10042e86
xor eax, eax
cmp dword [esi + 0xec], eax
je 0x10042e88
movsx ecx, byte [ecx + 1]
mov eax, dword [esi + 0x10]
add ecx, ecx
mov ecx, dword [eax + ecx*8]
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x38], ecx
jmp 0x10042e8b
xor eax, eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x30], eax
xor eax, eax
inc eax
test byte [ebx + 2], al
je 0x10042e99
inc dword [edi + 0x2c]
test byte [ebx + 2], 0x20
je 0x10042eab
mov eax, dword [ebp - 0xc]
mov dword [esi + 0x28], eax
mov eax, dword [ebp - 0x10]
mov dword [esi + 0x2c], eax
mov eax, dword [edx + 0x10]
movzx ecx, word [ebx + 2]
mov dword [ebp - 0x158], eax
mov eax, dword [edx + 0xc]
push 0x10
mov dword [ebp - 0x14c], eax
pop eax
test al, cl
je 0x10042ed0
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x20]
jmp 0x10042ed2
xor eax, eax
mov dword [ebp - 0x10], eax
mov eax, 0x4000
test word [edx + 8], ax
push 0
pop eax
je 0x10042eef
mov eax, dword [edx]
mov dword [ebp - 0x148], eax
xor eax, eax
jmp 0x10042ef5
mov dword [ebp - 0x148], eax
push dword [ebp - 0x10]
mov dword [ebp - 0x168], eax
and ecx, 0xa
push ecx
lea eax, [ebp - 0x168]
push eax
mov eax, dword [ebp - 0x18]
push dword [eax + 0x28]
call fcn.10027f52
mov ecx, dword [ebp - 0x18]
xor edx, edx
add esp, 0x10
mov dword [ebp - 8], eax
mov byte [ecx + 3], dl
mov dword [ecx + 0x1c], edx
test eax, eax
jne 0x10044c54
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x10044b8b
push dword [ebp - 0x15c]
push dword [ebp - 0x160]
push dword [eax]
push dword [ebp - 0x38]
push 4
pop eax
test byte [ebx + 2], al
push 0x12
pop eax
push 0x17
pop ecx
cmovne eax, ecx
push eax
push dword [esi + 0xe8]
call dword [esi + 0xec]
add esp, 0x18
jmp 0x10044b8b
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 4]
mov dword [ebp - 0xc], eax
mov eax, dword [edi + 0x60]
mov edx, dword [eax + ecx*4]
xor eax, eax
cmp byte [ebx + 1], 0xfa
mov dword [ebp - 0x18], edx
jne 0x10042fc8
cmp dword [esi + 0xec], eax
je 0x10042fc8
movsx ecx, byte [edx + 1]
mov eax, dword [esi + 0x10]
add ecx, ecx
push 2
mov eax, dword [eax + ecx*8]
mov dword [ebp - 0x30], eax
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x10], eax
pop eax
test byte [ebx + 2], al
je 0x10042fce
cmp byte [edx + 4], 0
je 0x10042fce
push dword [edx + 0x28]
call fcn.100282c5
pop ecx
mov ecx, dword [ebp - 0x18]
mov dword [ecx + 0x44], edx
mov edx, ecx
mov dword [ecx + 0x40], eax
jmp 0x10042fce
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x10], eax
movzx eax, byte [ebx + 2]
push eax
push dword [edx + 0x28]
call fcn.10027a9d
pop ecx
pop ecx
mov ecx, dword [ebp - 0x18]
xor edx, edx
mov dword [ebp - 8], eax
mov dword [ecx + 0x1c], edx
mov dword [ecx + 0x20], edx
test eax, eax
jne 0x10044c54
inc eax
test byte [ebp - 0xc], al
je 0x10044b8b
inc dword [edi + 0x2c]
mov edx, dword [esi + 0xec]
test edx, edx
je 0x10044b8b
mov eax, dword [ebp - 0x10]
test byte [eax + 0x24], 0x20
jne 0x10044b8b
push dword [ecx + 0x44]
push dword [ecx + 0x40]
push dword [eax]
push dword [ebp - 0x30]
push 9
push dword [esi + 0xe8]
call edx
jmp 0x10042f65
mov eax, dword [edi + 0x2c]
add dword [esi + 0x68], eax
mov dword [esi + 0x64], eax
xor eax, eax
mov dword [edi + 0x2c], eax
jmp 0x10044b8b
mov eax, dword [edi + 0x60]
xor edx, edx
mov ecx, dword [ebx + 4]
mov dword [ebp - 0x20], edx
lea edx, [ebp - 0x20]
push edx
push dword [ebx + 0x10]
mov ecx, dword [eax + ecx*4]
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0x14]
push eax
push ecx
call fcn.10047c07
add esp, 0x10
mov dword [ebp - 8], eax
test eax, eax
jne 0x10044c54
cmp dword [ebp - 0x20], eax
jmp 0x1004079f
imul edx, dword [ebx + 8], 0x28
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
add edx, dword [ebp - 0x14]
push edx
push dword [eax + ecx*4]
call fcn.10047fff
mov dword [ebp - 8], eax
pop ecx
pop ecx
test eax, eax
jne 0x10044c54
mov ecx, dword [ebx + 0xc]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
xor ecx, ecx
mov dword [eax + 0x1c], ecx
jmp 0x10044b8b
push ebx
push edi
call fcn.1001d1b7
mov edx, dword [ebx + 4]
mov ecx, dword [edi + 0x60]
mov dword [ebp - 0x10], eax
mov ecx, dword [ecx + edx*4]
mov eax, dword [ecx + 0x28]
push eax
mov dword [ebp - 0xc], eax
call fcn.10018fed
mov eax, dword [ebp - 0xc]
add esp, 0xc
mov ecx, dword [eax + 0x2c]
cmp ecx, dword [esi + 0x6c]
ja 0x10044e4f
push dword [ebp - 0x10]
push ecx
xor ecx, ecx
push ecx
push eax
call fcn.1004651c
add esp, 0x10
mov dword [ebp - 8], eax
test eax, eax
jne 0x10044c54
cmp dword [ebx + 0xc], eax
jne 0x10044b8b
mov eax, dword [ebp - 0x10]
mov ecx, 0x1000
test word [eax + 8], cx
je 0x10044b8b
push eax
call fcn.100466ef
pop ecx
test eax, eax
jne 0x10044fec
jmp 0x10044b8b
push ebx
push edi
call fcn.1001d1b7
mov edx, dword [ebx + 4]
pop ecx
pop ecx
mov ecx, dword [edi + 0x60]
mov dword [ebp - 0x10], eax
mov ecx, dword [ecx + edx*4]
mov dword [ebp - 0xc], ecx
cmp byte [ecx + 2], 0
je 0x10043158
xor ecx, ecx
inc ecx
jmp 0x10040779
cmp byte [ecx + 3], 0
je 0x10043175
mov edi, dword [ecx + 0x40]
mov dword [ebp - 0xa0], edi
mov eax, dword [ecx + 0x44]
mov dword [ebp - 0x9c], eax
jmp 0x100431f7
push 2
pop eax
cmp byte [ecx], al
jne 0x100431b1
mov ecx, dword [ecx + 0x28]
lea edx, [ebp - 0xa0]
push edx
push ecx
mov esi, dword [ecx]
mov eax, dword [esi]
call dword [eax + 0x30]
push esi
push edi
mov dword [ebp - 8], eax
call fcn.10048bdd
mov eax, dword [ebp - 8]
add esp, 0x10
mov esi, dword [ebp - 0x1c]
test eax, eax
jne 0x10044c54
mov edi, dword [ebp - 0xa0]
jmp 0x100431f7
mov eax, dword [ecx + 0x28]
cmp byte [eax], 0
je 0x100431c5
push ecx
call fcn.1001972b
pop ecx
mov ecx, dword [ebp - 0xc]
jmp 0x100431c7
xor eax, eax
mov dword [ebp - 8], eax
test eax, eax
jne 0x10044c54
cmp byte [ecx + 2], al
je 0x100431e0
mov ecx, dword [ebp - 0x10]
inc eax
jmp 0x100407c6
push dword [ecx + 0x28]
call fcn.100282c5
mov edi, eax
mov dword [ebp - 0x9c], edx
pop ecx
mov dword [ebp - 0xa0], edi
mov ecx, dword [ebp - 0x10]
mov dword [ecx], edi
mov eax, dword [ebp - 0x9c]
mov dword [ecx + 4], eax
jmp 0x10044b8b
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
xor ecx, ecx
inc ecx
mov byte [eax + 2], cl
xor ecx, ecx
mov dword [eax + 0x1c], ecx
cmp byte [eax], cl
jne 0x10044b8b
push dword [eax + 0x28]
call fcn.100275e4
jmp 0x10040c1d
mov ecx, dword [ebx + 4]
xor edx, edx
cmp byte [ebp - 0x39], 0x82
mov eax, dword [edi + 0x60]
mov dword [ebp - 0x28], edx
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xc], eax
mov ecx, dword [eax + 0x28]
jne 0x1004325c
or edx, 0xffffffff
mov dword [eax + 0x20], edx
cmp byte [ecx], 0
je 0x10044b8b
lea eax, [ebp - 0x28]
push eax
push ecx
call fcn.100285d4
mov edx, dword [ebp - 0x28]
pop ecx
pop ecx
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 8], eax
and dword [ecx + 0x1c], 0
mov byte [ecx + 2], dl
mov byte [ecx + 3], 0
test eax, eax
jne 0x10044c54
cmp dword [ebx + 8], eax
jle 0x10044b8b
test edx, edx
jmp 0x1004079f
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
lea ecx, [ebp - 0xac]
push ecx
mov eax, dword [eax + 0x28]
push eax
mov dword [ebp - 0xc], eax
call fcn.10027dc2
mov dword [ebp - 8], eax
pop ecx
pop ecx
test eax, eax
jne 0x10044c54
cmp dword [ebp - 0xac], eax
jne 0x10044b7f
push dword [ebp - 0xc]
call fcn.10029144
pop ecx
xor ecx, ecx
cmp edx, ecx
jl 0x10044b8b
jg 0x100432e6
cmp eax, ecx
jb 0x10044b8b
push edx
push eax
call fcn.100353e8
cwde
pop ecx
pop ecx
cmp eax, dword [ebx + 0xc]
jge 0x10044b8b
xor eax, eax
inc eax
mov dword [ebp - 0xac], eax
jmp 0x10044b7f
inc dword [edi + 0xac]
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
xor ecx, ecx
inc ecx
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x18], ecx
cmp byte [eax], cl
lea ecx, [ebp - 0x18]
push ecx
jne 0x10043334
push eax
call fcn.10047f9c
pop ecx
pop ecx
mov ecx, dword [ebp - 0x10]
jmp 0x10043349
push dword [eax + 0x28]
call fcn.10027dc2
pop ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor edx, edx
mov byte [ecx + 3], dl
mov dword [ecx + 0x1c], edx
mov dword [ebp - 8], eax
test eax, eax
jne 0x10044c54
mov eax, dword [ebp - 0x18]
mov byte [ecx + 2], al
jmp 0x100416c8
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
push eax
push esi
mov dword [ebp - 0x10], eax
call fcn.10047e27
jmp 0x10043389
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
push dword [ebx + 0xc]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x10], eax
push dword [eax + 0x28]
call dword [ebx + 0x10]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor edx, edx
mov dword [ebp - 8], eax
mov dword [ecx + 0x1c], edx
test eax, eax
jne 0x100433ad
mov byte [ecx + 2], al
movzx eax, word [ebx + 2]
inc dword [edi + eax*4 + 0xa4]
jmp case.0x1004073c.11
cmp eax, 0x65
jne 0x10044c54
xor eax, eax
mov dword [ebp - 8], eax
inc eax
mov byte [ecx + 2], al
jmp 0x100446f7
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov edx, dword [eax + ecx*4]
xor eax, eax
imul ecx, dword [ebx + 8], 0x28
inc eax
mov dword [ebp - 0x24], edx
add ecx, dword [ebp - 0x14]
mov dword [ebp - 0xc], ecx
test byte [ebx + 2], al
je 0x100433e5
inc dword [edi + 0x2c]
mov eax, 0x4000
test word [ecx + 8], ax
je 0x100433ff
push ecx
call fcn.10046454
mov edx, dword [ebp - 0x24]
pop ecx
mov ecx, dword [ebp - 0xc]
jmp 0x10043401
xor eax, eax
test eax, eax
jne 0x10044c54
cmp byte [ebx], 0x83
jne 0x1004341c
push ecx
push edx
call fcn.1004805d
pop ecx
pop ecx
jmp 0x10042720
mov eax, dword [ecx + 0xc]
cdq
mov dword [ebp - 0x1a8], eax
mov dword [ebp - 0x1a4], edx
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x1b0], eax
imul eax, dword [ebx + 0xc], 0x28
push 0x10
pop ecx
add eax, dword [ebp - 0x14]
mov dword [ebp - 0x19c], eax
mov ax, word [ebx + 0x10]
mov word [ebp - 0x198], ax
movzx eax, word [ebx + 2]
test cl, al
je 0x10043460
mov ecx, dword [ebp - 0x24]
mov ecx, dword [ecx + 0x20]
jmp 0x10043462
xor ecx, ecx
push ecx
and eax, 0xa
push eax
lea eax, [ebp - 0x1b0]
push eax
mov eax, dword [ebp - 0x24]
push dword [eax + 0x28]
call fcn.10027f52
mov ecx, dword [ebp - 0x24]
add esp, 0x10
xor edx, edx
mov dword [ecx + 0x1c], edx
jmp 0x10042720
mov ecx, dword [ebx + 4]
xor edx, edx
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x10], eax
mov ecx, dword [eax + 0x28]
mov eax, dword [eax + 0x2c]
mov dword [ebp - 0x130], eax
mov ax, word [ebx + 0xc]
mov word [ebp - 0x128], ax
imul eax, dword [ebx + 8], 0x28
mov dword [ebp - 0xc], ecx
mov byte [ebp - 0x126], dl
add eax, dword [ebp - 0x14]
mov dword [ebp - 0x12c], eax
lea eax, [ebp - 0xd0]
push eax
push edx
push edx
push edx
lea eax, [ebp - 0x130]
push eax
push ecx
call fcn.100286a9
add esp, 0x18
mov dword [ebp - 8], eax
test eax, eax
jne 0x10044c54
cmp dword [ebp - 0xd0], eax
jne 0x1004350a
push 4
pop eax
push eax
push dword [ebp - 0xc]
call fcn.10027a9d
mov dword [ebp - 8], eax
pop ecx
pop ecx
test eax, eax
jne 0x10044c54
mov eax, dword [ebp - 0x10]
xor ecx, ecx
mov dword [eax + 0x1c], ecx
mov dword [eax + 0x20], ecx
jmp 0x10044b8b
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 4]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0x10], ecx
mov eax, dword [ecx + 0x28]
cmp byte [eax], 0
je 0x1004353a
push ecx
call fcn.1001972b
pop ecx
mov ecx, dword [ebp - 0x10]
jmp 0x1004353c
xor eax, eax
mov dword [ebp - 8], eax
test eax, eax
jne 0x10044c54
cmp byte [ecx + 2], al
jne 0x100435bb
lea eax, [ebp - 0x74]
xorps xmm0, xmm0
push eax
push dword [ecx + 0x28]
movlpd qword [ebp - 0x74], xmm0
push esi
call fcn.10045b5c
add esp, 0xc
mov dword [ebp - 8], eax
test eax, eax
jne 0x10044c54
cmp byte [ebx], 0x86
jne 0x100435a5
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 0xc]
mov ecx, dword [eax + ecx*4]
xor eax, eax
mov byte [ecx + 2], al
mov eax, dword [ebp - 0x74]
mov dword [ecx + 0x40], eax
mov eax, dword [ebp - 0x70]
mov dword [ecx + 0x44], eax
xor eax, eax
inc eax
mov byte [ecx + 3], al
mov eax, dword [ebx + 0x10]
mov dword [ecx + 0x18], eax
mov eax, dword [ebp - 0x10]
mov dword [ecx + 0x24], eax
jmp 0x10044b8b
push ebx
push edi
call fcn.1001d1b7
pop ecx
pop ecx
mov ecx, dword [ebp - 0x74]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x70]
jmp 0x100408b0
imul eax, dword [ebx + 8], 0x28
add eax, dword [ebp - 0x14]
push eax
jmp 0x10040c18
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 4]
cmp byte [ebp - 0x39], 0x27
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 0x2c]
mov dword [ebp - 0x120], eax
mov ax, word [ebx + 0x10]
mov word [ebp - 0x118], ax
sbb al, al
mov byte [ebp - 0x116], al
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0x14]
mov dword [ebp - 0x11c], eax
xor eax, eax
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x120]
push eax
push ecx
push esi
call fcn.10045ace
xor ecx, ecx
mov dword [ebp - 8], eax
inc ecx
add esp, 0x10
test byte [ebx], cl
mov ecx, dword [ebp - 0x38]
je 0x10043629
neg ecx
jmp 0x1004362a
inc ecx
test eax, eax
jne 0x10044c54
test ecx, ecx
jg 0x10044b7f
jmp 0x10044b8b
push ebx
push edi
call fcn.1001d1b7
pop ecx
pop ecx
xor ecx, ecx
mov dword [ebp - 0xc], eax
inc ecx
mov word [eax + 8], cx
mov ecx, dword [esi + 0xbc]
inc ecx
cmp dword [esi + 0xb0], ecx
jg 0x10044dad
mov eax, dword [ebx + 0xc]
xor ecx, ecx
mov esi, dword [ebx + 4]
mov edx, eax
mov dword [ebp - 0x50], ecx
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x18], eax
shl edx, 4
mov dword [ebp - 0x30], edx
mov eax, dword [ecx + 0x10]
mov edi, dword [edx + eax + 4]
push edi
call fcn.10027d8f
lea eax, [ebp - 0x50]
push eax
push esi
push edi
call fcn.1000f4a9
push edi
mov dword [ebp - 8], eax
call fcn.10028629
mov ecx, dword [ebp - 0xc]
add esp, 0x14
mov edi, dword [ebp - 0x50]
push 4
pop eax
mov word [ecx + 8], ax
mov eax, edi
cdq
mov dword [ecx], eax
mov eax, dword [ebp - 8]
mov dword [ecx + 4], edx
test eax, eax
jne 0x10045008
mov esi, dword [ebp - 0x1c]
test edi, edi
je 0x10044b8b
mov ecx, dword [esi + 0x10]
add ecx, dword [ebp - 0x30]
mov edx, dword [ebx + 4]
mov dword [ebp - 0x10], edx
mov eax, dword [ecx + 0xc]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x100436fc
mov esi, edx
mov edx, dword [eax + 8]
cmp dword [edx + 0x1c], edi
jne 0x100436f0
mov dword [edx + 0x1c], esi
mov eax, dword [eax]
test eax, eax
jne 0x100436e5
mov esi, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x10]
mov eax, dword [ecx + 0xc]
mov eax, dword [eax + 0x20]
jmp 0x10043711
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x2c], edi
jne 0x1004370f
mov dword [ecx + 0x2c], edx
mov eax, dword [eax]
test eax, eax
jne 0x10043704
mov al, byte [ebp - 0x18]
inc al
mov byte [ebp - 0x5d], al
jmp 0x10044b8b
xor ecx, ecx
lea eax, [ebp - 0x4c]
xor edx, edx
cmp dword [ebx + 0xc], edx
mov dword [ebp - 0x4c], edx
cmove eax, ecx
mov ecx, dword [ebx + 8]
push eax
mov eax, dword [esi + 0x10]
add ecx, ecx
push dword [ebx + 4]
push dword [eax + ecx*8 + 4]
call fcn.100275fe
xor ecx, ecx
mov dword [ebp - 8], eax
add esp, 0xc
cmp dword [ebx + 0xc], ecx
je 0x10042368
mov edx, dword [ebp - 0x4c]
add dword [edi + 0x2c], edx
mov ecx, dword [ebx + 0xc]
test ecx, ecx
jle 0x10042366
mov esi, dword [ebp - 0x14]
mov eax, edx
imul ecx, ecx, 0x28
cdq
add dword [ecx + esi], eax
mov eax, esi
mov esi, dword [ebp - 0x1c]
adc dword [ecx + eax + 4], edx
jmp 0x10042363
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
xor ecx, ecx
inc ecx
cmp byte [eax], cl
jne 0x100437a2
push dword [eax + 0x28]
push esi
call fcn.10047ea0
pop ecx
jmp 0x10040c1d
mov eax, dword [eax + 0x28]
xor ecx, ecx
push ecx
push dword [eax + 0x40]
push dword [eax + 8]
call fcn.100275fe
jmp 0x1004271d
push ebx
push edi
call fcn.1001d1b7
mov ecx, dword [ebx + 4]
push dword [ebx + 0xc]
mov dword [ebp - 0x10], eax
xor eax, eax
shl ecx, 4
add ecx, dword [esi + 0x10]
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0xc]
push eax
push dword [ecx + 4]
call fcn.10027a2a
add esp, 0x14
mov dword [ebp - 8], eax
test eax, eax
jne 0x10044c54
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x10]
jmp 0x10040892
inc byte [esi + 0x5a]
xor eax, eax
push eax
push eax
push eax
push dword [ebx + 0x10]
push esi
call sym.sqlite.dll_Ordinal_11
add esp, 0x14
mov dword [ebp - 8], eax
dec byte [esi + 0x5a]
jmp 0x10041219
cmp dword [ebx + 0x10], 0
mov ecx, dword [ebx + 4]
mov dword [ebp - 0xc], ecx
jne 0x1004385e
mov eax, dword [esi + 0x10]
add ecx, ecx
push dword [eax + ecx*8 + 0xc]
call fcn.1003b7bc
and dword [esi + 0x18], 0xffffffef
xor eax, eax
inc eax
push eax
lea eax, [edi + 0x7c]
push eax
push dword [ebp - 0xc]
push esi
call fcn.10033686
xor ecx, ecx
mov dword [ebp - 8], eax
inc ecx
add esp, 0x14
or dword [esi + 0x18], ecx
and dword [edi + 0x98], 0xfffffffc
jmp 0x10043912
push dword [ebx + 0x10]
lea eax, [edi + 0x7c]
mov dword [ebp - 0x100], ecx
mov dword [ebp - 0x104], eax
add ecx, ecx
xor eax, eax
mov dword [ebp - 0x108], esi
mov dword [ebp - 0xf8], eax
mov eax, dword [esi + 0x10]
push str.sqlite_master
push dword [eax + ecx*8]
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
push esi
call fcn.1003551a
add esp, 0x14
mov dword [ebp - 0xc], eax
test eax, eax
je 0x10044dbe
xor ecx, ecx
inc ecx
mov byte [esi + 0xa5], cl
xor ecx, ecx
push ecx
mov dword [ebp - 0xfc], ecx
mov dword [ebp - 0xf4], ecx
lea ecx, [ebp - 0x108]
push ecx
push fcn.10033501
push eax
push esi
call sym.sqlite.dll_Ordinal_11
add esp, 0x14
mov dword [ebp - 8], eax
test eax, eax
jne 0x100438fc
mov eax, dword [ebp - 0xfc]
mov dword [ebp - 8], eax
test eax, eax
jne 0x100438fc
cmp dword [ebp - 0xf4], eax
jne 0x100438fc
push 0x15e63
call fcn.1002a4f5
pop ecx
mov dword [ebp - 8], eax
push dword [ebp - 0xc]
push esi
call fcn.1002b676
xor eax, eax
pop ecx
mov byte [esi + 0xa5], al
mov eax, dword [ebp - 8]
pop ecx
test eax, eax
jne 0x10044dc4
jmp 0x10044b8b
push dword [ebx + 4]
push esi
call fcn.10025d32
jmp 0x10043415
mov eax, dword [ebx + 4]
xor ecx, ecx
push ecx
push dword [ebx + 0x10]
shl eax, 4
add eax, dword [esi + 0x10]
push 8
pop ecx
mov eax, dword [eax + 0xc]
add eax, ecx
push eax
call fcn.10032fd1
push eax
push esi
call fcn.1002c2c8
xor eax, eax
add esp, 0x14
inc eax
or dword [esi + 0x18], eax
jmp 0x10044b8b
push dword [ebx + 0x10]
push dword [ebx + 4]
push esi
call fcn.1003e652
jmp 0x10040bbc
push dword [ebx + 0x10]
push dword [ebx + 4]
push esi
call fcn.1003e6c0
jmp 0x10040bbc
imul eax, dword [ebx + 0xc], 0x28
imul edx, dword [ebx + 4], 0x28
mov ecx, dword [ebx + 0x10]
add eax, dword [ebp - 0x14]
add edx, dword [ebp - 0x14]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x18], edx
lea edx, [ebp - 0xcc]
mov eax, dword [eax]
push edx
inc eax
push eax
push dword [ebx + 8]
lea eax, [ecx + 4]
movzx ecx, word [ebx + 2]
push eax
mov eax, dword [esi + 0x10]
add ecx, ecx
push dword [eax + ecx*8 + 4]
call fcn.100282dc
push dword [ebp - 0x18]
mov dword [ebp - 0xc], eax
call fcn.100468fc
mov eax, dword [ebp - 0xcc]
add esp, 0x18
test eax, eax
je 0x10043a03
cmp dword [ebp - 0xc], 0
je 0x10044fec
mov ecx, dword [ebp - 0x10]
dec eax
cdq
push fcn.10006f75
sub dword [ecx], eax
sbb dword [ecx + 4], edx
xor eax, eax
inc eax
push eax
or eax, 0xffffffff
push eax
push dword [ebp - 0xc]
push dword [ebp - 0x18]
call fcn.100469d0
add esp, 0x14
movzx eax, byte [ebp - 0x3d]
push eax
push dword [ebp - 0x18]
call fcn.1004020f
jmp 0x1004379c
imul eax, dword [ebx + 4], 0x28
imul ecx, dword [ebx + 8], 0x28
push 0x10
pop edx
add eax, dword [ebp - 0x14]
add ecx, dword [ebp - 0x14]
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x10], ecx
test byte [eax + 8], dl
jne 0x10043a46
push eax
call fcn.10046959
pop ecx
test eax, eax
jne 0x10044fec
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x10]
push dword [ecx + 4]
push dword [ecx]
push dword [eax + 0x10]
call fcn.1003ad95
jmp 0x10040bbc
imul eax, dword [ebx + 4], 0x28
push 0x10
pop ecx
add eax, dword [ebp - 0x14]
mov dword [ebp - 0xc], eax
test byte [eax + 8], cl
je 0x10043aa3
lea ecx, [ebp - 0x110]
push ecx
push dword [eax + 0x10]
call fcn.1003ade1
pop ecx
pop ecx
test eax, eax
je 0x10043aa0
imul eax, dword [ebx + 0xc], 0x28
push dword [ebp - 0x10c]
push dword [ebp - 0x110]
add eax, dword [ebp - 0x14]
push eax
call fcn.100468c6
add esp, 0xc
jmp 0x100446f7
mov eax, dword [ebp - 0xc]
push eax
call fcn.100468fc
pop ecx
jmp case.0x1004073c.11
imul eax, dword [ebx + 4], 0x28
imul ecx, dword [ebx + 0xc], 0x28
mov edx, dword [ebx + 0x10]
mov dword [ebp - 0xc], edx
add eax, dword [ebp - 0x14]
add ecx, dword [ebp - 0x14]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x10], ecx
test byte [eax + 8], 0x10
jne 0x10043ae7
push eax
call fcn.10046959
pop ecx
test eax, eax
jne 0x10044fec
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0xc]
test edx, edx
je 0x10043b09
push dword [ecx + 4]
push dword [ecx]
push edx
push dword [eax + 0x10]
call fcn.1003ae37
add esp, 0x10
test eax, eax
jne 0x10044b7f
mov edx, dword [ebp - 0xc]
test edx, edx
js 0x10044b8b
mov eax, dword [ebp - 0x10]
push dword [eax + 4]
push dword [eax]
mov eax, dword [ebp - 0x30]
jmp 0x10043a4b
imul ecx, dword [ebx + 0xc], 0x28
xor eax, eax
mov edx, dword [ebx + 0x10]
mov dword [ebp - 0x20], edx
add ecx, dword [ebp - 0x14]
mov dword [ebp - 0xc], ecx
cmp word [ebx + 2], ax
je 0x10043b5b
mov eax, dword [edi + 0xc8]
test eax, eax
je 0x10043b5b
mov esi, dword [edx + 0x14]
cmp dword [eax + 0x1c], esi
je 0x10043b50
mov eax, dword [eax + 4]
test eax, eax
jne 0x10043b44
mov esi, dword [ebp - 0x1c]
test eax, eax
jne 0x10044b8b
mov eax, dword [edi + 0xd0]
cmp eax, dword [esi + 0x94]
jge 0x10044dde
push 0x10
pop eax
test byte [ecx + 8], al
jne 0x10043c65
mov eax, dword [ebp - 0x20]
mov edx, dword [edx + 0xc]
mov eax, dword [eax + 8]
add eax, edx
mov dword [ebp - 0x10], eax
test edx, edx
jne 0x10043b8f
inc eax
mov dword [ebp - 0x10], eax
add eax, 2
imul ecx, eax, 0xa
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x20]
add ecx, edx
mov eax, dword [eax + 4]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
lea eax, [eax + ecx*4]
mov dword [ebp - 0x30], eax
cdq
push edx
push eax
push esi
call fcn.1002b78b
add esp, 0xc
mov dword [ebp - 0x24], eax
test eax, eax
je 0x10044fec
push dword [ebp - 0xc]
call fcn.10046870
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x30]
sub ebx, dword [ebp - 4]
pop ecx
mov dword [eax + 0xc], edx
mov ecx, 0x410
mov word [eax + 8], cx
mov ecx, dword [ebp - 0x24]
mov dword [eax + 0x10], ecx
mov dword [eax + 0x24], 0x10045679
mov eax, dword [ebp - 0x10]
mov dword [ecx + 0x3c], eax
mov eax, dword [ebp - 0x20]
mov dword [ecx], edi
push 0x14
mov eax, dword [eax + 0xc]
mov dword [ecx + 0x40], eax
mov eax, ebx
cdq
pop ebx
idiv ebx
mov edx, dword [ebp - 0x20]
imul ebx, dword [ebp - 0x18], 0x28
mov dword [ecx + 0x30], eax
mov eax, dword [edi + 0x58]
mov dword [ecx + 0x10], eax
mov eax, dword [edi + 0x18]
mov dword [ecx + 0x38], eax
add ebx, ecx
mov eax, dword [edi + 0x60]
mov dword [ecx + 0x14], eax
mov eax, dword [edi + 0x1c]
mov dword [ecx + 0x2c], eax
mov eax, dword [edi + 0x68]
mov dword [ecx + 8], eax
mov eax, dword [edi + 0x6c]
mov dword [ecx + 0x34], eax
mov eax, dword [edx + 0x14]
mov dword [ecx + 0x1c], eax
lea eax, [ecx + 0x50]
cmp eax, ebx
je 0x10043c6b
mov ecx, 0x80
mov word [eax + 8], cx
mov dword [eax + 0x20], esi
add eax, 0x28
cmp eax, ebx
jne 0x10043c4f
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x20]
jmp 0x10043c6b
mov ecx, dword [ecx + 0x10]
mov dword [ebp - 0x24], ecx
inc dword [edi + 0xd0]
lea ebx, [ecx + 0x50]
mov eax, dword [edi + 0xc8]
mov dword [ecx + 4], eax
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x20], eax
mov eax, dword [esi + 0x2c]
mov dword [ecx + 0x24], eax
mov eax, dword [edi + 0x2c]
mov dword [ecx + 0x44], eax
mov eax, dword [edi]
push 7
mov dword [ebp - 0x14], ebx
mov eax, dword [eax + 0x64]
mov dword [ecx + 0x48], eax
mov eax, dword [edi + 0xdc]
mov dword [ecx + 0x28], eax
xor eax, eax
mov dword [edi + 0xdc], eax
mov dword [edi + 0x2c], eax
mov dword [edi + 0xc8], ecx
mov dword [edi + 0x58], ebx
mov eax, dword [ecx + 0x3c]
mov dword [edi + 0x18], eax
movzx eax, word [ecx + 0x40]
imul ecx, dword [edi + 0x18], 0x28
mov dword [edi + 0x1c], eax
add ecx, ebx
mov dword [edi + 0x60], ecx
mov eax, dword [edx + 0xc]
pop ebx
lea ecx, [ecx + eax*4]
mov eax, dword [ebp - 0x24]
mov dword [eax + 0x18], ecx
mov eax, dword [edx + 4]
add eax, ebx
cdq
and edx, ebx
add eax, edx
sar eax, 3
push eax
xor eax, eax
push eax
push ecx
call fcn.1005ddd0
mov eax, dword [ebp - 0x20]
add esp, 0xc
mov ecx, dword [eax]
mov dword [edi + 0x68], ecx
mov eax, dword [eax + 4]
mov dword [ebp - 4], ecx
mov dword [edi + 0x6c], eax
lea ebx, [ecx - 0x14]
jmp 0x100446f7
push ebx
push edi
call fcn.1001d1b7
mov esi, dword [edi + 0xc8]
mov ecx, 0x1000
push ecx
imul edx, dword [esi + 0x30], 0x14
mov ecx, dword [esi + 8]
mov ecx, dword [edx + ecx + 4]
add ecx, dword [ebx + 4]
imul ecx, ecx, 0x28
add ecx, dword [esi + 0x10]
push ecx
push eax
call fcn.10046b66
add esp, 0x14
jmp 0x10040a36
mov eax, dword [esi + 0x20]
xor edx, edx
and eax, 0x80000
or eax, edx
mov eax, dword [ebx + 8]
je 0x10043d68
cdq
add dword [esi + 0x1e0], eax
adc dword [esi + 0x1e4], edx
jmp 0x10044b8b
cmp dword [ebx + 4], edx
cdq
je 0x10043d7f
add dword [esi + 0x1d8], eax
adc dword [esi + 0x1dc], edx
jmp 0x10044b8b
add dword [edi + 0x40], eax
adc dword [edi + 0x44], edx
jmp 0x10044b8b
xor eax, eax
cmp dword [ebx + 4], eax
je 0x10043db4
mov eax, dword [esi + 0x1d8]
or eax, dword [esi + 0x1dc]
jne 0x10044b8b
mov eax, dword [esi + 0x1e0]
or eax, dword [esi + 0x1e4]
jmp 0x100416eb
mov eax, dword [edi + 0x40]
or eax, dword [edi + 0x44]
jmp 0x10043d9d
mov eax, dword [edi + 0xc8]
test eax, eax
jne 0x10043e06
imul edi, dword [ebx + 4], 0x28
add edi, dword [ebp - 0x14]
push edi
call fcn.100466c3
imul esi, dword [ebx + 8], 0x28
add esi, dword [ebp - 0x14]
push esi
call fcn.100466c3
mov eax, dword [esi]
pop ecx
pop ecx
mov ecx, dword [esi + 4]
cmp dword [edi + 4], ecx
jg 0x10040a36
jl 0x10043dfa
cmp dword [edi], eax
jae 0x10040a36
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x10040a36
mov eax, ecx
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x10043e04
imul edi, dword [ebx + 4], 0x28
add edi, dword [eax + 0x10]
jmp 0x10043dcd
imul ecx, dword [ebx + 4], 0x28
xor edx, edx
add ecx, dword [ebp - 0x14]
mov edi, dword [ecx]
cmp dword [ecx + 4], edx
jl 0x10044b8b
jg 0x10043e36
xor eax, eax
cmp edi, eax
jbe 0x10044b8b
mov eax, dword [ebx + 0xc]
cdq
sub edi, eax
mov eax, dword [ecx + 4]
mov dword [ecx], edi
sbb eax, edx
mov dword [ecx + 4], eax
jmp 0x10044b7f
imul eax, dword [ebx + 0xc], 0x28
imul esi, dword [ebx + 4], 0x28
push ebx
push edi
add eax, dword [ebp - 0x14]
add esi, dword [ebp - 0x14]
mov dword [ebp - 0xc], eax
call fcn.1001d1b7
pop ecx
pop ecx
mov ecx, dword [esi + 4]
xor edx, edx
mov dword [ebp - 0xb4], ecx
mov edi, eax
mov eax, dword [esi]
mov dword [ebp - 0xb8], eax
cmp ecx, edx
jl 0x10043ed8
jg 0x10043e84
cmp eax, edx
jbe 0x10043ed8
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
cmp eax, edx
jl 0x10043e96
jg 0x10043ead
cmp ecx, edx
ja 0x10043ead
xorps xmm0, xmm0
movlpd qword [ebp - 0x8c], xmm0
mov eax, dword [ebp - 0x88]
mov ecx, dword [ebp - 0x8c]
push eax
push ecx
lea eax, [ebp - 0xb8]
push eax
call fcn.10025130
add esp, 0xc
test eax, eax
jne 0x10043ed8
mov eax, dword [ebp - 0xb8]
mov dword [edi], eax
mov eax, dword [ebp - 0xb4]
mov dword [edi + 4], eax
jmp 0x10040a36
or eax, 0xffffffff
mov dword [edi], eax
jmp 0x10043ed0
imul ecx, dword [ebx + 4], 0x28
add ecx, dword [ebp - 0x14]
mov edx, dword [ecx]
mov eax, edx
mov edi, dword [ecx + 4]
or eax, edi
je 0x10044b8b
xor eax, eax
cmp edi, eax
jl 0x10044b7f
jg 0x10043f09
cmp edx, eax
jbe 0x10044b7f
sub edx, 1
mov dword [ecx], edx
sbb edi, eax
mov dword [ecx + 4], edi
jmp 0x10044b7f
imul ecx, dword [ebx + 4], 0x28
add ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 4]
mov eax, dword [ecx]
cmp edx, 0x80000000
jl 0x10043f3d
jg 0x10043f32
test eax, eax
je 0x10043f3d
sub eax, 1
mov dword [ecx], eax
sbb edx, 0
mov dword [ecx + 4], edx
mov eax, dword [ecx]
or eax, dword [ecx + 4]
jmp 0x100416eb
movzx eax, word [ebx + 2]
xor ecx, ecx
mov dword [ebp - 0xc], eax
push ecx
lea eax, [eax*4 + 0x44]
push eax
push esi
call fcn.1002b6e1
add esp, 0xc
mov dword [ebp - 0x10], eax
test eax, eax
je 0x10044fec
mov ecx, dword [ebp - 0xc]
xor edx, edx
mov dword [eax + 8], edx
add ecx, 7
push 0x14
lea ecx, [eax + ecx*4]
mov dword [eax], ecx
xor eax, eax
mov dword [ecx + 0x18], edx
inc eax
mov word [ecx + 8], ax
mov dword [ecx + 0x20], esi
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebx + 0x10]
pop esi
mov dword [ecx + 4], eax
mov eax, ebx
sub eax, dword [ebp - 4]
cdq
idiv esi
mov dword [ecx + 0xc], edi
mov dword [ecx + 0x10], eax
xor eax, eax
mov byte [ecx + 0x18], al
mov dword [ecx + 0x14], eax
mov eax, dword [ebp - 0xc]
mov byte [ecx + 0x19], al
mov word [ebx], 0xf09b
mov dword [ebx + 0x10], ecx
imul edx, dword [ebx + 0xc], 0x28
mov esi, dword [ebx + 0x10]
add edx, dword [ebp - 0x14]
mov dword [ebp - 0xc], edx
cmp dword [esi + 8], edx
je 0x10043ff7
movzx ecx, byte [esi + 0x19]
dec ecx
mov dword [esi + 8], edx
js 0x10043ff7
lea edi, [ecx + 7]
push 4
lea edi, [esi + edi*4]
pop edx
mov eax, dword [ebx + 8]
add eax, ecx
imul eax, eax, 0x28
add eax, dword [ebp - 0x14]
mov dword [edi], eax
sub edi, edx
dec ecx
jns 0x10043fdf
mov edi, dword [ebp + 8]
mov edx, dword [ebp - 0xc]
inc dword [edx + 0xc]
xor eax, eax
cmp dword [ebx + 4], eax
lea eax, [esi + 0x1c]
mov ecx, dword [esi + 4]
push eax
movzx eax, byte [esi + 0x19]
push eax
push esi
je 0x10044013
call dword [ecx + 0x1c]
jmp 0x10044016
call dword [ecx + 0x10]
mov eax, dword [esi + 0x14]
add esp, 0xc
test eax, eax
je 0x10040a36
jle 0x10044042
push dword [esi]
call fcn.100029fe
push eax
push 0x10071f6c
push edi
call fcn.10040635
mov eax, dword [esi + 0x14]
add esp, 0x10
mov dword [ebp - 8], eax
cmp byte [esi + 0x18], 0
je 0x10044068
mov eax, dword [ebx - 0x10]
test eax, eax
je 0x10044063
xor ecx, ecx
imul eax, eax, 0x28
push ecx
inc ecx
push ecx
add eax, dword [ebp - 0x14]
push eax
call fcn.100468c6
add esp, 0xc
xor eax, eax
mov byte [esi + 0x18], al
push dword [esi]
call fcn.10046870
mov eax, dword [esi]
pop ecx
xor ecx, ecx
inc ecx
mov word [eax + 8], cx
xor eax, eax
mov dword [esi + 0x14], eax
mov esi, dword [ebp - 0x1c]
jmp 0x10041216
imul ecx, dword [ebx + 4], 0x28
mov edx, dword [ebp - 0x14]
mov eax, dword [ebx + 0xc]
push dword [ebx + 0x10]
add ecx, edx
mov dword [ebp - 0x18], ecx
test eax, eax
je 0x100440b7
imul eax, eax, 0x28
add eax, edx
push eax
push ecx
call fcn.100462c5
imul ecx, dword [ebx + 0xc], 0x28
add esp, 0xc
add ecx, dword [ebp - 0x14]
mov dword [ebp - 0x18], ecx
jmp 0x100440c2
push ecx
call fcn.100464a8
pop ecx
pop ecx
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 8], eax
test eax, eax
jne 0x10044df9
movzx eax, byte [ebp - 0x3d]
push eax
push ecx
call fcn.1004020f
mov ecx, dword [ebp - 0x18]
push ecx
call fcn.10046c2c
add esp, 0xc
test eax, eax
jne 0x10044e4f
jmp 0x10044b8b
xor eax, eax
mov dword [ebp - 0xc4], eax
or eax, 0xffffffff
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0xc0], eax
lea eax, [ebp - 0xbc]
push eax
lea eax, [ebp - 0xc0]
push eax
push dword [ebx + 8]
push dword [ebx + 4]
push esi
call fcn.10029645
add esp, 0x14
mov dword [ebp - 8], eax
test eax, eax
je 0x10044143
push 5
pop ecx
cmp eax, ecx
jne 0x10044c54
xor eax, eax
mov dword [ebp - 8], eax
inc eax
mov dword [ebp - 0xc4], eax
imul edi, dword [ebx + 0xc], 0x28
add edi, dword [ebp - 0x14]
xor eax, eax
mov esi, eax
mov eax, dword [ebp + esi*4 - 0xc4]
cdq
push edx
push eax
push edi
call fcn.100468c6
add esp, 0xc
add edi, 0x28
inc esi
cmp esi, 3
jl 0x1004414e
jmp 0x10040a36
push ebx
push edi
call fcn.1001d1b7
mov edx, dword [ebx + 4]
pop ecx
add edx, edx
mov dword [ebp - 0xc], eax
mov eax, dword [ebx + 0xc]
pop ecx
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0x20], eax
mov eax, dword [ecx + edx*8 + 4]
mov dword [ebp - 0x10], eax
mov ecx, dword [eax + 4]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x20]
cmp ecx, 0xffffffff
mov dword [ebp - 0x2c], edx
movzx eax, byte [edx + 5]
cmove ecx, eax
mov dword [ebp - 0x28], eax
cmp byte [edx + 0x10], 3
mov dword [ebp - 0x20], ecx
jae 0x100441ca
mov eax, dword [edx + 0x40]
cmp dword [eax], 0
je 0x100441cf
xor eax, eax
cmp dword [edx + 0x4c], eax
jl 0x100441cf
jg 0x100441c7
cmp dword [edx + 0x48], eax
jbe 0x100441cf
mov eax, dword [ebp - 0x28]
mov ecx, eax
mov dword [ebp - 0x20], eax
cmp byte [edx + 0xf], 0
mov eax, 0x10070ad4
jne 0x100441e0
mov eax, dword [edx + 0xa8]
cmp ecx, 5
jne 0x10044210
push eax
call fcn.1003de30
pop ecx
test eax, eax
je 0x100441fd
push dword [ebp - 0x2c]
call fcn.100373d2
pop ecx
test eax, eax
jne 0x1004420a
mov eax, dword [ebp - 0x28]
mov ecx, eax
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x20], ecx
jmp 0x10044213
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x28]
cmp ecx, eax
je 0x10044296
cmp eax, 5
je 0x10044221
cmp ecx, 5
jne 0x10044296
cmp byte [esi + 0x4f], 0
je 0x10044e10
cmp dword [esi + 0xb0], 1
jg 0x10044e10
push 5
pop ecx
cmp eax, ecx
jne 0x1004425e
push esi
push edx
call fcn.10036365
mov dword [ebp - 8], eax
pop ecx
pop ecx
test eax, eax
jne 0x1004429d
push dword [ebp - 0x20]
push dword [ebp - 0x2c]
call fcn.10036f67
pop ecx
pop ecx
jmp 0x10044277
push 4
pop ecx
cmp eax, ecx
jne 0x10044271
push 2
pop eax
push eax
push edx
call fcn.10036f67
pop ecx
pop ecx
cmp dword [ebp - 8], 0
jne 0x1004429d
push 5
pop ecx
xor eax, eax
cmp dword [ebp - 0x20], ecx
sete al
inc eax
push eax
push dword [ebp - 0x10]
call fcn.1002944f
pop ecx
pop ecx
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 8], eax
jmp 0x10044299
mov eax, dword [ebp - 8]
test eax, eax
je 0x100442a0
mov ecx, dword [ebp - 0x28]
push ecx
push dword [ebp - 0x2c]
call fcn.10036f67
mov edx, 0xa02
pop ecx
pop ecx
mov ecx, dword [ebp - 0xc]
mov word [ecx + 8], dx
cmp eax, 6
jne 0x100442c0
xor eax, eax
jmp 0x100442c7
mov eax, dword [eax*4 + 0x1006ccf0]
push eax
mov dword [ecx + 0x10], eax
call fcn.1003de30
mov ecx, dword [ebp - 0xc]
mov dword [ecx + 0xc], eax
xor eax, eax
inc eax
mov byte [ecx + 0xa], al
movzx eax, byte [ebp - 0x3d]
push eax
push ecx
call fcn.1004020f
jmp 0x10041213
mov eax, dword [ebx + 8]
test eax, eax
je 0x100442fb
imul eax, eax, 0x28
add eax, dword [ebp - 0x14]
jmp 0x100442fd
xor eax, eax
push eax
push dword [ebx + 4]
lea eax, [edi + 0x7c]
push esi
push eax
call fcn.1003b2db
add esp, 0x10
jmp 0x10042720
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x10]
add ecx, ecx
push dword [eax + ecx*8 + 4]
call fcn.10027e8e
mov dword [ebp - 8], eax
pop ecx
test eax, eax
je 0x10044b8b
cmp eax, 0x65
jne 0x10044c54
xor eax, eax
mov dword [ebp - 8], eax
jmp 0x10044b7f
xor eax, eax
cmp dword [ebx + 4], eax
jne 0x10044358
push dword [ebx + 8]
push esi
call fcn.1002cfe0
jmp 0x1004379c
mov eax, dword [ebx + 8]
inc eax
xor eax, dword [edi + 0x98]
and eax, 3
xor dword [edi + 0x98], eax
jmp 0x10044b8b
mov al, byte [ebx + 0xc]
mov byte [ebp - 0xd4], al
test al, al
jne 0x1004439b
mov eax, dword [esi + 0x20]
and eax, 0x400
mov dword [ebp - 0x8c], eax
jne 0x10044b8b
xor eax, eax
cmp eax, eax
jne 0x10044b8b
mov ecx, dword [ebx + 4]
push dword [ebp - 0xd4]
mov eax, dword [esi + 0x10]
add ecx, ecx
push dword [ebx + 8]
push dword [eax + ecx*8 + 4]
call fcn.10028658
add esp, 0xc
mov dword [ebp - 8], eax
test eax, eax
je 0x10044b8b
cmp al, 6
jne 0x10044c54
push dword [ebx + 0x10]
push str.database_table_is_locked:__s
jmp 0x10044e2c
mov eax, dword [ebx + 0x10]
push eax
push esi
mov dword [ebp - 0xc], eax
call fcn.1004857b
pop ecx
pop ecx
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 8], eax
test ecx, ecx
je 0x10041219
push dword [ecx + 8]
push edi
call fcn.10048bdd
pop ecx
pop ecx
jmp 0x10041216
xor eax, eax
push 0x28
push eax
lea eax, [ebp - 0x200]
push eax
call fcn.1005ddd0
imul eax, dword [ebx + 8], 0x28
mov dword [ebp - 0x1e0], esi
add eax, dword [ebp - 0x14]
push eax
lea eax, [ebp - 0x200]
push eax
call fcn.100463e9
mov dword [ebp - 8], eax
xor eax, eax
inc eax
push eax
lea eax, [ebp - 0x200]
push eax
call fcn.1003febb
add esp, 0x1c
test eax, eax
je 0x1004445e
lea ecx, [edi + 0x7c]
push ecx
push eax
push dword [ebx + 4]
push esi
call fcn.1004877e
add esp, 0x10
mov dword [ebp - 8], eax
lea eax, [ebp - 0x200]
push eax
call fcn.10046870
jmp 0x100443ff
inc dword [esi + 0xbc]
push dword [ebx + 0x10]
push dword [ebx + 4]
push esi
call fcn.10048836
add esp, 0xc
mov dword [ebp - 8], eax
dec dword [esi + 0xbc]
jmp 0x10041219
xor eax, eax
mov dword [ebp - 0x44], eax
mov eax, dword [ebx + 0x10]
mov eax, dword [eax + 8]
mov dword [ebp - 0x18], eax
test eax, eax
je 0x10044e46
mov ecx, dword [eax]
mov dword [ebp - 0xc], ecx
test ecx, ecx
je 0x10044e46
lea edx, [ebp - 0x44]
push edx
push eax
call dword [ecx + 0x18]
push dword [ebp - 0x18]
mov dword [ebp - 8], eax
push edi
call fcn.10048bdd
mov eax, dword [ebp - 8]
add esp, 0x10
test eax, eax
jne 0x10044c54
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x18]
push 2
mov dword [eax], ecx
pop eax
push eax
or eax, 0xffffffff
push eax
xor eax, eax
push eax
push dword [ebx + 4]
push edi
call fcn.1000c6da
add esp, 0x14
test eax, eax
je 0x10044e37
mov ecx, dword [ebp - 0x44]
mov dword [eax + 0x28], ecx
mov eax, dword [ebp - 0x18]
inc dword [eax + 4]
jmp 0x10044b8b
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
imul edx, dword [ebx + 0xc], 0x28
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x24], eax
add edx, dword [ebp - 0x14]
mov eax, dword [eax + 0x28]
mov dword [ebp - 0x10], eax
mov ecx, dword [edx + 0x28]
mov eax, dword [eax]
mov dword [ebp - 0x38], eax
mov eax, dword [eax]
mov dword [ebp - 0x30], eax
mov eax, dword [edx]
mov dword [ebp - 0x18], eax
mov eax, dword [edi + 0x5c]
mov dword [ebp - 0xc], eax
xor eax, eax
test ecx, ecx
jle 0x10044557
mov esi, dword [ebp - 0xc]
add edx, 0x50
mov dword [esi + eax*4], edx
inc eax
add edx, 0x28
cmp eax, ecx
jl 0x10044549
mov esi, dword [ebp - 0x1c]
push dword [ebp - 0xc]
mov eax, dword [ebp - 0x30]
push ecx
push dword [ebx + 0x10]
push dword [ebp - 0x18]
push dword [ebp - 0x10]
call dword [eax + 0x20]
push dword [ebp - 0x38]
mov dword [ebp - 8], eax
push edi
call fcn.10048bdd
mov eax, dword [ebp - 8]
add esp, 0x1c
test eax, eax
jne 0x10044c54
mov eax, dword [ebp - 0x30]
push dword [ebp - 0x10]
call dword [eax + 0x28]
pop ecx
mov ecx, dword [ebp - 0x24]
xor edx, edx
mov byte [ecx + 2], dl
test eax, eax
je 0x10044b8b
jmp 0x10044b7f
mov esi, dword [ebp - 0x1c]
jmp 0x10044b7f
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 4]
mov ecx, dword [eax + ecx*4]
imul eax, dword [ebx + 0xc], 0x28
mov dword [ebp - 0xc], ecx
add eax, dword [ebp - 0x14]
cmp byte [ecx + 2], 0
mov dword [ebp - 0x2c], eax
jne 0x100435c2
mov eax, dword [ecx + 0x28]
push 0x20
mov eax, dword [eax]
mov dword [ebp - 0x30], eax
mov eax, dword [eax]
mov dword [ebp - 0x10], eax
xor eax, eax
push eax
lea eax, [ebp - 0x188]
push eax
call fcn.1005ddd0
mov ecx, dword [ebp - 0x2c]
xor edx, edx
inc edx
mov dword [ebp - 0x188], ecx
add esp, 0xc
test byte [ebx + 2], dl
je 0x10044616
push ecx
call fcn.100468fc
mov eax, dword [ebp - 0x2c]
pop ecx
mov ecx, 0x4001
mov word [eax + 8], cx
xor ecx, ecx
mov dword [eax], ecx
jmp 0x10044628
mov ax, word [ecx + 8]
and ax, word [ebp - 0xa4]
or ax, dx
mov word [ecx + 8], ax
push dword [ebx + 8]
lea eax, [ebp - 0x188]
push eax
mov eax, dword [ebp - 0xc]
push dword [eax + 0x28]
mov eax, dword [ebp - 0x10]
call dword [eax + 0x2c]
push dword [ebp - 0x30]
mov dword [ebp - 8], eax
push edi
call fcn.10048bdd
add esp, 0x14
cmp dword [ebp - 0x174], 0
jle 0x10044676
push dword [ebp - 0x2c]
call fcn.100029fe
push eax
push 0x10071f6c
push edi
call fcn.10040635
mov eax, dword [ebp - 0x174]
add esp, 0x10
mov dword [ebp - 8], eax
movzx eax, byte [ebp - 0x3d]
push eax
push dword [ebp - 0x2c]
call fcn.1004020f
push dword [ebp - 0x2c]
call fcn.10046c2c
add esp, 0xc
test eax, eax
jne 0x10044e4f
jmp 0x10041216
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xc], eax
cmp byte [eax + 2], 0
jne 0x10044b8b
mov eax, dword [eax + 0x28]
push eax
mov esi, dword [eax]
mov ecx, dword [esi]
mov dword [ebp - 0x10], ecx
call dword [ecx + 0x24]
push esi
push edi
mov dword [ebp - 8], eax
call fcn.10048bdd
mov eax, dword [ebp - 8]
add esp, 0xc
test eax, eax
jne 0x10044c51
mov eax, dword [ebp - 0xc]
push dword [eax + 0x28]
mov eax, dword [ebp - 0x10]
call dword [eax + 0x28]
mov esi, dword [ebp - 0x1c]
pop ecx
test eax, eax
jne 0x100446f7
imul eax, dword [ebx + 8], 0x14
mov ebx, dword [ebp - 4]
add ebx, 0xffffffec
add ebx, eax
xor eax, eax
cmp dword [esi + 0x110], eax
je 0x10044747
cmp byte [esi + 0x51], 0
push 9
pop eax
push 7
pop ecx
cmovne eax, ecx
push eax
mov dword [ebp - 8], eax
mov dword [edi + 0x28], eax
call fcn.1002cdc3
jmp 0x10044dff
mov eax, dword [esi + 0x148]
test eax, eax
je 0x10044b8b
add ecx, dword [esi + 0x150]
push dword [esi + 0x14c]
mov dword [ebp - 0x6c], ecx
call eax
pop ecx
test eax, eax
jne 0x10044d1d
mov ecx, dword [ebp - 0x6c]
cmp dword [ebp - 0x84], ecx
jae 0x1004471f
jmp 0x10044b8b
mov eax, dword [esi + 0x20]
mov ecx, 0x4000000
or dword [esi + 0x20], ecx
and eax, ecx
mov dword [ebp - 0x30], eax
xor ecx, ecx
mov eax, dword [esi + 0x24]
inc ecx
mov dword [esi + 0x24], eax
mov eax, dword [ebx + 0x10]
push ecx
mov eax, dword [eax + 8]
mov dword [ebp - 0xc], eax
imul eax, dword [ebx + 4], 0x28
add eax, dword [ebp - 0x14]
push eax
mov dword [ebp - 0x10], eax
call fcn.1004020f
pop ecx
pop ecx
test eax, eax
jne 0x10044c54
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x10]
mov eax, dword [edx]
push dword [ecx + 0x10]
push edx
call dword [eax + 0x4c]
cmp dword [ebp - 0x30], 0
pop ecx
pop ecx
mov dword [ebp - 8], eax
jne 0x100447bb
mov eax, dword [esi + 0x24]
and dword [esi + 0x20], 0xfbffffff
mov dword [esi + 0x24], eax
push dword [ebp - 0xc]
push edi
call fcn.10048bdd
jmp 0x10042405
cmp byte [esi + 0x51], 0
jne 0x10044fec
mov eax, dword [ebx + 0x10]
mov edx, dword [eax + 8]
mov dword [ebp - 0x10], edx
test edx, edx
je 0x10044e46
mov ecx, dword [edx]
mov dword [ebp - 0x30], ecx
test ecx, ecx
je 0x10044e46
mov eax, dword [ebx + 8]
mov dword [ebp - 0x18], eax
xor eax, eax
cmp dword [ecx + 0x34], eax
je 0x10044b8b
mov al, byte [esi + 0x56]
xor ecx, ecx
mov byte [ebp - 0x39], al
mov eax, dword [edi + 0x5c]
mov dword [ebp - 0xc], eax
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0x14]
cmp dword [ebp - 0x18], ecx
jle 0x1004482e
mov edx, dword [ebp - 0xc]
mov dword [edx + ecx*4], eax
add eax, 0x28
inc ecx
cmp ecx, dword [ebp - 0x18]
jl 0x1004481f
mov edx, dword [ebp - 0x10]
mov al, byte [ebx + 2]
mov byte [esi + 0x56], al
lea eax, [ebp - 0xf0]
push eax
push dword [ebp - 0xc]
mov eax, dword [ebp - 0x30]
push dword [ebp - 0x18]
push edx
call dword [eax + 0x34]
push dword [ebp - 0x10]
mov dword [ebp - 8], eax
mov al, byte [ebp - 0x39]
push edi
mov byte [esi + 0x56], al
call fcn.10048bdd
mov eax, dword [ebp - 8]
add esp, 0x18
xor ecx, ecx
test eax, eax
jne 0x10044880
cmp dword [ebx + 4], ecx
je 0x10044880
mov eax, dword [ebp - 0xf0]
mov dword [esi + 0x28], eax
mov eax, dword [ebp - 0xec]
mov dword [esi + 0x2c], eax
mov eax, dword [ebp - 8]
cmp al, 0x13
jne 0x100448b3
mov eax, dword [ebx + 0x10]
cmp byte [eax + 0x10], 0
je 0x100448b3
movzx eax, word [ebx + 2]
push 4
pop edx
cmp ax, dx
jne 0x100448a0
xor eax, eax
jmp 0x100425a9
push 5
pop edx
cmp ax, dx
jne 0x100448ab
push 2
pop eax
mov byte [edi + 0x92], al
jmp 0x100448b6
inc dword [edi + 0x2c]
mov eax, dword [ebp - 8]
jmp 0x10042368
push ebx
push edi
call fcn.1001d1b7
mov edx, dword [ebx + 4]
pop ecx
pop ecx
mov ecx, dword [esi + 0x10]
add edx, edx
mov ecx, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + 4]
mov ecx, dword [ecx + 0x2c]
mov dword [eax], ecx
xor ecx, ecx
jmp 0x100408b0
push ebx
push edi
call fcn.1001d1b7
mov edx, dword [ebx + 4]
pop ecx
pop ecx
mov ecx, dword [esi + 0x10]
add edx, edx
mov dword [ebp - 0xc], eax
xor eax, eax
mov esi, eax
mov edi, dword [ecx + edx*8 + 4]
mov ecx, dword [ebx + 0xc]
test ecx, ecx
je 0x10044910
mov eax, dword [edi + 4]
mov esi, dword [eax + 0x2c]
cmp esi, ecx
cmovb esi, ecx
push edi
call fcn.10027d8f
mov eax, dword [edi + 4]
pop ecx
mov eax, dword [eax]
test esi, esi
jle 0x10044926
mov dword [eax + 0x9c], esi
mov esi, dword [eax + 0x9c]
push edi
call fcn.10028629
pop ecx
mov ecx, dword [ebp - 0xc]
mov eax, esi
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x10040a36
movzx eax, word [ebx + 2]
xor ecx, ecx
mov dword [ebp - 0x10], eax
push ecx
lea eax, [eax*4 + 0x1c]
push eax
push esi
call fcn.1002b6e1
add esp, 0xc
mov dword [ebp - 0xc], eax
test eax, eax
je 0x10044fec
xor ecx, ecx
mov dword [eax], ecx
mov ecx, dword [ebx + 0x10]
mov dword [eax + 4], ecx
mov eax, ebx
sub eax, dword [ebp - 4]
push 0x14
cdq
pop ecx
idiv ecx
mov ecx, dword [ebp - 0xc]
push 2
mov dword [ecx + 0x10], eax
xor eax, eax
mov dword [ecx + 0x14], eax
mov eax, dword [ebp - 0x10]
mov byte [ecx + 0x19], al
mov dword [ecx + 0xc], edi
pop eax
add byte [ebx], al
mov byte [ebx + 1], 0xf0
mov dword [ebx + 0x10], ecx
imul ecx, dword [ebx + 0xc], 0x28
mov edx, dword [ebx + 0x10]
mov dword [ebp - 0x24], edx
add ecx, dword [ebp - 0x14]
mov dword [ebp - 0x2c], ecx
cmp dword [edx], ecx
je 0x100449e4
movzx eax, byte [edx + 0x19]
dec eax
mov dword [edx], ecx
mov dword [ebp - 0xc], eax
js 0x100449e4
lea edi, [eax + 7]
mov esi, eax
push 4
lea edi, [edx + edi*4]
pop ecx
mov eax, dword [ebx + 8]
add eax, esi
imul eax, eax, 0x28
add eax, dword [ebp - 0x14]
mov dword [edi], eax
sub edi, ecx
dec esi
jns 0x100449c9
mov edi, dword [ebp + 8]
mov esi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x2c]
mov ax, word [ecx + 8]
and ax, word [ebp - 0xa4]
or ax, word [ebp - 0xa8]
mov word [ecx + 8], ax
lea eax, [edx + 0x1c]
mov ecx, dword [edx + 4]
push eax
movzx eax, byte [edx + 0x19]
push eax
push edx
call dword [ecx + 0x10]
mov eax, dword [ebp - 0x24]
add esp, 0xc
mov ecx, dword [eax + 0x14]
test ecx, ecx
je 0x10044a65
jle 0x10044a3c
push dword [ebp - 0x2c]
call fcn.100029fe
push eax
push 0x10071f6c
push edi
call fcn.10040635
mov eax, dword [ebp - 0x24]
add esp, 0x10
mov eax, dword [eax + 0x14]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x24]
push dword [ebx + 4]
push dword [eax + 0x10]
lea eax, [edi + 0xdc]
push eax
push esi
call fcn.1004055c
mov eax, dword [ebp - 0x24]
xor ecx, ecx
add esp, 0x10
mov dword [eax + 0x14], ecx
mov eax, dword [ebp - 8]
test eax, eax
jne 0x10044c56
mov ecx, dword [ebp - 0x2c]
test byte [ecx + 8], 0x12
je 0x10044b8b
movzx eax, byte [ebp - 0x3d]
push eax
push ecx
call fcn.1004020f
push dword [ebp - 0x2c]
jmp 0x100440dc
mov cl, byte [esi + 0x58]
test cl, 0x41
je 0x10044b39
push 0x10
pop eax
test byte [edi + 0x98], al
jne 0x10044b39
mov eax, dword [ebx + 0x10]
test eax, eax
jne 0x10044ab5
mov eax, dword [edi + 0xc0]
test eax, eax
je 0x10044b39
push eax
test cl, 0x40
je 0x10044ae8
push dword [ebp + 8]
mov edi, dword [esi + 0xc8]
call fcn.100452cd
mov ecx, dword [ebp - 0x1c]
mov esi, eax
push esi
push dword [ecx + 0xcc]
call edi
push esi
call fcn.10006f75
mov edi, dword [ebp + 8]
add esp, 0x14
mov esi, dword [ebp - 0x1c]
jmp 0x10044b39
xor ecx, ecx
inc ecx
cmp dword [esi + 0xb8], ecx
jle 0x10044b28
push str.____s
push esi
call fcn.1003551a
push eax
mov dword [ebp - 0xc], eax
xor eax, eax
push edi
push dword [esi + 0xcc]
inc eax
push eax
call dword [esi + 0xc8]
mov eax, dword [ebp - 0xc]
add esp, 0x1c
test eax, eax
je 0x10044b39
push eax
push esi
call fcn.1002b676
pop ecx
pop ecx
jmp 0x10044b39
push edi
push dword [esi + 0xcc]
push ecx
call dword [esi + 0xc8]
add esp, 0x10
mov eax, dword [ebx + 4]
cmp eax, dword [0x1007b9d8]
jl 0x10044b76
cmp byte [ebx], 0xa8
je 0x10044b8b
xor eax, eax
inc eax
mov ecx, eax
cmp dword [edi + 0x6c], eax
jle 0x10044b71
push 0x14
pop eax
push eax
pop esi
mov edx, dword [edi + 0x68]
cmp byte [eax + edx], 0x11
jne 0x10044b66
and dword [eax + edx + 4], 0
inc ecx
add eax, esi
cmp ecx, dword [edi + 0x6c]
jl 0x10044b58
mov esi, dword [ebp - 0x1c]
xor eax, eax
mov dword [ebx + 4], eax
inc dword [ebx + 4]
inc dword [edi + 0xbc]
imul eax, dword [ebx + 8], 0x14
mov ebx, dword [ebp - 4]
add ebx, 0xffffffec
add ebx, eax
mov eax, dword [ebp - 4]
mov edi, dword [ebp + 8]
push 0x14
pop ecx
add ebx, ecx
jmp 0x1004071c
mov ecx, dword [ebx + 4]
mov dword [edi + 0x28], ecx
mov al, byte [ebx + 8]
mov byte [edi + 0x92], al
mov dword [edi + 0x24], edx
test ecx, ecx
je 0x10044c1b
movzx eax, word [ebx + 2]
test ax, ax
je 0x10044bee
push dword [eax*4 + 0x1006b280]
push str._s_constraint_failed
push edi
call fcn.10040635
add esp, 0xc
cmp dword [ebx + 0x10], 0
je 0x10044bff
push dword [ebx + 0x10]
push dword [edi + 0x7c]
push str._z:__s
push esi
call fcn.1003551a
add esp, 0x10
mov dword [edi + 0x7c], eax
jmp 0x10044bff
push dword [ebx + 0x10]
push 0x10071f6c
push edi
call fcn.10040635
add esp, 0xc
push dword [edi + 0x7c]
push dword [edi + 0xc0]
push dword [ebp - 0xc]
push str.abort_at__d_in___s_:__s
push dword [ebx + 4]
call fcn.1000bb93
add esp, 0x14
push edi
call fcn.1004580d
pop ecx
push 5
pop ecx
mov dword [ebp - 8], eax
cmp eax, ecx
je 0x10044d5c
push 0x65
pop eax
xor ecx, ecx
cmp dword [edi + 0x28], ecx
push 1
pop ecx
cmovne eax, ecx
mov dword [ebp - 8], eax
jmp 0x10044ce8
push 0x15251
call fcn.1002a4f5
pop ecx
mov esi, dword [ebp - 0x1c]
xor ecx, ecx
cmp byte [esi + 0x51], 0
push 7
pop edx
cmovne eax, edx
mov dword [ebp - 8], eax
cmp dword [edi + 0x7c], ecx
jne 0x10044c87
cmp eax, 0xc0a
je 0x10044c87
push eax
call fcn.1002cdc3
push eax
push 0x10071f6c
push edi
call fcn.10040635
mov eax, dword [ebp - 8]
add esp, 0x10
push eax
push esi
mov dword [edi + 0x28], eax
call fcn.1003debb
push dword [edi + 0x7c]
mov eax, ebx
push dword [edi + 0xc0]
sub eax, dword [ebp - 4]
push 0x14
pop ecx
cdq
idiv ecx
push eax
push str.statement_aborts_at__d:___s___s
push dword [ebp - 8]
call fcn.1000bb93
push edi
call fcn.1004580d
add esp, 0x20
cmp dword [ebp - 8], 0xc0a
jne 0x10044cce
push esi
call fcn.10035b7e
add esp, 4
xor eax, eax
inc eax
mov dword [ebp - 8], eax
mov al, byte [ebp - 0x5d]
test al, al
je 0x10044ce8
movzx eax, al
dec eax
push eax
push esi
call fcn.1003a8c7
pop ecx
pop ecx
mov ecx, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x84]
cmp edx, ecx
jb 0x10045010
mov eax, dword [esi + 0x148]
test eax, eax
je 0x10045010
add ecx, dword [esi + 0x150]
push dword [esi + 0x14c]
mov dword [ebp - 0x6c], ecx
call eax
pop ecx
test eax, eax
je 0x10044ce8
or eax, 0xffffffff
mov dword [ebp - 0x6c], eax
push 9
jmp 0x100411b0
push str.cannot_open_savepoint___SQL_statements_in_progress
push edi
call fcn.10040635
pop ecx
pop ecx
push 5
jmp 0x100411b0
push str.cannot_release_savepoint___SQL_statements_in_progress
jmp 0x10044d2f
mov eax, ebx
sub eax, dword [ebp - 4]
cdq
idiv dword [ebp - 0xb0]
mov dword [edi + 0x24], eax
xor eax, eax
mov byte [esi + 0x4f], al
mov dword [ebp - 8], ecx
mov dword [edi + 0x28], ecx
jmp 0x10044ce8
push dword [ebp - 0x18]
push str.no_such_savepoint:__s
push edi
call fcn.10040635
add esp, 0xc
xor eax, eax
inc eax
jmp 0x10044c54
push 8
pop eax
jmp 0x10044c56
cmp al, 5
jne 0x10044c54
mov eax, ebx
sub eax, dword [ebp - 4]
push 0x14
cdq
pop ecx
idiv ecx
mov dword [edi + 0x24], eax
mov eax, dword [ebp - 8]
mov dword [edi + 0x28], eax
jmp 0x10044ce8
mov eax, 0x204
jmp 0x10044c54
push 6
pop eax
push 2
pop ecx
mov byte [edi + 0x92], cl
jmp 0x10044c54
push 7
pop eax
mov dword [ebp - 8], eax
push esi
call fcn.1003a862
mov eax, dword [ebp - 8]
pop ecx
push 7
pop ecx
cmp eax, ecx
je 0x10044fec
jmp 0x10044c54
xor eax, eax
inc eax
push str.too_many_levels_of_trigger_recursion
push edi
mov dword [ebp - 8], eax
call fcn.10040635
pop ecx
pop ecx
mov eax, dword [ebp - 8]
jmp 0x10044c54
push ecx
call fcn.100029fe
push eax
push 0x10071f6c
push edi
call fcn.10040635
add esp, 0x10
jmp 0x10044df1
xor eax, eax
mov edx, str.out_of
inc eax
cmp ecx, 5
mov dword [ebp - 8], eax
mov eax, str.into
cmovne eax, edx
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
push edi
call fcn.10040635
add esp, 0xc
jmp 0x10044df1
mov eax, dword [ebp - 0xc]
push dword [ebp - 0x44]
call dword [eax + 0x1c]
pop ecx
jmp 0x10044fec
push 6
jmp 0x100411b0
mov esi, ecx
push str.string_or_blob_too_big
push edi
call fcn.10040635
pop ecx
pop ecx
push 0x12
jmp 0x100411b0
xor eax, eax
push eax
push edi
call fcn.10040306
pop ecx
pop ecx
test eax, eax
jne 0x10044c54
inc eax
push eax
push edi
call fcn.10040430
mov eax, dword [edi + 0x20]
pop ecx
pop ecx
push 2
pop ecx
add eax, ecx
xor ecx, ecx
inc ecx
or eax, ecx
mov dword [edi + 0x20], eax
xor eax, eax
imul esi, dword [ebx + 4], 0x28
mov dword [ebp + 8], eax
add esi, dword [ebp - 0x14]
mov dword [edi + 0x78], esi
cmp dword [ebx + 8], eax
jle 0x10044ed6
mov eax, 0x1000
test word [esi + 8], ax
je 0x10044ebe
push esi
call fcn.100466ef
pop ecx
test eax, eax
jne 0x10044fe9
push esi
call fcn.1004676b
mov eax, dword [ebp + 8]
add esi, 0x28
inc eax
pop ecx
mov dword [ebp + 8], eax
cmp eax, dword [ebx + 8]
jl 0x10044ea4
xor eax, eax
mov esi, dword [ebp - 0x1c]
cmp byte [esi + 0x51], 0
jne 0x10044fec
push 4
pop ecx
test byte [esi + 0x58], cl
je 0x10044efd
push eax
push edi
push dword [esi + 0xcc]
push ecx
call dword [esi + 0xc8]
add esp, 0x10
mov eax, ebx
mov dword [ebp - 8], 0x64
sub eax, dword [ebp - 4]
push 0x14
cdq
pop ecx
idiv ecx
inc eax
mov dword [edi + 0x24], eax
jmp 0x10044ce8
mov ecx, dword [ebx + 4]
movzx eax, byte [esi + 0x4f]
mov dword [ebp + 8], ecx
cmp ecx, eax
je 0x10044fb9
cmp dword [ebx + 8], 0
je 0x10044f42
push 0x204
push esi
call fcn.1003ac3d
pop ecx
xor eax, eax
pop ecx
inc eax
jmp 0x10044f74
test ecx, ecx
je 0x10044f5a
xor eax, eax
cmp dword [esi + 0xb4], eax
jle 0x10044f5a
push str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x10044d2f
xor eax, eax
inc eax
push eax
push edi
call fcn.10040306
mov dword [ebp - 8], eax
pop ecx
pop ecx
test eax, eax
jne 0x10044ce8
mov eax, dword [ebp + 8]
push edi
mov byte [esi + 0x4f], al
call fcn.1004580d
pop ecx
push 5
pop ecx
cmp eax, ecx
jne 0x10044f9f
mov eax, ebx
sub eax, dword [ebp - 4]
cdq
idiv dword [ebp - 0xb0]
mov dword [edi + 0x24], eax
xor eax, eax
inc eax
sub al, byte [ebp + 8]
jmp 0x10044d56
push esi
call fcn.1002980b
pop ecx
xor eax, eax
xor ecx, ecx
inc eax
cmp dword [edi + 0x28], ecx
push 0x65
pop ecx
cmove eax, ecx
jmp 0x10044c3e
xor edx, edx
mov eax, str.cannot_commit___no_transaction_is_active
test ecx, ecx
mov ecx, str.cannot_rollback___no_transaction_is_active
sete dl
cmp dword [ebx + 8], 0
cmove ecx, eax
test edx, edx
mov eax, str.cannot_start_a_transaction_within_a_transaction
cmove eax, ecx
push eax
push edi
call fcn.10040635
pop ecx
pop ecx
jmp 0x10044d72
mov esi, dword [ebp - 0x1c]
push esi
call fcn.10035b7e
mov dword [esp], str.out_of_memory
push edi
call fcn.10040635
pop ecx
pop ecx
push 7
jmp 0x100411b0
mov edi, dword [ebp + 8]
jmp 0x10044c51
add dword [edi + 0xb4], edx
push edi
call fcn.10045cef
mov eax, dword [ebp - 8]
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret