Function at 0x43f450
Capabilities:
Encrypt data using speck
Reference sql statements
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2e4
mov eax, dword [0x51b08c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, ecx
mov dword [ebp - 0xdc], 0
push edi
mov dword [ebp - 0xd4], esi
mov byte [ebp - 0x125], 0
mov ebx, dword [esi]
mov edi, dword [esi + 4]
mov dword [ebp - 0x110], edi
mov dword [ebp - 0xd0], edi
mov al, byte [ebx + 0x42]
mov byte [ebp - 0x114], al
mov eax, dword [esi + 8]
mov dword [ebp - 0xe0], eax
mov eax, dword [ebx + 0x20]
mov dword [ebp - 0x138], eax
mov eax, dword [ebx + 0x24]
mov dword [ebp - 0x12c], ebx
mov dword [ebp - 0x178], 0
mov dword [ebp - 0xd8], 0
mov dword [ebp - 0x170], 0
mov dword [ebp - 0x15c], 0
mov dword [ebp - 0x13c], eax
call fcn.00438a40
cmp dword [esi + 0x50], 7
je 0x441352
mov dword [esi + 0x50], 0
mov dword [esi + 0x90], 0
mov dword [esi + 0x94], 0
mov dword [esi + 0x14], 0
cmp dword [ebx + 0xf8], 0
mov dword [ebx + 0x184], 0
jne 0x444dc7
cmp dword [ebx + 0x130], 0
je 0x43f54b
mov ecx, dword [ebx + 0x138]
xor edx, edx
mov eax, dword [esi + 0x84]
div ecx
sub ecx, edx
mov dword [ebp - 0x170], ecx
mov eax, dword [esi + 0x4c]
mov ecx, 4
mov dword [ebp - 0x1e4], 0x3e00
lea eax, [eax + eax*4]
lea edi, [edi + eax*4]
xor eax, eax
inc eax
mov dword [ebp - 0xd0], edi
mov dword [ebp - 0xd8], eax
mov al, byte [edi]
movzx edx, al
mov byte [ebp - 0xe1], al
mov dword [ebp - 0x10c], edx
cmp edx, 0x9d
ja case.0x43f58f.110
jmp dword [edx*4 + 0x444f5c]
mov edx, dword [ebp - 0xd0]
mov ebx, dword [ebp - 0xe0]
mov eax, dword [edx + 4]
lea esi, [eax + eax*4]
mov eax, 0x66666667
mov word [ebx + esi*8 + 8], cx
mov ecx, edx
sub ecx, dword [ebp - 0x110]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ebx + esi*8], eax
mov dword [ebx + esi*8 + 4], edx
mov edi, dword [ebp - 0xd0]
mov eax, dword [edi + 8]
mov ecx, dword [ebp - 0x110]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea edi, [ecx + eax*4]
jmp 0x43fa63
mov edx, dword [ebp - 0xd0]
mov ebx, dword [ebp - 0x110]
mov eax, dword [edx + 4]
mov edx, dword [ebp - 0xe0]
lea ecx, [eax + eax*4]
mov eax, dword [edx + ecx*8]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*4]
mov eax, 0x80
mov ebx, dword [ebp - 0x12c]
add edi, 0x14
mov word [edx + ecx*8 + 8], ax
mov ecx, 4
mov eax, dword [ebp - 0xd8]
jmp 0x43f565
mov edx, dword [ebp - 0xd0]
mov ebx, dword [ebp - 0xe0]
mov edi, dword [ebp - 0xd0]
mov eax, dword [edx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
dec eax
cdq
mov dword [ebx + ecx*8], eax
mov eax, 4
mov dword [ebx + ecx*8 + 4], edx
mov word [ebx + ecx*8 + 8], ax
cmp dword [edi + 8], 0
jne 0x43f5d4
mov ebx, dword [ebp - 0x12c]
mov ecx, eax
mov eax, dword [ebp - 0xd8]
add edi, 0x14
jmp 0x43f565
mov edx, dword [ebp - 0xd0]
mov ebx, dword [ebp - 0x110]
mov eax, dword [edx + 4]
mov edx, dword [ebp - 0xe0]
lea ecx, [eax + eax*4]
mov eax, dword [edx + ecx*8]
lea eax, [eax + eax*4]
mov eax, dword [ebx + eax*4 + 8]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
jmp 0x43f609
mov edx, dword [ebp - 0xd0]
mov edi, dword [ebp - 0x110]
mov ebx, dword [ebp - 0xe0]
mov eax, dword [edx + 4]
sub edx, edi
lea esi, [eax + eax*4]
mov eax, 0x66666667
imul edx
mov word [ebx + esi*8 + 8], cx
mov ecx, dword [ebx + esi*8]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ebx + esi*8], eax
lea eax, [ecx + ecx*4]
mov dword [ebx + esi*8 + 4], edx
lea edi, [edi + eax*4]
jmp 0x43fa63
mov eax, dword [edi + 0xc]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
je 0x43fa69
mov ecx, edi
mov eax, 0x66666667
sub ecx, dword [ebp - 0x110]
imul ecx
sar edx, 3
mov edi, edx
shr edi, 0x1f
add edi, edx
mov edx, dword [ebp - 0xd0]
cmp dword [edx + 4], 0
jne 0x4448ea
mov ecx, dword [esi + 0xb8]
test ecx, ecx
je 0x4448ea
mov eax, dword [ecx + 4]
dec dword [esi + 0xc0]
mov dword [esi + 0xb8], eax
mov eax, dword [esi + 0x64]
add dword [ebx + 0x58], eax
mov dword [ebx + 0x54], eax
call fcn.00439580
mov ecx, eax
mov eax, dword [ebx + 0x20]
mov dword [ebp - 0x138], eax
mov eax, dword [ebx + 0x24]
mov dword [ebp - 0x13c], eax
mov eax, dword [ebp - 0xd0]
cmp dword [eax + 8], 4
jne 0x43f786
mov eax, dword [esi + 4]
lea ecx, [ecx + ecx*4]
mov ecx, dword [eax + ecx*4 + 8]
dec ecx
mov edx, dword [esi + 4]
mov eax, dword [esi + 8]
mov ebx, dword [ebp - 0x12c]
mov dword [ebp - 0xe0], eax
lea eax, [ecx + ecx*4]
lea edi, [edx + eax*4]
mov dword [ebp - 0x110], edx
mov eax, dword [ebp - 0xd8]
mov ecx, 4
add edi, 0x14
jmp 0x43f565
mov edx, dword [ebp - 0xd0]
mov ecx, esi
call fcn.0043f420
mov ecx, eax
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax + 4]
cdq
mov dword [ecx + 4], edx
mov dword [ecx], eax
mov edi, dword [ebp - 0xd0]
mov ecx, 4
mov eax, dword [ebp - 0xd8]
add edi, 0x14
mov ebx, dword [ebp - 0x12c]
jmp 0x43f565
mov edx, dword [ebp - 0xd0]
mov ecx, esi
call fcn.0043f420
mov edi, dword [ebp - 0xd0]
mov edx, eax
mov eax, dword [ebp - 0xd0]
add edi, 0x14
mov ebx, dword [ebp - 0x12c]
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov ecx, 4
mov dword [edx + 4], eax
mov eax, dword [ebp - 0xd8]
jmp 0x43f565
mov edx, dword [ebp - 0xd0]
mov ecx, esi
call fcn.0043f420
mov edi, dword [ebp - 0xd0]
mov ecx, eax
mov ebx, dword [ebp - 0x12c]
mov eax, 8
add edi, 0x14
mov word [ecx + 8], ax
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax + 0x10]
movsd xmm0, qword [eax]
mov eax, dword [ebp - 0xd8]
movsd qword [ecx], xmm0
mov ecx, 4
jmp 0x43f565
mov edx, dword [ebp - 0xd0]
mov ecx, esi
call fcn.0043f420
mov esi, eax
mov eax, dword [ebp - 0xd0]
mov edi, dword [eax + 0x10]
mov ecx, edi
mov byte [eax], 0x4c
call fcn.0041b170
cmp byte [ebp - 0x114], 1
mov edx, dword [ebp - 0xd0]
mov dword [edx + 4], eax
je 0x43f917
push 0
push 1
push 0xffffffffffffffff
mov edx, edi
mov ecx, esi
call fcn.00436b30
movzx edx, byte [ebp - 0x114]
add esp, 0xc
mov ecx, esi
mov dword [ebp - 0xdc], eax
call fcn.00435f20
test eax, eax
jne 0x44134c
mov edx, dword [ebp - 0xd0]
mov dword [esi + 0x18], eax
mov eax, 0x800
or word [esi + 8], ax
cmp byte [edx + 1], 0xff
jne 0x43f907
mov edx, dword [edx + 0x10]
mov ecx, ebx
call fcn.00418590
mov edx, dword [ebp - 0xd0]
mov byte [edx + 1], 0xff
mov eax, dword [esi + 0x10]
mov dword [edx + 0x10], eax
mov eax, dword [esi + 0xc]
mov dword [edx + 4], eax
mov eax, dword [edx + 4]
cmp eax, dword [ebx + 0x5c]
jg 0x444b80
mov esi, dword [ebp - 0xd4]
mov ecx, esi
call fcn.0043f420
mov edi, dword [ebp - 0xd0]
mov ecx, eax
mov eax, 0xa02
mov word [ecx + 8], ax
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax + 0x10]
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax + 4]
mov dword [ecx + 0xc], eax
mov al, byte [ebp - 0x114]
mov byte [ecx + 0xa], al
mov eax, dword [edi + 0xc]
test eax, eax
jle 0x43fa69
mov ebx, dword [ebp - 0xe0]
lea esi, [eax + eax*4]
movzx eax, byte [edi + 3]
cdq
cmp dword [ebx + esi*8], eax
jne 0x43fa63
cmp dword [ebx + esi*8 + 4], edx
mov esi, dword [ebp - 0xd4]
jne 0x43fa69
mov ebx, dword [ebp - 0x12c]
mov eax, 0xa10
mov word [ecx + 8], ax
add edi, 0x14
mov eax, dword [ebp - 0xd8]
mov ecx, 4
jmp 0x43f565
mov edx, dword [ebp - 0xd0]
jmp 0x43f929
mov ebx, dword [ebp - 0xd0]
mov ecx, esi
mov edx, ebx
call fcn.0043f420
mov edi, dword [ebx + 0xc]
mov esi, eax
sub edi, dword [ebx + 8]
mov ecx, 1
cmp dword [ebx + 4], 0
mov eax, 0x101
cmovne ecx, eax
movzx ebx, cx
mov word [esi + 8], bx
test edi, edi
jle 0x43fa5d
add esi, 0x28
mov ecx, esi
call fcn.00436850
dec edi
mov word [esi + 8], bx
test edi, edi
jg 0x43f9f4
jmp 0x43fa5d
mov eax, dword [edi + 4]
mov ebx, 0xff7f
mov edx, dword [ebp - 0xe0]
lea ecx, [eax + eax*4]
mov ax, word [edx + ecx*8 + 8]
and ax, bx
or ax, 1
jmp 0x43f611
mov edx, dword [ebp - 0xd0]
mov ecx, esi
call fcn.0043f420
mov esi, eax
mov eax, dword [ebp - 0xd0]
push 0
push 0
mov ecx, esi
push dword [eax + 4]
mov edx, dword [eax + 0x10]
call fcn.00436b30
add esp, 0xc
mov al, byte [ebp - 0x114]
mov byte [esi + 0xa], al
mov edi, dword [ebp - 0xd0]
mov esi, dword [ebp - 0xd4]
mov ecx, 4
mov eax, dword [ebp - 0xd8]
add edi, 0x14
mov ebx, dword [ebp - 0x12c]
jmp 0x43f565
mov edx, dword [ebp - 0xd0]
mov eax, dword [edx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x3c]
lea esi, [eax + ecx*8]
lea ecx, [esi - 0x28]
call fcn.004369c0
test eax, eax
jne 0x444b80
mov edx, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xd4]
call fcn.0043f420
push 0x800
lea edx, [esi - 0x28]
mov ecx, eax
call fcn.00436a20
add esp, 4
jmp 0x43fa5d
mov edx, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xe0]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0xe8], eax
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov edx, edi
mov ecx, esi
call fcn.00436ae0
mov eax, 0x1000
test word [esi + 8], ax
je 0x43fb13
mov ecx, esi
call fcn.00436070
test eax, eax
jne 0x44134c
add edi, 0x28
add esi, 0x28
sub dword [ebp - 0xe8], 1
jne 0x43faf0
jmp 0x43fa5d
mov edx, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xe0]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0xe8], eax
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
nop
push 0x1000
mov edx, edi
mov ecx, esi
call fcn.00436a20
mov eax, 0x1000
add esp, 4
test word [esi + 8], ax
je 0x43fb7b
mov ecx, esi
call fcn.00436070
test eax, eax
jne 0x44134c
mov ecx, dword [ebp - 0xe8]
mov eax, ecx
dec ecx
mov dword [ebp - 0xe8], ecx
test eax, eax
je 0x43fa5d
add esi, 0x28
add edi, 0x28
jmp 0x43fb50
mov edx, dword [ebp - 0xd0]
mov ebx, dword [ebp - 0xe0]
push 0x1000
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edx, [ebx + eax*8]
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
call fcn.00436a20
mov edi, dword [ebp - 0xd0]
add esp, 4
mov eax, dword [ebp - 0xd8]
mov ecx, 4
mov ebx, dword [ebp - 0x12c]
add edi, 0x14
jmp 0x43f565
mov edx, dword [ebp - 0xd0]
mov ebx, dword [ebp - 0xe0]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
push dword [ebx + eax*8 + 4]
push dword [ebx + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
call fcn.004368b0
mov edi, dword [ebp - 0xd0]
add esp, 8
mov eax, dword [ebp - 0xd8]
mov ecx, 4
mov ebx, dword [ebp - 0x12c]
add edi, 0x14
jmp 0x43f565
mov edx, dword [ebp - 0xd0]
mov esi, dword [ebp - 0xe0]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov eax, dword [edx + 8]
mov dword [ebp - 0xe8], ecx
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov eax, dword [edx + 0xc]
movzx edx, word [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov al, byte [edi + 8]
or al, dl
test al, 1
je 0x43fc79
mov ecx, esi
call fcn.00436850
jmp 0x43fa5d
test edx, 0x4000
je 0x43fc8e
call fcn.004360e0
test eax, eax
jne 0x44134c
mov eax, 0x4000
test word [edi + 8], ax
je 0x43fca8
mov ecx, edi
call fcn.004360e0
test eax, eax
jne 0x44134c
mov eax, dword [ebp - 0xe8]
test byte [eax + 8], 0x12
jne 0x43fcce
mov dl, byte [ebp - 0x114]
mov ecx, eax
push 0
call fcn.004361a0
add esp, 4
test eax, eax
jne 0x44134c
test byte [edi + 8], 0x12
jne 0x43fcee
mov dl, byte [ebp - 0x114]
mov ecx, edi
push 0
call fcn.004361a0
add esp, 4
test eax, eax
jne 0x44134c
mov eax, dword [ebp - 0xe8]
mov eax, dword [eax + 0xc]
add eax, dword [edi + 0xc]
cdq
mov dword [ebp - 0xf4], eax
mov ecx, edx
mov eax, dword [ebx + 0x5c]
cdq
cmp ecx, edx
jg 0x444b80
mov edx, dword [ebp - 0xf4]
jl 0x43fd1f
cmp edx, eax
ja 0x444b80
xor eax, eax
mov ecx, esi
cmp esi, edi
sete al
add edx, 2
push eax
call fcn.00435f40
add esp, 4
test eax, eax
jne 0x44134c
mov ax, word [esi + 8]
mov ecx, 0x3e00
and ax, cx
or ax, 2
mov word [esi + 8], ax
cmp esi, edi
je 0x43fd65
push dword [edi + 0xc]
push dword [edi + 0x10]
push dword [esi + 0x10]
call fcn.004a2a80
add esp, 0xc
mov eax, dword [ebp - 0xe8]
push dword [eax + 0xc]
push dword [eax + 0x10]
mov eax, dword [esi + 0x10]
add eax, dword [edi + 0xc]
push eax
call fcn.004a2a80
mov eax, dword [esi + 0x10]
add esp, 0xc
mov ecx, dword [ebp - 0xf4]
mov byte [ecx + eax], 0
mov eax, dword [esi + 0x10]
mov byte [eax + ecx + 1], 0
mov eax, 0x200
or word [esi + 8], ax
mov dword [esi + 0xc], ecx
jmp 0x43fa54
mov ebx, dword [ebp - 0xd0]
mov esi, dword [ebp - 0xe0]
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov ecx, eax
mov dword [ebp - 0xec], eax
call fcn.0043f3c0
movzx eax, ax
mov dword [ebp - 0xf4], eax
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov ecx, eax
mov dword [ebp - 0xf0], eax
call fcn.0043f3c0
mov edx, dword [ebp - 0xec]
mov ecx, ebx
movzx eax, ax
mov dword [ebp - 0xe8], eax
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
lea ebx, [esi + eax*8]
mov esi, dword [ebp - 0xf0]
mov dword [ebp - 0x11c], ebx
mov al, byte [esi + 8]
or al, byte [edx + 8]
test al, 1
jne 0x44007c
mov al, byte [ebp - 0xe8]
and al, byte [ebp - 0xf4]
test al, 4
je 0x43ff8a
mov eax, edx
mov byte [ebp - 0xe1], 1
mov edx, dword [eax]
mov esi, dword [eax + 4]
mov eax, dword [ebp - 0xf0]
mov edi, dword [eax]
mov ebx, dword [eax + 4]
movzx eax, byte [ecx]
add eax, 0xffffffd1
mov dword [ebp - 0x150], edi
mov dword [ebp - 0x14c], ebx
cmp eax, 3
ja case.default.0x43fe63
jmp dword [eax*4 + 0x4451d4]
push esi
push edx
lea ecx, [ebp - 0x150]
call fcn.0041c440
add esp, 8
test eax, eax
je 0x43ff5a
mov ebx, dword [ebp - 0x11c]
mov esi, dword [ebp - 0xf0]
mov edx, dword [ebp - 0xec]
mov ecx, edx
call fcn.00436500
mov ecx, esi
movsd qword [ebp - 0x100], xmm0
call fcn.00436500
mov eax, dword [ebp - 0xd0]
movaps xmm1, xmm0
movsd qword [ebp - 0x108], xmm1
movzx eax, byte [eax]
add eax, 0xffffffd1
cmp eax, 3
ja case.default.0x43feca
jmp dword [eax*4 + 0x4451e4]
push esi
push edx
lea ecx, [ebp - 0x150]
call fcn.0041c4e0
add esp, 8
test eax, eax
jne 0x43fe82
jmp 0x43ff5a
push esi
push edx
lea ecx, [ebp - 0x150]
call fcn.0041c530
add esp, 8
test eax, eax
jne 0x43fe82
jmp 0x43ff5a
mov eax, edx
or eax, esi
je 0x44007c
mov eax, edx
and eax, esi
cmp eax, 0xffffffff
jne 0x43ff20
test edi, edi
jne 0x43ff20
cmp ebx, 0x80000000
je 0x43fe82
push esi
push edx
push ebx
push edi
call fcn.004bdd80
jmp 0x43ff4e
mov eax, edx
or eax, esi
je 0x44007c
mov eax, edx
and eax, esi
cmp eax, 0xffffffff
jne 0x43ff45
mov edx, 1
xor esi, esi
push esi
push edx
push ebx
push edi
call fcn.004bde30
mov dword [ebp - 0x14c], edx
mov dword [ebp - 0x150], eax
mov ecx, dword [ebp - 0x11c]
mov edx, 0x3e00
mov eax, dword [ebp - 0x150]
mov dword [ecx], eax
mov eax, dword [ebp - 0x14c]
mov dword [ecx + 4], eax
mov ax, word [ecx + 8]
and ax, dx
or ax, 4
mov word [ecx + 8], ax
jmp 0x43fa5d
mov byte [ebp - 0xe1], 0
jmp 0x43fe94
addsd xmm1, qword [ebp - 0x100]
jmp 0x44002b
subsd xmm1, qword [ebp - 0x100]
jmp 0x44002b
mulsd xmm1, qword [ebp - 0x100]
jmp 0x44002b
movsd xmm0, qword [ebp - 0x100]
xorps xmm2, xmm2
ucomisd xmm0, xmm2
lahf
test ah, 0x44
jnp 0x44007c
divsd xmm1, xmm0
jmp 0x44002b
movsd xmm0, qword [ebp - 0x100]
call fcn.004bd91f
movsd xmm0, qword [ebp - 0x108]
mov esi, eax
mov edi, edx
call fcn.004bd91f
mov ecx, eax
mov dword [ebp - 0x14c], edx
mov eax, esi
mov dword [ebp - 0x150], ecx
or eax, edi
je 0x44007c
mov eax, esi
and eax, edi
cmp eax, 0xffffffff
jne 0x440018
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push ecx
call fcn.004bde30
mov ecx, eax
call fcn.004bda70
movaps xmm1, xmm0
movaps xmm0, xmm1
call fcn.0041b130
test eax, eax
jne 0x44007c
mov ax, word [ebx + 8]
mov ecx, 0x3e00
and ax, cx
movsd qword [ebx], xmm1
or ax, 8
mov word [ebx + 8], ax
mov eax, dword [ebp - 0xe8]
or al, byte [ebp - 0xf4]
test al, 8
jne 0x43fa5d
cmp byte [ebp - 0xe1], 0
jne 0x43fa5d
mov ecx, ebx
call fcn.00436560
jmp 0x43fa5d
mov ecx, dword [ebp - 0x11c]
call fcn.00436850
jmp 0x43fa5d
mov eax, dword [edi + 4]
test eax, eax
je case.0x43f58f.110
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
push 0
push 0
lea ecx, [ecx + eax*8]
call fcn.004368b0
mov eax, dword [ebp - 0xd8]
add esp, 8
mov ebx, dword [ebp - 0x12c]
mov ecx, 4
add edi, 0x14
jmp 0x43f565
mov edx, dword [ebp - 0xd0]
mov ecx, ebx
push 0
movzx eax, byte [edx + 3]
mov dword [ebp - 0x104], eax
lea eax, [eax*4 + 0x1c]
push eax
call fcn.00418890
mov esi, eax
add esp, 8
test esi, esi
je 0x44134c
mov ecx, dword [ebp - 0xd0]
mov dword [esi], 0
mov eax, dword [ecx + 0x10]
sub ecx, dword [ebp - 0x110]
mov dword [esi + 4], eax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0xd0]
mov dword [esi + 0x10], eax
mov eax, dword [ebp - 0xd4]
mov dword [esi + 0xc], eax
mov eax, dword [ebp - 0x104]
mov byte [esi + 0x1a], al
mov word [edx], 0xeb58
mov dword [edx + 0x10], esi
jmp 0x44014a
mov edx, dword [ebp - 0xd0]
mov eax, dword [edx + 0xc]
mov ecx, dword [ebp - 0xe0]
mov esi, dword [edx + 0x10]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov dword [ebp - 0x104], edi
cmp dword [esi], edi
je 0x4401a5
movzx ecx, byte [esi + 0x1a]
sub ecx, 1
mov dword [esi], edi
js 0x4401a5
mov ebx, dword [ebp - 0xd0]
lea edx, [ecx + 7]
mov edi, dword [ebp - 0xe0]
lea edx, [esi + edx*4]
mov eax, dword [ebx + 8]
lea edx, [edx - 4]
add eax, ecx
sub ecx, 1
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [edx + 4], eax
jns 0x440183
mov ebx, dword [ebp - 0x12c]
mov edi, dword [ebp - 0x104]
mov ecx, dword [esi]
mov edx, 0x3e00
mov ax, word [ecx + 8]
and ax, dx
or ax, 1
mov word [ecx + 8], ax
lea eax, [esi + 0x1c]
mov ecx, dword [ebp - 0x138]
mov byte [esi + 0x19], 0
mov dword [ebx + 0x20], ecx
mov ecx, dword [ebp - 0x13c]
mov dword [ebx + 0x24], ecx
mov ecx, dword [esi + 4]
push eax
movzx eax, byte [esi + 0x1a]
push eax
mov eax, dword [ecx + 0xc]
push esi
call eax
mov eax, dword [ebx + 0x20]
add esp, 0xc
cmp byte [esi + 0x19], 0
mov dword [ebp - 0x138], eax
mov eax, dword [ebx + 0x24]
mov dword [ebp - 0x13c], eax
je 0x44025b
cmp dword [esi + 0x14], 0
je 0x44022b
push dword [esi]
call fcn.0043cbf0
add esp, 4
push eax
push 0x4fb860
push dword [ebp - 0xd4]
call fcn.00437500
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0xd0]
mov ecx, ebx
mov edx, dword [ebp - 0xd4]
push dword [eax + 4]
lea edx, [edx + 0xd4]
push dword [esi + 0x10]
call fcn.0043a730
mov eax, dword [ebp - 0xdc]
add esp, 8
test eax, eax
jne 0x440de9
test byte [edi + 8], 0x12
je 0x43fa5d
movzx edx, byte [ebp - 0x114]
mov ecx, dword [esi]
call fcn.00435f20
mov ecx, dword [esi]
call fcn.004369c0
mov esi, dword [ebp - 0xd4]
test eax, eax
jne 0x444b86
mov edi, dword [ebp - 0xd0]
lea ecx, [eax + 4]
mov eax, dword [ebp - 0xd8]
add edi, 0x14
mov ebx, dword [ebp - 0x12c]
jmp 0x43f565
mov edx, dword [ebp - 0xd0]
mov edi, dword [ebp - 0xe0]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea ebx, [edi + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea edx, [edi + eax*8]
mov al, byte [ecx + 8]
or al, byte [ebx + 8]
mov dword [ebp - 0x104], edx
test al, 1
je 0x440302
mov ecx, edx
call fcn.00436850
mov edi, dword [ebp - 0xd0]
mov ecx, 4
mov eax, dword [ebp - 0xd8]
add edi, 0x14
mov ebx, dword [ebp - 0x12c]
jmp 0x43f565
call fcn.00436450
mov edi, eax
mov esi, edx
mov ecx, ebx
mov dword [ebp - 0x1e0], edi
mov dword [ebp - 0x1dc], esi
call fcn.00436450
mov ebx, eax
mov eax, dword [ebp - 0xd0]
mov cl, byte [eax]
cmp cl, 0x2b
jne 0x440336
and edi, ebx
and esi, edx
jmp 0x4403d4
cmp cl, 0x2c
jne 0x440344
or edi, ebx
or esi, edx
jmp 0x4403d4
mov eax, ebx
or eax, edx
je 0x4403d4
test edx, edx
jg 0x44037c
jl 0x440358
test ebx, ebx
jae 0x440371
mov al, 0x5b
sub al, cl
mov cl, al
cmp edx, 0xffffffff
jl 0x44037c
jg 0x44036a
cmp ebx, 0xffffffc0
jbe 0x44037c
neg ebx
adc edx, 0
neg edx
test edx, edx
jl 0x4403ab
jg 0x44037c
cmp ebx, 0x40
jb 0x4403ab
test esi, esi
jg 0x440392
jl 0x440386
test edi, edi
jae 0x440392
cmp cl, 0x2d
je 0x440392
or edi, 0xffffffff
or esi, edi
jmp 0x4403d4
xorps xmm0, xmm0
movlpd qword [ebp - 0x100], xmm0
mov esi, dword [ebp - 0xfc]
mov edi, dword [ebp - 0x100]
jmp 0x4403d4
movq xmm1, qword [ebp - 0x1e0]
movd xmm0, ebx
cmp cl, 0x2d
jne 0x4403f8
psllq xmm1, xmm0
movq qword [ebp - 0x100], xmm1
mov edi, dword [ebp - 0x100]
mov esi, dword [ebp - 0xfc]
mov ecx, dword [ebp - 0x104]
mov edx, 0x3e00
mov ax, word [ecx + 8]
and ax, dx
mov dword [ecx], edi
or ax, 4
mov dword [ecx + 4], esi
mov word [ecx + 8], ax
jmp 0x43fa5d
psrlq xmm1, xmm0
movq qword [ebp - 0x100], xmm1
test esi, esi
jg 0x4403c8
jl 0x44040e
test edi, edi
jae 0x4403c8
mov ecx, 0x40
or eax, 0xffffffff
sub ecx, ebx
or edx, 0xffffffff
call fcn.004bdd40
mov edi, dword [ebp - 0x100]
mov esi, dword [ebp - 0xfc]
or edi, eax
or esi, edx
jmp 0x4403d4
mov edx, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xe0]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.00436600
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax + 8]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
jmp 0x43fa5d
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx eax, word [esi + 8]
test al, 4
jne 0x4404b2
test al, 8
jne 0x44048f
test al, 2
je 0x440496
mov edx, 1
mov ecx, esi
call fcn.0043f1d0
jmp 0x440496
mov ecx, esi
call fcn.00436560
movzx eax, word [esi + 8]
test al, 4
jne 0x4404b2
cmp dword [edi + 8], 0
jne 0x43f5d4
mov eax, 0x14
jmp 0x440de9
and eax, 0x3e00
or eax, 4
mov word [esi + 8], ax
jmp 0x43fa63
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 4
lea ecx, [ecx + eax*8]
je 0x43fa69
call fcn.00436630
mov eax, dword [ebp - 0xd8]
mov ecx, 4
mov ebx, dword [ebp - 0x12c]
add edi, 0x14
jmp 0x43f565
mov edx, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xe0]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, 0x4000
test word [esi + 8], ax
je 0x44052a
mov ecx, esi
call fcn.004360e0
mov dword [ebp - 0xdc], eax
jmp 0x440534
mov dword [ebp - 0xdc], 0
mov eax, dword [ebp - 0xd0]
mov ecx, esi
push dword [ebp - 0x114]
mov dl, byte [eax + 8]
call fcn.00436780
add esp, 4
mov eax, dword [ebp - 0xdc]
mov esi, dword [ebp - 0xd4]
test eax, eax
jne 0x440def
mov edi, dword [ebp - 0xd0]
lea ecx, [eax + 4]
mov eax, dword [ebp - 0xd8]
add edi, 0x14
mov ebx, dword [ebp - 0x12c]
jmp 0x43f565
mov edx, dword [ebp - 0xd0]
mov eax, dword [edx + 4]
mov edx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
movzx ebx, word [edx + eax*8 + 8]
lea ecx, [edx + eax*8]
mov eax, dword [ebp - 0xd0]
mov dword [ebp - 0x11c], ecx
mov dword [ebp - 0xf0], ebx
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
movzx esi, word [edx + eax*8 + 8]
lea edi, [edx + eax*8]
mov ecx, esi
mov dword [ebp - 0xe8], edi
or ecx, ebx
mov dword [ebp - 0xec], esi
test cl, 1
je 0x440647
mov edi, dword [ebp - 0xd0]
mov al, byte [edi + 3]
test al, al
jns 0x440615
mov eax, esi
xor ecx, ecx
and eax, ebx
bt ax, cx
jae 0x4405ff
test esi, 0x100
jne 0x4405ff
mov edi, dword [ebp - 0xe8]
mov ebx, dword [ebp - 0x11c]
jmp 0x44077b
mov edi, dword [ebp - 0xe8]
mov ecx, 1
mov ebx, dword [ebp - 0x11c]
jmp 0x44077b
test al, 0x20
je 0x44063a
mov eax, dword [edi + 8]
mov ebx, 0x3e00
lea ecx, [eax + eax*4]
mov ax, word [edx + ecx*8 + 8]
and ax, bx
or ax, 1
mov word [edx + ecx*8 + 8], ax
jmp 0x43fa63
test al, 0x10
jne 0x43f5d4
jmp 0x43fa63
mov eax, dword [ebp - 0xd0]
mov al, byte [eax + 3]
and al, 0x47
cmp al, 0x43
jb 0x440696
test cl, 2
je 0x440724
mov al, byte [ebp - 0xf0]
and al, 0xe
cmp al, 2
jne 0x440678
mov ecx, dword [ebp - 0x11c]
xor edx, edx
call fcn.0043f1d0
mov al, byte [ebp - 0xec]
and al, 0xe
cmp al, 2
jne 0x440724
xor edx, edx
mov ecx, edi
call fcn.0043f1d0
jmp 0x440724
cmp al, 0x42
jne 0x440724
mov al, byte [ebp - 0xf0]
test al, 2
jne 0x4406e4
test al, 0xc
je 0x4406e4
mov ebx, dword [ebp - 0x11c]
mov ecx, ebx
mov dl, byte [ebp - 0x114]
push 1
call fcn.004361a0
mov ax, word [ebx + 8]
mov ecx, 0x7e00
xor ax, word [ebp - 0xf0]
add esp, 4
and ax, cx
xor word [ebp - 0xf0], ax
mov ebx, dword [ebp - 0xf0]
mov al, byte [ebp - 0xec]
test al, 2
jne 0x440724
test al, 0xc
je 0x440724
mov dl, byte [ebp - 0x114]
mov ecx, edi
push 1
call fcn.004361a0
mov ax, word [edi + 8]
mov ecx, 0x7e00
xor ax, word [ebp - 0xec]
add esp, 4
and ax, cx
xor word [ebp - 0xec], ax
mov esi, dword [ebp - 0xec]
test ebx, 0x4000
je 0x440743
mov ecx, dword [ebp - 0x11c]
call fcn.004360e0
and ebx, 0xbfff
mov dword [ebp - 0xf0], ebx
test esi, 0x4000
je 0x44075e
mov ecx, edi
call fcn.004360e0
and esi, 0xbfff
mov dword [ebp - 0xec], esi
mov eax, dword [ebp - 0xd0]
mov ecx, edi
mov ebx, dword [ebp - 0x11c]
mov edx, ebx
push dword [eax + 0x10]
call fcn.0043b710
add esp, 4
mov ecx, eax
mov eax, dword [ebp - 0xd0]
movzx eax, byte [eax]
add eax, 0xffffffdc
cmp eax, 4
ja case.default.0x44078c
jmp dword [eax*4 + 0x4451f4]
xor edx, edx
test ecx, ecx
sete dl
jmp 0x4407c2
xor edx, edx
test ecx, ecx
setne dl
jmp 0x4407c2
mov edx, ecx
jmp 0x4407bf
xor edx, edx
test ecx, ecx
setle dl
jmp 0x4407c2
xor edx, edx
test ecx, ecx
setg dl
jmp 0x4407c2
mov edx, ecx
not edx
shr edx, 0x1f
movzx eax, word [ebp - 0xf0]
mov word [ebx + 8], ax
movzx eax, word [ebp - 0xec]
mov word [edi + 8], ax
mov edi, dword [ebp - 0xd0]
test byte [edi + 3], 0x20
je 0x440815
mov eax, dword [edi + 8]
mov ebx, dword [ebp - 0xe0]
lea esi, [eax + eax*4]
mov eax, 0x3e00
mov cx, word [ebx + esi*8 + 8]
and cx, ax
mov eax, edx
cdq
or cx, 4
mov word [ebx + esi*8 + 8], cx
mov dword [ebx + esi*8], eax
mov dword [ebx + esi*8 + 4], edx
jmp 0x43fa63
test edx, edx
jne 0x43f5d4
jmp 0x43fa63
mov eax, dword [edi + 0x10]
mov ebx, dword [ebp - 0x12c]
add eax, 4
mov dword [ebp - 0x15c], eax
add edi, 0x14
mov eax, dword [ebp - 0xd8]
jmp 0x43f565
mov eax, dword [ebp - 0xd0]
test byte [edi + 3], 1
mov edi, 0
cmovne edi, dword [ebp - 0x15c]
xor esi, esi
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 0x10]
mov ebx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ebp - 0x124], ecx
mov dword [ebp - 0x15c], edx
mov dword [ebp - 0x118], ebx
mov dword [ebp - 0x104], eax
test ecx, ecx
jle 0x4408f8
test edi, edi
je 0x44088b
mov ecx, dword [edi + esi*4]
jmp 0x44088d
mov ecx, esi
mov eax, dword [edx + 0x10]
push dword [edx + esi*4 + 0x14]
mov edx, dword [ebp - 0xe0]
movzx ebx, byte [esi + eax]
mov eax, dword [ebp - 0x104]
add eax, ecx
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov eax, dword [ebp - 0x118]
add eax, ecx
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.0043b710
add esp, 4
mov dword [ebp - 0x178], eax
test eax, eax
jne 0x4408ec
mov edx, dword [ebp - 0x15c]
inc esi
cmp esi, dword [ebp - 0x124]
jl 0x440882
mov dword [ebp - 0x15c], eax
jmp 0x43fa5d
test ebx, ebx
je 0x4408f8
neg eax
mov dword [ebp - 0x178], eax
mov dword [ebp - 0x15c], 0
jmp 0x43fa5d
mov eax, dword [ebp - 0x178]
mov edx, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0x110]
test eax, eax
jns 0x440942
mov eax, dword [edx + 4]
mov ebx, dword [ebp - 0x12c]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea edi, [ecx + eax*4]
mov eax, dword [ebp - 0xd8]
mov ecx, 4
add edi, 0x14
jmp 0x43f565
jne 0x440969
mov eax, dword [edx + 8]
mov ebx, dword [ebp - 0x12c]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea edi, [ecx + eax*4]
mov eax, dword [ebp - 0xd8]
mov ecx, 4
add edi, 0x14
jmp 0x43f565
mov eax, dword [edx + 0xc]
mov ebx, dword [ebp - 0x12c]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea edi, [ecx + eax*4]
mov eax, dword [ebp - 0xd8]
mov ecx, 4
add edi, 0x14
jmp 0x43f565
mov ebx, dword [ebp - 0xd0]
mov edi, dword [ebp - 0xe0]
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 8], 1
lea ecx, [edi + eax*8]
je 0x4409b1
mov esi, 2
jmp 0x4409c3
call fcn.00436450
or eax, edx
je 0x4409c1
mov esi, 1
jmp 0x4409c3
xor esi, esi
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 8], 1
lea ecx, [edi + eax*8]
je 0x4409da
mov eax, 2
jmp 0x4409ec
call fcn.00436450
or eax, edx
je 0x4409ea
mov eax, 1
jmp 0x4409ec
xor eax, eax
cmp byte [ebx], 0x1c
lea eax, [eax + esi*2]
jne 0x4409fd
mov al, byte [esi + eax + 0x4f8390]
jmp 0x440a04
mov al, byte [esi + eax + 0x4f825c]
mov edi, dword [ebp - 0xd0]
mov esi, dword [ebp - 0xd4]
movzx edx, al
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax + 0xc]
lea ecx, [eax + eax*4]
cmp edx, 2
jne 0x440a40
mov edx, dword [ebp - 0xe0]
mov ebx, 0x3e00
mov ax, word [edx + ecx*8 + 8]
and ax, bx
or ax, 1
jmp 0x43f611
mov ebx, dword [ebp - 0xe0]
mov ax, word [ebx + ecx*8 + 8]
mov dword [ebx + ecx*8], edx
mov edx, 0x3e00
and ax, dx
mov dword [ebx + ecx*8 + 4], 0
or ax, 4
add edi, 0x14
mov word [ebx + ecx*8 + 8], ax
mov ecx, 4
mov eax, dword [ebp - 0xd8]
mov ebx, dword [ebp - 0x12c]
jmp 0x43f565
mov edx, dword [ebp - 0xd0]
mov ebx, dword [ebp - 0xe0]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
mov ecx, esi
call fcn.00436850
test byte [edi + 8], 1
jne 0x43fa5d
mov eax, 4
mov ecx, edi
mov word [esi + 8], ax
call fcn.00436450
or eax, edx
jne 0x440ad4
mov eax, 1
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp 0x43fa5d
xorps xmm0, xmm0
movlpd qword [ebp - 0x100], xmm0
mov ecx, dword [ebp - 0xfc]
mov eax, dword [ebp - 0x100]
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp 0x43fa5d
mov edx, dword [ebp - 0xd0]
mov ebx, dword [ebp - 0xe0]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
mov ecx, esi
call fcn.00436850
test byte [edi + 8], 1
jne 0x43fa5d
mov eax, 4
mov ecx, edi
mov word [esi + 8], ax
call fcn.00436450
not eax
not edx
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x43fa5d
mov eax, dword [esi + 0xd0]
mov ecx, dword [edi + 4]
cmp byte [eax + ecx], 0
jne 0x43f5d4
mov ebx, dword [ebp - 0x12c]
add edi, 0x14
mov byte [eax + ecx], 1
mov ecx, 4
mov eax, dword [ebp - 0xd8]
jmp 0x43f565
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
lea ecx, [ecx + eax*8]
je 0x440b8d
mov ecx, dword [edi + 0xc]
jmp 0x440bae
call fcn.00436500
xorps xmm1, xmm1
ucomisd xmm0, xmm1
lahf
xor ecx, ecx
test ah, 0x44
mov eax, 1
cmovp ecx, eax
cmp byte [edi], 0x16
jne 0x440bae
xor ecx, eax
test ecx, ecx
jne 0x43f5d4
mov eax, dword [ebp - 0xd8]
mov ecx, 4
mov ebx, dword [ebp - 0x12c]
add edi, 0x14
jmp 0x43f565
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
jne 0x43f5d4
mov eax, dword [ebp - 0xd8]
mov ecx, 4
mov ebx, dword [ebp - 0x12c]
add edi, 0x14
jmp 0x43f565
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
je 0x43f5d4
mov eax, dword [ebp - 0xd8]
mov ecx, 4
mov ebx, dword [ebp - 0x12c]
add edi, 0x14
jmp 0x43f565
mov edx, dword [ebp - 0xd0]
mov eax, dword [esi + 0x38]
mov ecx, dword [edx + 4]
mov eax, dword [eax + ecx*4]
lea ecx, [ebp - 0x154]
mov dword [ebp - 0x154], eax
mov eax, dword [edx + 8]
lea edx, [ebp - 0x134]
mov dword [ebp - 0x134], eax
call fcn.0043adb0
mov ecx, dword [ebp - 0xe0]
mov edi, dword [ebp - 0x154]
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0xd0]
mov edx, dword [edi + 0x54]
mov dword [ebp - 0xec], edx
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, dword [ebp - 0xdc]
mov ecx, dword [edi + 0x14]
mov dword [ebp - 0x11c], esi
mov dword [ebp - 0x10c], ecx
test eax, eax
jne 0x440de9
mov ebx, dword [ebp - 0xd4]
mov eax, dword [edi + 0x40]
cmp eax, dword [ebx + 0x48]
mov ebx, dword [ebp - 0x12c]
je 0x440e4f
cmp byte [edi + 2], 0
je 0x440ceb
cmp byte [edi], 3
jne 0x43fc6d
lea eax, [ecx + ecx*4]
mov ecx, dword [ebp - 0xe0]
mov esi, dword [ecx + eax*8 + 0xc]
mov dword [edi + 0x48], esi
mov dword [edi + 0x44], esi
mov eax, dword [ecx + eax*8 + 0x10]
mov dword [edi + 0x50], eax
jmp 0x440d73
cmp byte [edi + 4], 0
jne 0x440d28
call fcn.0042eaa0
mov esi, dword [ebp - 0x10c]
mov eax, dword [esi + 0x14]
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 0x18]
mov dword [ebp - 0xfc], eax
movsx eax, byte [esi + 0x44]
mov eax, dword [esi + eax*4 + 0x78]
mov esi, dword [eax + 0x3c]
mov eax, dword [ebp - 0x10c]
movzx eax, word [eax + 0x20]
mov dword [edi + 0x50], ecx
mov dword [edi + 0x44], edx
jmp 0x440d4e
call fcn.0042eaa0
mov edx, dword [ebp - 0x10c]
mov eax, dword [edx + 0x1c]
mov dword [edi + 0x44], eax
movsx eax, byte [edx + 0x44]
mov ecx, dword [edx + 0x18]
mov eax, dword [edx + eax*4 + 0x78]
mov esi, dword [eax + 0x3c]
movzx eax, word [edx + 0x20]
mov dword [edi + 0x50], ecx
sub esi, ecx
cmp eax, esi
cmovb esi, eax
mov eax, dword [edi + 0x44]
cmp eax, esi
ja 0x440d61
mov dword [edi + 0x48], eax
jmp 0x440d6d
cmp eax, dword [ebx + 0x5c]
ja 0x444b80
mov dword [edi + 0x48], esi
mov edx, dword [ebp - 0xec]
mov eax, dword [ebp - 0xd4]
mov eax, dword [eax + 0x48]
mov dword [edi + 0x40], eax
mov ecx, dword [edi + 0x50]
mov al, byte [ecx]
cmp al, 0x80
jae 0x440d98
movzx ecx, al
mov eax, 1
mov dword [ebp - 0x1b0], ecx
jmp 0x440db2
lea edx, [ebp - 0x1b0]
call fcn.0041c280
mov ecx, dword [ebp - 0x1b0]
mov edx, dword [ebp - 0xec]
movzx eax, al
movzx eax, al
mov dword [edi + 0x4c], eax
xor eax, eax
mov word [edi + 0x12], ax
mov dword [edx], ecx
cmp esi, ecx
jae 0x440e61
mov dword [edi + 0x50], eax
mov dword [edi + 0x48], eax
cmp ecx, 0x18003
ja 0x440ddf
cmp ecx, dword [edi + 0x44]
jbe 0x440e61
mov ecx, 0x13538
call fcn.0048e1e0
mov esi, dword [ebp - 0xd4]
cmp byte [ebx + 0x45], 0
mov ecx, 7
cmovne eax, ecx
cmp dword [esi + 0x2c], 0
mov dword [ebp - 0xdc], eax
jne 0x444e24
cmp eax, 0xc0a
je 0x444e24
mov ecx, dword [ebp - 0xdc]
mov eax, str.unknown_error
cmp ecx, 0x204
je 0x444e0a
movzx ecx, cl
cmp ecx, 0x1b
jae 0x444e0f
mov ecx, dword [ecx*4 + 0x4f81f0]
test ecx, ecx
je 0x444e0f
mov eax, ecx
jmp 0x444e0f
movzx eax, word [edi + 0x12]
mov ecx, dword [ebp - 0x134]
cmp eax, ecx
jg 0x44106c
mov eax, dword [edi + 0x4c]
cmp eax, dword [edx]
jae 0x441027
mov eax, dword [edi + 0x50]
mov dword [ebp - 0xf4], eax
test eax, eax
jne 0x440ed4
mov ecx, dword [ebp - 0x10c]
lea eax, [ebp - 0x298]
push eax
xorps xmm0, xmm0
xor eax, eax
movups xmmword [ebp - 0x298], xmm0
movups xmmword [ebp - 0x288], xmm0
movq qword [ebp - 0x278], xmm0
cmp byte [edi + 4], al
sete al
push eax
push dword [edx]
xor edx, edx
call fcn.00436e40
add esp, 0xc
mov dword [ebp - 0xdc], eax
test eax, eax
jne 0x440de9
mov eax, dword [ebp - 0x288]
mov edx, dword [ebp - 0xec]
mov dword [ebp - 0xf4], eax
movzx eax, word [edi + 0x12]
xor ebx, ebx
mov ecx, dword [ebp - 0x154]
mov dword [ebp - 0xe8], eax
mov edi, dword [edx + eax*4]
mov esi, dword [ecx + 0x4c]
mov edx, dword [edx]
add edx, dword [ebp - 0xf4]
add esi, dword [ebp - 0xf4]
add eax, 0x16
mov dword [ebp - 0x118], edx
lea eax, [ecx + eax*4]
mov dword [ebp - 0x124], eax
nop dword [eax]
movzx ecx, byte [esi]
mov dword [ebp - 0xf0], ecx
mov dword [ebp - 0x174], ecx
cmp ecx, 0x80
jae 0x440f3d
movzx eax, cl
movzx eax, byte [eax + 0x4f9150]
cdq
add edi, eax
adc ebx, edx
mov edx, 1
jmp 0x440f63
lea edx, [ebp - 0x174]
mov ecx, esi
call fcn.0041c280
mov ecx, dword [ebp - 0x174]
movzx edx, al
mov dword [ebp - 0xf0], ecx
call fcn.0043af60
add edi, eax
adc ebx, 0
mov eax, dword [ebp - 0xe8]
add esi, edx
mov edx, dword [ebp - 0x124]
inc eax
mov dword [ebp - 0xe8], eax
mov dword [edx], ecx
add edx, 4
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0xec]
mov dword [edx + eax*4], edi
cmp eax, dword [ebp - 0x134]
jg 0x440fa0
cmp esi, dword [ebp - 0x118]
jb 0x440f10
mov edx, dword [ebp - 0x154]
mov dword [ebp - 0xe8], ebx
mov ebx, dword [ebp - 0x12c]
mov word [edx + 0x12], ax
mov eax, esi
sub eax, dword [ebp - 0xf4]
mov dword [edx + 0x4c], eax
mov eax, dword [ebp - 0x118]
cmp esi, eax
jb 0x440ff7
ja 0x440fdc
cmp edi, dword [edx + 0x44]
jne 0x440fdc
mov eax, dword [ebp - 0xe8]
test eax, eax
je 0x440ffd
cmp dword [edx + 0x50], 0
jne 0x440fed
lea ecx, [ebp - 0x298]
call fcn.00436430
mov ecx, 0x13575
jmp 0x440de4
mov eax, dword [ebp - 0xe8]
test eax, eax
ja 0x440fdc
jb 0x441008
cmp edi, dword [edx + 0x44]
ja 0x440fdc
mov edi, dword [ebp - 0x154]
cmp dword [edi + 0x50], 0
jne 0x441035
lea ecx, [ebp - 0x298]
call fcn.00436430
mov ecx, dword [ebp - 0xf0]
jmp 0x441035
xor ecx, ecx
mov dword [ebp - 0xf0], ecx
mov dword [ebp - 0x174], ecx
movzx eax, word [edi + 0x12]
cmp eax, dword [ebp - 0x134]
jg 0x44107e
mov eax, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0x11c]
cmp byte [eax + 1], 0xf8
jne 0x43fc6f
mov edx, dword [eax + 0x10]
push 0x800
call fcn.00436a20
add esp, 4
jmp 0x43fa5d
mov ecx, dword [edi + ecx*4 + 0x58]
mov dword [ebp - 0xf0], ecx
mov dword [ebp - 0x174], ecx
jmp 0x441084
mov esi, dword [ebp - 0x11c]
mov eax, 0x2460
test word [esi + 8], ax
je 0x44109c
mov ecx, esi
call fcn.00436850
mov ecx, dword [ebp - 0xf0]
mov ebx, dword [ebp - 0x134]
mov al, byte [ebp - 0x114]
mov edx, dword [ebp - 0xec]
mov byte [esi + 0xa], al
mov eax, dword [edi + 0x48]
cmp eax, dword [edx + ebx*4 + 4]
mov ebx, dword [ebp - 0x12c]
jb 0x441162
mov eax, dword [ebp - 0x134]
mov edi, dword [edi + 0x50]
add edi, dword [edx + eax*4]
cmp ecx, 0xc
jae 0x4410e7
mov edx, ecx
mov ecx, edi
push esi
call fcn.0043b0e0
add esp, 4
jmp 0x43fa5d
lea esi, [ecx - 0xc]
mov ecx, dword [ebp - 0x11c]
shr esi, 1
mov dword [ecx + 0xc], esi
lea edx, [esi + 2]
cmp dword [ecx + 0x18], edx
jge 0x441120
mov eax, 1
push 0
mov word [ecx + 8], ax
call fcn.00435f40
add esp, 4
test eax, eax
jne 0x44134c
mov ecx, dword [ebp - 0x11c]
jmp 0x441126
mov eax, dword [ecx + 0x14]
mov dword [ecx + 0x10], eax
push esi
push edi
push dword [ecx + 0x10]
call fcn.004a2a80
mov ecx, dword [ebp - 0x11c]
add esp, 0xc
mov edx, dword [ebp - 0xf0]
and edx, 1
mov eax, dword [ecx + 0x10]
mov byte [esi + eax], 0
mov eax, dword [ecx + 0x10]
mov byte [eax + esi + 1], 0
mov ax, word [edx*2 + 0x4f91d0]
mov word [ecx + 8], ax
jmp 0x43fa5d
mov eax, dword [ebp - 0xd0]
mov al, byte [eax + 3]
test al, 0xc0
je 0x44117d
cmp ecx, 0xc
jb 0x441179
test cl, 1
je 0x441188
test al, al
js 0x441188
call fcn.0043af60
mov edx, eax
test edx, edx
jne 0x44119d
mov edx, ecx
mov ecx, 0x520c1c
push esi
call fcn.0043b0e0
add esp, 4
jmp 0x43fa5d
mov ecx, dword [ebp - 0x134]
xor eax, eax
cmp byte [edi + 4], al
push esi
sete al
push eax
mov eax, dword [ebp - 0xec]
push edx
mov edx, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x10c]
call fcn.00436e40
add esp, 0xc
mov dword [ebp - 0xdc], eax
test eax, eax
jne 0x440de9
mov edx, dword [ebp - 0xf0]
mov ecx, dword [esi + 0x10]
push esi
call fcn.0043b0e0
mov eax, 0xefff
add esp, 4
and word [esi + 8], ax
jmp 0x43fa5d
mov eax, dword [edi + 4]
mov esi, dword [edi + 0x10]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov al, byte [esi]
test al, al
je 0x43fa5d
nop
push dword [ebp - 0x114]
mov dl, al
lea esi, [esi + 1]
mov ecx, edi
call fcn.0043f260
mov al, byte [esi]
add esp, 4
add edi, 0x28
test al, al
jne 0x441210
jmp 0x43fa5d
mov edx, dword [ebp - 0xd0]
xor eax, eax
mov ecx, dword [ebp - 0xe0]
xorps xmm0, xmm0
mov dword [ebp - 0xf0], eax
movlpd qword [ebp - 0x100], xmm0
mov eax, dword [edx + 4]
mov esi, dword [edx + 0x10]
movlpd qword [ebp - 0x120], xmm0
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [edx + 8]
mov dword [ebp - 0x10c], ecx
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [ecx + eax*8]
mov dword [ebp - 0x124], eax
mov eax, dword [ebp - 0xd4]
movzx edi, byte [eax + 0x5c]
mov eax, dword [edx + 0xc]
mov edx, dword [ebp - 0xe0]
mov dword [ebp - 0x118], edi
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov dword [ebp - 0x104], edx
test esi, esi
je 0x4412d5
mov al, byte [esi]
mov edi, ecx
nop dword [eax + eax]
push dword [ebp - 0x114]
mov dl, al
mov ecx, edi
call fcn.0043f260
mov al, byte [esi + 1]
lea esi, [esi + 1]
add esp, 4
add edi, 0x28
test al, al
jne 0x4412b0
mov edi, dword [ebp - 0x118]
mov eax, dword [ebp - 0xfc]
mov esi, dword [ebp - 0x124]
mov dword [ebp - 0xf4], eax
mov eax, dword [ebp - 0x100]
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0x11c]
mov dword [ebp - 0xe8], eax
mov eax, dword [ebp - 0x120]
mov dword [ebp - 0x11c], eax
nop dword [eax + eax]
lea eax, [ebp - 0x17c]
mov edx, edi
push eax
mov ecx, esi
call fcn.0043ae00
mov edi, eax
add esp, 4
mov eax, 0x4000
mov dword [esi + 0x1c], edi
test word [esi + 8], ax
je 0x4413aa
mov ecx, dword [ebp - 0xec]
or ecx, dword [ebp - 0xf4]
je 0x441393
mov ecx, esi
call fcn.004360e0
test eax, eax
je 0x4413aa
mov esi, dword [ebp - 0xd4]
cmp byte [ebx + 0x45], 0
jne 0x44137b
cmp byte [ebx + 0x46], 0
jne 0x44137b
cmp dword [ebx + 0xa4], 0
mov byte [ebx + 0x45], 1
jle 0x441375
mov dword [ebx + 0xf8], 1
inc dword [ebx + 0x100]
push str.out_of_memory
push esi
call fcn.00437500
add esp, 8
mov eax, 7
jmp 0x440def
mov ecx, dword [esi]
mov eax, ecx
cdq
add dword [ebp - 0x11c], eax
adc dword [ebp - 0xe8], edx
sub dword [ebp - 0x17c], ecx
mov eax, dword [ebp - 0xec]
add eax, dword [ebp - 0x17c]
mov dword [ebp - 0xec], eax
adc dword [ebp - 0xf4], 0
cmp edi, 0x7f
ja 0x4413cf
mov eax, 1
jmp 0x4413da
push 0
push edi
call fcn.0041c300
add esp, 8
mov ecx, dword [ebp - 0xf0]
add ecx, eax
mov dword [ebp - 0xf0], ecx
cmp esi, dword [ebp - 0x10c]
je 0x4413fe
mov edi, dword [ebp - 0x118]
sub esi, 0x28
jmp 0x441310
cmp ecx, 0x7e
jle 0x441432
mov eax, ecx
cdq
push edx
push eax
call fcn.0041c300
mov esi, eax
mov eax, dword [ebp - 0xf0]
add eax, esi
mov dword [ebp - 0xf0], eax
cdq
push edx
push eax
call fcn.0041c300
mov ecx, dword [ebp - 0xf0]
add esp, 0x10
cmp esi, eax
jge 0x441439
inc ecx
mov dword [ebp - 0xf0], ecx
mov eax, ecx
cdq
mov esi, eax
mov eax, edx
mov edx, dword [ebp - 0xec]
add edx, esi
mov dword [ebp - 0xfc], esi
mov esi, dword [ebp - 0xf4]
mov edi, edx
adc esi, eax
mov dword [ebp - 0x118], eax
add edi, dword [ebp - 0x11c]
mov eax, dword [ebx + 0x5c]
adc esi, dword [ebp - 0xe8]
mov dword [ebp - 0xec], edx
cdq
cmp esi, edx
jg 0x444b80
jl 0x441486
cmp edi, eax
ja 0x444b80
mov esi, dword [ebp - 0x104]
mov eax, dword [ebp - 0xec]
cmp dword [esi + 0x18], eax
jge 0x4414b5
push 0
mov edx, eax
mov ecx, esi
call fcn.00435f40
add esp, 4
test eax, eax
jne 0x44134c
mov ecx, dword [ebp - 0xf0]
jmp 0x4414c0
mov eax, dword [esi + 0x14]
and word [esi + 8], 0xd
mov dword [esi + 0x10], eax
mov edi, dword [esi + 0x10]
cmp ecx, 0x80
jae 0x4414d4
mov byte [edi], cl
mov eax, 1
jmp 0x4414ea
push dword [ebp - 0x118]
mov ecx, edi
push dword [ebp - 0xfc]
call fcn.0041c0a0
add esp, 8
mov ebx, dword [ebp - 0x10c]
mov ecx, dword [ebp - 0xf0]
movzx esi, al
nop dword [eax]
mov ebx, dword [ebx + 0x1c]
cmp ebx, 0x80
jae 0x441515
mov byte [esi + edi], bl
mov eax, 1
jmp 0x441529
push 0
push ebx
lea ecx, [esi + edi]
call fcn.0041c0a0
mov ecx, dword [ebp - 0xf0]
add esp, 8
push ebx
mov ebx, dword [ebp - 0x10c]
add ecx, edi
movzx eax, al
mov edx, ebx
add esi, eax
call fcn.0043af80
mov ecx, dword [ebp - 0xf0]
add ebx, 0x28
add ecx, eax
mov dword [ebp - 0x10c], ebx
add esp, 4
mov dword [ebp - 0xf0], ecx
cmp ebx, dword [ebp - 0x124]
jbe 0x441500
mov edx, dword [ebp - 0x104]
mov eax, dword [ebp - 0xec]
mov ecx, dword [ebp - 0x11c]
mov dword [edx + 0xc], eax
mov eax, 0x10
mov word [edx + 8], ax
mov eax, ecx
or eax, dword [ebp - 0xe8]
je 0x441593
mov eax, 0x4010
mov dword [edx], ecx
mov word [edx + 8], ax
mov byte [edx + 0xa], 1
jmp 0x43fa5d
mov edx, dword [ebp - 0xd0]
xorps xmm0, xmm0
mov eax, dword [esi + 0x38]
movlpd qword [ebp - 0x1d8], xmm0
mov ecx, dword [edx + 4]
lea edx, [ebp - 0x1d8]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax + 0x14]
call fcn.00433c80
mov dword [ebp - 0xdc], eax
test eax, eax
jne 0x440def
mov edx, dword [ebp - 0xd0]
mov ecx, esi
call fcn.0043f420
mov ecx, dword [ebp - 0x1d8]
mov edi, dword [ebp - 0xd0]
mov ebx, dword [ebp - 0x12c]
add edi, 0x14
mov dword [eax], ecx
mov ecx, dword [ebp - 0x1d4]
mov dword [eax + 4], ecx
mov ecx, 4
mov eax, dword [ebp - 0xd8]
jmp 0x43f565
mov edx, dword [ebp - 0xd0]
mov eax, dword [edx + 4]
mov edi, dword [edx + 0x10]
mov dword [ebp - 0x10c], eax
test eax, eax
jne 0x4416ea
cmp dword [ebx + 0xa0], eax
jg 0x4449c3
mov ecx, edi
call fcn.0041b170
mov ecx, dword [ebx + 0x1b4]
mov esi, eax
add ecx, dword [ebx + 0x1b0]
xor edx, edx
push ecx
mov ecx, ebx
mov dword [ebp - 0xfc], esi
call fcn.0047c5e0
add esp, 4
mov dword [ebp - 0xdc], eax
test eax, eax
jne 0x440de9
lea eax, [esi + 0x21]
mov ecx, ebx
push 0
push eax
call fcn.00418890
mov esi, eax
add esp, 8
test esi, esi
je 0x43fa5d
mov ecx, dword [ebp - 0xfc]
lea edx, [esi + 0x20]
inc ecx
mov dword [esi], edx
push ecx
push edi
push edx
call fcn.004a2a80
add esp, 0xc
cmp byte [ebx + 0x43], 0
je 0x4416ac
mov byte [ebx + 0x43], 0
mov byte [ebx + 0x4b], 1
jmp 0x4416b2
inc dword [ebx + 0x1b0]
mov eax, dword [ebx + 0x1a8]
mov dword [esi + 0x18], eax
mov eax, dword [ebx + 0x1b8]
mov dword [ebx + 0x1a8], esi
mov dword [esi + 8], eax
mov eax, dword [ebx + 0x1bc]
mov dword [esi + 0xc], eax
mov eax, dword [ebx + 0x1c0]
mov dword [esi + 0x10], eax
mov eax, dword [ebx + 0x1c4]
mov dword [esi + 0x14], eax
jmp 0x43fa5d
mov esi, dword [ebx + 0x1a8]
xor ecx, ecx
mov dword [ebp - 0xec], ecx
mov dword [ebp - 0xe8], esi
test esi, esi
je 0x441722
mov ecx, dword [esi]
mov edx, edi
call fcn.0041b470
test eax, eax
je 0x44172d
mov esi, dword [esi + 0x18]
inc dword [ebp - 0xec]
mov dword [ebp - 0xe8], esi
test esi, esi
jne 0x441702
push edi
push str.no_such_savepoint:__s
jmp 0x444b4a
cmp dword [ebx + 0xa0], 0
mov edx, dword [ebp - 0x10c]
jle 0x441745
cmp edx, 1
je 0x4449db
cmp dword [esi + 0x18], 0
jne 0x4417a1
cmp byte [ebx + 0x4b], 0
je 0x4417a1
mov dword [ebp - 0xf4], 1
cmp edx, 1
jne 0x4417ab
mov edi, dword [ebp - 0xd4]
mov ecx, edi
call fcn.0043a230
mov dword [ebp - 0xdc], eax
test eax, eax
jne 0x444f18
mov ecx, edi
mov byte [ebx + 0x43], 1
call fcn.0043a2a0
cmp eax, 5
je 0x4449e5
mov byte [ebx + 0x4b], 0
mov eax, dword [edi + 0x50]
mov dword [ebp - 0xdc], eax
jmp 0x44188a
mov dword [ebp - 0xf4], 0
mov eax, dword [ebx + 0x1b0]
sub eax, dword [ebp - 0xec]
dec eax
mov dword [ebp - 0xec], eax
cmp edx, 2
jne 0x441825
mov ecx, dword [ebx + 0x18]
xor edi, edi
shr ecx, 1
and ecx, 1
mov dword [ebp - 0x104], ecx
cmp dword [ebx + 0x14], edi
jle 0x44182f
mov eax, ecx
xor eax, 1
xor esi, esi
mov dword [ebp - 0xfc], eax
mov ecx, dword [ebx + 0x10]
mov edx, 0x204
push eax
mov ecx, dword [esi + ecx + 4]
call fcn.0042e430
add esp, 4
mov dword [ebp - 0xdc], eax
test eax, eax
jne 0x440de9
mov eax, dword [ebp - 0xfc]
inc edi
add esi, 0x10
cmp edi, dword [ebx + 0x14]
jl 0x4417e5
mov eax, dword [ebp - 0xec]
mov edx, dword [ebp - 0x10c]
jmp 0x44182f
mov dword [ebp - 0x104], 0
xor edi, edi
cmp dword [ebx + 0x14], edi
jle 0x44186b
xor esi, esi
mov ecx, dword [ebx + 0x10]
push eax
mov ecx, dword [esi + ecx + 4]
call fcn.0042e760
add esp, 4
mov dword [ebp - 0xdc], eax
test eax, eax
jne 0x440de9
mov eax, dword [ebp - 0xec]
inc edi
mov edx, dword [ebp - 0x10c]
add esi, 0x10
cmp edi, dword [ebx + 0x14]
jl 0x441838
cmp dword [ebp - 0x104], 0
je 0x441884
mov ecx, ebx
call fcn.0043c5c0
call fcn.00455b10
or dword [ebx + 0x18], 2
mov esi, dword [ebp - 0xe8]
cmp dword [ebx + 0x1a8], esi
je 0x441900
nop dword [eax]
nop word [eax + eax]
cmp dword [ebx + 0x1c8], 0
mov ecx, dword [ebx + 0x1a8]
mov eax, dword [ecx + 0x18]
mov dword [ebx + 0x1a8], eax
je 0x4418c3
mov edx, ecx
mov ecx, ebx
call fcn.00418550
jmp 0x4418f2
cmp ecx, dword [ebx + 0x120]
jb 0x4418e9
cmp ecx, dword [ebx + 0x124]
jae 0x4418e9
mov eax, dword [ebx + 0x11c]
mov dword [ecx], eax
dec dword [ebx + 0x108]
mov dword [ebx + 0x11c], ecx
jmp 0x4418f2
push ecx
call fcn.004184e0
add esp, 4
dec dword [ebx + 0x1b0]
cmp dword [ebx + 0x1a8], esi
jne 0x4418a0
mov edi, dword [ebp - 0x10c]
cmp edi, 1
jne 0x441932
mov eax, dword [esi + 0x18]
mov edx, esi
mov ecx, ebx
mov dword [ebx + 0x1a8], eax
call fcn.00418590
cmp dword [ebp - 0xf4], 0
jne 0x44054d
dec dword [ebx + 0x1b0]
jmp 0x441968
cmp dword [ebp - 0xf4], 0
mov eax, dword [esi + 8]
mov dword [ebx + 0x1b8], eax
mov eax, dword [esi + 0xc]
mov dword [ebx + 0x1bc], eax
mov eax, dword [esi + 0x10]
mov dword [ebx + 0x1c0], eax
mov eax, dword [esi + 0x14]
mov dword [ebx + 0x1c4], eax
je 0x441968
cmp edi, 2
jne 0x44054d
mov ecx, dword [ebp - 0xec]
mov edx, edi
push ecx
mov ecx, ebx
call fcn.0047c5e0
add esp, 4
mov dword [ebp - 0xdc], eax
jmp 0x440553
mov edx, dword [edi + 8]
test edx, edx
je 0x44199a
test dword [ebx + 0x18], 0x4000000
jne 0x444a1e
mov ecx, dword [edi + 4]
mov eax, dword [ebx + 0x10]
add ecx, ecx
mov esi, dword [eax + ecx*8 + 4]
test esi, esi
je 0x441aab
mov ecx, esi
call fcn.0042d650
mov dword [ebp - 0xdc], eax
cmp al, 5
je 0x444a28
test eax, eax
jne 0x440de9
mov eax, dword [ebp - 0xd0]
cmp dword [eax + 8], 0
je 0x441a72
mov edi, dword [ebp - 0xd4]
test byte [edi + 0x60], 0x10
je 0x441a72
cmp byte [ebx + 0x43], 0
je 0x4419fa
cmp dword [ebx + 0x9c], 1
jle 0x441a72
cmp dword [edi + 0x70], 0
jne 0x441a15
mov eax, dword [ebx + 0x1b0]
inc dword [ebx + 0x1b4]
add eax, dword [ebx + 0x1b4]
mov dword [edi + 0x70], eax
mov eax, dword [edi + 0x70]
xor edx, edx
dec eax
mov ecx, ebx
push eax
call fcn.0047c5e0
mov ecx, eax
add esp, 4
mov dword [ebp - 0xdc], ecx
test ecx, ecx
jne 0x441a42
mov edx, dword [edi + 0x70]
mov ecx, esi
call fcn.0042e700
mov dword [ebp - 0xdc], eax
mov eax, dword [ebx + 0x1b8]
mov dword [edi + 0xa0], eax
mov eax, dword [ebx + 0x1bc]
mov dword [edi + 0xa4], eax
mov eax, dword [ebx + 0x1c0]
mov dword [edi + 0xa8], eax
mov eax, dword [ebx + 0x1c4]
mov dword [edi + 0xac], eax
lea eax, [ebp - 0x1a0]
mov edx, 1
push eax
mov ecx, esi
call fcn.00433ba0
mov eax, dword [ebp - 0xd0]
add esp, 4
mov esi, dword [ebp - 0x1a0]
mov edi, dword [ebp - 0xd0]
mov ecx, dword [eax + 4]
mov eax, dword [ebx + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax + 4]
jmp 0x441ab5
xor esi, esi
xor eax, eax
mov dword [ebp - 0x1a0], esi
cmp byte [edi + 3], 0
je 0x441acd
cmp esi, dword [edi + 0xc]
jne 0x444a5c
cmp eax, dword [edi + 0x10]
jne 0x444a5c
mov eax, dword [ebp - 0xdc]
mov esi, dword [ebp - 0xd4]
test eax, eax
jne 0x440def
mov ebx, dword [ebp - 0x12c]
lea ecx, [eax + 4]
mov eax, dword [ebp - 0xd8]
add edi, 0x14
jmp 0x43f565
mov edx, dword [ebp - 0xd0]
lea eax, [ebp - 0x1b8]
mov ecx, dword [ebx + 0x10]
push eax
mov eax, dword [edx + 4]
mov edx, dword [edx + 0xc]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00433ba0
mov edx, dword [ebp - 0xd0]
add esp, 4
mov ecx, esi
call fcn.0043f420
mov ecx, eax
mov eax, dword [ebp - 0x1b8]
jmp 0x43f7cf
mov edx, dword [ebp - 0xd0]
mov esi, dword [edx + 4]
push dword [edx + 0xc]
mov edx, dword [edx + 8]
shl esi, 4
add esi, dword [ebx + 0x10]
mov ecx, dword [esi + 4]
call fcn.00433c00
mov edi, dword [ebp - 0xd0]
add esp, 4
mov dword [ebp - 0xdc], eax
mov eax, dword [edi + 8]
cmp eax, 1
jne 0x441b78
mov ecx, dword [esi + 0xc]
mov eax, dword [edi + 0xc]
mov dword [ecx], eax
or dword [ebx + 0x18], 2
jmp 0x441b86
cmp eax, 2
jne 0x441b86
mov ecx, dword [esi + 0xc]
mov al, byte [edi + 0xc]
mov byte [ecx + 0x4c], al
cmp dword [edi + 4], 1
jne 0x441b9f
mov ecx, ebx
call fcn.0043c5c0
mov esi, dword [ebp - 0xd4]
and dword [esi + 0x58], 0xfffffffe
jmp 0x441ba5
mov esi, dword [ebp - 0xd4]
mov eax, dword [ebp - 0xdc]
test eax, eax
jne 0x440def
mov ebx, dword [ebp - 0x12c]
lea ecx, [eax + 4]
mov eax, dword [ebp - 0xd8]
add edi, 0x14
jmp 0x43f565
mov edx, dword [ebp - 0xd0]
mov eax, dword [esi + 0x38]
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x441be9
mov eax, dword [esi + 0xc]
cmp eax, dword [edx + 8]
je 0x441d22
mov esi, dword [ebp - 0xd4]
mov al, byte [ebp - 0xe1]
test byte [esi + 0x58], 1
jne 0x444aaa
mov ecx, dword [edx + 0xc]
mov esi, dword [edx + 8]
mov dword [ebp - 0x118], ecx
shl ecx, 4
add ecx, dword [ebx + 0x10]
mov dword [ebp - 0xfc], 0
mov dword [ebp - 0xe8], 0
mov dword [ebp - 0x104], esi
mov edi, dword [ecx + 4]
mov dword [ebp - 0x124], edi
cmp al, 0x67
jne 0x441c60
mov eax, dword [ecx + 0xc]
movzx edi, byte [edx + 3]
mov ecx, dword [ebp - 0xd4]
and edi, 8
or edi, 4
mov al, byte [eax + 0x4c]
cmp al, byte [ecx + 0x5c]
jae 0x441c62
mov byte [ecx + 0x5c], al
jmp 0x441c62
mov edx, dword [ebp - 0xd0]
jmp 0x441bf5
xor edi, edi
test byte [edx + 3], 0x10
je 0x441c89
mov ecx, dword [ebp - 0xe0]
lea eax, [esi + esi*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.00436600
mov eax, dword [esi]
mov edx, dword [ebp - 0xd0]
mov dword [ebp - 0x104], eax
mov al, byte [edx + 1]
cmp al, 0xfa
jne 0x441ca5
mov eax, dword [edx + 0x10]
mov dword [ebp - 0xe8], eax
movzx ecx, word [eax + 8]
movzx eax, word [eax + 6]
add ecx, eax
jmp 0x441cb4
cmp al, 0xf2
jne 0x441cae
mov ecx, dword [edx + 0x10]
jmp 0x441cb4
mov ecx, dword [ebp - 0xfc]
mov edx, dword [edx + 4]
push 0
push dword [ebp - 0x118]
push ecx
mov ecx, dword [ebp - 0xd4]
call fcn.0043f0a0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x44134c
push dword [esi + 0x14]
mov eax, dword [ebp - 0x104]
mov edx, eax
push dword [ebp - 0xe8]
mov ecx, dword [ebp - 0x124]
or dword [esi + 8], 4
push edi
mov byte [esi + 2], 1
mov dword [esi + 0xc], eax
call fcn.0042e8b0
mov dword [ebp - 0xdc], eax
add esp, 0xc
mov eax, dword [ebp - 0xe8]
mov dword [esi + 0x1c], eax
mov eax, dword [ebp - 0xd0]
cmp byte [eax + 1], 0xfa
setne al
mov byte [esi + 4], al
mov eax, dword [ebp - 0xd0]
mov cl, byte [eax + 3]
mov eax, dword [esi + 0x14]
and cl, 3
mov byte [eax + 0x43], cl
jmp 0x44054d
mov edx, dword [ebp - 0xd0]
mov ecx, esi
push 0
push 0xffffffffffffffff
push dword [edx + 8]
mov edx, dword [edx + 4]
call fcn.0043f0a0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x44134c
mov eax, dword [ebp - 0xd0]
lea edi, [esi + 0x18]
or dword [esi + 8], 1
xor edx, edx
mov byte [esi + 2], 1
mov ecx, dword [ebx]
movzx eax, byte [eax + 3]
push 0x41e
or eax, 5
push eax
push edi
push ebx
call fcn.0042c640
add esp, 0x10
test eax, eax
jne 0x440de9
mov ecx, dword [edi]
lea edx, [eax + 1]
call fcn.0042d650
test eax, eax
jne 0x440de9
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax + 0x10]
test ecx, ecx
mov dword [ebp - 0xfc], ecx
mov ecx, dword [edi]
je 0x441e03
movzx eax, byte [eax + 3]
lea edx, [ebp - 0x1bc]
or eax, 2
push eax
call fcn.00433680
add esp, 4
mov dword [ebp - 0xdc], eax
test eax, eax
jne 0x441dfd
push dword [esi + 0x14]
mov eax, dword [ebp - 0xfc]
mov edx, dword [ebp - 0x1bc]
mov ecx, dword [edi]
push eax
push 4
mov dword [esi + 0x1c], eax
call fcn.0042e8b0
add esp, 0xc
mov dword [ebp - 0xdc], eax
mov byte [esi + 4], 0
jmp 0x441e21
push dword [esi + 0x14]
mov edx, 1
push 0
push 4
call fcn.0042e8b0
add esp, 0xc
mov dword [ebp - 0xdc], eax
mov byte [esi + 4], 1
test eax, eax
jne 0x440de9
mov eax, dword [ebp - 0xd0]
xor ecx, ecx
cmp byte [eax + 3], 8
mov eax, 4
cmovne ecx, eax
mov eax, dword [esi + 8]
and eax, 0xfffffffb
or ecx, eax
mov dword [esi + 8], ecx
jmp 0x43fa5d
mov edx, dword [ebp - 0xd0]
mov ecx, esi
push 1
push 0xffffffffffffffff
push dword [edx + 8]
mov edx, dword [edx + 4]
call fcn.0043f0a0
mov edx, eax
add esp, 0xc
test edx, edx
je 0x441352
mov eax, dword [ebp - 0xd0]
push edx
mov ecx, dword [eax + 0x10]
mov dword [edx + 0x1c], ecx
mov ecx, ebx
mov edx, dword [eax + 0xc]
call fcn.00446680
add esp, 4
mov dword [ebp - 0xdc], eax
jmp 0x440559
mov edx, dword [ebp - 0xd0]
mov eax, dword [esi + 0x38]
mov ecx, dword [edx + 4]
mov edx, dword [eax + ecx*4]
mov edi, dword [edx + 0x28]
mov ecx, edi
mov esi, dword [edx + 0x2c]
add ecx, 1
mov eax, esi
mov dword [edx + 0x28], ecx
adc eax, 0
or edi, esi
mov edi, dword [ebp - 0xd0]
mov dword [edx + 0x2c], eax
je 0x43f5d4
jmp 0x43fa63
mov edx, dword [ebp - 0xd0]
mov ecx, esi
push 3
push 0xffffffffffffffff
push dword [edx + 0xc]
mov edx, dword [edx + 4]
call fcn.0043f0a0
add esp, 0xc
test eax, eax
je 0x441352
mov ecx, dword [ebp - 0xd0]
mov byte [eax + 2], 1
mov ecx, dword [ecx + 8]
mov dword [eax + 0x14], ecx
mov byte [eax + 4], 1
jmp 0x43f7d5
mov edx, dword [ebp - 0xd0]
mov ecx, esi
mov eax, dword [edx + 4]
mov edx, dword [esi + 0x38]
mov edx, dword [edx + eax*4]
call fcn.004394b0
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x38]
mov dword [eax + ecx*4], 0
jmp 0x43f7d5
mov ecx, dword [edi + 4]
mov eax, dword [esi + 0x38]
mov dword [ebp - 0xe8], 0
mov esi, dword [eax + ecx*4]
cmp byte [esi + 4], 0
mov byte [esi + 2], 0
je 0x442080
mov eax, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xe0]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov al, byte [edi + 8]
and al, 0xe
cmp al, 2
jne 0x441f7f
xor edx, edx
mov ecx, edi
call fcn.0043f1d0
mov ecx, edi
call fcn.00436450
movzx ecx, word [edi + 8]
mov dword [ebp - 0x104], eax
mov dword [ebp - 0xf4], edx
test cl, 4
jne 0x441fe5
test cl, 8
je 0x43f5ce
mov ecx, eax
call fcn.004bda70
movsd xmm1, qword [edi]
comisd xmm0, xmm1
jbe 0x441fce
mov ecx, dword [ebp - 0x10c]
test cl, 1
lea eax, [ecx - 1]
cmovne eax, ecx
mov ecx, eax
mov dword [ebp - 0x10c], ecx
jmp 0x441fe5
comisd xmm1, xmm0
jbe 0x441fe5
mov eax, dword [ebp - 0x10c]
test al, 1
je 0x441fe5
inc eax
mov dword [ebp - 0x10c], eax
mov edi, dword [ebp - 0x104]
lea eax, [ebp - 0x130]
mov ecx, dword [esi + 0x14]
xor edx, edx
push eax
push 0
push dword [ebp - 0xf4]
push edi
call fcn.0042f390
mov dword [ebp - 0xdc], eax
add esp, 0x10
mov eax, dword [ebp - 0xf4]
mov dword [esi + 0x34], eax
mov eax, dword [ebp - 0xdc]
mov dword [esi + 0x30], edi
test eax, eax
jne 0x440de9
mov edi, dword [ebp - 0xe8]
mov eax, dword [ebp - 0x10c]
mov byte [esi + 3], 0
mov dword [esi + 0x40], 0
mov ecx, dword [ebp - 0x130]
cmp eax, 0x19
jl 0x44215d
test ecx, ecx
js 0x442142
jne 0x442061
cmp eax, 0x1a
je 0x442142
mov ecx, dword [ebp - 0xd0]
test edi, edi
mov dword [ebp - 0x130], 0
lea eax, [ecx + 0x14]
cmove eax, ecx
mov edi, eax
jmp 0x43fa63
mov eax, dword [esi + 0x14]
mov ecx, dword [ebp - 0xd0]
mov al, byte [eax + 0x43]
and al, 2
mov byte [ebp - 0xe1], al
mov eax, 0
setne al
mov dword [ebp - 0xe8], eax
mov eax, dword [esi + 0x1c]
mov dword [ebp - 0x1f4], eax
mov ax, word [ecx + 0x10]
mov word [ebp - 0x1ec], ax
lea eax, [edx - 1]
test al, 1
sete al
lea eax, [eax*2 - 1]
mov byte [ebp - 0x1ea], al
mov eax, dword [ecx + 0xc]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, 0x4000
mov dword [ebp - 0x1f0], ecx
test word [ecx + 8], ax
je 0x4420f0
call fcn.004360e0
lea eax, [ebp - 0x130]
mov byte [ebp - 0x1e6], 0
mov ecx, dword [esi + 0x14]
lea edx, [ebp - 0x1f4]
push eax
push 0
push 0
push 0
call fcn.0042f390
add esp, 0x10
mov dword [ebp - 0xdc], eax
test eax, eax
jne 0x440de9
cmp byte [ebp - 0xe1], al
je 0x442028
mov edi, dword [ebp - 0xe8]
cmp byte [ebp - 0x1e6], al
je 0x4421a6
jmp 0x44202e
lea eax, [ebp - 0x130]
mov dword [ebp - 0x130], 0
push eax
push dword [esi + 0x14]
call fcn.0042f940
jmp 0x442195
test ecx, ecx
jg 0x44217c
jne 0x442168
cmp eax, 0x17
je 0x44217c
mov eax, dword [esi + 0x14]
xor ecx, ecx
cmp byte [eax + 0x42], 1
setne cl
mov dword [ebp - 0x130], ecx
jmp 0x4421a6
lea eax, [ebp - 0x130]
mov dword [ebp - 0x130], 0
push eax
push dword [esi + 0x14]
call fcn.0042fad0
add esp, 8
mov dword [ebp - 0xdc], eax
test eax, eax
jne 0x440de9
cmp dword [ebp - 0x130], 0
jne 0x43f5ce
mov ecx, dword [ebp - 0xd0]
test edi, edi
lea eax, [ecx + 0x14]
cmove eax, ecx
mov edi, eax
jmp 0x43fa63
mov edx, dword [ebp - 0xd0]
mov eax, dword [esi + 0x38]
mov esi, dword [ebp - 0xe0]
mov dword [ebp - 0x1ac], 0
cmp dword [edx + 0x10], 0
mov ecx, dword [edx + 4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x104], ecx
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov dword [ebp - 0xfc], esi
jle 0x442269
mov eax, dword [ecx + 0x1c]
xor edi, edi
mov dx, word [edx + 0x10]
mov dword [ebp - 0x228], eax
xor eax, eax
mov word [ebp - 0x220], dx
mov dword [ebp - 0x224], esi
cmp ax, dx
jae 0x442261
mov ebx, dword [ebp - 0xfc]
xor esi, esi
nop dword [eax]
lea ecx, [ebx + esi]
mov eax, 0x4000
test word [ecx + 8], ax
je 0x442250
call fcn.004360e0
mov dx, word [ebp - 0x220]
mov ebx, dword [ebp - 0x224]
inc edi
movzx eax, dx
add esi, 0x28
cmp edi, eax
jl 0x442230
mov ebx, dword [ebp - 0x12c]
lea edi, [ebp - 0x228]
jmp 0x4422ba
mov ecx, dword [ecx + 0x1c]
lea eax, [ebp - 0x1ac]
push eax
push 0xb7
lea edx, [ebp - 0xc0]
call fcn.0043b2a0
mov edi, eax
add esp, 8
test edi, edi
je 0x44134c
mov eax, 0x4000
test word [esi + 8], ax
je 0x4422a2
mov ecx, esi
call fcn.004360e0
mov ecx, dword [ebp - 0x104]
mov edx, dword [esi + 0xc]
push edi
push dword [esi + 0x10]
mov ecx, dword [ecx + 0x1c]
call fcn.0043b320
add esp, 8
mov eax, dword [ebp - 0xd0]
xor esi, esi
mov byte [edi + 0xa], 0
cmp byte [eax], 0x1d
jne 0x4422f4
movzx edx, word [edi + 8]
xor ecx, ecx
test edx, edx
je 0x4422f4
mov eax, dword [edi + 4]
add eax, 8
nop dword [eax + eax]
test byte [eax], 1
jne 0x4422ef
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x4422e0
jmp 0x4422f4
mov esi, 1
lea eax, [ebp - 0x1c0]
mov edx, edi
mov edi, dword [ebp - 0x104]
push eax
push 0
push 0
mov ecx, dword [edi + 0x14]
push 0
call fcn.0042f390
mov edx, dword [ebp - 0x1ac]
add esp, 0x10
mov ecx, ebx
mov dword [ebp - 0xdc], eax
call fcn.00418590
mov eax, dword [ebp - 0xdc]
test eax, eax
jne 0x440de9
mov eax, dword [ebp - 0x1c0]
xor ecx, ecx
test eax, eax
mov dword [edi + 0x20], eax
mov al, 1
mov byte [edi + 3], 0
sete cl
mov dword [edi + 0x40], 0
sub al, cl
mov byte [edi + 2], al
mov edi, dword [ebp - 0xd0]
cmp byte [edi], 0x1f
jne 0x44236f
test ecx, ecx
jne 0x43f5d4
jmp 0x43fa63
test esi, esi
jne 0x43f5d4
test ecx, ecx
je 0x43f5d4
jmp 0x43fa63
mov edx, dword [ebp - 0xd0]
mov eax, dword [esi + 0x38]
mov dword [ebp - 0x1b4], 0
mov ecx, dword [edx + 4]
mov ebx, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
xor edx, edx
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
mov esi, dword [ecx + eax*8]
mov edi, dword [ecx + eax*8 + 4]
lea eax, [ebp - 0x1b4]
mov ecx, dword [ebx + 0x14]
push eax
push 0
push edi
push esi
call fcn.0042f390
mov dword [ebp - 0xdc], eax
add esp, 0x10
mov eax, dword [ebp - 0x1b4]
mov dword [ebx + 0x34], edi
mov edi, dword [ebp - 0xd0]
mov dword [ebx + 0x30], esi
mov word [ebx + 2], 0
mov dword [ebx + 0x40], 0
mov dword [ebx + 0x20], eax
test eax, eax
je 0x442412
cmp dword [edi + 8], 0
jne 0x43f5d4
mov ecx, 0x13b6c
call fcn.0048e1e0
mov ebx, eax
mov dword [ebp - 0xdc], ebx
jmp 0x442418
mov ebx, dword [ebp - 0xdc]
mov esi, dword [ebp - 0xd4]
test ebx, ebx
je 0x43fa69
mov ebx, dword [ebp - 0x12c]
mov eax, dword [ebp - 0xdc]
jmp 0x440def
mov ebx, dword [ebp - 0xd0]
mov ecx, esi
mov edx, ebx
call fcn.0043f420
mov ecx, dword [esi + 0x38]
mov edx, dword [ebx + 4]
mov edx, dword [ecx + edx*4]
mov ecx, dword [edx + 0x28]
mov dword [eax], ecx
mov ecx, dword [edx + 0x2c]
mov dword [eax + 4], ecx
mov eax, ebx
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x38]
mov eax, dword [eax + ecx*4]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
jmp 0x43f7d5
mov edx, dword [ebp - 0xd0]
xorps xmm0, xmm0
mov ecx, esi
movlpd qword [ebp - 0x148], xmm0
mov dword [ebp - 0x160], 0
call fcn.0043f420
mov ecx, dword [esi + 0x38]
mov dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0xd0]
mov edx, dword [eax + 4]
mov eax, dword [ecx + edx*4]
mov dword [ebp - 0x11c], eax
test byte [eax + 8], 2
jne 0x44254d
mov ecx, dword [eax + 0x14]
lea edx, [ebp - 0x160]
call fcn.0042f330
mov dword [ebp - 0xdc], eax
test eax, eax
jne 0x440def
cmp dword [ebp - 0x160], eax
je 0x4424f2
mov edi, 1
xor esi, esi
mov dword [ebp - 0x148], edi
mov dword [ebp - 0x144], esi
jmp 0x442559
mov eax, dword [ebp - 0x11c]
mov esi, dword [eax + 0x14]
mov ecx, esi
call fcn.0042eaa0
mov edi, dword [esi + 0x10]
mov esi, dword [esi + 0x14]
mov dword [ebp - 0x148], edi
mov dword [ebp - 0x144], esi
mov dword [ebp - 0xdc], 0
cmp esi, 0x7fffffff
jl 0x442539
jg 0x44252d
cmp edi, 0xffffffff
jb 0x442539
mov eax, dword [ebp - 0x11c]
or dword [eax + 8], 2
jmp 0x442559
add edi, 1
mov dword [ebp - 0x148], edi
adc esi, 0
mov dword [ebp - 0x144], esi
jmp 0x442559
mov esi, dword [ebp - 0x144]
mov edi, dword [ebp - 0x148]
mov ecx, dword [ebp - 0xd0]
mov ecx, dword [ecx + 0xc]
test ecx, ecx
je 0x442603
mov eax, dword [ebp - 0xd4]
mov edx, dword [eax + 0xb8]
test edx, edx
je 0x442595
mov eax, dword [edx + 4]
test eax, eax
je 0x44258a
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x442581
mov eax, dword [edx + 0x10]
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*8]
jmp 0x4425a1
lea eax, [ecx + ecx*4]
mov ecx, dword [ebp - 0xe0]
lea ecx, [ecx + eax*8]
mov dword [ebp - 0x104], ecx
call fcn.00436600
mov eax, dword [ebp - 0x104]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
cmp ecx, 0xffffffff
jne 0x4425c8
cmp edx, 0x7fffffff
je 0x442698
mov ebx, dword [ebp - 0x11c]
test byte [ebx + 8], 2
mov ebx, dword [ebp - 0x12c]
jne 0x442698
add ecx, 1
adc edx, 0
cmp esi, edx
jg 0x4425fe
jl 0x4425ee
cmp edi, ecx
jae 0x4425fe
mov edi, ecx
mov esi, edx
mov dword [ebp - 0x148], edi
mov dword [ebp - 0x144], esi
mov dword [eax], edi
mov dword [eax + 4], esi
mov eax, dword [ebp - 0x11c]
test byte [eax + 8], 2
je 0x4426a8
mov dword [ebp - 0x104], 0
nop dword [eax]
lea eax, [ebp - 0x148]
push eax
push 8
call fcn.0041a720
mov esi, dword [ebp - 0x144]
lea eax, [ebp - 0x160]
mov edi, dword [ebp - 0x148]
and esi, 0x3fffffff
push eax
mov eax, dword [ebp - 0x11c]
add edi, 1
push 0
adc esi, 0
mov dword [ebp - 0x148], edi
push esi
mov ecx, dword [eax + 0x14]
xor edx, edx
push edi
mov dword [ebp - 0x144], esi
call fcn.0042f390
add esp, 0x18
mov dword [ebp - 0xdc], eax
test eax, eax
jne 0x440de9
cmp dword [ebp - 0x160], eax
jne 0x4426a2
mov eax, dword [ebp - 0x104]
inc eax
mov dword [ebp - 0x104], eax
cmp eax, 0x64
jl 0x442620
mov eax, 0xd
jmp 0x440de9
mov eax, dword [ebp - 0x11c]
mov byte [eax + 3], 0
mov dword [eax + 0x40], 0
mov eax, dword [ebp - 0xfc]
mov dword [eax], edi
mov dword [eax + 4], esi
jmp 0x43fa5d
cmp byte [ebp - 0xe1], 0x71
mov edx, dword [ebp - 0xd0]
mov dword [ebp - 0x104], 0
mov eax, dword [edx + 8]
mov ecx, dword [edx + 4]
lea esi, [eax + eax*4]
mov eax, dword [ebp - 0xd4]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0xf4], ecx
jne 0x44271e
mov edi, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
mov ebx, dword [ebp - 0xe0]
mov edi, dword [edi + eax*8]
mov eax, dword [ebx + eax*8 + 4]
mov ebx, dword [ebp - 0x12c]
mov dword [ebp - 0xe8], eax
jmp 0x44272d
cdq
mov dword [ebp - 0xe8], edx
mov edi, eax
mov edx, dword [ebp - 0xd0]
cmp byte [edx + 1], 0xec
jne 0x442770
cmp dword [ebx + 0xd8], 0
je 0x442770
movsx ecx, byte [ecx + 1]
mov eax, dword [ebx + 0x10]
add ecx, ecx
test byte [edx + 3], 4
mov ecx, dword [eax + ecx*8]
mov eax, 0x12
mov dword [ebp - 0x124], ecx
mov ecx, dword [edx + 0x10]
mov dword [ebp - 0x118], ecx
mov ecx, 0x17
cmovne eax, ecx
mov dword [ebp - 0x104], eax
jmp 0x442784
mov dword [ebp - 0x118], 0
mov dword [ebp - 0x124], 0
test byte [edx + 3], 1
je 0x442793
mov eax, dword [ebp - 0xd4]
inc dword [eax + 0x64]
test byte [edx + 3], 2
je 0x4427b1
mov eax, dword [ebp - 0xe8]
mov dword [ebp - 0x138], edi
mov dword [ebp - 0x13c], eax
mov dword [ebx + 0x20], edi
mov dword [ebx + 0x24], eax
mov ecx, dword [ebp - 0xe0]
movzx eax, word [ecx + esi*8 + 8]
test al, 1
je 0x4427d0
mov dword [ecx + esi*8 + 0x10], 0
mov dword [ecx + esi*8 + 0xc], 0
mov cl, byte [edx + 3]
mov byte [ebp - 0xe1], cl
test cl, 0x10
je 0x4427e9
mov edx, dword [ebp - 0xf4]
mov edx, dword [edx + 0x20]
jmp 0x4427eb
xor edx, edx
test eax, 0x4000
je 0x4427fd
mov eax, dword [ebp - 0xe0]
mov ecx, dword [eax + esi*8]
jmp 0x4427ff
xor ecx, ecx
movzx eax, byte [ebp - 0xe1]
push edx
shr eax, 3
xor edx, edx
and eax, 1
push eax
mov eax, dword [ebp - 0xe0]
push ecx
push dword [eax + esi*8 + 0xc]
push dword [eax + esi*8 + 0x10]
mov eax, dword [ebp - 0xf4]
mov esi, dword [ebp - 0xe8]
push esi
push edi
mov ecx, dword [eax + 0x14]
call fcn.00432e50
mov dword [ebp - 0xdc], eax
add esp, 0x1c
mov eax, dword [ebp - 0xf4]
mov byte [eax + 3], 0
mov dword [eax + 0x40], 0
mov eax, dword [ebp - 0xdc]
test eax, eax
jne 0x440de9
mov eax, dword [ebx + 0xd8]
test eax, eax
je 0x43fa5d
mov ecx, dword [ebp - 0x104]
test ecx, ecx
je 0x43fa5d
mov edx, dword [ebp - 0x118]
push esi
push edi
push dword [edx]
push dword [ebp - 0x124]
push ecx
push dword [ebx + 0xd4]
call eax
add esp, 0x18
jmp 0x43fa5d
mov edx, dword [ebp - 0xd0]
cmp byte [edx + 1], 0xec
mov eax, dword [edx + 8]
mov ecx, dword [edx + 4]
mov dword [ebp - 0xfc], eax
mov eax, dword [esi + 0x38]
mov esi, dword [eax + ecx*4]
jne 0x4428f5
cmp dword [ebx + 0xd8], 0
je 0x4428f5
movsx ecx, byte [esi + 1]
mov eax, dword [ebx + 0x10]
add ecx, ecx
test byte [edx + 3], 2
mov edi, dword [edx + 0x10]
mov eax, dword [eax + ecx*8]
mov dword [ebp - 0x104], eax
je 0x442901
cmp byte [esi + 4], 0
je 0x442901
mov ecx, dword [esi + 0x14]
lea edx, [esi + 0x30]
call fcn.0042eae0
mov edx, dword [ebp - 0xd0]
jmp 0x442901
mov dword [ebp - 0x104], 0
xor edi, edi
mov dl, byte [edx + 3]
mov ecx, dword [esi + 0x14]
call fcn.00433060
mov dword [ebp - 0xdc], eax
mov dword [esi + 0x40], 0
test eax, eax
jne 0x440de9
test byte [ebp - 0xfc], 1
je 0x43fa5d
mov eax, dword [ebp - 0xd4]
inc dword [eax + 0x64]
mov eax, dword [ebx + 0xd8]
test eax, eax
je 0x43fa5d
test byte [edi + 0x2a], 0x20
jne 0x43fa5d
push dword [esi + 0x34]
push dword [esi + 0x30]
push dword [edi]
push dword [ebp - 0x104]
push 9
push dword [ebx + 0xd4]
call eax
add esp, 0x18
jmp 0x43fa5d
mov eax, dword [esi + 0x64]
add dword [ebx + 0x58], eax
add edi, 0x14
mov dword [ebx + 0x54], eax
mov eax, dword [ebp - 0xd8]
mov ebx, dword [ebp - 0x12c]
mov dword [esi + 0x64], 0
jmp 0x43f565
mov edx, dword [ebp - 0xd0]
mov eax, dword [esi + 0x38]
mov dword [ebp - 0x18c], 0
mov ecx, dword [edx + 4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
mov edx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
lea eax, [ebp - 0x18c]
push eax
mov eax, dword [ebp - 0xd0]
push dword [eax + 0x10]
call fcn.00448b70
add esp, 8
mov dword [ebp - 0xdc], eax
test eax, eax
jne 0x440def
mov edi, dword [ebp - 0xd0]
cmp dword [ebp - 0x18c], eax
jne 0x43f5d4
mov ebx, dword [ebp - 0x12c]
lea ecx, [eax + 4]
mov eax, dword [ebp - 0xd8]
add edi, 0x14
jmp 0x43f565
mov edx, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xe0]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x38]
mov ecx, dword [eax + ecx*4]
call fcn.00448ad0
mov dword [ebp - 0xdc], eax
test eax, eax
jne 0x440def
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax + 0xc]
mov eax, dword [esi + 0x38]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x40], 0
jmp 0x43f7d5
mov edx, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xe0]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, dword [ebp - 0xd4]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xfc], eax
cmp byte [eax + 4], 0
mov edi, dword [eax + 0x14]
mov ecx, edi
mov dword [ebp - 0xe8], edi
jne 0x442ab8
call fcn.0042eaa0
mov ecx, dword [ebp - 0xe8]
mov eax, dword [ebx + 0x5c]
mov edi, dword [edi + 0x10]
cdq
cmp dword [ecx + 0x14], edx
jg 0x444b80
jl 0x442ac9
cmp edi, eax
jmp 0x442ac3
call fcn.0042eaa0
mov edi, dword [edi + 0x1c]
cmp edi, dword [ebx + 0x5c]
ja 0x444b80
mov edx, 0x20
cmp edi, edx
cmova edx, edi
cmp dword [esi + 0x18], edx
jge 0x442aee
push 0
mov ecx, esi
call fcn.00435f40
add esp, 4
test eax, eax
jne 0x44134c
jmp 0x442af9
mov eax, dword [esi + 0x14]
and word [esi + 8], 0xd
mov dword [esi + 0x10], eax
mov ax, word [esi + 8]
mov ecx, 0x3e00
and ax, cx
mov dword [esi + 0xc], edi
or ax, 0x10
mov word [esi + 8], ax
mov eax, dword [ebp - 0xfc]
cmp byte [eax + 4], 0
jne 0x442b34
mov ecx, dword [ebp - 0xe8]
xor edx, edx
push 0
push dword [esi + 0x10]
push edi
call fcn.0042eca0
add esp, 0xc
jmp 0x442b48
push dword [esi + 0x10]
push edi
push 0
push dword [ebp - 0xe8]
call fcn.0042ef90
add esp, 0x10
mov dword [ebp - 0xdc], eax
test eax, eax
jne 0x440de9
mov byte [esi + 0xa], 1
jmp 0x43fa5d
mov edx, dword [ebp - 0xd0]
mov ecx, esi
call fcn.0043f420
mov ecx, dword [ebp - 0xd0]
mov edi, eax
mov edx, dword [ecx + 4]
mov ecx, dword [esi + 0x38]
mov esi, dword [ecx + edx*4]
cmp byte [esi + 2], 0
je 0x442b91
mov eax, 1
mov word [edi + 8], ax
jmp 0x43fa5d
cmp byte [esi + 3], 0
je 0x442bbf
mov ecx, dword [esi + 0x30]
mov dword [ebp - 0x188], ecx
mov eax, dword [esi + 0x34]
mov esi, dword [ebp - 0xd4]
mov dword [ebp - 0x184], eax
mov dword [edi], ecx
mov eax, dword [ebp - 0x184]
mov dword [edi + 4], eax
jmp 0x43f7d5
cmp byte [esi], 2
jne 0x442c14
mov ecx, dword [esi + 0x14]
lea edx, [ebp - 0x188]
push edx
push ecx
mov esi, dword [ecx]
mov eax, dword [esi]
mov eax, dword [eax + 0x30]
call eax
add esp, 8
mov dword [ebp - 0xdc], eax
mov edx, esi
mov esi, dword [ebp - 0xd4]
mov ecx, esi
call fcn.0043c660
mov eax, dword [ebp - 0xdc]
test eax, eax
jne 0x440def
mov ecx, dword [ebp - 0x188]
mov dword [edi], ecx
mov eax, dword [ebp - 0x184]
mov dword [edi + 4], eax
jmp 0x43f7d5
mov eax, dword [esi + 0x14]
cmp byte [eax + 0x42], 1
je 0x442c34
mov ecx, esi
call fcn.0043ad60
mov dword [ebp - 0xdc], eax
test eax, eax
jne 0x440de9
jmp 0x442c3e
mov dword [ebp - 0xdc], 0
cmp byte [esi + 2], 0
je 0x442c52
mov eax, 1
mov word [edi + 8], ax
jmp 0x43fa5d
mov esi, dword [esi + 0x14]
mov ecx, esi
call fcn.0042eaa0
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0x188], ecx
mov eax, dword [esi + 0x14]
mov esi, dword [ebp - 0xd4]
mov dword [ebp - 0x184], eax
mov dword [edi], ecx
mov eax, dword [ebp - 0x184]
mov dword [ebp - 0xdc], 0
mov dword [edi + 4], eax
jmp 0x43f7d5
mov ecx, dword [edi + 4]
mov eax, dword [esi + 0x38]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx], 0
mov byte [ecx + 2], 1
mov dword [ecx + 0x40], 0
jne 0x43fa69
mov ecx, dword [ecx + 0x14]
call fcn.0042aec0
mov eax, dword [ebp - 0xd8]
mov ecx, 4
mov ebx, dword [ebp - 0x12c]
add edi, 0x14
jmp 0x43f565
mov edx, dword [ebp - 0xd0]
mov eax, dword [esi + 0x38]
mov dword [ebp - 0x190], 0
mov ecx, dword [edx + 4]
lea edx, [ebp - 0x190]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esi + 0x14]
call fcn.0042f330
mov ecx, dword [ebp - 0x190]
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0xd0]
mov byte [esi + 2], cl
mov byte [esi + 3], 0
mov dword [esi + 0x40], 0
mov eax, dword [eax + 0xc]
mov dword [esi + 0x20], eax
mov eax, dword [ebp - 0xdc]
test eax, eax
jne 0x440de9
mov edi, dword [ebp - 0xd0]
cmp dword [edi + 8], eax
jle 0x43fa63
test ecx, ecx
jne 0x43f5d4
jmp 0x43fa63
inc dword [esi + 0x7c]
mov edx, dword [ebp - 0xd0]
mov eax, dword [esi + 0x38]
mov dword [ebp - 0x164], 1
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
cmp byte [esi], 1
jne 0x442d79
lea edx, [ebp - 0x164]
mov ecx, esi
call fcn.00448a00
mov dword [ebp - 0xdc], eax
jmp 0x442dc0
mov edi, dword [esi + 0x14]
mov ecx, edi
call fcn.0042f070
mov dword [ebp - 0xdc], eax
test eax, eax
jne 0x442db5
cmp byte [edi + 0x42], al
jne 0x442d9e
mov dword [ebp - 0x164], 1
jmp 0x442db5
mov ecx, edi
mov dword [ebp - 0x164], 0
call fcn.0042f1c0
mov dword [ebp - 0xdc], eax
mov byte [esi + 3], 0
mov dword [esi + 0x40], 0
test eax, eax
jne 0x440de9
mov eax, dword [ebp - 0x164]
mov edi, dword [ebp - 0xd0]
mov byte [esi + 2], al
test eax, eax
jne 0x43f5d4
jmp 0x43fa63
mov edx, dword [ebp - 0xd0]
mov eax, dword [esi + 0x38]
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
lea eax, [ebp - 0x168]
push eax
mov edx, esi
mov dword [ebp - 0x168], 0
mov ecx, ebx
call fcn.00448a60
add esp, 4
jmp 0x442e4c
mov ecx, dword [edi + 4]
mov eax, dword [esi + 0x38]
cmp dword [eax + ecx*4], 0
je 0x43fa69
mov ecx, dword [edi + 4]
mov eax, dword [esi + 0x38]
mov esi, dword [eax + ecx*4]
mov ecx, dword [ebp - 0xd0]
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x168], eax
lea eax, [ebp - 0x168]
push eax
push dword [esi + 0x14]
mov eax, dword [ecx + 0x10]
call eax
add esp, 8
mov dword [ebp - 0xdc], eax
mov dword [esi + 0x40], 0
test eax, eax
jne 0x440de9
cmp dword [ebp - 0x168], eax
jne 0x442e85
mov ecx, dword [ebp - 0xd4]
mov byte [esi + 2], al
mov eax, dword [ebp - 0xd0]
movzx eax, byte [eax + 3]
inc dword [ecx + eax*4 + 0x74]
jmp case.0x43f58f.13
mov edi, dword [ebp - 0xd0]
mov byte [esi + 2], 1
jmp 0x44457d
mov edx, dword [ebp - 0xd0]
mov eax, dword [esi + 0x38]
test byte [edx + 3], 1
mov ecx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
mov eax, dword [edx + 8]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
je 0x442ec1
mov eax, dword [ebp - 0xd4]
inc dword [eax + 0x64]
mov eax, 0x4000
test word [esi + 8], ax
je 0x442ee1
mov ecx, esi
call fcn.004360e0
test eax, eax
jne 0x440de9
mov edx, dword [ebp - 0xd0]
cmp byte [edx], 0x7b
jne 0x442efa
mov edx, esi
mov ecx, edi
call fcn.00447a70
mov dword [ebp - 0xdc], eax
jmp 0x440553
test byte [edx + 3], 0x10
je 0x442f05
mov eax, dword [edi + 0x20]
jmp 0x442f07
xor eax, eax
mov ecx, dword [edi + 0x14]
push eax
push dword [edx + 0xc]
mov eax, dword [esi + 0xc]
push 0
push 0
cdq
push 0x4fb85d
push edx
mov edx, dword [esi + 0x10]
push eax
call fcn.00432e50
add esp, 0x1c
mov dword [edi + 0x40], 0
mov dword [ebp - 0xdc], eax
jmp 0x440553
mov edx, dword [ebp - 0xd0]
mov eax, dword [esi + 0x38]
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
mov ecx, dword [ebp - 0xe0]
mov eax, dword [esi + 0x1c]
mov edi, dword [esi + 0x14]
mov dword [ebp - 0x238], eax
mov ax, word [edx + 0xc]
mov word [ebp - 0x230], ax
mov eax, dword [edx + 8]
lea edx, [ebp - 0x238]
mov byte [ebp - 0x22e], 0
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, edi
mov dword [ebp - 0x234], eax
lea eax, [ebp - 0x1c4]
push eax
push 0
push 0
push 0
call fcn.0042f390
add esp, 0x10
mov dword [ebp - 0xdc], eax
test eax, eax
jne 0x440de9
cmp dword [ebp - 0x1c4], eax
jne 0x442fc6
mov dl, 4
mov ecx, edi
call fcn.00433060
mov dword [ebp - 0xdc], eax
test eax, eax
jne 0x440de9
mov dword [esi + 0x40], 0
jmp 0x43fa5d
mov edx, dword [ebp - 0xd0]
mov eax, dword [esi + 0x38]
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
mov eax, dword [esi + 0x14]
cmp byte [eax + 0x42], 1
je 0x443007
mov ecx, esi
call fcn.0043ad60
mov dword [ebp - 0xdc], eax
test eax, eax
jne 0x440de9
mov edx, dword [ebp - 0xd0]
jmp 0x44300f
xor ecx, ecx
mov dword [ebp - 0xdc], ecx
cmp byte [esi + 2], 0
jne 0x4430cf
mov edx, dword [esi + 0x14]
lea eax, [ebp - 0x1a8]
xorps xmm0, xmm0
mov ecx, ebx
push eax
movlpd qword [ebp - 0x1a8], xmm0
call fcn.0043c380
add esp, 4
mov dword [ebp - 0xdc], eax
test eax, eax
jne 0x440de9
mov eax, dword [ebp - 0xd0]
cmp byte [eax], 0x7e
jne 0x44308c
mov ecx, dword [eax + 0xc]
mov eax, dword [ebp - 0xd4]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x1a8]
mov dword [ecx + 0x30], eax
mov eax, dword [ebp - 0x1a4]
mov dword [ecx + 0x34], eax
mov eax, dword [ebp - 0xd0]
mov word [ecx + 2], 0x100
mov eax, dword [eax + 0x10]
mov dword [ecx + 0x3c], eax
mov dword [ecx + 0x38], esi
jmp 0x43fa5d
mov esi, dword [ebp - 0xd4]
mov edx, eax
mov ecx, esi
call fcn.0043f420
mov ecx, dword [ebp - 0x1a8]
mov edi, dword [ebp - 0xd0]
mov ebx, dword [ebp - 0x12c]
add edi, 0x14
mov dword [eax], ecx
mov ecx, dword [ebp - 0x1a4]
mov dword [eax + 4], ecx
mov ecx, 4
mov word [eax + 8], cx
mov eax, dword [ebp - 0xd8]
jmp 0x43f565
mov eax, dword [edx + 8]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.00436850
jmp 0x43fa5d
mov edx, dword [ebp - 0xd0]
mov eax, dword [esi + 0x38]
cmp byte [ebp - 0xe1], 0x3a
mov dword [ebp - 0x158], 0
mov ecx, dword [edx + 4]
mov edx, dword [eax + ecx*4]
mov ecx, dword [ebp - 0xd0]
mov eax, dword [edx + 0x1c]
mov dword [ebp - 0x248], eax
mov ax, word [ecx + 0x10]
mov word [ebp - 0x240], ax
sbb al, al
mov byte [ebp - 0x23e], al
mov eax, dword [ecx + 0xc]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, ebx
mov dword [ebp - 0x244], eax
lea eax, [ebp - 0x158]
push eax
lea eax, [ebp - 0x248]
push eax
call fcn.0043c4c0
mov edi, dword [ebp - 0xd0]
add esp, 8
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0x158]
test byte [edi], 1
jne 0x443172
neg eax
jmp 0x443173
inc eax
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0x158], eax
test ecx, ecx
jne 0x444b29
test eax, eax
jg 0x43f5d4
mov eax, dword [ebp - 0xd8]
mov ecx, 4
mov ebx, dword [ebp - 0x12c]
add edi, 0x14
jmp 0x43f565
mov edx, dword [ebp - 0xd0]
mov ecx, esi
call fcn.0043f420
mov esi, eax
mov eax, 1
mov word [esi + 8], ax
mov ecx, dword [ebx + 0xa8]
inc ecx
cmp dword [ebx + 0x9c], ecx
jg 0x444ab4
mov edx, dword [ebp - 0xd0]
lea ecx, [ebp - 0x194]
push ecx
mov ecx, dword [ebx + 0x10]
mov dword [ebp - 0x194], 0
mov eax, dword [edx + 0xc]
mov edx, dword [edx + 4]
mov dword [ebp - 0x104], eax
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00433b50
mov ecx, dword [ebp - 0x194]
add esp, 4
mov dword [ebp - 0xdc], eax
mov eax, 4
mov word [esi + 8], ax
mov eax, ecx
cdq
mov dword [esi], eax
mov eax, dword [ebp - 0xdc]
mov dword [esi + 4], edx
test eax, eax
jne 0x440de9
test ecx, ecx
je 0x43fa5d
mov eax, dword [ebp - 0xd0]
mov edx, dword [ebp - 0x104]
push dword [eax + 4]
push ecx
mov ecx, ebx
call fcn.00458390
mov al, byte [ebp - 0x104]
add esp, 8
inc al
mov byte [ebp - 0x125], al
jmp 0x43fa5d
mov edx, dword [ebp - 0xd0]
lea eax, [ebp - 0x198]
xor ecx, ecx
mov dword [ebp - 0x198], 0
cmp dword [edx + 0xc], ecx
cmove eax, ecx
mov ecx, dword [ebx + 0x10]
push eax
mov eax, dword [edx + 8]
mov edx, dword [edx + 4]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00433880
mov edi, dword [ebp - 0xd0]
add esp, 4
mov dword [ebp - 0xdc], eax
cmp dword [edi + 0xc], 0
je 0x4432de
mov eax, dword [ebp - 0x198]
add dword [esi + 0x64], eax
mov ecx, dword [edi + 0xc]
test ecx, ecx
jle 0x4432d8
mov ebx, dword [ebp - 0xe0]
lea ecx, [ecx + ecx*4]
cdq
add dword [ebx + ecx*8], eax
mov eax, ebx
mov ebx, dword [ebp - 0x12c]
adc dword [eax + ecx*8 + 4], edx
mov eax, dword [ebp - 0xdc]
test eax, eax
jne 0x440def
mov ebx, dword [ebp - 0x12c]
lea ecx, [eax + 4]
mov eax, dword [ebp - 0xd8]
add edi, 0x14
jmp 0x43f565
mov edx, dword [ebp - 0xd0]
mov eax, dword [esi + 0x38]
mov ecx, dword [edx + 4]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx], 1
jne 0x443320
mov edx, dword [ecx + 0x14]
mov ecx, ebx
call fcn.00446cd0
jmp 0x43f7d5
mov ecx, dword [ecx + 0x14]
push 0
mov edx, dword [ecx + 0x34]
mov ecx, dword [ecx]
call fcn.00433880
add esp, 4
mov dword [ebp - 0xdc], eax
jmp 0x440559
mov edx, dword [ebp - 0xd0]
mov ecx, esi
call fcn.0043f420
mov edi, eax
mov dword [ebp - 0x19c], 0
mov eax, dword [ebp - 0xd0]
lea edx, [ebp - 0x19c]
xor ecx, ecx
mov esi, dword [eax + 4]
shl esi, 4
add esi, dword [ebx + 0x10]
cmp byte [eax], 0x84
setne cl
inc ecx
push ecx
mov ecx, dword [esi + 4]
call fcn.00433680
mov esi, dword [ebp - 0xd4]
add esp, 4
mov dword [ebp - 0xdc], eax
test eax, eax
jne 0x440def
mov eax, dword [ebp - 0x19c]
cdq
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x43f7d5
mov edx, dword [ebp - 0xd0]
lea eax, [esi + 0x2c]
mov dword [ebp - 0x214], eax
mov eax, str.sqlite_master
mov dword [ebp - 0x218], ebx
mov ecx, dword [edx + 4]
cmp ecx, 1
push dword [edx + 0x10]
mov edx, str.sqlite_temp_master
mov dword [ebp - 0x210], ecx
cmove eax, edx
add ecx, ecx
push eax
mov eax, dword [ebx + 0x10]
push dword [eax + ecx*8]
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
push ebx
call fcn.0041a4a0
mov esi, eax
add esp, 0x14
test esi, esi
je 0x444ac8
push 0
lea eax, [ebp - 0x218]
mov byte [ebx + 0x95], 1
push eax
push fcn.0046adf0
push esi
push ebx
mov dword [ebp - 0x20c], 0
call fcn.00466f90
add esp, 0x14
mov edx, esi
test eax, eax
mov ecx, ebx
cmove eax, dword [ebp - 0x20c]
mov dword [ebp - 0xdc], eax
call fcn.00418590
mov ecx, dword [ebp - 0xdc]
mov byte [ebx + 0x95], 0
test ecx, ecx
jne 0x444ad2
jmp 0x43fa5d
mov edx, dword [ebp - 0xd0]
mov ecx, ebx
mov edx, dword [edx + 4]
call fcn.00453d40
mov dword [ebp - 0xdc], eax
jmp 0x440559
mov edx, dword [ebp - 0xd0]
mov ecx, ebx
push dword [edx + 0x10]
mov edx, dword [edx + 4]
call fcn.00455f00
add esp, 4
jmp 0x43f7d5
mov edx, dword [ebp - 0xd0]
mov ecx, ebx
push dword [edx + 0x10]
mov edx, dword [edx + 4]
call fcn.004558d0
add esp, 4
jmp 0x43f7d5
mov edx, dword [ebp - 0xd0]
mov ecx, ebx
push dword [edx + 0x10]
mov edx, dword [edx + 4]
call fcn.00477b10
add esp, 4
jmp 0x43f7d5
mov edx, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xe0]
mov eax, dword [edx + 0xc]
lea edi, [eax + eax*4]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [ebp - 0xfc], eax
lea eax, [ebp - 0x1c8]
push eax
push dword [ecx + edi*8]
movzx eax, byte [edx + 3]
mov ecx, dword [ebx + 0x10]
add eax, eax
push dword [edx + 8]
mov edx, dword [edx + 0x10]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.004347e0
mov ecx, dword [ebp - 0xe0]
add esp, 0xc
mov esi, dword [ebp - 0x1c8]
mov dword [ebp - 0x104], eax
mov eax, esi
cdq
sub dword [ecx + edi*8], eax
sbb dword [ecx + edi*8 + 4], edx
mov edi, dword [ebp - 0xfc]
mov ecx, edi
call fcn.00436850
test esi, esi
je 0x443554
mov eax, dword [ebp - 0x104]
test eax, eax
je 0x44134c
push fcn.004184e0
push 1
push 0xffffffffffffffff
mov edx, eax
mov ecx, edi
call fcn.00436b30
add esp, 0xc
movzx edx, byte [ebp - 0x114]
mov ecx, edi
call fcn.00435f20
jmp 0x43fa5d
mov edx, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xe0]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 0x20
lea esi, [ecx + eax*8]
mov eax, dword [edx + 8]
lea edi, [eax + eax*4]
jne 0x44359a
mov ecx, esi
call fcn.004368f0
test byte [esi + 8], 0x20
je 0x44134c
mov ebx, dword [ebp - 0xe0]
push dword [ebx + edi*8 + 4]
mov ecx, dword [esi]
push dword [ebx + edi*8]
call fcn.004222c0
add esp, 8
jmp 0x43fa5d
mov edx, dword [ebp - 0xd0]
mov edi, dword [ebp - 0xe0]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 8], 0x20
lea esi, [edi + eax*8]
je 0x443611
mov ecx, dword [esi]
lea edx, [ebp - 0x200]
call fcn.00422680
test eax, eax
je 0x443611
mov eax, dword [ebp - 0xd0]
push dword [ebp - 0x1fc]
push dword [ebp - 0x200]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
call fcn.004368b0
mov edi, dword [ebp - 0xd0]
add esp, 8
jmp 0x44457d
mov ecx, esi
call fcn.00436850
jmp case.0x43f58f.13
mov edx, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xe0]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 0x20
lea esi, [ecx + eax*8]
mov eax, dword [edx + 0xc]
lea edi, [eax + eax*4]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x104], eax
jne 0x44365f
mov ecx, esi
call fcn.004368f0
test byte [esi + 8], 0x20
je 0x44134c
mov eax, dword [ebp - 0x104]
mov ebx, dword [ebp - 0xe0]
test eax, eax
je 0x44368c
push dword [ebx + edi*8 + 4]
mov ecx, dword [esi]
mov edx, eax
push dword [ebx + edi*8]
call fcn.004226e0
add esp, 8
test eax, eax
jne 0x43f5ce
mov eax, dword [ebp - 0x104]
test eax, eax
js 0x43fa5d
jmp 0x4435a0
mov edx, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xe0]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0xf4], eax
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, edx
mov edx, dword [ebp - 0xf4]
mov dword [ebp - 0xe8], ecx
cmp byte [eax + 3], 0
je 0x4436ec
mov eax, dword [esi + 0xb8]
mov ecx, dword [edx + 0x14]
test eax, eax
je 0x4436e6
cmp dword [eax + 0x1c], ecx
je 0x43f7d5
mov eax, dword [eax + 4]
test eax, eax
jne 0x4436d6
mov ecx, dword [ebp - 0xe8]
mov eax, dword [esi + 0xc0]
cmp eax, dword [ebx + 0x84]
jge 0x444af3
test byte [ecx + 8], 0x40
jne 0x443800
mov ecx, dword [edx + 0xc]
mov eax, dword [edx + 8]
add eax, ecx
test ecx, ecx
lea edi, [eax + 1]
cmovne edi, eax
lea eax, [edi + 2]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*2]
mov eax, dword [edx + 0x10]
lea eax, [eax + ecx*4]
mov ecx, ebx
cdq
push edx
push eax
call fcn.004187d0
mov esi, eax
add esp, 8
test esi, esi
je 0x44134c
mov ecx, dword [ebp - 0xe8]
call fcn.00436430
mov eax, dword [ebp - 0xe8]
mov ecx, 0x40
mov word [eax + 8], cx
mov dword [eax], esi
mov eax, dword [ebp - 0xd4]
mov ecx, dword [ebp - 0xd0]
sub ecx, dword [ebp - 0x110]
mov dword [esi], eax
mov eax, dword [ebp - 0xf4]
mov dword [esi + 0x40], edi
mov eax, dword [eax + 0xc]
mov dword [esi + 0x44], eax
mov eax, 0x66666667
imul ecx
mov ecx, dword [ebp - 0xd4]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0xf4]
mov dword [esi + 0x30], eax
mov eax, dword [ecx + 8]
mov dword [esi + 0x10], eax
mov eax, dword [ecx + 0x1c]
mov dword [esi + 0x38], eax
mov eax, dword [ecx + 0x38]
mov dword [esi + 0x18], eax
mov eax, dword [ecx + 0x24]
mov dword [esi + 0x2c], eax
mov eax, dword [ecx + 4]
mov dword [esi + 8], eax
mov eax, dword [ecx + 0x20]
mov dword [esi + 0x34], eax
mov eax, dword [edx + 0x14]
mov dword [esi + 0x1c], eax
mov eax, dword [ecx + 0xd0]
mov dword [esi + 0x14], eax
mov eax, dword [ecx + 0xcc]
mov dword [esi + 0x3c], eax
lea eax, [edi + 2]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
lea eax, [esi + 0x50]
cmp eax, ecx
je 0x443802
mov edi, 0x80
nop
mov word [eax + 8], di
mov dword [eax + 0x20], ebx
add eax, 0x28
cmp eax, ecx
jne 0x4437f0
jmp 0x443802
mov esi, dword [ecx]
mov ecx, dword [ebp - 0xd4]
lea ebx, [esi + 0x50]
mov dword [ebp - 0xe0], ebx
inc dword [ecx + 0xc0]
mov eax, dword [ecx + 0xb8]
mov dword [esi + 4], eax
mov eax, dword [ebp - 0x138]
mov dword [esi + 0x20], eax
mov eax, dword [ebp - 0x13c]
mov dword [esi + 0x24], eax
mov eax, dword [ecx + 0x64]
mov dword [esi + 0x48], eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x54]
mov dword [esi + 0x4c], eax
mov eax, dword [ecx + 0xd4]
mov dword [esi + 0x28], eax
mov dword [ecx + 0xb8], esi
mov dword [ecx + 0xd4], 0
mov dword [ecx + 0x64], 0
mov dword [ecx + 8], ebx
mov eax, dword [esi + 0x40]
mov dword [ecx + 0x1c], eax
movzx eax, word [esi + 0x44]
mov esi, ecx
mov dword [esi + 0x24], eax
mov eax, dword [esi + 0x1c]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
mov dword [esi + 0x38], ecx
mov ebx, dword [edx]
mov dword [esi + 4], ebx
mov eax, dword [edx + 4]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x24]
mov dword [ebp - 0x110], ebx
lea ecx, [ecx + eax*4]
mov dword [esi + 0xd0], ecx
mov eax, dword [edx + 0x10]
lea edx, [ebx - 0x14]
push eax
push 0
push ecx
mov dword [esi + 0xcc], eax
mov dword [ebp - 0xd0], edx
call fcn.004a35f0
add esp, 0xc
jmp 0x43f7d5
mov edx, dword [ebp - 0xd0]
mov ecx, esi
call fcn.0043f420
mov esi, eax
mov eax, dword [ebp - 0xd4]
push 0x1000
mov eax, dword [eax + 0xb8]
mov ecx, dword [eax + 0x30]
lea edx, [ecx + ecx*4]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0x10]
mov ecx, dword [ecx + edx*4 + 4]
mov edx, dword [ebp - 0xd0]
add ecx, dword [edx + 4]
lea ecx, [ecx + ecx*4]
lea edx, [eax + ecx*8]
mov ecx, esi
call fcn.00436a20
add esp, 4
jmp 0x43fa5d
test dword [ebx + 0x18], 0x2000000
mov edx, dword [ebp - 0xd0]
mov edi, edx
mov eax, dword [edx + 8]
je 0x443941
cdq
add dword [ebx + 0x1c0], eax
mov eax, dword [ebp - 0xd8]
adc dword [ebx + 0x1c4], edx
add edi, 0x14
mov ebx, dword [ebp - 0x12c]
jmp 0x43f565
cmp dword [edx + 4], 0
cdq
je 0x443968
add dword [ebx + 0x1b8], eax
mov eax, dword [ebp - 0xd8]
adc dword [ebx + 0x1bc], edx
add edi, 0x14
mov ebx, dword [ebp - 0x12c]
jmp 0x43f565
add dword [esi + 0x98], eax
mov eax, dword [ebp - 0xd8]
adc dword [esi + 0x9c], edx
add edi, 0x14
mov ebx, dword [ebp - 0x12c]
jmp 0x43f565
cmp dword [edi + 4], 0
je 0x4439c6
mov eax, dword [ebx + 0x1b8]
or eax, dword [ebx + 0x1bc]
jne case.0x43f58f.110
mov eax, dword [ebx + 0x1c0]
or eax, dword [ebx + 0x1c4]
je 0x43f5d4
mov eax, dword [ebp - 0xd8]
add edi, 0x14
mov ebx, dword [ebp - 0x12c]
jmp 0x43f565
mov eax, dword [esi + 0x98]
or eax, dword [esi + 0x9c]
jmp 0x44399a
mov edx, dword [esi + 0xb8]
test edx, edx
je 0x443a08
mov eax, dword [edx + 4]
test eax, eax
je 0x4439ee
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x4439e5
mov eax, dword [ebp - 0xd0]
mov ebx, dword [ebp - 0xe0]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x10]
lea edi, [eax + ecx*8]
jmp 0x443a1d
mov edx, dword [ebp - 0xd0]
mov ebx, dword [ebp - 0xe0]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov ecx, edi
call fcn.00436600
mov ecx, dword [ebp - 0xd0]
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
mov ecx, esi
call fcn.00436600
mov ecx, dword [esi + 4]
mov eax, dword [esi]
cmp dword [edi + 4], ecx
jg 0x43fa5d
jl 0x443a52
cmp dword [edi], eax
jae 0x43fa5d
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x43fa5d
mov eax, dword [edi + 4]
mov edx, dword [ebp - 0xe0]
lea esi, [eax + eax*4]
mov ebx, dword [edx + esi*8 + 4]
mov ecx, dword [edx + esi*8]
test ebx, ebx
jl 0x43fa63
jg 0x443a81
test ecx, ecx
je 0x43fa63
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax + 0xc]
cdq
sub ecx, eax
sbb ebx, edx
mov edx, dword [ebp - 0xe0]
mov dword [edx + esi*8], ecx
mov dword [edx + esi*8 + 4], ebx
jmp 0x43f5ce
mov edx, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xd4]
mov eax, dword [edx + 4]
lea esi, [eax + eax*4]
mov eax, dword [edx + 0xc]
lea edi, [eax + eax*4]
call fcn.0043f420
mov ecx, dword [ebp - 0xe0]
mov ebx, eax
mov edx, dword [ecx + esi*8]
mov esi, dword [ecx + esi*8 + 4]
test esi, esi
jg 0x443ae6
jl 0x443ad7
test edx, edx
jne 0x443ae6
or eax, 0xffffffff
or ecx, eax
mov dword [ebx], eax
mov dword [ebx + 4], ecx
jmp 0x43fa5d
mov eax, dword [ecx + edi*8]
mov ecx, dword [ecx + edi*8 + 4]
test ecx, ecx
jl 0x443af7
jg 0x443b0e
test eax, eax
jne 0x443b0e
xorps xmm0, xmm0
movlpd qword [ebp - 0x100], xmm0
mov ecx, dword [ebp - 0xfc]
mov eax, dword [ebp - 0x100]
add eax, edx
mov dword [ebx], eax
adc ecx, esi
mov dword [ebx + 4], ecx
jmp 0x43fa5d
mov eax, dword [edi + 4]
mov edx, dword [ebp - 0xe0]
lea ebx, [eax + eax*4]
mov ecx, dword [edx + ebx*8]
mov eax, ecx
mov esi, dword [edx + ebx*8 + 4]
or eax, esi
je 0x43fa63
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax + 0xc]
cdq
sub ecx, eax
sbb esi, edx
mov edx, dword [ebp - 0xe0]
mov dword [edx + ebx*8], ecx
mov dword [edx + ebx*8 + 4], esi
jmp 0x43f5ce
mov eax, dword [edi + 4]
mov ebx, dword [ebp - 0xe0]
lea ecx, [eax + eax*4]
add dword [ebx + ecx*8], 0xffffffff
mov eax, dword [ebx + ecx*8]
adc dword [ebx + ecx*8 + 4], 0xffffffff
or eax, dword [ebx + ecx*8 + 4]
je 0x43f5d4
mov eax, dword [ebp - 0xd8]
mov ecx, 4
mov ebx, dword [ebp - 0x12c]
add edi, 0x14
jmp 0x43f565
mov edx, dword [ebp - 0xd0]
mov ecx, ebx
push 0
movzx eax, byte [edx + 3]
mov dword [ebp - 0xfc], eax
lea eax, [eax*4 + 0x1c]
push eax
call fcn.00418890
mov esi, eax
add esp, 8
test esi, esi
je 0x44134c
mov eax, dword [ebp - 0xd0]
mov dword [esi + 8], 0
mov ecx, dword [eax + 0x10]
mov dword [esi + 4], ecx
mov ecx, eax
sub ecx, dword [ebp - 0x110]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0xd0]
mov dword [esi + 0x10], eax
mov eax, dword [ebp - 0xd4]
mov dword [esi + 0xc], eax
mov eax, dword [ebp - 0xfc]
mov byte [esi + 0x1a], al
mov word [edx], 0xeb92
mov dword [edx + 0x10], esi
jmp 0x443c19
mov edx, dword [ebp - 0xd0]
mov eax, dword [edx + 0xc]
mov ecx, dword [ebp - 0xe0]
mov esi, dword [edx + 0x10]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov dword [ebp - 0xfc], edi
cmp dword [esi + 8], edi
je 0x443c76
movzx ecx, byte [esi + 0x1a]
sub ecx, 1
mov dword [esi + 8], edi
js 0x443c76
mov ebx, dword [ebp - 0xd0]
lea edx, [ecx + 7]
mov edi, dword [ebp - 0xe0]
lea edx, [esi + edx*4]
mov eax, dword [ebx + 8]
lea edx, [edx - 4]
add eax, ecx
sub ecx, 1
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [edx + 4], eax
jns 0x443c54
mov ebx, dword [ebp - 0x12c]
mov edi, dword [ebp - 0xfc]
inc dword [edi + 0xc]
mov eax, 1
mov word [ebp - 0x2d8], ax
lea eax, [ebp - 0x2e0]
mov dword [ebp - 0x2c0], ebx
mov dword [ebp - 0x2c8], 0
mov ecx, dword [esi + 4]
mov dword [esi], eax
lea eax, [esi + 0x1c]
push eax
movzx eax, byte [esi + 0x1a]
push eax
mov word [esi + 0x18], 0
mov eax, dword [ecx + 0xc]
push esi
call eax
add esp, 0xc
cmp byte [esi + 0x19], 0
je 0x443d09
cmp dword [esi + 0x14], 0
je 0x443cf0
lea eax, [ebp - 0x2e0]
push eax
call fcn.0043cbf0
add esp, 4
push eax
push 0x4fb860
push dword [ebp - 0xd4]
call fcn.00437500
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [ebp - 0xdc], eax
lea ecx, [ebp - 0x2e0]
call fcn.00436430
mov eax, dword [ebp - 0xdc]
test eax, eax
jne 0x440de9
cmp byte [esi + 0x18], 0
mov edi, dword [ebp - 0xd0]
je 0x43fa63
mov eax, dword [edi - 0x10]
test eax, eax
je 0x43fa63
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
push 0
push 1
lea ecx, [ecx + eax*8]
call fcn.004368b0
add esp, 8
jmp 0x43fa63
mov edx, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xe0]
mov eax, dword [edx + 4]
mov edx, dword [edx + 0x10]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.00436280
mov dword [ebp - 0xdc], eax
test eax, eax
jne 0x444b0b
movzx edx, byte [ebp - 0x114]
mov ecx, esi
call fcn.00435f20
mov ecx, esi
jmp 0x440275
mov edx, dword [ebp - 0xd0]
lea eax, [ebp - 0xc4]
push eax
lea eax, [ebp - 0xc8]
mov dword [ebp - 0xcc], 0
push eax
push dword [edx + 8]
mov edx, dword [edx + 4]
mov ecx, ebx
mov dword [ebp - 0xc4], 0xffffffff
mov dword [ebp - 0xc8], 0xffffffff
call fcn.0048cc60
add esp, 0xc
mov dword [ebp - 0xdc], eax
test eax, eax
je 0x443dec
cmp eax, 5
jne 0x440def
mov dword [ebp - 0xdc], 0
mov dword [ebp - 0xcc], 1
mov eax, dword [ebp - 0xd0]
xor esi, esi
mov ecx, dword [ebp - 0xe0]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [ebp + esi*4 - 0xcc]
mov ecx, edi
cdq
push edx
push eax
call fcn.004368b0
inc esi
add esp, 8
add edi, 0x28
cmp esi, 3
jl 0x443e03
jmp 0x43fa5d
mov edx, dword [ebp - 0xd0]
mov ecx, esi
call fcn.0043f420
mov ecx, dword [ebx + 0x10]
mov dword [ebp - 0x118], eax
mov eax, dword [ebp - 0xd0]
mov edx, dword [eax + 4]
mov esi, dword [eax + 0xc]
add edx, edx
cmp esi, 0xffffffff
mov eax, dword [ecx + edx*8 + 4]
mov dword [ebp - 0x104], eax
mov ecx, dword [eax + 4]
mov edi, dword [ecx]
movzx ecx, byte [edi + 5]
cmove esi, ecx
mov dword [ebp - 0xec], ecx
cmp byte [edi + 0x11], 3
mov dword [ebp - 0xfc], esi
jb 0x443e78
xor eax, eax
jmp 0x443e97
mov eax, dword [edi + 0x44]
cmp dword [eax], 0
je 0x443e92
cmp dword [edi + 0x54], 0
jl 0x443e92
jg 0x443e8e
cmp dword [edi + 0x50], 0
jbe 0x443e92
xor eax, eax
jmp 0x443e97
mov eax, 1
test eax, eax
mov esi, ecx
mov eax, 0x4fb85d
cmovne esi, dword [ebp - 0xfc]
cmp byte [edi + 0x10], 0
jne 0x443eb3
mov eax, dword [edi + 0xb0]
cmp esi, 5
jne 0x443ee1
mov ecx, eax
call fcn.0041b170
test eax, eax
je 0x443ece
mov ecx, edi
call fcn.00427820
test eax, eax
jne 0x443edb
mov edx, dword [ebp - 0xec]
mov esi, edx
jmp 0x443f65
mov ecx, dword [ebp - 0xec]
cmp esi, ecx
je 0x443f5f
cmp ecx, 5
je 0x443ef3
cmp esi, 5
jne 0x443f5f
cmp byte [ebx + 0x43], 0
je 0x444b34
cmp dword [ebx + 0x9c], 1
jg 0x444b34
cmp ecx, 5
jne 0x443f2d
mov ecx, edi
call fcn.004279e0
mov edx, eax
mov dword [ebp - 0xdc], edx
test edx, edx
jne 0x443f5f
mov edx, esi
mov ecx, edi
call fcn.004276c0
jmp 0x443f45
cmp ecx, 4
jne 0x443f3c
lea edx, [ecx - 2]
mov ecx, edi
call fcn.004276c0
cmp dword [ebp - 0xdc], 0
jne 0x443f5f
mov ecx, dword [ebp - 0x104]
xor edx, edx
cmp esi, 5
sete dl
inc edx
call fcn.00434d90
mov dword [ebp - 0xdc], eax
mov edx, dword [ebp - 0xec]
cmp dword [ebp - 0xdc], 0
mov ecx, edi
cmove edx, esi
call fcn.004276c0
mov esi, dword [ebp - 0x118]
mov ecx, 0xa02
mov word [esi + 8], cx
cmp eax, 6
jne 0x443f8e
xor ecx, ecx
jmp 0x443f95
mov ecx, dword [eax*4 + 0x4f8be4]
mov dword [esi + 0x10], ecx
call fcn.0041b170
movzx edx, byte [ebp - 0x114]
mov ecx, esi
mov dword [esi + 0xc], eax
mov byte [esi + 0xa], 1
call fcn.00435f20
mov eax, dword [ebp - 0xdc]
mov esi, dword [ebp - 0xd4]
test eax, eax
jne 0x440def
jmp 0x43f7d5
lea ecx, [esi + 0x2c]
mov edx, ebx
call fcn.0047adb0
mov dword [ebp - 0xdc], eax
test eax, eax
jne 0x440def
mov ebx, dword [ebp - 0x12c]
lea ecx, [eax + 4]
mov eax, dword [ebp - 0xd8]
add edi, 0x14
jmp 0x43f565
mov edx, dword [ebp - 0xd0]
mov eax, dword [ebx + 0x10]
mov ecx, dword [edx + 4]
add ecx, ecx
mov ecx, dword [eax + ecx*8 + 4]
call fcn.0042df50
mov dword [ebp - 0xdc], eax
test eax, eax
je 0x43f7d5
cmp eax, 0x65
jne 0x440def
mov dword [ebp - 0xdc], 0
jmp 0x43f5ce
cmp dword [edi + 4], 0
jne 0x44405d
mov ecx, ebx
call fcn.0043c5c0
mov eax, dword [ebp - 0xd8]
mov ecx, 4
mov ebx, dword [ebp - 0x12c]
add edi, 0x14
jmp 0x43f565
or dword [esi + 0x58], 1
add edi, 0x14
mov eax, dword [ebp - 0xd8]
mov ebx, dword [ebp - 0x12c]
jmp 0x43f565
mov al, byte [edi + 0xc]
mov byte [ebp - 0x1cc], al
test al, al
jne 0x44408f
test dword [ebx + 0x18], 0x4000
jne case.0x43f58f.110
mov eax, dword [ebp - 0xd0]
mov ecx, dword [ebx + 0x10]
mov edx, dword [ebp - 0xd0]
push dword [ebp - 0x1cc]
mov eax, dword [eax + 4]
add eax, eax
mov edx, dword [edx + 8]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00434ca0
add esp, 4
mov dword [ebp - 0xdc], eax
test eax, eax
je 0x43f7d5
cmp al, 6
jne 0x440def
mov eax, dword [ebp - 0xd0]
push dword [eax + 0x10]
push str.database_table_is_locked:__s
push esi
call fcn.00437500
mov eax, dword [ebp - 0xdc]
add esp, 0xc
jmp 0x440def
mov edx, dword [ebp - 0xd0]
mov ecx, ebx
mov esi, dword [edx + 0x10]
mov edx, esi
call fcn.0047c520
mov dword [ebp - 0xdc], eax
test esi, esi
je 0x443fb8
mov edx, dword [esi + 8]
mov esi, dword [ebp - 0xd4]
mov ecx, esi
call fcn.0043c660
mov eax, dword [ebp - 0xdc]
jmp 0x443fbe
mov edx, dword [ebp - 0xd0]
xorps xmm0, xmm0
mov ecx, dword [ebp - 0xe0]
movq qword [ebp - 0x250], xmm0
movups xmmword [ebp - 0x270], xmm0
mov eax, dword [edx + 8]
movups xmmword [ebp - 0x260], xmm0
mov dword [ebp - 0x250], ebx
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
lea ecx, [ebp - 0x270]
call fcn.00436a70
mov dword [ebp - 0xdc], eax
lea eax, [ebp - 0x270]
push eax
call fcn.0043cbf0
add esp, 4
test eax, eax
je 0x4441a1
lea ecx, [esi + 0x2c]
push ecx
push eax
mov eax, dword [ebp - 0xd0]
mov ecx, ebx
mov edx, dword [eax + 4]
call fcn.0047c000
add esp, 8
mov dword [ebp - 0xdc], eax
lea ecx, [ebp - 0x270]
call fcn.00436430
mov eax, dword [ebp - 0xdc]
test eax, eax
jne 0x440def
jmp 0x43f7d5
mov edx, dword [ebp - 0xd0]
mov ecx, ebx
inc dword [ebx + 0xa8]
push dword [edx + 0x10]
mov edx, dword [edx + 4]
call fcn.0047c2e0
dec dword [ebx + 0xa8]
add esp, 4
mov dword [ebp - 0xdc], eax
test eax, eax
jne 0x440def
jmp 0x43f7d5
mov edx, dword [ebp - 0xd0]
mov dword [ebp - 0x16c], 0
mov eax, dword [edx + 0x10]
mov esi, dword [eax + 8]
test esi, esi
je 0x444b76
mov edi, dword [esi]
test edi, edi
je 0x444b76
lea eax, [ebp - 0x16c]
push eax
mov eax, dword [edi + 0x18]
push esi
call eax
mov ecx, dword [ebp - 0xd4]
add esp, 8
mov edx, esi
mov dword [ebp - 0xdc], eax
call fcn.0043c660
mov eax, dword [ebp - 0xdc]
test eax, eax
jne 0x440de9
mov eax, dword [ebp - 0x16c]
mov ecx, dword [ebp - 0xd4]
push 2
push 0xffffffffffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0xd0]
push 0
mov edx, dword [eax + 4]
call fcn.0043f0a0
add esp, 0xc
test eax, eax
je 0x444b63
mov ecx, dword [ebp - 0x16c]
mov dword [eax + 0x14], ecx
inc dword [esi + 4]
jmp 0x43fa5d
mov edx, dword [ebp - 0xd0]
mov edi, dword [ebp - 0xe0]
add edi, 0x28
mov eax, dword [edx + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xd0]
lea edi, [edi + edx*8]
movd xmm0, edi
mov dword [ebp - 0xfc], edi
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x38]
mov esi, dword [edi]
pshufd xmm3, xmm0, 0
mov eax, dword [eax + ecx*4]
xor ecx, ecx
mov dword [ebp - 0xf4], eax
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x118], eax
mov eax, dword [eax]
mov dword [ebp - 0xe8], eax
mov eax, dword [eax]
mov dword [ebp - 0x124], eax
mov eax, dword [ebp - 0xe0]
mov eax, dword [eax + edx*8]
mov dword [ebp - 0x104], eax
mov eax, dword [ebp - 0xd4]
mov edx, dword [eax + 0xc]
test esi, esi
jle 0x4443ab
cmp esi, 8
jb 0x44438d
cmp dword [0x51deb0], 2
jl 0x44438d
movaps xmm2, xmmword [0x508380]
mov eax, esi
and eax, 0x80000007
jns 0x44432f
dec eax
or eax, 0xfffffff8
inc eax
movaps xmm1, xmmword [0x5083b0]
mov edi, esi
sub edi, eax
nop word [eax + eax]
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx + ecx*4], xmm0
movd xmm0, eax
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx + ecx*4 + 0x10], xmm0
add ecx, 8
cmp ecx, edi
jl 0x444340
mov edi, dword [ebp - 0xfc]
cmp ecx, esi
jge 0x4443ab
lea eax, [ecx + 1]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
nop word [eax + eax]
mov dword [edx + ecx*4], eax
inc ecx
add eax, 0x28
cmp ecx, esi
jl 0x4443a0
mov eax, dword [ebp - 0xd0]
mov edi, dword [ebp - 0x124]
push edx
push esi
push dword [eax + 0x10]
mov esi, dword [ebp - 0x118]
push dword [ebp - 0x104]
mov eax, dword [edi + 0x20]
push esi
call eax
mov edx, dword [ebp - 0xe8]
add esp, 0x14
mov ecx, dword [ebp - 0xd4]
mov dword [ebp - 0xdc], eax
call fcn.0043c660
mov eax, dword [ebp - 0xdc]
test eax, eax
jne 0x440de9
mov eax, dword [edi + 0x28]
push esi
call eax
mov ecx, dword [ebp - 0xf4]
add esp, 4
mov byte [ecx + 2], 0
test eax, eax
jne 0x43f5ce
jmp 0x43fa5d
mov edx, dword [ebp - 0xd0]
mov eax, dword [esi + 0x38]
mov edi, dword [ebp - 0xe0]
mov ecx, dword [edx + 4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0xfc], ecx
cmp byte [ecx + 2], 0
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
je 0x44444c
mov ecx, edi
call fcn.00436850
jmp 0x43f7d5
mov eax, dword [ecx + 0x14]
xorps xmm0, xmm0
mov esi, dword [eax]
mov ecx, dword [esi]
movups xmmword [ebp - 0x2b8], xmm0
mov dword [ebp - 0x2b8], edi
movups xmmword [ebp - 0x2a8], xmm0
mov ax, word [edi + 8]
and ax, word [ebp - 0x1e4]
or ax, 1
mov word [edi + 8], ax
lea eax, [ebp - 0x2b8]
push dword [edx + 8]
push eax
mov eax, dword [ebp - 0xfc]
push dword [eax + 0x14]
mov eax, dword [ecx + 0x2c]
call eax
add esp, 0xc
mov dword [ebp - 0xdc], eax
mov edx, esi
mov esi, dword [ebp - 0xd4]
mov ecx, esi
call fcn.0043c660
mov eax, dword [ebp - 0x2a4]
test eax, eax
mov ecx, dword [ebp - 0xdc]
movzx edx, byte [ebp - 0x114]
cmovne ecx, eax
mov dword [ebp - 0xdc], ecx
mov ecx, edi
call fcn.00435f20
mov ecx, edi
call fcn.004369c0
test eax, eax
jne 0x444b86
mov eax, dword [ebp - 0xdc]
test eax, eax
jne 0x440def
jmp 0x43f7d5
mov ecx, dword [edi + 4]
mov eax, dword [esi + 0x38]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xfc], eax
cmp byte [eax + 2], 0
jne 0x43fa69
mov eax, dword [eax + 0x14]
push eax
mov esi, dword [eax]
mov ecx, dword [esi]
mov dword [ebp - 0x104], ecx
mov eax, dword [ecx + 0x24]
call eax
add esp, 4
mov dword [ebp - 0xdc], eax
mov edx, esi
mov esi, dword [ebp - 0xd4]
mov ecx, esi
call fcn.0043c660
mov eax, dword [ebp - 0xdc]
test eax, eax
jne 0x440def
mov eax, dword [ebp - 0xfc]
push dword [eax + 0x14]
mov eax, dword [ebp - 0x104]
mov eax, dword [eax + 0x28]
call eax
add esp, 4
test eax, eax
jne 0x44457d
mov edx, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0x110]
mov edi, dword [edx + 8]
dec edi
lea edi, [edi + edi*4]
lea edi, [ecx + edi*4]
mov dword [ebp - 0xd0], edi
cmp dword [ebx + 0xf8], 0
jne 0x444dc1
mov ecx, dword [ebx + 0x130]
mov eax, dword [ebp - 0xd8]
test ecx, ecx
je 0x4448d1
cmp eax, dword [ebp - 0x170]
jb 0x4448d1
mov esi, dword [ebx + 0x138]
xor edx, edx
div esi
push dword [ebx + 0x134]
sub esi, edx
add esi, dword [ebp - 0xd8]
mov dword [ebp - 0x170], esi
call ecx
mov esi, dword [ebp - 0xd4]
add esp, 4
test eax, eax
jne 0x444bcf
mov ebx, dword [ebp - 0x12c]
lea ecx, [eax + 4]
mov eax, dword [ebp - 0xd8]
add edi, 0x14
jmp 0x43f565
mov edx, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xe0]
mov eax, dword [edx + 0x10]
mov edi, dword [eax + 8]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 2
lea esi, [ecx + eax*8]
je 0x44462b
cmp byte [esi + 0xa], 1
je 0x44462b
mov dl, 1
mov ecx, esi
call fcn.0041aad0
test eax, eax
jne 0x440de9
mov eax, dword [edi]
push dword [esi + 0x10]
push edi
mov eax, dword [eax + 0x4c]
call eax
mov esi, dword [ebp - 0xd4]
add esp, 8
mov edx, edi
mov dword [ebp - 0xdc], eax
mov ecx, esi
call fcn.0043c660
and dword [esi + 0x58], 0xfffffffe
mov eax, dword [ebp - 0xdc]
test eax, eax
jne 0x440def
jmp 0x43f7d5
mov eax, dword [edi + 0x10]
mov edx, dword [eax + 8]
mov dword [ebp - 0x104], edx
test edx, edx
je 0x444b9e
mov eax, dword [edx]
mov dword [ebp - 0xfc], eax
test eax, eax
je 0x444b9e
cmp dword [eax + 0x34], 0
mov esi, dword [edi + 8]
je 0x4448b7
mov al, byte [ebx + 0x4a]
mov ecx, dword [ebp - 0xe0]
mov byte [ebp - 0xe1], al
mov eax, dword [ebp - 0xd4]
mov edi, dword [eax + 0xc]
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
xor eax, eax
test esi, esi
jle 0x4446ce
mov dword [edi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, esi
jl 0x4446c3
mov eax, dword [ebp - 0xd0]
mov al, byte [eax + 3]
mov byte [ebx + 0x4a], al
lea eax, [ebp - 0x208]
push eax
mov eax, dword [ebp - 0xfc]
push edi
push esi
push edx
mov eax, dword [eax + 0x34]
call eax
mov esi, dword [ebp - 0xd4]
add esp, 0x10
mov edx, dword [ebp - 0x104]
mov ecx, esi
mov dword [ebp - 0xdc], eax
mov al, byte [ebp - 0xe1]
mov byte [ebx + 0x4a], al
call fcn.0043c660
cmp dword [ebp - 0xdc], 0
mov eax, dword [ebp - 0xd0]
jne 0x444747
cmp dword [eax + 4], 0
je 0x444747
mov ecx, dword [ebp - 0x208]
mov edx, dword [ebp - 0x204]
mov dword [ebp - 0x138], ecx
mov dword [ebp - 0x13c], edx
mov dword [ebx + 0x20], ecx
mov dword [ebx + 0x24], edx
mov ecx, dword [ebp - 0xdc]
cmp cl, 0x13
jne 0x4447a1
mov eax, dword [eax + 0x10]
cmp byte [eax + 0x10], 0
je 0x4447a1
mov edi, dword [ebp - 0xd0]
mov al, byte [edi + 3]
cmp al, 4
jne 0x44478b
mov eax, dword [ebp - 0xd8]
mov ecx, 4
mov ebx, dword [ebp - 0x12c]
add edi, 0x14
mov dword [ebp - 0xdc], 0
jmp 0x43f565
cmp al, 5
jne 0x444799
mov eax, 2
mov byte [esi + 0x56], al
jmp 0x4447aa
movzx eax, al
mov byte [esi + 0x56], al
jmp 0x4447aa
inc dword [esi + 0x64]
mov edi, dword [ebp - 0xd0]
mov eax, dword [ebp - 0xdc]
test eax, eax
jne 0x440def
mov ebx, dword [ebp - 0x12c]
lea ecx, [eax + 4]
mov eax, dword [ebp - 0xd8]
add edi, 0x14
jmp 0x43f565
mov edx, dword [ebp - 0xd0]
mov ecx, esi
call fcn.0043f420
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ecx + 4]
mov ecx, dword [ebx + 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
mov dword [eax + 4], 0
jmp 0x43f7d5
mov edx, dword [ebp - 0xd0]
mov ecx, esi
call fcn.0043f420
mov ecx, dword [ebx + 0x10]
mov edi, eax
mov eax, dword [ebp - 0xd0]
mov edx, dword [eax + 4]
mov esi, dword [eax + 0xc]
add edx, edx
mov ecx, dword [ecx + edx*8 + 4]
xor edx, edx
test esi, esi
je 0x444837
mov eax, dword [ecx + 4]
mov edx, dword [eax + 0x2c]
cmp edx, esi
cmovb edx, esi
call fcn.0042d190
cdq
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x43fa5d
cmp dword [ebx + 0xb4], 0
je 0x444896
test byte [esi + 0x58], 2
jne 0x444896
mov edx, dword [edi + 0x10]
test edx, edx
jne 0x444867
mov edx, dword [esi + 0xb0]
test edx, edx
je 0x444896
mov ecx, esi
call fcn.0043ebc0
mov ecx, dword [ebx + 0xb4]
mov esi, eax
push esi
push dword [ebx + 0xb8]
call ecx
add esp, 8
mov edx, esi
mov ecx, ebx
call fcn.00418590
mov esi, dword [ebp - 0xd4]
mov ecx, 4
cmp dword [edi + 8], 0
je case.0x43f58f.110
mov eax, dword [edi + 8]
mov ecx, dword [ebp - 0x110]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea edi, [ecx + eax*4]
jmp 0x43fa63
mov esi, dword [ebp - 0xd4]
add edi, 0x14
mov eax, dword [ebp - 0xd8]
mov ebx, dword [ebp - 0x12c]
jmp 0x43f565
mov esi, dword [ebp - 0xd4]
mov ecx, 4
mov ebx, dword [ebp - 0x12c]
add edi, 0x14
jmp 0x43f565
mov ecx, dword [edx + 4]
mov dword [esi + 0x50], ecx
mov al, byte [edx + 8]
mov byte [esi + 0x56], al
mov dword [esi + 0x4c], edi
test ecx, ecx
je 0x44498d
mov al, byte [edx + 3]
test al, al
je 0x444950
movzx eax, al
push dword [eax*4 + 0x4fb1d8]
push str._s_constraint_failed
push esi
call fcn.00437500
mov esi, dword [ebp - 0xd0]
add esp, 0xc
mov eax, dword [esi + 0x10]
test eax, eax
je 0x444967
push eax
mov eax, dword [ebp - 0xd4]
push dword [eax + 0x2c]
push str._z:__s
push ebx
call fcn.0041a4a0
mov ecx, dword [ebp - 0xd4]
add esp, 0x10
mov dword [ecx + 0x2c], eax
jmp 0x444967
push dword [edx + 0x10]
push 0x4fb860
push esi
call fcn.00437500
mov esi, dword [ebp - 0xd0]
add esp, 0xc
mov eax, dword [ebp - 0xd4]
push dword [eax + 0x2c]
push dword [eax + 0xb0]
push edi
push str.abort_at__d_in___s_:__s
push dword [esi + 4]
call fcn.0041a6e0
mov esi, dword [ebp - 0xd4]
add esp, 0x14
mov ecx, esi
call fcn.0043a2a0
mov dword [ebp - 0xdc], eax
cmp eax, 5
jne 0x4449a7
mov dword [esi + 0x50], eax
jmp 0x444f1a
cmp dword [esi + 0x50], 0
mov eax, 0x65
mov ecx, 1
cmovne eax, ecx
mov dword [ebp - 0xdc], eax
jmp 0x444f1a
push str.cannot_open_savepoint___SQL_statements_in_progress
push esi
call fcn.00437500
add esp, 8
mov eax, 5
jmp 0x440def
push str.cannot_release_savepoint___SQL_statements_in_progress
jmp 0x444ce1
mov ecx, dword [ebp - 0xd0]
mov eax, 0x66666667
sub ecx, dword [ebp - 0x110]
mov esi, edi
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x4c], eax
mov eax, 5
mov byte [ebx + 0x43], 0
mov dword [ebp - 0xdc], eax
mov dword [esi + 0x50], eax
jmp 0x444f1a
mov eax, 8
jmp 0x440def
mov ecx, dword [ebp - 0xd0]
mov eax, 0x66666667
sub ecx, dword [ebp - 0x110]
mov esi, dword [ebp - 0xd4]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x4c], eax
mov eax, dword [ebp - 0xdc]
mov dword [esi + 0x50], eax
jmp 0x444f1a
mov edi, dword [ebp - 0xd4]
mov ecx, ebx
mov edx, dword [edi + 0x2c]
call fcn.00418590
mov edx, str.database_schema_has_changed
mov ecx, ebx
call fcn.00418b00
mov dword [edi + 0x2c], eax
mov eax, dword [ebp - 0xd0]
mov edx, dword [eax + 4]
mov ecx, edx
mov eax, dword [ebx + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
cmp dword [eax], esi
je 0x444a9a
mov ecx, ebx
call fcn.00455ad0
mov esi, edi
mov eax, 0x11
or dword [esi + 0x58], 1
jmp 0x440def
mov eax, 0x204
jmp 0x440def
mov esi, dword [ebp - 0xd4]
mov eax, 6
mov byte [esi + 0x56], 2
jmp 0x440def
mov dword [ebp - 0xdc], 7
mov ecx, ebx
call fcn.00455b10
mov eax, dword [ebp - 0xdc]
mov esi, dword [ebp - 0xd4]
cmp eax, 7
je 0x441352
jmp 0x440def
push str.too_many_levels_of_trigger_recursion
push esi
call fcn.00437500
add esp, 8
mov eax, 1
jmp 0x440def
push esi
call fcn.0043cbf0
mov esi, dword [ebp - 0xd4]
add esp, 4
push eax
push 0x4fb860
push esi
call fcn.00437500
add esp, 0xc
mov eax, dword [ebp - 0xdc]
jmp 0x440def
cmp esi, 5
mov eax, str.into
mov ecx, str.out_of
cmovne eax, ecx
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
mov esi, dword [ebp - 0xd4]
push esi
call fcn.00437500
add esp, 0xc
mov eax, 1
jmp 0x440def
push dword [ebp - 0x16c]
mov eax, dword [edi + 0x1c]
call eax
add esp, 4
jmp 0x44134c
mov eax, 6
jmp 0x440de9
mov esi, dword [ebp - 0xd4]
push str.string_or_blob_too_big
push esi
call fcn.00437500
add esp, 8
mov eax, 0x12
jmp 0x440def
mov eax, 6
jmp 0x440def
mov eax, dword [ebx + 0x130]
test eax, eax
je 0x444bd9
mov ecx, dword [ebp - 0xd8]
cmp ecx, dword [ebp - 0x170]
jb 0x444bd9
push dword [ebx + 0x134]
call eax
add esp, 4
test eax, eax
je 0x444bd9
mov eax, 9
jmp 0x440def
xor edx, edx
mov ecx, esi
call fcn.0043a230
test eax, eax
jne 0x440def
lea edx, [eax + 1]
mov ecx, esi
call fcn.0043a100
mov eax, dword [esi + 0x48]
xor edi, edi
mov ecx, dword [ebp - 0xd0]
add eax, 2
mov edx, dword [ebp - 0xe0]
or eax, 1
mov dword [esi + 0x48], eax
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [ebp - 0xd4]
mov dword [eax + 0x14], esi
cmp dword [ecx + 8], edi
jle 0x444c55
mov eax, 0x1000
test word [esi + 8], ax
je 0x444c3f
mov ecx, esi
call fcn.00436070
test eax, eax
jne 0x44134c
mov ecx, esi
call fcn.00436180
mov ecx, dword [ebp - 0xd0]
inc edi
add esi, 0x28
cmp edi, dword [ecx + 8]
jl 0x444c25
cmp byte [ebx + 0x45], 0
jne 0x44134c
sub ecx, dword [ebp - 0x110]
mov eax, 0x66666667
mov esi, dword [ebp - 0xd4]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
inc eax
add eax, edx
mov dword [esi + 0x4c], eax
mov eax, 0x64
mov dword [ebp - 0xdc], eax
jmp 0x444f1a
mov edx, dword [ebp - 0xd0]
movzx eax, byte [ebx + 0x43]
mov ecx, dword [edx + 4]
mov esi, dword [edx + 8]
mov dword [ebp - 0x104], ecx
cmp ecx, eax
je 0x444d8d
test esi, esi
je 0x444ccf
mov edx, 0x204
mov ecx, ebx
call fcn.0048c130
mov esi, dword [ebp - 0xd4]
mov edi, 1
mov byte [ebx + 0x43], 1
jmp 0x444d25
test ecx, ecx
je 0x444cfa
cmp dword [ebx + 0xa0], 0
jle 0x444cfa
push str.cannot_commit_transaction___SQL_statements_in_progress
mov esi, dword [ebp - 0xd4]
push esi
call fcn.00437500
add esp, 8
mov eax, 5
jmp 0x440def
mov esi, dword [ebp - 0xd4]
mov edi, 1
mov edx, edi
mov ecx, esi
call fcn.0043a230
mov dword [ebp - 0xdc], eax
test eax, eax
jne 0x444f1a
mov eax, dword [ebp - 0x104]
mov byte [ebx + 0x43], al
mov ecx, esi
call fcn.0043a2a0
cmp eax, 5
jne 0x444d6f
mov ecx, dword [ebp - 0xd0]
mov eax, 0x66666667
sub ecx, dword [ebp - 0x110]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x4c], eax
mov al, 1
sub al, byte [ebp - 0x104]
mov byte [ebx + 0x43], al
mov eax, 5
mov dword [ebp - 0xdc], eax
mov dword [esi + 0x50], eax
jmp 0x444f1a
mov ecx, ebx
call fcn.0048b6d0
cmp dword [esi + 0x50], 0
mov eax, 0x65
cmovne eax, edi
mov dword [ebp - 0xdc], eax
jmp 0x444f1a
test ecx, ecx
jne 0x444d98
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x444da7
test esi, esi
mov eax, str.cannot_rollback___no_transaction_is_active
mov ecx, str.cannot_commit___no_transaction_is_active
cmove eax, ecx
mov esi, dword [ebp - 0xd4]
push eax
push esi
call fcn.00437500
add esp, 8
mov eax, 1
jmp 0x440def
mov esi, dword [ebp - 0xd4]
xor eax, eax
mov ecx, str.unknown_error
cmp byte [ebx + 0x45], al
sete al
lea eax, [eax*2 + 7]
mov dword [ebp - 0xdc], eax
mov dword [esi + 0x50], eax
mov eax, dword [eax*4 + 0x4f81f0]
test eax, eax
cmovne ecx, eax
push ecx
push 0x4fb860
push esi
call fcn.00437500
mov eax, dword [ebp - 0xdc]
add esp, 0xc
jmp 0x440def
mov eax, str.abort_due_to_ROLLBACK
push eax
push 0x4fb860
push esi
call fcn.00437500
mov eax, dword [ebp - 0xdc]
add esp, 0xc
mov dword [esi + 0x50], eax
cmp eax, 0xc0a
je 0x444e55
movzx eax, al
cmp eax, 0xe
je 0x444e3b
cmp eax, 0xa
jne 0x444e55
mov eax, dword [ebx]
mov ecx, dword [eax + 0x44]
test ecx, ecx
je 0x444e50
push 0
push 0
push eax
call ecx
add esp, 0xc
jmp 0x444e52
xor eax, eax
mov dword [ebx + 0x3c], eax
mov ecx, dword [ebp - 0xd0]
mov eax, 0x66666667
sub ecx, dword [ebp - 0x110]
push dword [esi + 0x2c]
imul ecx
push dword [esi + 0xb0]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push str.statement_aborts_at__d:___s___s
push dword [ebp - 0xdc]
call fcn.0041a6e0
add esp, 0x14
mov ecx, esi
call fcn.0043a2a0
cmp dword [ebp - 0xdc], 0xc0a
jne 0x444ecb
cmp byte [ebx + 0x45], 0
jne 0x444ecb
cmp byte [ebx + 0x46], 0
jne 0x444ecb
cmp dword [ebx + 0xa4], 0
mov byte [ebx + 0x45], 1
jle 0x444ec5
mov dword [ebx + 0xf8], 1
inc dword [ebx + 0x100]
mov cl, byte [ebp - 0x125]
mov eax, 1
mov dword [ebp - 0xdc], eax
test cl, cl
je 0x444f1a
mov eax, dword [ebx + 0x10]
movzx esi, cl
dec esi
mov ecx, esi
add ecx, ecx
push dword [eax + ecx*8 + 0xc]
call fcn.0045c2e0
add esp, 4
cmp esi, 1
je 0x444f0a
mov eax, dword [ebx + 0x10]
push dword [eax + 0x1c]
call fcn.0045c2e0
add esp, 4
mov eax, dword [ebp - 0xdc]
mov esi, dword [ebp - 0xd4]
jmp 0x444f1a
mov esi, edi
mov ecx, dword [ebp - 0x138]
mov dword [ebx + 0x20], ecx
mov ecx, dword [ebp - 0x13c]
mov dword [ebx + 0x24], ecx
mov ecx, dword [ebp - 0xd8]
add dword [esi + 0x84], ecx
cmp dword [esi + 0x6c], 0
je 0x444f4b
mov ecx, esi
call fcn.00438ab0
mov eax, dword [ebp - 0xdc]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00499a52
mov esp, ebp
pop ebp
ret