Function at 0x470e50
Capabilities:
Parse credit card information
Reference sql statements

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38c
mov eax, dword [0x629688]
xor eax, ebp
mov dword [ebp - 4], eax
mov edx, ecx
push ebx
mov ecx, dword [edx]
push esi
mov eax, dword [ecx + 0x10]
mov esi, dword [edx + 4]
mov eax, dword [eax + 0xc]
push edi
mov al, byte [eax + 0x4d]
mov byte [ebp - 0x110], al
mov eax, dword [edx + 8]
mov dword [ebp - 0xec], eax
mov eax, dword [ecx + 0x20]
mov dword [ebp - 0x134], eax
mov eax, dword [ecx + 0x24]
mov dword [ebp - 0xdc], ecx
xor edi, edi
mov ecx, edx
mov dword [ebp - 0xe4], edx
mov dword [ebp - 0xf0], 0
mov dword [ebp - 0xe0], esi
mov dword [ebp - 0xd8], 0
mov byte [ebp - 0x121], 0
mov dword [ebp - 0x180], 0
mov dword [ebp - 0x13c], 0
mov dword [ebp - 0x158], 0
mov dword [ebp - 0xe8], edi
mov dword [ebp - 0x14c], edi
mov dword [ebp - 0x138], eax
call fcn.0046b040
mov ecx, dword [ebp - 0xe4]
cmp dword [ecx + 0x50], 7
je 0x476860
mov dword [ecx + 0x50], edi
mov dword [ecx + 0x88], edi
mov dword [ecx + 0x8c], edi
mov dword [ecx + 0x14], edi
mov ecx, dword [ebp - 0xdc]
mov dword [ecx + 0x1bc], edi
cmp dword [ecx + 0xe8], edi
jne 0x47681b
cmp dword [ecx + 0x11c], edi
je 0x470f5c
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 0x7c]
test eax, eax
jne 0x470f4e
mov edx, dword [ecx + 0x124]
jmp 0x470f56
xor edx, edx
div dword [ecx + 0x124]
mov dword [ebp - 0x158], edx
mov eax, dword [ebp - 0xe4]
mov ebx, dword [eax + 0x4c]
mov dword [ebp - 0xf0], ebx
jmp 0x470f70
cmp byte [ecx + 0x40], 0
jne 0x476866
inc dword [ebp - 0x13c]
lea ebx, [ebx + ebx*4]
mov dword [ebp - 0xf4], ebx
test byte [esi + ebx*4 + 2], 2
je 0x470fc7
mov eax, dword [esi + ebx*4 + 8]
mov edx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov eax, 0x2460
mov dword [ebp - 0xe8], edi
test word [edi + 0x1c], ax
je 0x470fbe
mov ecx, edi
call fcn.00469450
mov ecx, dword [ebp - 0xdc]
mov eax, 4
mov word [edi + 0x1c], ax
mov dl, byte [esi + ebx*4]
movzx eax, dl
dec eax
cmp eax, 0x9a
ja case.default.0x470fd9
jmp dword [eax*4 + 0x476894]
mov edx, dword [esi + ebx*4 + 8]
dec edx
mov dword [ebp - 0xf0], edx
jmp 0x47498e
mov ecx, dword [esi + ebx*4 + 4]
mov eax, dword [ebp - 0xec]
mov esi, dword [ebp - 0xec]
lea ecx, [ecx + ecx*4]
mov edx, 4
mov word [eax + ecx*8 + 0x1c], dx
mov eax, dword [ebp - 0xf0]
cdq
mov dword [esi + ecx*8 + 0x10], eax
mov eax, esi
mov esi, dword [ebp - 0xe0]
mov dword [eax + ecx*8 + 0x14], edx
mov ecx, dword [esi + ebx*4 + 8]
dec ecx
mov dword [ebp - 0xf0], ecx
mov ecx, dword [ebp - 0xdc]
jmp case.default.0x470fd9
mov eax, dword [esi + ebx*4 + 4]
mov ebx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
mov edx, dword [ebx + eax*8 + 0x10]
mov dword [ebp - 0xf0], edx
mov edx, 0x80
mov word [ebx + eax*8 + 0x1c], dx
jmp case.default.0x470fd9
mov eax, dword [esi + ebx*4 + 4]
mov edx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov eax, dword [esi + ebx*4 + 0xc]
dec eax
cdq
mov dword [edi + 0x10], eax
mov eax, 4
mov dword [edi + 0x14], edx
mov word [edi + 0x1c], ax
mov eax, dword [esi + ebx*4 + 8]
mov dword [ebp - 0xe8], edi
test eax, eax
je case.default.0x470fd9
lea ebx, [eax - 1]
mov dword [ebp - 0xf0], ebx
jmp case.default.0x470fd9
mov eax, dword [esi + ebx*4 + 4]
mov edx, dword [ebp - 0xec]
lea ecx, [eax + eax*4]
mov eax, dword [edx + ecx*8 + 0x10]
lea eax, [eax + eax*4]
mov ebx, dword [esi + eax*4 + 8]
mov eax, 0x80
dec ebx
mov word [edx + ecx*8 + 0x1c], ax
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xf0], ebx
jmp case.default.0x470fd9
mov eax, dword [esi + ebx*4 + 4]
mov ebx, dword [ebp - 0xec]
lea esi, [eax + eax*4]
mov eax, 4
mov ecx, dword [ebx + esi*8 + 0x10]
mov word [ebx + esi*8 + 0x1c], ax
mov eax, dword [ebp - 0xf0]
cdq
mov dword [ebx + esi*8 + 0x10], eax
mov dword [ebx + esi*8 + 0x14], edx
mov dword [ebp - 0xf0], ecx
mov ecx, dword [ebp - 0xdc]
jmp 0x4763a2
mov eax, dword [esi + ebx*4 + 0xc]
mov edx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x1c], 1
je case.default.0x470fd9
cmp dword [esi + ebx*4 + 4], 0
mov edx, dword [ebp - 0xe4]
jne 0x4763c7
mov ecx, dword [edx + 0xb0]
test ecx, ecx
je 0x4763c7
mov eax, dword [ecx + 4]
mov esi, dword [ebp - 0xdc]
dec dword [edx + 0xb8]
mov dword [edx + 0xb0], eax
mov eax, dword [edx + 0x5c]
add dword [esi + 0x54], eax
mov dword [esi + 0x50], eax
call fcn.0046b9d0
mov ecx, dword [ebp - 0xe0]
mov dword [ebp - 0xf0], eax
cmp dword [ecx + ebx*4 + 8], 4
mov eax, dword [esi + 0x20]
mov dword [ebp - 0x134], eax
mov eax, dword [esi + 0x24]
mov dword [ebp - 0x138], eax
jne 0x4711b0
mov ecx, dword [ebp - 0xf0]
mov eax, dword [ebp - 0xe4]
lea ecx, [ecx + ecx*4]
mov eax, dword [eax + 4]
mov ecx, dword [eax + ecx*4 + 8]
dec ecx
mov dword [ebp - 0xf0], ecx
mov ecx, dword [ebp - 0xe4]
mov esi, dword [ecx + 4]
mov eax, dword [ecx + 8]
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xe0], esi
mov dword [ebp - 0xec], eax
jmp case.default.0x470fd9
mov eax, dword [esi + ebx*4 + 4]
cdq
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], edx
jmp case.default.0x470fd9
mov ecx, dword [esi + ebx*4 + 0x10]
mov eax, dword [ecx]
mov dword [edi + 0x10], eax
mov eax, dword [ecx + 4]
mov ecx, dword [ebp - 0xdc]
mov dword [edi + 0x14], eax
jmp case.default.0x470fd9
mov eax, 8
mov word [edi + 0x1c], ax
mov eax, dword [esi + ebx*4 + 0x10]
movsd xmm0, qword [eax]
movsd qword [edi + 8], xmm0
jmp case.default.0x470fd9
mov ecx, dword [esi + ebx*4 + 0x10]
mov byte [esi + ebx*4], 0x1b
call fcn.0044f900
cmp byte [ebp - 0x110], 1
mov dword [esi + ebx*4 + 4], eax
je 0x47129e
push 0
push 1
mov edx, ecx
push 0xffffffffffffffff
mov ecx, edi
call fcn.00469c10
add esp, 0xc
mov dword [ebp - 0xd8], eax
cmp eax, 0x12
je 0x4767dd
movzx edx, byte [ebp - 0x110]
mov ecx, edi
call fcn.00469090
test eax, eax
jne 0x476860
mov dword [edi + 0x24], eax
mov eax, 0x800
or word [edi + 0x1c], ax
cmp byte [esi + ebx*4 + 1], 0xff
jne 0x47128b
mov edx, dword [esi + ebx*4 + 0x10]
mov ecx, dword [ebp - 0xdc]
call fcn.0044d450
mov byte [esi + ebx*4 + 1], 0xff
mov eax, dword [edi + 4]
mov dword [esi + ebx*4 + 0x10], eax
mov eax, dword [edi + 0x18]
mov dword [esi + ebx*4 + 4], eax
mov ecx, dword [ebp - 0xdc]
mov eax, dword [esi + ebx*4 + 4]
cmp eax, dword [ecx + 0x58]
jg 0x4767e3
mov eax, 0xa02
mov word [edi + 0x1c], ax
mov eax, dword [esi + ebx*4 + 0x10]
mov dword [edi + 4], eax
mov eax, dword [esi + ebx*4 + 4]
mov dword [edi + 0x18], eax
mov al, byte [ebp - 0x110]
mov byte [edi + 0x1e], al
jmp case.default.0x470fd9
mov edx, dword [ebp - 0xe0]
mov esi, dword [esi + ebx*4 + 0xc]
sub esi, dword [edx + ebx*4 + 8]
cmp dword [edx + ebx*4 + 4], 0
mov ebx, dword [ebp - 0xe8]
mov eax, 1
mov edx, 0x101
cmovne eax, edx
movzx edi, ax
mov word [ebx + 0x1c], di
test esi, esi
jle 0x47639c
mov eax, 0x2460
add ebx, 0x28
test word [ebx + 0x1c], ax
je 0x471325
mov ecx, ebx
call fcn.00469450
mov eax, 0x2460
dec esi
mov word [ebx + 0x1c], di
test esi, esi
jg 0x471310
mov dword [ebp - 0xe8], ebx
mov ecx, dword [ebp - 0xdc]
jmp 0x47639c
mov eax, dword [esi + ebx*4 + 4]
mov edx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov edx, 0xff7f
mov ax, word [edi + 0x1c]
and ax, dx
or ax, 1
mov dword [ebp - 0xe8], edi
mov word [edi + 0x1c], ax
jmp case.default.0x470fd9
mov edx, dword [esi + ebx*4 + 0x10]
push 0
push 0
push dword [esi + ebx*4 + 4]
mov ecx, edi
call fcn.00469c10
mov al, byte [ebp - 0x110]
mov ecx, dword [ebp - 0xdc]
add esp, 0xc
mov byte [edi + 0x1e], al
jmp case.default.0x470fd9
mov eax, dword [esi + ebx*4 + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 0x3c]
lea esi, [eax + ecx*8]
lea ecx, [esi - 0x28]
call fcn.00469a00
test eax, eax
jne 0x4767dd
push 0x800
lea edx, [esi - 0x28]
mov ecx, edi
call fcn.00469a30
mov ecx, dword [ebp - 0xdc]
add esp, 4
jmp 0x4763a2
mov eax, dword [esi + ebx*4 + 4]
mov edx, dword [ebp - 0xec]
mov ecx, dword [ebp - 0xe0]
mov edi, dword [esi + ebx*4 + 0xc]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [ecx + ebx*4 + 8]
mov ecx, 0x80
lea eax, [eax + eax*4]
lea ebx, [edx + eax*8]
mov eax, 0x2460
test word [ebx + 0x1c], ax
je 0x471418
mov ecx, ebx
call fcn.00469450
mov ecx, 0x80
movq xmm0, qword [esi]
mov eax, dword [ebx + 0x24]
movq qword [ebx], xmm0
movq xmm0, qword [esi + 8]
movq qword [ebx + 8], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [ebx + 0x10], xmm0
movq xmm0, qword [esi + 0x18]
movq qword [ebx + 0x18], xmm0
movq xmm0, qword [esi + 0x20]
movq qword [ebx + 0x20], xmm0
mov word [esi + 0x1c], cx
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], eax
add esi, 0x28
add ebx, 0x28
dec edi
jne 0x471401
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xe8], ebx
jmp 0x47639c
mov eax, dword [esi + ebx*4 + 4]
mov edx, dword [ebp - 0xec]
mov edi, dword [esi + ebx*4 + 0xc]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [ecx + ebx*4 + 8]
lea eax, [eax + eax*4]
lea ebx, [edx + eax*8]
push 0x1000
mov edx, esi
mov ecx, ebx
mov dword [ebp - 0xe8], ebx
call fcn.00469a30
mov eax, 0x1000
add esp, 4
test word [ebx + 0x1c], ax
je 0x4714c8
mov ecx, ebx
call fcn.004691e0
test eax, eax
jne 0x476860
mov eax, edi
dec edi
test eax, eax
je 0x471334
add ebx, 0x28
add esi, 0x28
jmp 0x471497
mov eax, dword [esi + ebx*4 + 8]
mov ecx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
push 0x1000
lea edi, [ecx + eax*8]
mov eax, dword [esi + ebx*4 + 4]
mov dword [ebp - 0xe8], edi
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov ecx, edi
call fcn.00469a30
mov ecx, dword [ebp - 0xdc]
add esp, 4
jmp case.default.0x470fd9
mov eax, dword [ecx + 0x11c]
test eax, eax
je 0x471540
mov edx, dword [ebp - 0x13c]
cmp edx, dword [ebp - 0x158]
jb 0x471540
push dword [ecx + 0x120]
call eax
add esp, 4
test eax, eax
jne 0x4764b2
mov ecx, dword [ebp - 0xe4]
xor edx, edx
call fcn.0046c710
mov ecx, eax
mov dword [ebp - 0xd8], ecx
test ecx, ecx
jne 0x47102f
mov ecx, dword [ebp - 0xe4]
lea edx, [eax + 1]
call fcn.0046c5e0
mov ecx, eax
mov dword [ebp - 0xd8], ecx
test ecx, ecx
je 0x4764c2
mov ecx, dword [ebp - 0xdc]
jmp case.default.0x470fd9
mov eax, dword [esi + ebx*4 + 4]
mov edx, dword [ebp - 0xec]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [ebp - 0x104], eax
mov eax, dword [esi + ebx*4 + 8]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [ecx + ebx*4 + 0xc]
mov ebx, dword [ebp - 0x104]
lea eax, [eax + eax*4]
movzx ecx, word [ebx + 0x1c]
lea edi, [edx + eax*8]
mov al, byte [esi + 0x1c]
or al, cl
mov dword [ebp - 0xe8], edi
test al, 1
je 0x4715e1
mov ecx, edi
call fcn.004698d0
mov ecx, dword [ebp - 0xdc]
jmp 0x4763a2
test ecx, 0x4000
je 0x4715f8
mov ecx, ebx
call fcn.00469240
test eax, eax
jne 0x476860
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x471612
mov ecx, esi
call fcn.00469240
test eax, eax
jne 0x476860
test byte [ebx + 0x1c], 0x12
jne 0x47162e
movzx edx, byte [ebp - 0x110]
mov ecx, ebx
call fcn.004692f0
test eax, eax
jne 0x476860
test byte [esi + 0x1c], 0x12
jne 0x47164a
movzx edx, byte [ebp - 0x110]
mov ecx, esi
call fcn.004692f0
test eax, eax
jne 0x476860
mov eax, dword [esi + 0x18]
add eax, dword [ebx + 0x18]
cdq
mov edi, eax
mov eax, dword [ebp - 0xdc]
mov ecx, edx
mov eax, dword [eax + 0x58]
cdq
cmp ecx, edx
jg 0x4767dd
jl 0x471671
cmp edi, eax
ja 0x4767dd
mov ecx, dword [ebp - 0xe8]
xor eax, eax
cmp ecx, esi
sete al
lea edx, [edi + 2]
push eax
call fcn.004690b0
add esp, 4
test eax, eax
jne 0x476860
mov ecx, dword [ebp - 0xe8]
mov edx, 0xbe02
mov ax, word [ecx + 0x1c]
and ax, dx
or ax, 2
mov word [ecx + 0x1c], ax
cmp ecx, esi
je 0x4716c1
push dword [esi + 0x18]
push dword [esi + 4]
push dword [ecx + 4]
call fcn.00587170
add esp, 0xc
push dword [ebx + 0x18]
mov eax, dword [esi + 0x18]
push dword [ebx + 4]
mov ebx, dword [ebp - 0xe8]
add eax, dword [ebx + 4]
push eax
call fcn.00587170
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0xdc]
mov byte [edi + eax], 0
mov eax, dword [ebx + 4]
add esp, 0xc
mov byte [eax + edi + 1], 0
mov eax, 0x200
or word [ebx + 0x1c], ax
mov al, byte [ebp - 0x110]
mov dword [ebx + 0x18], edi
mov edi, ebx
mov byte [edi + 0x1e], al
jmp 0x4763a2
mov eax, dword [esi + ebx*4 + 4]
mov edi, dword [ebp - 0xec]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov ecx, eax
mov dword [ebp - 0x10c], eax
call fcn.00470df0
movzx eax, ax
mov dword [ebp - 0xf4], eax
mov eax, dword [esi + ebx*4 + 8]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov ecx, eax
mov dword [ebp - 0x11c], eax
call fcn.00470df0
mov ecx, dword [ebp - 0x10c]
movzx edx, ax
mov eax, dword [esi + ebx*4 + 0xc]
mov esi, dword [ebp - 0x11c]
lea eax, [eax + eax*4]
mov dword [ebp - 0x104], edx
lea eax, [edi + eax*8]
mov dword [ebp - 0xe8], eax
mov al, byte [esi + 0x1c]
or al, byte [ecx + 0x1c]
test al, 1
jne 0x471a0c
mov al, dl
and al, byte [ebp - 0xf4]
test al, 4
je 0x4718ee
mov eax, ecx
mov byte [ebp - 0xf9], 1
mov ecx, dword [eax + 0x10]
mov edx, dword [eax + 0x14]
mov eax, esi
mov esi, dword [eax + 0x10]
mov edi, dword [eax + 0x14]
mov eax, dword [ebp - 0xe0]
mov dword [ebp - 0x148], esi
movzx eax, byte [eax + ebx*4]
add eax, 0xffffffa7
mov dword [ebp - 0x144], edi
cmp eax, 3
ja case.default.0x4717c6
jmp dword [eax*4 + 0x476b00]
push edx
push ecx
lea ecx, [ebp - 0x148]
call fcn.004509e0
add esp, 8
test eax, eax
je 0x4718b7
mov esi, dword [ebp - 0x11c]
mov ecx, dword [ebp - 0x10c]
call fcn.00469610
mov ecx, esi
movsd qword [ebp - 0x190], xmm0
call fcn.00469610
mov esi, dword [ebp - 0xe0]
movapd xmm1, xmm0
movzx eax, byte [esi + ebx*4]
add eax, 0xffffffa7
movsd qword [ebp - 0x210], xmm1
cmp eax, 3
ja case.default.0x471827
jmp dword [eax*4 + 0x476b10]
push edx
push ecx
lea ecx, [ebp - 0x148]
call fcn.00450a80
add esp, 8
test eax, eax
jne 0x4717e5
jmp 0x4718b7
push edx
push ecx
lea ecx, [ebp - 0x148]
call fcn.00450ad0
add esp, 8
test eax, eax
jne 0x4717e5
jmp 0x4718b7
mov eax, ecx
or eax, edx
je 0x471a0c
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
jne 0x47187d
test esi, esi
jne 0x47187d
cmp edi, 0x80000000
je 0x4717e5
push edx
push ecx
push edi
push esi
call fcn.0058edd0
jmp 0x4718ab
mov eax, ecx
or eax, edx
je 0x471a0c
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
jne 0x4718a2
mov ecx, 1
xor edx, edx
push edx
push ecx
push edi
push esi
call fcn.00599ba0
mov dword [ebp - 0x144], edx
mov dword [ebp - 0x148], eax
mov edi, dword [ebp - 0xe8]
mov eax, dword [ebp - 0x148]
mov dword [edi + 0x10], eax
mov eax, dword [ebp - 0x144]
mov dword [edi + 0x14], eax
mov ax, word [edi + 0x1c]
mov ecx, 0xbe04
and ax, cx
mov ecx, dword [ebp - 0xdc]
or ax, 4
mov word [edi + 0x1c], ax
jmp 0x4763a2
mov byte [ebp - 0xf9], 0
jmp 0x4717f1
addsd xmm1, qword [ebp - 0x190]
jmp 0x4719af
subsd xmm1, qword [ebp - 0x190]
jmp 0x4719af
mulsd xmm1, qword [ebp - 0x190]
jmp 0x4719af
movsd xmm0, qword [ebp - 0x190]
xorps xmm2, xmm2
ucomisd xmm0, xmm2
lahf
test ah, 0x44
jnp 0x471a0c
divsd xmm1, xmm0
jmp 0x4719af
fld qword [ebp - 0x190]
call fcn.005acaf6
fld qword [ebp - 0x210]
mov esi, eax
mov edi, edx
call fcn.005acaf6
mov ecx, esi
or ecx, edi
mov dword [ebp - 0x148], eax
mov dword [ebp - 0x144], edx
je 0x471a0c
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x471980
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push eax
call fcn.00599ba0
mov esi, dword [ebp - 0xe0]
mov dword [ebp - 0x248], eax
mov dword [ebp - 0x244], edx
fild qword [ebp - 0x248]
fstp qword [ebp - 0x210]
movsd xmm1, qword [ebp - 0x210]
movapd xmm0, xmm1
call fcn.0044f8c0
test eax, eax
jne 0x471a0c
mov ebx, dword [ebp - 0xe8]
mov ecx, 0xbe08
mov ax, word [ebx + 0x1c]
and ax, cx
or ax, 8
mov word [ebx + 0x1c], ax
mov eax, dword [ebp - 0x104]
or al, byte [ebp - 0xf4]
movsd qword [ebx + 8], xmm1
test al, 8
jne 0x4719fb
cmp byte [ebp - 0xf9], 0
jne 0x4719fb
mov ecx, ebx
call fcn.00469680
mov edi, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0xdc]
jmp case.default.0x470fd9
mov edi, dword [ebp - 0xe8]
mov ecx, edi
call fcn.004698d0
mov ecx, dword [ebp - 0xdc]
jmp 0x4763a2
mov eax, dword [esi + ebx*4 + 4]
test eax, eax
je case.default.0x470fd9
mov ecx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
push 0
push 0
lea ecx, [ecx + eax*8]
call fcn.00469920
mov ecx, dword [ebp - 0xdc]
add esp, 8
jmp case.default.0x470fd9
mov eax, dword [ebp - 0xe4]
mov edi, dword [ebp - 0xec]
mov edx, dword [eax + 0xc]
mov eax, dword [esi + ebx*4 + 0xc]
movzx ecx, byte [esi + ebx*4 + 3]
lea eax, [eax + eax*4]
mov dword [ebp - 0x104], ecx
lea eax, [edi + eax*8]
mov dword [ebp - 0xe8], eax
mov eax, dword [esi + ebx*4 + 8]
mov dword [ebp - 0xf4], edx
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
xor edi, edi
test ecx, ecx
jle 0x471ad1
mov eax, 0x1000
jmp 0x471aa0
mov dword [edx + edi*4], esi
test word [esi + 0x1c], ax
je 0x471ac9
mov ecx, esi
call fcn.004691e0
test eax, eax
jne 0x476860
mov ecx, dword [ebp - 0x104]
mov edx, dword [ebp - 0xf4]
mov eax, 0x1000
inc edi
add esi, 0x28
cmp edi, ecx
jl 0x471aa0
mov eax, dword [ebp - 0xe0]
mov edi, dword [ebp - 0xe8]
mov eax, dword [eax + ebx*4 + 0x10]
mov dword [ebp - 0x2b8], eax
mov eax, dword [ebp - 0xf0]
mov dword [ebp - 0x27c], eax
mov eax, dword [ebp - 0xe4]
mov dword [ebp - 0x280], eax
movq xmm0, qword [edi]
movq qword [ebp - 0x2b0], xmm0
movq xmm0, qword [edi + 8]
movq qword [ebp - 0x2a8], xmm0
movq xmm0, qword [edi + 0x10]
movq qword [ebp - 0x2a0], xmm0
movq xmm0, qword [edi + 0x18]
movq qword [ebp - 0x298], xmm0
movq xmm0, qword [edi + 0x20]
movq qword [ebp - 0x290], xmm0
mov dword [edi + 0x20], 0
mov dword [edi + 0x24], 0
mov eax, 1
mov word [edi + 0x1c], ax
mov eax, dword [ebp - 0x294]
mov esi, dword [ebp - 0x2b8]
and eax, 0xbe01
or eax, 1
mov word [ebp - 0x294], ax
mov byte [ebp - 0x273], 0
test byte [esi + 2], 0x20
je 0x471b8e
mov eax, dword [ebp - 0xe0]
mov eax, dword [eax + ebx*4 - 4]
mov dword [ebp - 0x284], eax
mov eax, dword [ebp - 0xdc]
mov edi, dword [ebp - 0x134]
mov dword [eax + 0x20], edi
mov edi, dword [ebp - 0x138]
push edx
mov dword [eax + 0x24], edi
push ecx
lea eax, [ebp - 0x2b8]
push eax
mov eax, dword [esi + 0xc]
call eax
mov esi, dword [ebp - 0xdc]
mov edi, dword [ebp - 0xe8]
mov eax, dword [esi + 0x20]
mov dword [ebp - 0x134], eax
mov eax, dword [esi + 0x24]
add esp, 0xc
cmp byte [esi + 0x40], 0
mov dword [ebp - 0x138], eax
jne 0x476550
cmp byte [ebp - 0x273], 0
je 0x471c43
cmp dword [ebp - 0x278], 0
je 0x471c23
mov dl, 1
lea ecx, [ebp - 0x2b0]
call fcn.00469e90
push eax
mov eax, dword [ebp - 0xe4]
push 0x5e08f0
add eax, 0x2c
push esi
push eax
call fcn.0044d820
mov eax, dword [ebp - 0x278]
add esp, 0x10
mov dword [ebp - 0xd8], eax
mov esi, dword [ebp - 0xe0]
mov edx, dword [ebp - 0xf0]
push dword [esi + ebx*4 + 4]
mov ecx, dword [ebp - 0xe4]
call fcn.0046cc30
add esp, 4
jmp 0x471c49
mov esi, dword [ebp - 0xe0]
movzx edx, byte [ebp - 0x110]
lea ecx, [ebp - 0x2b0]
call fcn.00469090
movq xmm0, qword [ebp - 0x2b0]
movq qword [edi], xmm0
movq xmm0, qword [ebp - 0x2a8]
movq qword [edi + 8], xmm0
movq xmm0, qword [ebp - 0x2a0]
movq qword [edi + 0x10], xmm0
movq xmm0, qword [ebp - 0x298]
movq qword [edi + 0x18], xmm0
movq xmm0, qword [ebp - 0x290]
mov ecx, edi
movq qword [edi + 0x20], xmm0
call fcn.00469a00
mov ecx, dword [ebp - 0xdc]
test eax, eax
jne 0x4767e3
jmp case.default.0x470fd9
mov eax, dword [esi + ebx*4 + 4]
mov edi, dword [ebp - 0xec]
mov edx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
mov eax, dword [edx + ebx*4 + 8]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
mov eax, dword [edx + ebx*4 + 0xc]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
mov al, byte [ecx + 0x1c]
or al, byte [esi + 0x1c]
mov dword [ebp - 0xe8], edi
test al, 1
je 0x471d01
mov ecx, edi
call fcn.004698d0
mov ecx, dword [ebp - 0xdc]
jmp 0x4763a2
call fcn.004695a0
mov edi, edx
mov ecx, esi
mov dword [ebp - 0xf8], eax
mov dword [ebp - 0x200], eax
mov dword [ebp - 0x1fc], edi
call fcn.004695a0
mov esi, eax
mov eax, dword [ebp - 0xe0]
mov cl, byte [eax + ebx*4]
cmp cl, 0x55
jne 0x471d40
mov ecx, dword [ebp - 0xf8]
and ecx, esi
and edi, edx
jmp 0x471e23
cmp cl, 0x56
jne 0x471d54
mov ecx, dword [ebp - 0xf8]
or ecx, esi
or edi, edx
jmp 0x471e23
mov eax, esi
or eax, edx
je 0x471e1d
test edx, edx
jg 0x471d8c
jl 0x471d68
test esi, esi
jae 0x471d81
mov al, 0xaf
sub al, cl
mov cl, al
cmp edx, 0xffffffff
jl 0x471d8c
jg 0x471d7a
cmp esi, 0xffffffc0
jbe 0x471d8c
neg esi
adc edx, 0
neg edx
test edx, edx
jl 0x471db3
jg 0x471d8c
cmp esi, 0x40
jb 0x471db3
test edi, edi
jg 0x471daa
jl 0x471d9b
cmp dword [ebp - 0xf8], 0
jae 0x471daa
cmp cl, 0x57
je 0x471daa
or eax, 0xffffffff
cdq
mov ecx, eax
mov edi, edx
jmp 0x471e23
xor eax, eax
cdq
mov ecx, eax
mov edi, edx
jmp 0x471e23
movq xmm1, qword [ebp - 0x200]
movd xmm0, esi
cmp cl, 0x57
jne 0x471dde
psllq xmm1, xmm0
movq qword [ebp - 0x170], xmm1
mov edi, dword [ebp - 0x16c]
mov ecx, dword [ebp - 0x170]
jmp 0x471e23
psrlq xmm1, xmm0
movq qword [ebp - 0x170], xmm1
test edi, edi
jg 0x471dd0
jl 0x471df9
cmp dword [ebp - 0xf8], 0
jae 0x471dd0
mov ecx, 0x40
sub ecx, esi
or eax, 0xffffffff
or edx, 0xffffffff
call fcn.0058ef30
mov ecx, dword [ebp - 0x170]
mov edi, dword [ebp - 0x16c]
or ecx, eax
or edi, edx
jmp 0x471e23
mov ecx, dword [ebp - 0xf8]
mov eax, dword [ebp - 0xe8]
mov dword [eax + 0x14], edi
mov edi, eax
mov dword [eax + 0x10], ecx
mov ax, word [edi + 0x1c]
mov ecx, 0xbe04
and ax, cx
mov ecx, dword [ebp - 0xdc]
or ax, 4
mov word [edi + 0x1c], ax
jmp 0x4763a2
mov eax, dword [esi + ebx*4 + 4]
mov ecx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.00469750
mov eax, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0xdc]
mov eax, dword [eax + ebx*4 + 8]
cdq
add dword [esi + 0x10], eax
adc dword [esi + 0x14], edx
jmp 0x4763a2
mov eax, dword [esi + ebx*4 + 4]
mov ecx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx eax, word [esi + 0x1c]
test al, 4
jne 0x471edd
mov ecx, esi
call fcn.00470cd0
test byte [esi + 0x1c], 8
je 0x471eaf
mov ecx, esi
call fcn.00469680
movzx eax, word [esi + 0x1c]
test al, 4
jne 0x471edd
mov esi, dword [ebp - 0xe0]
mov eax, dword [esi + ebx*4 + 8]
test eax, eax
je 0x476562
lea ecx, [eax - 1]
mov dword [ebp - 0xf0], ecx
mov ecx, dword [ebp - 0xdc]
jmp case.default.0x470fd9
mov ecx, dword [ebp - 0xdc]
and eax, 0xbe04
or eax, 4
mov word [esi + 0x1c], ax
jmp 0x4763a2
mov eax, dword [esi + ebx*4 + 4]
mov ecx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x1c], 4
lea ecx, [ecx + eax*8]
je 0x47102f
call fcn.004697d0
mov ecx, dword [ebp - 0xdc]
jmp case.default.0x470fd9
mov eax, dword [esi + ebx*4 + 4]
mov ecx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx ecx, word [esi + 0x1c]
test cl, 1
jne 0x471109
mov eax, ecx
shr eax, 3
and eax, 2
or eax, ecx
mov word [esi + 0x1c], ax
test al, 2
jne 0x471f60
test al, 0xc
je 0x471f60
movzx edx, byte [ebp - 0x110]
mov ecx, esi
call fcn.004692f0
mov eax, 0xfff3
and word [esi + 0x1c], ax
movzx eax, word [esi + 0x1c]
test eax, 0x4000
je 0x471f95
mov ecx, esi
call fcn.00469240
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xd8], eax
mov eax, 0xbfe3
and word [esi + 0x1c], ax
jmp 0x4763a2
mov ecx, dword [ebp - 0xdc]
mov eax, 0xbfe3
and word [esi + 0x1c], ax
mov dword [ebp - 0xd8], 0
jmp 0x4763a2
mov eax, dword [esi + ebx*4 + 4]
mov edx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
movzx eax, word [esi + 0x1c]
test al, 1
jne 0x4763a2
test al, 0x10
jne 0x472008
test al, 2
jne 0x471fe9
test al, 0xc
je 0x471fe9
movzx edx, byte [ebp - 0x110]
mov ecx, esi
call fcn.004692f0
mov ax, word [esi + 0x1c]
mov ecx, 0xbe10
and ax, cx
mov ecx, dword [ebp - 0xdc]
or ax, 0x10
mov word [esi + 0x1c], ax
jmp 0x4763a2
and eax, 0xfe10
mov word [esi + 0x1c], ax
jmp 0x4763a2
mov eax, dword [esi + ebx*4 + 4]
mov ecx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.00469850
mov ecx, dword [ebp - 0xdc]
jmp case.default.0x470fd9
mov eax, dword [esi + ebx*4 + 4]
mov ecx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x1c], 1
lea ecx, [ecx + eax*8]
jne 0x47102f
call fcn.00469750
mov ecx, dword [ebp - 0xdc]
jmp case.default.0x470fd9
mov eax, dword [esi + ebx*4 + 4]
mov ecx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x1c], 1
lea ecx, [ecx + eax*8]
jne 0x47102f
call fcn.004697d0
mov ecx, dword [ebp - 0xdc]
jmp case.default.0x470fd9
mov eax, dword [esi + ebx*4 + 4]
mov ecx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
movzx edx, word [ecx + eax*8 + 0x1c]
lea esi, [ecx + eax*8]
mov eax, dword [ebp - 0xe0]
mov dword [ebp - 0x104], edx
mov eax, dword [eax + ebx*4 + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
movzx ecx, word [edi + 0x1c]
mov al, cl
or al, dl
test al, 1
mov eax, dword [ebp - 0xe0]
mov dword [ebp - 0xf4], ecx
mov al, byte [eax + ebx*4 + 3]
je 0x472161
test al, al
jns 0x4720fe
test dl, 1
je 0x4720f4
test cl, 1
je 0x4720f4
test ecx, 0x100
jne 0x4720f4
xor edx, edx
jmp 0x4721df
mov edx, 1
jmp 0x4721df
mov esi, dword [ebp - 0xe0]
test al, 0x10
je 0x47213d
mov eax, dword [esi + ebx*4 + 8]
mov ecx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov ecx, 0xbe01
mov ax, word [edi + 0x1c]
and ax, cx
mov ecx, dword [ebp - 0xdc]
or ax, 1
mov dword [ebp - 0xe8], edi
mov word [edi + 0x1c], ax
jmp case.default.0x470fd9
test al, 8
mov edi, dword [ebp - 0xe8]
je 0x47102f
mov ecx, dword [esi + ebx*4 + 8]
dec ecx
mov dword [ebp - 0xf0], ecx
mov ecx, dword [ebp - 0xdc]
jmp case.default.0x470fd9
and al, 0x67
mov byte [ebp - 0xf9], al
je 0x4721a3
push dword [ebp - 0x110]
mov dl, al
mov ecx, esi
call fcn.00470d60
mov dl, byte [ebp - 0xf9]
add esp, 4
mov ecx, edi
push dword [ebp - 0x110]
call fcn.00470d60
mov ecx, dword [ebp - 0xdc]
add esp, 4
cmp byte [ecx + 0x40], 0
jne 0x476866
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x4721ba
mov ecx, esi
call fcn.00469240
mov eax, 0x4000
test word [edi + 0x1c], ax
je 0x4721c7
mov ecx, edi
call fcn.00469240
mov eax, dword [ebp - 0xe0]
mov edx, esi
push dword [eax + ebx*4 + 0x10]
mov ecx, edi
call fcn.0046d8a0
add esp, 4
mov edx, eax
mov eax, dword [ebp - 0xe0]
movzx ecx, byte [eax + ebx*4]
add ecx, 0xffffffb2
cmp ecx, 4
ja case.default.0x4721f1
jmp dword [ecx*4 + 0x476b20]
xor eax, eax
test edx, edx
sete al
jmp 0x47222c
xor eax, eax
test edx, edx
setne al
jmp 0x47222c
xor eax, eax
test edx, edx
sets al
jmp 0x47222c
xor eax, eax
test edx, edx
setle al
jmp 0x47222c
xor eax, eax
test edx, edx
setg al
jmp 0x47222c
xor eax, eax
test edx, edx
setns al
mov ecx, dword [ebp - 0xe0]
test byte [ecx + ebx*4 + 3], 0x10
je 0x47226c
mov ecx, dword [ecx + ebx*4 + 8]
mov edx, dword [ebp - 0xec]
lea ecx, [ecx + ecx*4]
lea ebx, [edx + ecx*8]
mov edx, 0xbe04
mov cx, word [ebx + 0x1c]
and cx, dx
cdq
or cx, 4
mov dword [ebp - 0xe8], ebx
mov word [ebx + 0x1c], cx
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x14], edx
jmp 0x47227b
test eax, eax
je 0x47227b
mov eax, dword [ecx + ebx*4 + 8]
dec eax
mov dword [ebp - 0xf0], eax
movzx eax, word [esi + 0x1c]
xor ax, word [ebp - 0x104]
mov ecx, dword [ebp - 0xdc]
mov edx, 0x1ff
and ax, dx
xor word [esi + 0x1c], ax
movzx eax, word [edi + 0x1c]
xor ax, word [ebp - 0xf4]
and ax, dx
xor word [edi + 0x1c], ax
jmp 0x47639c
mov eax, dword [esi + ebx*4 + 0x10]
mov dword [ebp - 0x14c], eax
jmp case.default.0x470fd9
test byte [esi + ebx*4 + 3], 1
mov eax, dword [ebp - 0x14c]
mov edx, dword [esi + ebx*4 + 0x10]
mov ecx, 0
cmove eax, ecx
mov ecx, dword [esi + ebx*4 + 4]
mov dword [ebp - 0x14c], eax
mov eax, dword [esi + ebx*4 + 0xc]
mov dword [ebp - 0xf4], ecx
mov ecx, dword [esi + ebx*4 + 8]
xor esi, esi
mov dword [ebp - 0x114], eax
mov dword [ebp - 0x118], edx
mov dword [ebp - 0x104], ecx
test eax, eax
jle 0x472393
lea edi, [edx + 0x14]
lea esp, [esp]
mov eax, dword [ebp - 0x14c]
test eax, eax
je 0x47231f
mov ecx, dword [eax + esi*4]
jmp 0x472321
mov ecx, esi
mov eax, dword [edx + 0x10]
mov edx, dword [ebp - 0xec]
movzx ebx, byte [eax + esi]
mov eax, dword [ebp - 0x104]
push dword [edi]
add eax, ecx
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov eax, dword [ebp - 0xf4]
add eax, ecx
mov ecx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.0046d8a0
add esp, 4
mov dword [ebp - 0x180], eax
test eax, eax
jne 0x472387
mov edx, dword [ebp - 0x118]
inc esi
add edi, 4
cmp esi, dword [ebp - 0x114]
jl 0x472310
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0x14c], eax
jmp 0x47639c
test ebx, ebx
je 0x472393
neg eax
mov dword [ebp - 0x180], eax
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0x14c], 0
jmp 0x47639c
mov eax, dword [ebp - 0x180]
test eax, eax
jns 0x4723c2
mov ebx, dword [esi + ebx*4 + 4]
dec ebx
mov dword [ebp - 0xf0], ebx
jmp case.default.0x470fd9
jne 0x4723d4
mov ebx, dword [esi + ebx*4 + 8]
dec ebx
mov dword [ebp - 0xf0], ebx
jmp case.default.0x470fd9
mov ebx, dword [esi + ebx*4 + 0xc]
dec ebx
mov dword [ebp - 0xf0], ebx
jmp case.default.0x470fd9
mov eax, dword [esi + ebx*4 + 4]
mov edx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x1c], 1
lea ecx, [edx + eax*8]
je 0x472402
mov esi, 2
jmp 0x47241a
call fcn.004695a0
or eax, edx
mov edx, dword [ebp - 0xec]
je 0x472418
mov esi, 1
jmp 0x47241a
xor esi, esi
mov edi, dword [ebp - 0xe0]
mov eax, dword [edi + ebx*4 + 8]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x1c], 1
lea ecx, [edx + eax*8]
je 0x472438
mov eax, 2
jmp 0x472450
call fcn.004695a0
or eax, edx
mov edx, dword [ebp - 0xec]
je 0x47244e
mov eax, 1
jmp 0x472450
xor eax, eax
cmp byte [edi + ebx*4], 0x48
lea eax, [eax + esi*2]
jne 0x472463
movzx ecx, byte [esi + eax + 0x5dd704]
jmp 0x47246b
movzx ecx, byte [esi + eax + 0x5de6bc]
mov esi, dword [ebp - 0xe0]
mov eax, dword [esi + ebx*4 + 0xc]
lea eax, [eax + eax*4]
lea ebx, [edx + eax*8]
mov dword [ebp - 0xe8], ebx
mov edi, ebx
cmp ecx, 2
jne 0x4724a7
mov ax, word [ebx + 0x1c]
mov ecx, 0xbe01
and ax, cx
mov ecx, dword [ebp - 0xdc]
or ax, 1
mov word [ebx + 0x1c], ax
jmp case.default.0x470fd9
mov eax, ecx
cdq
mov dword [ebx + 0x10], eax
mov ax, word [ebx + 0x1c]
mov ecx, 0xbe04
and ax, cx
mov ecx, dword [ebp - 0xdc]
or ax, 4
mov dword [ebx + 0x14], edx
mov word [ebx + 0x1c], ax
jmp case.default.0x470fd9
mov eax, dword [esi + ebx*4 + 4]
mov edx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x1c], 1
lea ecx, [edx + eax*8]
mov eax, dword [esi + ebx*4 + 8]
lea eax, [eax + eax*4]
lea ebx, [edx + eax*8]
mov dword [ebp - 0xe8], ebx
je 0x47250a
mov ecx, ebx
call fcn.004698d0
mov ecx, dword [ebp - 0xdc]
mov edi, ebx
jmp case.default.0x470fd9
call fcn.004695a0
or eax, edx
jne 0x47251a
mov eax, 1
jmp 0x47251c
xor eax, eax
cdq
push edx
push eax
mov ecx, ebx
call fcn.00469920
mov edi, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0xdc]
add esp, 8
jmp case.default.0x470fd9
mov eax, dword [esi + ebx*4 + 4]
mov edx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x1c], 1
lea ecx, [edx + eax*8]
mov eax, dword [esi + ebx*4 + 8]
lea eax, [eax + eax*4]
lea ebx, [edx + eax*8]
mov dword [ebp - 0xe8], ebx
je 0x472575
mov ecx, ebx
call fcn.004698d0
mov ecx, dword [ebp - 0xdc]
mov edi, ebx
jmp case.default.0x470fd9
call fcn.004695a0
not eax
not edx
jmp 0x47251d
mov eax, dword [ebp - 0xe4]
mov ecx, dword [esi + ebx*4 + 4]
mov eax, dword [eax + 0xc8]
cmp byte [eax + ecx], 0
je 0x4725ac
mov ecx, dword [esi + ebx*4 + 8]
dec ecx
mov dword [ebp - 0xf0], ecx
mov ecx, dword [ebp - 0xdc]
jmp case.default.0x470fd9
mov byte [eax + ecx], 1
mov ecx, dword [ebp - 0xdc]
jmp case.default.0x470fd9
mov eax, dword [esi + ebx*4 + 4]
mov ecx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x1c], 1
lea ecx, [ecx + eax*8]
je 0x4725dd
mov ecx, dword [esi + ebx*4 + 0xc]
test ecx, ecx
jmp 0x472145
call fcn.00469610
xorps xmm1, xmm1
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x4725f6
mov ecx, 1
jmp 0x4725f8
xor ecx, ecx
cmp byte [esi + ebx*4], 0x2d
jne 0x472607
xor eax, eax
test ecx, ecx
sete al
mov ecx, eax
test ecx, ecx
jmp 0x472145
mov eax, dword [esi + ebx*4 + 4]
mov edx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x1c], 1
je case.default.0x470fd9
mov ebx, dword [esi + ebx*4 + 8]
dec ebx
mov dword [ebp - 0xf0], ebx
jmp case.default.0x470fd9
mov eax, dword [esi + ebx*4 + 4]
mov edx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x1c], 1
jne case.default.0x470fd9
mov ebx, dword [esi + ebx*4 + 8]
dec ebx
mov dword [ebp - 0xf0], ebx
jmp case.default.0x470fd9
mov eax, dword [esi + ebx*4 + 0xc]
mov ecx, dword [ebp - 0xec]
mov edi, dword [esi + ebx*4 + 8]
lea eax, [eax + eax*4]
mov dword [ebp - 0x118], edi
lea eax, [ecx + eax*8]
mov ecx, dword [esi + ebx*4 + 4]
mov dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0x100], ecx
movsx eax, word [ecx + 0x14]
add eax, 0x16
lea esi, [ecx + eax*4]
mov eax, dword [ecx]
mov dword [ebp - 0x11c], esi
mov dword [ebp - 0x10c], eax
call fcn.0046d170
mov ecx, eax
mov dword [ebp - 0xd8], ecx
test ecx, ecx
jne 0x476670
mov edx, dword [ebp - 0x100]
mov ecx, dword [ebp - 0xe4]
mov eax, dword [edx + 0x44]
cmp eax, dword [ecx + 0x48]
jne 0x4726e6
mov eax, dword [ebp - 0xe0]
test byte [eax + ebx*4 + 3], 0x20
je 0x47283c
cmp byte [edx + 0x19], 0
je 0x472738
cmp dword [ebp - 0x10c], 0
jne 0x472719
mov eax, dword [edx + 0x10]
mov ecx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
lea edi, [edx + 0x48]
mov esi, dword [ecx + eax*8 + 0x18]
mov dword [edx + 0x4c], esi
mov dword [edi], esi
mov eax, dword [ecx + eax*8 + 4]
mov dword [edx + 0x54], eax
jmp 0x4727b7
mov ebx, dword [ebp - 0xf8]
mov ecx, 0xbe01
mov ax, word [ebx + 0x1c]
and ax, cx
or ax, 1
mov word [ebx + 0x1c], ax
jmp 0x472ba1
test byte [edx + 0x1c], 4
mov ecx, dword [ebp - 0x10c]
jne 0x472776
lea edx, [ebp - 0x270]
call fcn.00461f60
mov ecx, dword [ebp - 0x10c]
mov edx, dword [ebp - 0x100]
movzx eax, word [ecx + 0x2c]
add eax, dword [ecx + 0x20]
movzx esi, word [ecx + 0x2e]
mov dword [edx + 0x54], eax
mov eax, dword [ebp - 0x270]
lea edi, [edx + 0x48]
mov dword [edi], eax
jmp 0x47279a
lea edi, [edx + 0x48]
mov edx, edi
call fcn.00461ff0
mov ecx, dword [ebp - 0x10c]
mov edx, dword [ebp - 0x100]
movzx eax, word [ecx + 0x2c]
add eax, dword [ecx + 0x20]
movzx esi, word [ecx + 0x2e]
mov dword [edx + 0x54], eax
mov eax, dword [edi]
cmp eax, esi
ja 0x4727a5
mov dword [edx + 0x4c], eax
jmp 0x4727a8
mov dword [edx + 0x4c], esi
mov ecx, dword [ebp - 0xdc]
cmp eax, dword [ecx + 0x58]
ja 0x4767e3
mov eax, dword [ebp - 0xe4]
mov ecx, dword [edx + 0x54]
mov eax, dword [eax + 0x48]
mov dword [edx + 0x44], eax
mov al, byte [ecx]
cmp al, 0x80
jae 0x4727dc
movzx ecx, al
mov dword [ebp - 0x17c], ecx
mov eax, 1
jmp 0x4727f6
lea edx, [ebp - 0x17c]
call fcn.00450810
mov ecx, dword [ebp - 0x17c]
mov edx, dword [ebp - 0x100]
movzx eax, al
movzx eax, al
mov dword [edx + 0x50], eax
xor eax, eax
mov word [edx + 0x16], ax
mov eax, dword [ebp - 0x11c]
mov dword [eax], ecx
cmp esi, ecx
jae 0x47281c
mov dword [edx + 0x54], 0
mov dword [edx + 0x4c], 0
cmp ecx, 0x18003
ja 0x472bd6
cmp ecx, dword [edi]
ja 0x472bd6
mov edi, dword [ebp - 0x118]
mov esi, dword [ebp - 0x11c]
movzx eax, word [edx + 0x16]
cmp eax, edi
jg 0x472a38
mov eax, dword [edx + 0x50]
cmp eax, dword [esi]
jae 0x4729e6
mov ecx, dword [edx + 0x54]
mov dword [ebp - 0x104], ecx
test ecx, ecx
jne 0x4728d2
mov ecx, dword [ebp - 0x10c]
xorps xmm0, xmm0
lea eax, [ebp - 0x1d8]
push eax
movq qword [ebp - 0x1d8], xmm0
movq qword [ebp - 0x1d0], xmm0
movq qword [ebp - 0x1c8], xmm0
movq qword [ebp - 0x1c0], xmm0
movq qword [ebp - 0x1b8], xmm0
mov eax, dword [edx + 0x1c]
shr eax, 2
not eax
and eax, 1
push eax
push dword [esi]
xor edx, edx
call fcn.00469dc0
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0xd8], ecx
test ecx, ecx
jne 0x471334
mov ecx, dword [ebp - 0x1d4]
mov edx, dword [ebp - 0x100]
mov dword [ebp - 0x104], ecx
movzx edi, word [edx + 0x16]
mov eax, dword [esi + edi*4]
mov esi, dword [edx + 0x50]
mov dword [ebp - 0x114], eax
mov eax, dword [ebp - 0x11c]
add esi, ecx
mov eax, dword [eax]
add eax, ecx
mov dword [ebp - 0xf4], eax
mov al, byte [esi]
cmp al, 0x80
jae 0x472906
movzx ecx, al
mov dword [ebp - 0x168], ecx
inc esi
jmp 0x472924
lea edx, [ebp - 0x168]
mov ecx, esi
call fcn.00450810
mov ecx, dword [ebp - 0x168]
mov edx, dword [ebp - 0x100]
movzx eax, al
add esi, eax
mov dword [edx + edi*4 + 0x58], ecx
call fcn.0046d320
mov ecx, dword [ebp - 0x114]
add ecx, eax
mov dword [ebp - 0x114], ecx
mov dword [ebp - 0x17c], ecx
cmp ecx, eax
jb 0x472961
mov eax, dword [ebp - 0x11c]
inc edi
mov dword [eax + edi*4], ecx
cmp edi, dword [ebp - 0x118]
jg 0x472968
cmp esi, dword [ebp - 0xf4]
jb 0x4728f4
jmp 0x472968
mov esi, dword [ebp - 0xf4]
inc esi
mov eax, esi
sub eax, dword [ebp - 0x104]
cmp dword [edx + 0x54], 0
mov word [edx + 0x16], di
mov dword [edx + 0x50], eax
jne 0x4729a0
lea ecx, [ebp - 0x1d8]
call fcn.004694a0
mov ecx, dword [ebp - 0x114]
mov edx, dword [ebp - 0x100]
mov eax, 1
mov word [ebp - 0x1bc], ax
mov edi, dword [ebp - 0xf4]
cmp esi, edi
ja 0x4729b9
mov eax, dword [edx + 0x48]
cmp ecx, eax
ja 0x4729b9
cmp esi, edi
jne 0x4729da
cmp ecx, eax
je 0x4729da
mov ecx, 0x11148
call fcn.004bd500
mov edi, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xd8], eax
jmp 0x4763a2
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x118]
movzx eax, word [edx + 0x16]
cmp eax, edi
jg 0x472a38
mov esi, dword [ebp - 0xe0]
cmp byte [esi + ebx*4 + 1], 0xf8
jne 0x472a19
mov edx, dword [esi + ebx*4 + 0x10]
mov ebx, dword [ebp - 0xf8]
push 0x800
mov ecx, ebx
call fcn.00469a30
add esp, 4
jmp 0x472ba7
mov ebx, dword [ebp - 0xf8]
mov ecx, 0xbe01
mov ax, word [ebx + 0x1c]
and ax, cx
or ax, 1
mov word [ebx + 0x1c], ax
jmp 0x472ba7
mov eax, dword [edx + 0x4c]
cmp eax, dword [esi + edi*4 + 4]
jb 0x472a77
mov ebx, dword [ebp - 0xf8]
mov eax, 0x2460
test word [ebx + 0x1c], ax
je 0x472a5f
mov ecx, ebx
call fcn.00469450
mov edx, dword [ebp - 0x100]
mov ecx, dword [edx + 0x54]
add ecx, dword [esi + edi*4]
mov edx, dword [edx + edi*4 + 0x58]
push ebx
call fcn.0046d3c0
add esp, 4
jmp 0x472b98
mov eax, dword [ebp - 0xe0]
mov ecx, dword [edx + edi*4 + 0x58]
mov al, byte [eax + ebx*4 + 3]
mov dword [ebp - 0x104], ecx
mov dword [ebp - 0x168], ecx
test al, 0xc0
je 0x472aa3
cmp ecx, 0xc
jb 0x472a9f
test cl, 1
je 0x472aae
test al, al
js 0x472aae
call fcn.0046d320
mov esi, eax
test esi, esi
jne 0x472acd
mov ebx, dword [ebp - 0xf8]
xor edx, edx
lea eax, [ebp - 0x270]
cmp ecx, 0xd
cmova eax, edx
mov dword [ebp - 0x1b4], edx
jmp 0x472b58
mov ebx, dword [ebp - 0xf8]
xorps xmm0, xmm0
mov edx, ebx
lea ecx, [ebp - 0x1d8]
movq qword [ebp - 0x1d8], xmm0
movq qword [ebp - 0x1d0], xmm0
movq qword [ebp - 0x1c8], xmm0
movq qword [ebp - 0x1c0], xmm0
movq qword [ebp - 0x1b8], xmm0
call fcn.00469bb0
mov ecx, dword [ebp - 0x100]
lea eax, [ebp - 0x1d8]
push eax
mov eax, dword [ecx + 0x1c]
mov ecx, dword [ebp - 0x10c]
shr eax, 2
not eax
and eax, 1
push eax
mov eax, dword [ebp - 0x11c]
push esi
mov edx, dword [eax + edi*4]
call fcn.00469dc0
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0xd8], ecx
test ecx, ecx
jne 0x471334
mov eax, dword [ebp - 0x1d4]
mov ecx, dword [ebp - 0x104]
mov edx, ecx
push ebx
mov ecx, eax
call fcn.0046d3c0
add esp, 4
cmp dword [ebp - 0x1b4], 0
je 0x472b98
mov ax, word [ebx + 0x1c]
mov ecx, 0xe7ff
and ax, cx
mov ecx, 0x200
or ax, cx
mov word [ebx + 0x1c], ax
mov eax, dword [ebp - 0x1d4]
mov dword [ebx + 4], eax
mov eax, dword [ebp - 0x1b4]
mov dword [ebx + 0x24], eax
mov al, byte [ebp - 0x110]
mov byte [ebx + 0x1e], al
mov esi, dword [ebp - 0xe0]
mov eax, 0x1000
test word [ebx + 0x1c], ax
je 0x4719fb
mov ecx, ebx
call fcn.004691e0
mov ecx, dword [ebp - 0xdc]
test eax, eax
jne 0x476866
mov edi, dword [ebp - 0xe8]
jmp case.default.0x470fd9
mov ecx, 0x11106
call fcn.004bd500
mov edi, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xd8], eax
jmp 0x4763a2
mov eax, dword [ebp - 0xe0]
mov edx, dword [ebp - 0xec]
mov eax, dword [eax + ebx*4 + 4]
mov esi, dword [esi + ebx*4 + 0x10]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov al, byte [esi]
test al, al
je 0x47639c
jmp 0x472c20
push dword [ebp - 0x110]
mov dl, al
mov ecx, edi
lea esi, [esi + 1]
call fcn.00470d60
mov al, byte [esi]
add esp, 4
add edi, 0x28
test al, al
jne 0x472c20
mov edi, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0xdc]
jmp 0x4763a2
mov ecx, dword [ebp - 0xe0]
mov edx, dword [ebp - 0xec]
xor eax, eax
mov dword [ebp - 0x100], eax
mov dword [ebp - 0x10c], eax
mov eax, dword [ecx + ebx*4 + 4]
mov esi, dword [esi + ebx*4 + 0x10]
lea eax, [eax + eax*4]
xorps xmm0, xmm0
lea edi, [edx + eax*8]
mov eax, dword [ecx + ebx*4 + 8]
movlpd qword [ebp - 0x240], xmm0
lea eax, [eax + eax*4]
mov dword [ebp - 0xf8], edi
lea eax, [eax - 5]
lea eax, [edi + eax*8]
mov dword [ebp - 0x104], eax
mov eax, dword [ebp - 0xe4]
movzx edx, byte [eax + 0x57]
mov eax, dword [ecx + ebx*4 + 0xc]
mov ecx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
mov dword [ebp - 0x114], edx
lea eax, [ecx + eax*8]
mov dword [ebp - 0xe8], eax
test esi, esi
je 0x472cf5
mov al, byte [esi]
jmp 0x472cd0
push dword [ebp - 0x110]
mov dl, al
mov ecx, edi
call fcn.00470d60
mov al, byte [esi + 1]
lea esi, [esi + 1]
add esp, 4
add edi, 0x28
test al, al
jne 0x472cd0
mov edx, dword [ebp - 0x114]
mov eax, dword [ebp - 0x23c]
mov esi, dword [ebp - 0x104]
mov dword [ebp - 0xf4], eax
mov eax, dword [ebp - 0x240]
mov dword [ebp - 0x118], eax
mov ecx, esi
call fcn.0046d210
mov ebx, eax
mov ecx, ebx
call fcn.0046d320
mov edi, eax
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x472d52
mov ecx, dword [ebp - 0x118]
or ecx, dword [ebp - 0xf4]
je 0x472d47
mov ecx, esi
call fcn.00469240
jmp 0x472d52
mov eax, dword [esi + 0x10]
add dword [ebp - 0x10c], eax
sub edi, eax
mov eax, edi
mov edi, dword [ebp - 0xf4]
cdq
add dword [ebp - 0x118], eax
adc edi, edx
mov dword [ebp - 0xf4], edi
cmp ebx, 0x7f
ja 0x472d75
mov eax, 1
jmp 0x472d80
push 0
push ebx
call fcn.00450890
add esp, 8
mov ecx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0xf8]
mov edx, dword [ebp - 0x114]
add ecx, eax
sub esi, 0x28
mov dword [ebp - 0x100], ecx
cmp esi, ebx
jae 0x472d13
cmp ecx, 0x7e
jle 0x472dd9
mov eax, ecx
cdq
push edx
push eax
call fcn.00450890
mov esi, eax
mov eax, dword [ebp - 0x100]
add eax, esi
mov dword [ebp - 0x100], eax
cdq
push edx
push eax
call fcn.00450890
mov ecx, dword [ebp - 0x100]
add esp, 0x10
cmp esi, eax
jge 0x472de0
inc ecx
mov dword [ebp - 0x100], ecx
mov eax, ecx
cdq
mov esi, eax
mov eax, dword [ebp - 0xdc]
add esi, dword [ebp - 0x118]
mov eax, dword [eax + 0x58]
mov ecx, edx
cdq
adc ecx, edi
mov dword [ebp - 0xf4], esi
cmp ecx, edx
jg 0x4767dd
jl 0x472e11
cmp esi, eax
ja 0x4767dd
mov edx, esi
mov esi, dword [ebp - 0xe8]
push 0
mov ecx, esi
call fcn.004690b0
add esp, 4
test eax, eax
jne 0x476860
mov eax, dword [ebp - 0x100]
mov edi, dword [esi + 4]
cmp eax, 0x80
jae 0x472e46
mov byte [edi], al
mov eax, 1
jmp 0x472e4f
mov edx, eax
mov ecx, edi
call fcn.00450660
movzx esi, al
mov edx, dword [ebp - 0x114]
mov ecx, ebx
call fcn.0046d210
mov ebx, eax
cmp ebx, 0x80
jae 0x472e73
mov byte [esi + edi], bl
mov eax, 1
jmp 0x472e7d
lea ecx, [esi + edi]
mov edx, ebx
call fcn.00450660
mov ecx, dword [ebp - 0x100]
movzx eax, al
push ebx
mov ebx, dword [ebp - 0xf8]
lea ecx, [ecx + edi]
mov edx, ebx
add esi, eax
call fcn.0046d340
add dword [ebp - 0x100], eax
add ebx, 0x28
add esp, 4
mov dword [ebp - 0xf8], ebx
cmp ebx, dword [ebp - 0x104]
jbe 0x472e52
mov ebx, dword [ebp - 0xe8]
mov eax, dword [ebp - 0xf4]
mov dword [ebx + 0x18], eax
mov eax, 0x10
mov word [ebx + 0x1c], ax
mov eax, dword [ebp - 0x10c]
mov dword [ebx + 0x20], 0
test eax, eax
je 0x472ee8
mov dword [ebx + 0x10], eax
mov eax, 0x4010
mov word [ebx + 0x1c], ax
mov edi, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0xdc]
mov byte [ebx + 0x1e], 1
jmp 0x4763a2
mov eax, dword [ebp - 0xe4]
mov ecx, dword [esi + ebx*4 + 4]
mov eax, dword [eax + 0x38]
xorps xmm0, xmm0
mov eax, dword [eax + ecx*4]
lea edx, [ebp - 0x1e8]
mov ecx, dword [eax]
movlpd qword [ebp - 0x1e8], xmm0
call fcn.004665f0
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0x1e8]
mov dword [edi + 0x10], eax
mov eax, dword [ebp - 0x1e4]
mov dword [edi + 0x14], eax
jmp case.default.0x470fd9
mov eax, dword [esi + ebx*4 + 4]
mov edi, dword [esi + ebx*4 + 0x10]
mov dword [ebp - 0xf8], eax
test eax, eax
jne 0x473051
cmp dword [ecx + 0x94], eax
jle 0x472f9e
mov eax, dword [ebp - 0xe4]
push str.cannot_open_savepoint___SQL_statements_in_progress
push ecx
add eax, 0x2c
push eax
call fcn.0044d820
mov edi, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0xdc]
add esp, 0xc
mov dword [ebp - 0xd8], 5
mov ebx, 5
jmp 0x4763ae
mov ecx, edi
call fcn.0044f900
mov esi, dword [ebp - 0xdc]
xor edx, edx
mov ecx, dword [esi + 0x1ec]
add ecx, dword [esi + 0x1e8]
mov ebx, eax
push ecx
mov ecx, esi
call fcn.004ac9b0
mov ecx, eax
add esp, 4
mov dword [ebp - 0xd8], ecx
test ecx, ecx
mov ecx, esi
jne 0x476676
lea edx, [ebx + 0x21]
call fcn.0044d680
mov esi, eax
test esi, esi
je 0x471334
lea ecx, [ebx + 1]
push ecx
lea edx, [esi + 0x20]
push edi
push edx
mov dword [esi], edx
call fcn.00587170
mov ecx, dword [ebp - 0xdc]
add esp, 0xc
cmp byte [ecx + 0x3e], 0
je 0x473013
mov byte [ecx + 0x3e], 0
mov byte [ecx + 0x45], 1
jmp 0x473019
inc dword [ecx + 0x1e8]
mov eax, dword [ecx + 0x1e0]
mov dword [esi + 0x18], eax
mov eax, dword [ecx + 0x1f0]
mov dword [ecx + 0x1e0], esi
mov dword [esi + 8], eax
mov eax, dword [ecx + 0x1f4]
mov dword [esi + 0xc], eax
mov eax, dword [ecx + 0x1f8]
mov dword [esi + 0x10], eax
mov eax, dword [ecx + 0x1fc]
mov dword [esi + 0x14], eax
jmp 0x47639c
mov esi, dword [ecx + 0x1e0]
xor ebx, ebx
mov dword [ebp - 0x104], esi
test esi, esi
je 0x473086
push edi
push dword [esi]
call fcn.0044fb00
add esp, 8
test eax, eax
je 0x4730c5
mov esi, dword [esi + 0x18]
inc ebx
mov dword [ebp - 0x104], esi
test esi, esi
jne 0x473063
mov ecx, dword [ebp - 0xdc]
mov eax, dword [ebp - 0xe4]
push edi
push str.no_such_savepoint:__s
push ecx
add eax, 0x2c
push eax
call fcn.0044d820
mov edi, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0xdc]
mov esi, dword [ebp - 0xe0]
add esp, 0x10
mov dword [ebp - 0xd8], 1
mov ebx, 1
jmp 0x4763ae
mov ecx, dword [ebp - 0xdc]
mov edx, dword [ebp - 0xf8]
cmp dword [ecx + 0x94], 0
jle 0x47311d
cmp edx, 1
jne 0x47311d
mov eax, dword [ebp - 0xe4]
push str.cannot_release_savepoint___SQL_statements_in_progress
push ecx
add eax, 0x2c
push eax
call fcn.0044d820
mov edi, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0xdc]
mov esi, dword [ebp - 0xe0]
add esp, 0xc
mov dword [ebp - 0xd8], 5
mov ebx, 5
jmp 0x4763ae
cmp dword [esi + 0x18], 0
jne 0x47318b
cmp byte [ecx + 0x45], 0
je 0x47318b
mov dword [ebp - 0xf4], 1
cmp edx, 1
jne 0x473195
mov ecx, dword [ebp - 0xe4]
call fcn.0046c710
mov edi, eax
test edi, edi
jne 0x4765ce
mov eax, dword [ebp - 0xdc]
mov edi, dword [ebp - 0xe4]
mov ecx, edi
mov byte [eax + 0x3e], 1
call fcn.0046c780
mov ecx, dword [ebp - 0xdc]
cmp eax, 5
je 0x47657c
mov byte [ecx + 0x45], 0
mov eax, dword [edi + 0x50]
mov edi, dword [ebp - 0xf8]
mov dword [ebp - 0xd8], eax
jmp 0x473255
mov dword [ebp - 0xf4], 0
mov eax, dword [ecx + 0x1e8]
sub eax, ebx
dec eax
mov dword [ebp - 0x10c], eax
cmp edx, 2
jne 0x4731e6
xor ebx, ebx
cmp dword [ecx + 0x14], ebx
jle 0x4731e6
xor edi, edi
mov esi, ecx
mov ecx, dword [esi + 0x10]
mov edx, 4
mov ecx, dword [edi + ecx + 4]
call fcn.00461a90
inc ebx
lea edi, [edi + 0x10]
cmp ebx, dword [esi + 0x14]
jl 0x4731b4
mov esi, dword [ebp - 0x104]
mov eax, dword [ebp - 0x10c]
mov edx, dword [ebp - 0xf8]
mov ecx, dword [ebp - 0xdc]
xor ebx, ebx
cmp dword [ecx + 0x14], ebx
jle 0x47322b
xor edi, edi
nop
mov ecx, dword [ecx + 0x10]
push eax
mov ecx, dword [edi + ecx + 4]
call fcn.00461d00
mov ecx, eax
add esp, 4
mov dword [ebp - 0xd8], ecx
test ecx, ecx
mov ecx, dword [ebp - 0xdc]
jne 0x476676
mov eax, dword [ebp - 0x10c]
mov edx, dword [ebp - 0xf8]
inc ebx
add edi, 0x10
cmp ebx, dword [ecx + 0x14]
jl 0x4731f0
mov edi, dword [ebp - 0xf8]
cmp edi, 2
jne 0x47324f
test byte [ecx + 0x18], 2
je 0x47324f
call fcn.0046e640
call fcn.00484c30
mov ecx, dword [ebp - 0xdc]
or dword [ecx + 0x18], edi
mov ebx, dword [ebp - 0x10c]
cmp dword [ecx + 0x1e0], esi
je 0x473288
lea ecx, [ecx]
mov edx, dword [ecx + 0x1e0]
mov eax, dword [edx + 0x18]
mov dword [ecx + 0x1e0], eax
call fcn.0044d450
mov ecx, dword [ebp - 0xdc]
dec dword [ecx + 0x1e8]
cmp dword [ecx + 0x1e0], esi
jne 0x473260
cmp edi, 1
jne 0x4732b8
mov eax, dword [esi + 0x18]
mov edx, esi
mov dword [ecx + 0x1e0], eax
call fcn.0044d450
cmp dword [ebp - 0xf4], 0
mov ecx, dword [ebp - 0xdc]
jne 0x47639c
dec dword [ecx + 0x1e8]
jmp 0x4732e9
cmp dword [ebp - 0xf4], 0
mov eax, dword [esi + 8]
mov dword [ecx + 0x1f0], eax
mov eax, dword [esi + 0xc]
mov dword [ecx + 0x1f4], eax
mov eax, dword [esi + 0x10]
mov dword [ecx + 0x1f8], eax
mov eax, dword [esi + 0x14]
mov dword [ecx + 0x1fc], eax
jne 0x47639c
push ebx
mov edx, edi
call fcn.004ac9b0
mov ecx, eax
add esp, 4
mov dword [ebp - 0xd8], ecx
test ecx, ecx
mov ecx, dword [ebp - 0xdc]
jne 0x476676
jmp 0x47639c
mov ecx, dword [esi + ebx*4 + 4]
mov edx, dword [esi + ebx*4 + 8]
mov esi, dword [ebp - 0xdc]
mov dword [ebp - 0x104], ecx
test ecx, ecx
je 0x47336d
cmp byte [esi + 0x3e], 0
jne 0x47336d
test edx, edx
jne 0x47336d
cmp dword [esi + 0x94], edx
jle 0x47336d
mov eax, dword [ebp - 0xe4]
push str.cannot_commit_transaction___SQL_statements_in_progress
add eax, 0x2c
push esi
push eax
call fcn.0044d820
mov ecx, esi
mov esi, dword [ebp - 0xe0]
add esp, 0xc
mov dword [ebp - 0xd8], 5
mov ebx, 5
jmp 0x4763ae
movzx eax, byte [esi + 0x3e]
cmp ecx, eax
jne 0x47659c
test ecx, ecx
jne 0x473384
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x473393
mov eax, str.cannot_rollback___no_transaction_is_active
test edx, edx
mov ecx, str.cannot_commit___no_transaction_is_active
cmove eax, ecx
push eax
mov eax, dword [ebp - 0xe4]
add eax, 0x2c
push esi
push eax
call fcn.0044d820
mov ecx, dword [ebp - 0xdc]
mov esi, dword [ebp - 0xe0]
add esp, 0xc
mov dword [ebp - 0xd8], 1
mov ebx, 1
jmp 0x4763ae
mov edx, dword [esi + ebx*4 + 8]
test edx, edx
je 0x4733dc
test dword [ecx + 0x18], 0x2000000
jne 0x476631
mov ecx, dword [esi + ebx*4 + 4]
mov eax, dword [ebp - 0xdc]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov esi, dword [eax + ecx*8 + 4]
test esi, esi
je 0x473512
mov ecx, esi
call fcn.00460b20
mov ecx, eax
mov dword [ebp - 0xd8], ecx
cmp ecx, 5
je 0x47663e
test ecx, ecx
jne 0x476670
mov eax, dword [ebp - 0xe0]
cmp dword [eax + ebx*4 + 8], ecx
je 0x4734d8
mov edx, dword [ebp - 0xe4]
test byte [edx + 0x58], 0x80
je 0x4734d8
mov ecx, dword [ebp - 0xdc]
cmp byte [ecx + 0x3e], 0
je 0x473450
cmp dword [ecx + 0x90], 1
jle 0x4734d8
cmp dword [edx + 0x68], 0
jne 0x47346b
mov eax, dword [ecx + 0x1e8]
inc dword [ecx + 0x1ec]
add eax, dword [ecx + 0x1ec]
mov dword [edx + 0x68], eax
mov eax, dword [edx + 0x68]
dec eax
push eax
xor edx, edx
call fcn.004ac9b0
mov edx, eax
add esp, 4
mov dword [ebp - 0xd8], edx
test edx, edx
jne 0x47349c
mov eax, dword [ebp - 0xe4]
mov ecx, esi
mov edx, dword [eax + 0x68]
call fcn.00461cb0
mov dword [ebp - 0xd8], eax
mov ecx, dword [ebp - 0xdc]
mov edx, dword [ebp - 0xe4]
mov eax, dword [ecx + 0x1f0]
mov dword [edx + 0x98], eax
mov eax, dword [ecx + 0x1f4]
mov dword [edx + 0x9c], eax
mov eax, dword [ecx + 0x1f8]
mov dword [edx + 0xa0], eax
mov eax, dword [ecx + 0x1fc]
mov dword [edx + 0xa4], eax
lea eax, [ebp - 0x188]
push eax
mov edx, 1
mov ecx, esi
call fcn.004664e0
mov eax, dword [ebp - 0xe0]
mov esi, dword [ebp - 0x188]
mov ecx, dword [eax + ebx*4 + 4]
mov eax, dword [ebp - 0xdc]
add esp, 4
mov eax, dword [eax + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax + 4]
jmp 0x47351c
xor esi, esi
mov dword [ebp - 0x188], esi
xor eax, eax
mov ecx, dword [ebp - 0xe0]
cmp byte [ecx + ebx*4 + 3], 0
je 0x471109
cmp esi, dword [ecx + ebx*4 + 0xc]
jne 0x47353d
cmp eax, dword [ecx + ebx*4 + 0x10]
je 0x471109
mov eax, dword [ebp - 0xe4]
mov ecx, dword [ebp - 0xdc]
mov edx, dword [eax + 0x2c]
call fcn.0044d450
mov ecx, dword [ebp - 0xdc]
mov edx, str.database_schema_has_changed
call fcn.0044d790
mov ecx, dword [ebp - 0xe4]
mov dword [ecx + 0x2c], eax
mov eax, dword [ebp - 0xe0]
mov edx, dword [eax + ebx*4 + 4]
mov ebx, dword [ebp - 0xdc]
mov ecx, edx
mov eax, dword [ebx + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
cmp dword [eax], esi
je 0x473590
mov ecx, ebx
call fcn.00484bf0
mov ecx, dword [ebp - 0xe4]
mov esi, dword [ebp - 0xe0]
or dword [ecx + 0x58], 0x20
mov ecx, ebx
mov dword [ebp - 0xd8], 0x11
mov ebx, 0x11
jmp 0x4763ae
mov ecx, dword [ecx + 0x10]
mov edx, dword [esi + ebx*4 + 0xc]
lea eax, [ebp - 0x204]
push eax
mov eax, dword [esi + ebx*4 + 4]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.004664e0
mov eax, dword [ebp - 0x204]
mov ecx, dword [ebp - 0xdc]
cdq
add esp, 4
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], edx
jmp case.default.0x470fd9
mov esi, dword [esi + ebx*4 + 4]
mov eax, dword [ebp - 0xe0]
shl esi, 4
mov eax, dword [eax + ebx*4 + 0xc]
add esi, dword [ecx + 0x10]
mov ecx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov ecx, edi
call fcn.00469750
mov eax, dword [ebp - 0xe0]
push dword [edi + 0x10]
mov edx, dword [eax + ebx*4 + 8]
mov ecx, dword [esi + 4]
call fcn.00466550
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0xe0]
add esp, 4
mov eax, dword [eax + ebx*4 + 8]
cmp eax, 1
jne 0x473656
mov ecx, dword [esi + 0xc]
mov eax, dword [edi + 0x10]
mov dword [ecx], eax
mov ecx, dword [ebp - 0xdc]
or dword [ecx + 0x18], 2
jmp 0x47366a
cmp eax, 2
jne 0x473664
mov ecx, dword [esi + 0xc]
mov al, byte [edi + 0x10]
mov byte [ecx + 0x4c], al
mov ecx, dword [ebp - 0xdc]
mov esi, dword [ebp - 0xe0]
cmp dword [esi + ebx*4 + 4], 1
jne 0x472bcb
call fcn.0046e640
mov ebx, dword [ebp - 0xe4]
mov edi, dword [ebp - 0xe8]
and dword [ebx + 0x58], 0xffffffdf
jmp case.default.0x470fd9
mov eax, dword [ebp - 0xe4]
test byte [eax + 0x58], 0x20
je 0x4736b1
mov ebx, 4
mov dword [ebp - 0xd8], ebx
jmp 0x4763ae
mov ecx, dword [esi + ebx*4 + 8]
mov esi, dword [esi + ebx*4 + 0xc]
mov dword [ebp - 0xf4], ecx
mov ecx, dword [ebp - 0xdc]
mov eax, esi
shl eax, 4
add eax, dword [ecx + 0x10]
xor edi, edi
mov dword [ebp - 0x104], edi
mov ecx, dword [eax + 4]
mov dword [ebp - 0xf8], ecx
mov ecx, dword [ebp - 0xf4]
mov dword [ebp - 0x118], esi
cmp dl, 0x35
jne 0x47370f
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 0xe4]
mov al, byte [eax + 0x4c]
mov dword [ebp - 0x114], 1
cmp al, byte [edx + 0x57]
jae 0x473715
mov byte [edx + 0x57], al
jmp 0x473715
mov dword [ebp - 0x114], edi
mov eax, dword [ebp - 0xe0]
test byte [eax + ebx*4 + 3], 2
je 0x47374d
lea eax, [ecx + ecx*4]
mov ecx, dword [ebp - 0xec]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.00469750
mov eax, dword [esi + 0x10]
mov dword [ebp - 0xf4], eax
cmp eax, 2
jl 0x476660
mov esi, dword [ebp - 0x118]
mov ecx, dword [ebp - 0xe0]
mov al, byte [ecx + ebx*4 + 1]
cmp al, 0xfa
jne 0x473771
mov eax, dword [ecx + ebx*4 + 0x10]
mov dword [ebp - 0x104], eax
movzx edi, word [eax + 8]
movzx eax, word [eax + 6]
add edi, eax
jmp 0x473779
cmp al, 0xf2
jne 0x473779
mov edi, dword [ecx + ebx*4 + 0x10]
mov edx, dword [ecx + ebx*4 + 4]
mov ecx, dword [ebp - 0xe4]
push 1
push esi
push edi
call fcn.00470c10
mov esi, eax
add esp, 0xc
test esi, esi
je 0x476860
push dword [esi]
mov edi, dword [ebp - 0x104]
mov edx, dword [ebp - 0xf4]
mov ecx, dword [ebp - 0xf8]
or dword [esi + 0x1c], 8
push edi
push dword [ebp - 0x114]
mov byte [esi + 0x19], 1
call fcn.00461db0
mov edx, dword [ebp - 0xe0]
mov dword [ebp - 0xd8], eax
mov eax, dword [esi]
mov dword [esi + 8], edi
mov cl, byte [edx + ebx*4 + 3]
mov edi, dword [ebp - 0xe8]
and cl, 1
mov byte [eax + 0x52], cl
mov ecx, dword [ebp - 0xdc]
xor eax, eax
add esp, 0xc
cmp byte [edx + ebx*4 + 1], 0xfa
setne al
shl eax, 2
xor eax, dword [esi + 0x1c]
and eax, 4
xor dword [esi + 0x1c], eax
jmp 0x4763a2
mov edx, dword [esi + ebx*4 + 4]
mov ecx, dword [ebp - 0xe4]
push 1
push 0xffffffffffffffff
push dword [esi + ebx*4 + 8]
call fcn.00470c10
mov esi, eax
add esp, 0xc
test esi, esi
je 0x476860
or dword [esi + 0x1c], 1
mov eax, dword [ebp - 0xe0]
mov byte [esi + 0x19], 1
movzx eax, byte [eax + ebx*4 + 3]
push 0x41e
or eax, 5
push eax
mov eax, dword [ebp - 0xdc]
lea edi, [esi + 4]
mov ecx, dword [eax]
push edi
push eax
xor edx, edx
call fcn.0045fb90
add esp, 0x10
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x473903
mov ecx, dword [edi]
lea edx, [eax + 1]
call fcn.00460b20
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x473903
mov ecx, dword [ebp - 0xe0]
mov eax, dword [ecx + ebx*4 + 0x10]
mov dword [ebp - 0x104], eax
test eax, eax
je 0x4738e4
movzx eax, byte [ecx + ebx*4 + 3]
mov ecx, dword [edi]
or eax, 2
push eax
lea edx, [ebp - 0x214]
call fcn.00465fd0
add esp, 4
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x4738de
push dword [esi]
mov eax, dword [ebp - 0x104]
mov edx, dword [ebp - 0x214]
mov ecx, dword [edi]
push eax
push 1
mov dword [esi + 8], eax
call fcn.00461db0
add esp, 0xc
mov dword [ebp - 0xd8], eax
and dword [esi + 0x1c], 0xfffffffb
jmp 0x473903
push dword [esi]
mov ecx, dword [edi]
push 0
push 1
mov edx, 1
call fcn.00461db0
add esp, 0xc
or dword [esi + 0x1c], 4
mov dword [ebp - 0xd8], eax
mov ecx, dword [ebp - 0xe0]
mov edi, dword [ebp - 0xe8]
xor eax, eax
cmp byte [ecx + ebx*4 + 3], 8
mov ecx, dword [ebp - 0xdc]
setne al
shl eax, 3
xor eax, dword [esi + 0x1c]
and eax, 8
xor dword [esi + 0x1c], eax
jmp 0x4763a2
mov edx, dword [esi + ebx*4 + 4]
mov ecx, dword [ebp - 0xe4]
push 1
push 0xffffffffffffffff
push dword [esi + ebx*4 + 8]
call fcn.00470c10
add esp, 0xc
test eax, eax
je 0x476860
mov ecx, dword [esi + ebx*4 + 0x10]
mov dword [eax + 8], ecx
mov ecx, dword [ebp - 0xdc]
mov edx, eax
call fcn.00477d60
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xd8], eax
jmp case.default.0x470fd9
mov edx, dword [esi + ebx*4 + 4]
mov ecx, dword [ebp - 0xe4]
push 0
push 0xffffffffffffffff
push dword [esi + ebx*4 + 0xc]
call fcn.00470c10
add esp, 0xc
test eax, eax
je 0x476860
mov byte [eax + 0x19], 1
mov ecx, dword [esi + ebx*4 + 8]
or dword [eax + 0x1c], 4
mov dword [eax + 0x10], ecx
mov ecx, dword [ebp - 0xdc]
jmp case.default.0x470fd9
mov ecx, dword [ebp - 0xe4]
mov eax, dword [esi + ebx*4 + 4]
mov edx, dword [ecx + 0x38]
mov edx, dword [edx + eax*4]
call fcn.0046b940
mov eax, dword [ebp - 0xe4]
mov ecx, dword [esi + ebx*4 + 4]
mov eax, dword [eax + 0x38]
mov dword [eax + ecx*4], 0
mov ecx, dword [ebp - 0xdc]
jmp case.default.0x470fd9
mov eax, dword [ebp - 0xe4]
mov ecx, dword [esi + ebx*4 + 4]
mov eax, dword [eax + 0x38]
mov edi, dword [ebp - 0xe0]
mov esi, dword [eax + ecx*4]
movzx edx, byte [edi + ebx*4]
test byte [esi + 0x1c], 4
mov dword [ebp - 0xf8], edx
mov byte [esi + 0x19], 0
je 0x473b14
mov eax, dword [edi + ebx*4 + 0xc]
mov ecx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov ecx, edi
call fcn.00470cd0
mov ecx, edi
call fcn.004695a0
mov byte [esi + 0x1a], 0
movzx ecx, word [edi + 0x1c]
mov dword [ebp - 0x1b0], eax
mov dword [ebp - 0x1ac], edx
test cl, 4
jne 0x473ac6
test cl, 8
jne 0x473a77
mov esi, dword [ebp - 0xe0]
mov edi, dword [ebp - 0xe8]
mov ecx, dword [esi + ebx*4 + 8]
dec ecx
mov dword [ebp - 0xf0], ecx
mov ecx, dword [ebp - 0xdc]
jmp case.default.0x470fd9
fild qword [ebp - 0x1b0]
fstp qword [ebp - 0x108]
fld qword [ebp - 0x108]
movsd xmm1, qword [edi + 8]
fstp qword [ebp - 0x108]
movsd xmm0, qword [ebp - 0x108]
comisd xmm0, xmm1
jbe 0x473aaf
mov eax, dword [ebp - 0xf8]
test al, 1
jne 0x473ac6
dec eax
jmp 0x473ac0
comisd xmm1, xmm0
jbe 0x473ac6
mov eax, dword [ebp - 0xf8]
test al, 1
je 0x473ac6
inc eax
mov dword [ebp - 0xf8], eax
mov edi, dword [ebp - 0x1b0]
mov ecx, dword [esi]
lea eax, [ebp - 0x120]
push eax
push 0
push edx
push edi
xor edx, edx
call fcn.004629b0
mov ecx, eax
add esp, 0x10
mov dword [ebp - 0xd8], ecx
test ecx, ecx
jne 0x476670
cmp dword [ebp - 0x120], eax
jne 0x473b93
mov eax, dword [ebp - 0x1ac]
mov byte [esi + 0x1a], 1
mov dword [esi + 0x38], edi
mov dword [esi + 0x3c], eax
jmp 0x473b93
mov eax, dword [esi + 8]
mov ecx, dword [edi + ebx*4 + 0x10]
mov dword [ebp - 0x32c], eax
lea eax, [edx - 1]
test al, 1
sete al
mov word [ebp - 0x328], cx
mov ecx, dword [ebp - 0xec]
lea eax, [eax*2 - 1]
mov byte [ebp - 0x326], al
mov eax, dword [edi + ebx*4 + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, 0x4000
mov dword [ebp - 0x324], ecx
test word [ecx + 0x1c], ax
je 0x473b63
call fcn.00469240
mov ecx, dword [esi]
lea eax, [ebp - 0x120]
push eax
push 0
push 0
push 0
lea edx, [ebp - 0x32c]
call fcn.004629b0
mov ecx, eax
add esp, 0x10
mov dword [ebp - 0xd8], ecx
test ecx, ecx
jne 0x476670
mov byte [esi + 0x1a], al
mov eax, dword [ebp - 0xf8]
mov byte [esi + 0x1b], 0
mov dword [esi + 0x44], 0
mov ecx, dword [ebp - 0x120]
cmp eax, 0x3d
jl 0x473bef
test ecx, ecx
js 0x473bd5
jne 0x473bba
cmp eax, 0x3e
je 0x473bd5
mov edi, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0x120], 0
jmp 0x4763a2
lea eax, [ebp - 0x120]
push eax
mov dword [ebp - 0x120], 0
push dword [esi]
call fcn.00462e30
jmp 0x473c30
test ecx, ecx
jg 0x473c18
jne 0x473bfa
cmp eax, 0x3b
je 0x473c18
mov eax, dword [esi]
mov esi, dword [ebp - 0xe0]
xor ecx, ecx
cmp byte [eax + 0x51], 1
setne cl
mov dword [ebp - 0x120], ecx
test ecx, ecx
jmp 0x47213f
lea eax, [ebp - 0x120]
push eax
mov dword [ebp - 0x120], 0
push dword [esi]
call fcn.00462fc0
mov ecx, eax
add esp, 8
mov dword [ebp - 0xd8], ecx
test ecx, ecx
jne 0x476670
mov byte [esi + 0x1a], 0
mov esi, dword [ebp - 0xe0]
cmp dword [ebp - 0x120], 0
jmp 0x47213f
mov ecx, dword [esi + ebx*4 + 4]
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov eax, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0xec]
mov byte [esi + 0x19], 0
mov eax, dword [eax + ebx*4 + 8]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.004695a0
mov ecx, dword [ebp - 0xdc]
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], edx
mov word [esi + 0x1a], 0x100
jmp 0x4763a2
mov eax, dword [ebp - 0xe4]
mov ecx, dword [esi + ebx*4 + 4]
mov eax, dword [eax + 0x38]
mov edx, dword [ebp - 0xec]
mov ecx, dword [eax + ecx*4]
mov eax, dword [esi + ebx*4 + 0xc]
mov dword [ebp - 0x104], ecx
lea eax, [eax + eax*4]
mov dword [ebp - 0x194], 0
lea esi, [edx + eax*8]
mov edx, dword [ebp - 0xe0]
mov dword [ebp - 0x114], esi
cmp dword [edx + ebx*4 + 0x10], 0
jle 0x473d4f
mov eax, dword [ecx + 8]
mov dword [ebp - 0x22c], eax
mov dx, word [edx + ebx*4 + 0x10]
xor eax, eax
xor edi, edi
mov word [ebp - 0x228], dx
mov dword [ebp - 0x224], esi
cmp ax, dx
jae 0x473d41
mov ebx, dword [ebp - 0x114]
xor esi, esi
mov edi, edi
lea ecx, [esi + ebx]
mov eax, 0x4000
test word [ecx + 0x1c], ax
je 0x473d30
call fcn.00469240
mov ebx, dword [ebp - 0x224]
mov dx, word [ebp - 0x228]
movzx eax, dx
inc edi
add esi, 0x28
cmp edi, eax
jl 0x473d10
mov ebx, dword [ebp - 0xf4]
mov esi, dword [ebp - 0x104]
lea edi, [ebp - 0x22c]
jmp 0x473d8e
mov ecx, dword [ecx + 8]
lea eax, [ebp - 0x194]
push eax
push 0xbf
lea edx, [ebp - 0xc8]
call fcn.0046d610
mov edi, eax
add esp, 8
test edi, edi
je 0x476860
mov edx, dword [esi + 0x18]
push edi
push dword [esi + 4]
mov esi, dword [ebp - 0x104]
mov ecx, dword [esi + 8]
call fcn.0046d680
add esp, 8
mov eax, dword [ebp - 0xe0]
mov byte [edi + 6], 0
cmp byte [eax + ebx*4], 0x40
jne 0x473dd4
movzx edx, word [ebp - 0x228]
xor ecx, ecx
test edx, edx
jle 0x473dd4
mov eax, dword [ebp - 0x224]
add eax, 0x1c
test byte [eax], 1
jne 0x473dc3
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x473db4
jmp 0x473dd4
mov eax, dword [ebp - 0xe0]
mov eax, dword [eax + ebx*4 + 8]
dec eax
mov dword [ebp - 0xf0], eax
mov ecx, dword [esi]
lea eax, [ebp - 0x1ec]
push eax
push 0
push 0
push 0
mov edx, edi
call fcn.004629b0
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0xe0]
add esp, 0x10
cmp dword [eax + ebx*4 + 0x10], 0
jne 0x473e11
mov edx, dword [ebp - 0x194]
mov ecx, dword [ebp - 0xdc]
call fcn.0044d450
cmp dword [ebp - 0xd8], 0
jne 0x471334
mov eax, dword [ebp - 0x1ec]
mov edi, dword [ebp - 0xe8]
xor ecx, ecx
test eax, eax
mov dword [esi + 0xc], eax
sete cl
mov al, 1
sub al, cl
mov byte [esi + 0x19], al
mov byte [esi + 0x1b], 0
mov dword [esi + 0x44], 0
mov esi, dword [ebp - 0xe0]
cmp byte [esi + ebx*4], 0x42
jne 0x473e59
test ecx, ecx
jmp 0x472145
test ecx, ecx
jne 0x47102f
mov ecx, dword [esi + ebx*4 + 8]
dec ecx
mov dword [ebp - 0xf0], ecx
mov ecx, dword [ebp - 0xdc]
jmp case.default.0x470fd9
mov eax, dword [esi + ebx*4 + 0xc]
xor edx, edx
lea esi, [eax + eax*4]
mov eax, dword [ebp - 0xe0]
mov dword [ebp - 0x198], 0
mov ecx, dword [eax + ebx*4 + 4]
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 0x38]
mov edi, dword [eax + ecx*4]
lea eax, [ebp - 0x198]
mov ecx, dword [edi]
push eax
mov eax, dword [ebp - 0xec]
push 0
push dword [eax + esi*8 + 0x14]
push dword [eax + esi*8 + 0x10]
call fcn.004629b0
mov edx, dword [ebp - 0xec]
mov ecx, dword [ebp - 0x198]
mov dword [ebp - 0xd8], eax
mov eax, dword [edx + esi*8 + 0x10]
mov dword [edi + 0x38], eax
mov eax, dword [edx + esi*8 + 0x14]
mov esi, dword [ebp - 0xe0]
add esp, 0x10
test ecx, ecx
mov dword [edi + 0x3c], eax
sete al
mov byte [edi + 0x1a], al
mov byte [edi + 0x19], 0
mov dword [edi + 0x44], 0
mov byte [edi + 0x1b], 0
test ecx, ecx
je 0x473f0d
mov ebx, dword [esi + ebx*4 + 8]
dec ebx
mov dword [ebp - 0xf0], ebx
mov dword [edi + 0xc], ecx
mov edi, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0xdc]
jmp case.default.0x470fd9
mov ecx, dword [esi + ebx*4 + 4]
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 0x28]
mov dword [edi + 0x10], eax
mov eax, dword [ecx + 0x2c]
mov dword [edi + 0x14], eax
mov ecx, dword [esi + ebx*4 + 4]
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 0xdc]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
jmp case.default.0x470fd9
mov eax, dword [ebp - 0xe4]
mov ecx, dword [esi + ebx*4 + 4]
mov eax, dword [eax + 0x38]
xorps xmm0, xmm0
mov eax, dword [eax + ecx*4]
movlpd qword [ebp - 0x130], xmm0
mov ecx, dword [eax]
mov dword [ebp - 0x154], 0
mov dword [ebp - 0x100], eax
test ecx, ecx
je 0x4741f3
test byte [eax + 0x1c], 2
jne 0x47402b
lea edx, [ebp - 0x154]
call fcn.00462950
mov ecx, eax
mov dword [ebp - 0xd8], ecx
test ecx, ecx
jne 0x476670
cmp dword [ebp - 0x154], eax
je 0x473fd7
mov esi, 1
xor edi, edi
mov dword [ebp - 0x130], esi
mov dword [ebp - 0x12c], edi
jmp 0x474037
mov eax, dword [ebp - 0x100]
lea edx, [ebp - 0x130]
mov ecx, dword [eax]
call fcn.00461f60
mov edi, dword [ebp - 0x12c]
mov esi, dword [ebp - 0x130]
mov dword [ebp - 0xd8], eax
cmp edi, 0x7fffffff
jl 0x474017
jg 0x47400b
cmp esi, 0xffffffff
jb 0x474017
mov eax, dword [ebp - 0x100]
or dword [eax + 0x1c], 2
jmp 0x474037
add esi, 1
adc edi, 0
mov dword [ebp - 0x130], esi
mov dword [ebp - 0x12c], edi
jmp 0x474037
mov edi, dword [ebp - 0x12c]
mov esi, dword [ebp - 0x130]
mov eax, dword [ebp - 0xe0]
mov ecx, dword [eax + ebx*4 + 0xc]
test ecx, ecx
je 0x4740d4
mov eax, dword [ebp - 0xe4]
mov edx, dword [eax + 0xb0]
test edx, edx
je 0x474074
mov eax, dword [edx + 4]
test eax, eax
je 0x474069
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x474060
mov eax, dword [edx + 0xc]
lea ecx, [ecx + ecx*4]
lea ebx, [eax + ecx*8]
jmp 0x474080
lea eax, [ecx + ecx*4]
mov ecx, dword [ebp - 0xec]
lea ebx, [ecx + eax*8]
mov ecx, ebx
call fcn.00469750
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebx + 0x14]
cmp eax, 0xffffffff
jne 0x47409e
cmp ecx, 0x7fffffff
je 0x4766a8
mov edx, dword [ebp - 0x100]
test byte [edx + 0x1c], 2
jne 0x4766a8
add eax, 1
adc ecx, 0
cmp edi, ecx
jg 0x4740ce
jl 0x4740be
cmp esi, eax
jae 0x4740ce
mov esi, eax
mov edi, ecx
mov dword [ebp - 0x130], esi
mov dword [ebp - 0x12c], edi
mov dword [ebx + 0x10], esi
mov dword [ebx + 0x14], edi
mov eax, dword [ebp - 0x100]
test byte [eax + 0x1c], 2
je 0x4741cd
mov edi, dword [ebp - 0x138]
mov esi, dword [ebp - 0x134]
and edi, 0x3fffffff
add esi, 1
adc edi, 0
lea ecx, [ebp - 0x154]
push ecx
mov ecx, dword [eax]
xor ebx, ebx
push ebx
push edi
push esi
xor edx, edx
mov dword [ebp - 0x130], esi
mov dword [ebp - 0x12c], edi
call fcn.004629b0
mov ecx, eax
add esp, 0x10
mov dword [ebp - 0xd8], ecx
test ecx, ecx
jne 0x4741c7
mov eax, dword [ebp - 0x154]
test eax, eax
jne 0x4741bb
inc ebx
cmp ebx, 0x64
jge 0x4741bb
lea eax, [ebp - 0x130]
push eax
push 8
call fcn.0044f0c0
mov esi, dword [ebp - 0x130]
add esp, 8
cmp ebx, 5
jge 0x47416e
and esi, 0xffffff
xor edi, edi
jmp 0x47417a
mov edi, dword [ebp - 0x12c]
and edi, 0x3fffffff
lea eax, [ebp - 0x154]
push eax
mov eax, dword [ebp - 0x100]
add esi, 1
mov ecx, dword [eax]
adc edi, 0
push 0
push edi
push esi
xor edx, edx
mov dword [ebp - 0x130], esi
mov dword [ebp - 0x12c], edi
call fcn.004629b0
mov ecx, eax
add esp, 0x10
mov dword [ebp - 0xd8], ecx
test ecx, ecx
je 0x474130
jmp 0x4741c7
test ecx, ecx
jne 0x4741c7
test eax, eax
je 0x4766bf
mov eax, dword [ebp - 0x100]
mov ecx, dword [ebp - 0xdc]
mov word [eax + 0x1a], 0
mov dword [eax + 0x44], 0
mov eax, dword [ebp - 0xe8]
mov dword [eax + 0x14], edi
mov dword [eax + 0x10], esi
mov edi, eax
jmp 0x4763a2
mov eax, dword [ebp - 0xe8]
mov edi, dword [ebp - 0x12c]
mov esi, dword [ebp - 0x130]
mov ecx, dword [ebp - 0xdc]
mov dword [eax + 0x14], edi
mov dword [eax + 0x10], esi
mov edi, eax
jmp 0x4763a2
mov eax, dword [esi + ebx*4 + 8]
lea esi, [eax + eax*4]
mov eax, dword [ebp - 0xe0]
mov ecx, dword [eax + ebx*4 + 4]
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 0xe0]
mov dword [ebp - 0xf4], eax
mov eax, dword [ecx + ebx*4 + 0xc]
cmp dl, 0x46
jne 0x474263
mov edx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
mov edi, dword [edx + eax*8 + 0x10]
mov eax, dword [edx + eax*8 + 0x14]
mov dword [ebp - 0x104], eax
jmp 0x47426e
cdq
mov edi, eax
mov eax, edx
mov dword [ebp - 0x104], edx
test byte [ecx + ebx*4 + 3], 1
je 0x47427e
mov edx, dword [ebp - 0xe4]
inc dword [edx + 0x5c]
test byte [ecx + ebx*4 + 3], 2
je 0x4742a3
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0x134], edi
mov dword [ecx + 0x20], edi
mov dword [ecx + 0x24], eax
mov ecx, dword [ebp - 0xe0]
mov dword [ebp - 0x138], eax
mov edx, dword [ebp - 0xec]
movzx eax, word [edx + esi*8 + 0x1c]
test al, 1
je 0x4742c2
mov dword [edx + esi*8 + 4], 0
mov dword [edx + esi*8 + 0x18], 0
mov cl, byte [ecx + ebx*4 + 3]
mov byte [ebp - 0xf9], cl
test cl, 0x10
je 0x4742dc
mov edx, dword [ebp - 0xf4]
mov edx, dword [edx + 0xc]
jmp 0x4742de
xor edx, edx
test eax, 0x4000
je 0x4742f1
mov eax, dword [ebp - 0xec]
mov ecx, dword [eax + esi*8 + 0x10]
jmp 0x4742f3
xor ecx, ecx
movzx eax, byte [ebp - 0xf9]
push edx
shr eax, 3
and eax, 1
push eax
mov eax, dword [ebp - 0xec]
push ecx
push dword [eax + esi*8 + 0x18]
xor edx, edx
push dword [eax + esi*8 + 4]
mov esi, dword [ebp - 0x104]
mov eax, dword [ebp - 0xf4]
push esi
mov ecx, dword [eax]
push edi
call fcn.004658b0
mov ecx, dword [ebp - 0xf4]
add esp, 0x1c
mov dword [ebp - 0xd8], eax
mov word [ecx + 0x1a], 0
mov dword [ecx + 0x44], 0
test eax, eax
jne 0x471334
mov eax, dword [ebp - 0xdc]
mov edx, dword [eax + 0xc8]
test edx, edx
je 0x47639a
mov eax, dword [ebp - 0xe0]
mov eax, dword [eax + ebx*4 + 0x10]
test eax, eax
je 0x471334
movsx ecx, byte [ecx + 0x18]
push esi
mov esi, dword [ebp - 0xdc]
push edi
push eax
mov eax, dword [esi + 0x10]
add ecx, ecx
push dword [eax + ecx*8]
mov eax, dword [ebp - 0xe0]
mov ecx, 0x17
test byte [eax + ebx*4 + 3], 4
mov eax, 0x12
cmovne eax, ecx
push eax
push dword [esi + 0xc4]
call edx
add esp, 0x18
mov ecx, esi
jmp 0x47639c
mov eax, dword [ebp - 0xe4]
mov ecx, dword [esi + ebx*4 + 4]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov ecx, esi
mov eax, dword [esi + 0x3c]
mov edi, dword [esi + 0x38]
mov dword [ebp - 0x104], eax
call fcn.0046d170
mov ecx, eax
mov dword [ebp - 0xd8], ecx
test ecx, ecx
jne 0x476670
mov ecx, dword [esi]
call fcn.00465b00
mov ecx, eax
mov dword [ebp - 0xd8], ecx
test ecx, ecx
mov ecx, dword [ebp - 0xdc]
mov dword [esi + 0x44], 0
jne 0x47444c
mov edx, dword [ecx + 0xc8]
test edx, edx
je 0x47444c
mov eax, dword [ebp - 0xe0]
mov eax, dword [eax + ebx*4 + 0x10]
test eax, eax
je 0x47444c
test byte [esi + 0x1c], 4
je 0x47444c
push dword [ebp - 0x104]
movsx ecx, byte [esi + 0x18]
mov esi, dword [ebp - 0xdc]
push edi
push eax
mov eax, dword [esi + 0x10]
add ecx, ecx
push dword [eax + ecx*8]
push 9
push dword [esi + 0xc4]
call edx
add esp, 0x18
mov ecx, esi
mov esi, dword [ebp - 0xe0]
mov edi, dword [ebp - 0xe8]
test byte [esi + ebx*4 + 8], 1
je case.default.0x470fd9
mov ebx, dword [ebp - 0xe4]
inc dword [ebx + 0x5c]
jmp case.default.0x470fd9
mov ebx, dword [ebp - 0xe4]
mov eax, dword [ebx + 0x5c]
add dword [ecx + 0x54], eax
mov dword [ecx + 0x50], eax
mov dword [ebx + 0x5c], 0
jmp case.default.0x470fd9
mov eax, dword [ebp - 0xe4]
mov ecx, dword [esi + ebx*4 + 4]
mov eax, dword [eax + 0x38]
mov edx, dword [ebp - 0xec]
mov ecx, dword [eax + ecx*4]
mov eax, dword [esi + ebx*4 + 0xc]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
lea eax, [ebp - 0x1f8]
push eax
push dword [esi + ebx*4 + 0x10]
call fcn.00478b20
add esp, 8
cmp dword [ebp - 0x1f8], 0
mov dword [ebp - 0xd8], eax
jmp 0x472145
mov eax, dword [esi + ebx*4 + 8]
mov ecx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [ebp - 0xe4]
mov ecx, dword [esi + ebx*4 + 4]
mov eax, dword [eax + 0x38]
mov edx, edi
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0xe8], edi
call fcn.00478ab0
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xd8], eax
jmp case.default.0x470fd9
mov eax, dword [esi + ebx*4 + 8]
mov ecx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, dword [esi + ebx*4 + 4]
mov dword [ebp - 0xe8], eax
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 0x38]
mov ebx, dword [eax + ecx*4]
mov ecx, ebx
mov edi, dword [ebx]
call fcn.0046d170
mov ecx, eax
mov dword [ebp - 0xd8], ecx
test ecx, ecx
jne 0x476670
test byte [ebx + 0x1c], 4
mov ecx, edi
jne 0x47458f
lea edx, [ebp - 0x268]
call fcn.00461f60
mov ecx, dword [ebp - 0xdc]
mov eax, dword [ecx + 0x58]
cdq
cmp dword [ebp - 0x264], edx
jg 0x4767e3
mov esi, dword [ebp - 0x268]
jl 0x474587
cmp esi, eax
ja 0x4767e3
mov dword [ebp - 0x1a0], esi
jmp 0x4745af
lea edx, [ebp - 0x1a0]
call fcn.00461ff0
mov ecx, dword [ebp - 0xdc]
mov esi, dword [ebp - 0x1a0]
cmp esi, dword [ecx + 0x58]
ja 0x4767e3
mov ecx, dword [ebp - 0xe8]
push 0
mov edx, esi
call fcn.004690b0
add esp, 4
test eax, eax
jne 0x476860
mov ecx, dword [ebp - 0xe8]
mov edx, 0xbe10
mov ax, word [ecx + 0x1c]
and ax, dx
or ax, 0x10
mov dword [ecx + 0x18], esi
mov word [ecx + 0x1c], ax
test byte [ebx + 0x1c], 4
mov ebx, ecx
jne 0x474617
push 0
push dword [ebx + 4]
xor edx, edx
push esi
mov ecx, edi
call fcn.00462200
mov ecx, dword [ebp - 0xdc]
add esp, 0xc
mov byte [ebx + 0x1e], 1
mov dword [ebp - 0xd8], eax
mov edi, ebx
jmp 0x4763a2
push dword [ebx + 4]
push esi
push 0
push edi
call fcn.004625e0
mov edi, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0xdc]
add esp, 0x10
mov byte [ebx + 0x1e], 1
mov dword [ebp - 0xd8], eax
jmp 0x4763a2
mov ecx, dword [esi + ebx*4 + 4]
mov ebx, dword [ebp - 0xe4]
mov eax, dword [ebx + 0x38]
mov esi, dword [eax + ecx*4]
cmp byte [esi + 0x19], 0
je 0x47466b
mov ecx, dword [ebp - 0xdc]
mov eax, 1
mov word [edi + 0x1c], ax
jmp 0x4763a2
cmp byte [esi + 0x1b], 0
je 0x4746a0
mov eax, dword [esi + 0x30]
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0x178], eax
mov eax, dword [esi + 0x34]
mov dword [ebp - 0x174], eax
mov eax, dword [ebp - 0x178]
mov dword [edi + 0x10], eax
mov eax, dword [ebp - 0x174]
mov dword [edi + 0x14], eax
jmp 0x4763a2
mov ecx, dword [esi + 0x20]
test ecx, ecx
je 0x4746e7
mov esi, dword [ecx]
lea edx, [ebp - 0x178]
mov eax, dword [esi]
push edx
mov eax, dword [eax + 0x30]
push ecx
call eax
add esp, 8
mov edx, esi
mov ecx, ebx
mov dword [ebp - 0xd8], eax
call fcn.0046e710
mov eax, dword [ebp - 0x178]
mov ecx, dword [ebp - 0xdc]
mov dword [edi + 0x10], eax
mov eax, dword [ebp - 0x174]
mov dword [edi + 0x14], eax
jmp 0x4763a2
mov ecx, esi
call fcn.0046d170
mov ecx, eax
mov dword [ebp - 0xd8], ecx
test ecx, ecx
jne 0x4766cb
cmp byte [esi + 0x1a], al
je 0x474732
mov eax, dword [esi + 0x38]
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0x178], eax
mov eax, dword [esi + 0x3c]
mov dword [ebp - 0x174], eax
mov eax, dword [ebp - 0x178]
mov dword [edi + 0x10], eax
mov eax, dword [ebp - 0x174]
mov dword [edi + 0x14], eax
jmp 0x4763a2
mov ecx, dword [esi]
lea edx, [ebp - 0x178]
call fcn.00461f60
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0x178]
mov dword [edi + 0x10], eax
mov eax, dword [ebp - 0x174]
mov dword [edi + 0x14], eax
jmp 0x4763a2
mov ecx, dword [esi + ebx*4 + 4]
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax]
mov word [eax + 0x19], 1
mov dword [eax + 0x44], 0
test ecx, ecx
je 0x47102f
call fcn.0045e870
mov ecx, dword [ebp - 0xdc]
jmp case.default.0x470fd9
mov eax, dword [ebp - 0xe4]
mov ecx, dword [esi + ebx*4 + 4]
mov eax, dword [eax + 0x38]
lea edx, [ebp - 0x184]
mov esi, dword [eax + ecx*4]
mov dword [ebp - 0x184], 0
mov ecx, dword [esi]
call fcn.00462950
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0x184]
mov byte [esi + 0x19], al
mov word [esi + 0x1a], 0
mov dword [esi + 0x44], 0
mov esi, dword [ebp - 0xe0]
mov ecx, dword [esi + ebx*4 + 8]
test ecx, ecx
jle 0x47102f
mov ebx, dword [ebp - 0xd8]
test eax, eax
je 0x4747ff
dec ecx
mov dword [ebp - 0xf0], ecx
mov ecx, dword [ebp - 0xdc]
jmp 0x4763ae
mov eax, dword [ebp - 0xe4]
inc dword [eax + 0x74]
jmp 0x47481b
mov eax, dword [ebp - 0xe4]
mov ecx, dword [esi + ebx*4 + 4]
mov eax, dword [eax + 0x38]
mov dword [ebp - 0x15c], 1
mov esi, dword [eax + ecx*4]
cmp dword [esi + 0x40], 0
je 0x474868
mov ecx, dword [ebp - 0xdc]
lea eax, [ebp - 0x15c]
push eax
mov edx, esi
call fcn.00478620
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0x15c]
add esp, 4
mov byte [esi + 0x19], al
mov esi, dword [ebp - 0xe0]
test eax, eax
jmp 0x47213f
mov edi, dword [esi]
mov ecx, edi
call fcn.004626d0
mov ecx, eax
mov dword [ebp - 0xd8], ecx
test ecx, ecx
jne 0x4748a5
cmp byte [edi + 0x51], al
jne 0x47488e
mov dword [ebp - 0x15c], 1
jmp 0x4748a5
mov ecx, edi
mov dword [ebp - 0x15c], 0
call fcn.00462840
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0x15c]
mov word [esi + 0x1a], 0
mov dword [esi + 0x44], 0
mov byte [esi + 0x19], al
mov esi, dword [ebp - 0xe0]
test eax, eax
jmp 0x47213f
mov ecx, dword [esi + ebx*4 + 4]
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov ecx, dword [ebp - 0xdc]
lea eax, [ebp - 0x164]
push eax
mov edx, esi
mov dword [ebp - 0x164], 0
call fcn.00478900
mov edi, dword [ebp - 0xe0]
add esp, 4
jmp 0x47494a
mov eax, dword [ebp - 0xe4]
mov ecx, dword [esi + ebx*4 + 4]
mov eax, dword [eax + 0x38]
cmp dword [eax + ecx*4], 0
je 0x47102f
mov eax, dword [ebp - 0xe4]
mov ecx, dword [esi + ebx*4 + 4]
mov eax, dword [eax + 0x38]
mov edi, dword [ebp - 0xe0]
mov esi, dword [eax + ecx*4]
mov eax, dword [edi + ebx*4 + 0xc]
mov dword [ebp - 0x164], eax
lea eax, [ebp - 0x164]
push eax
push dword [esi]
mov eax, dword [edi + ebx*4 + 0x10]
call eax
add esp, 8
mov dword [esi + 0x44], 0
cmp dword [ebp - 0x164], 0
mov dword [ebp - 0xd8], eax
jne 0x474980
mov ecx, dword [ebp - 0xe4]
mov byte [esi + 0x19], 0
mov eax, dword [edi + ebx*4 + 8]
dec eax
mov dword [ebp - 0xf0], eax
movzx eax, byte [edi + ebx*4 + 3]
inc dword [ecx + eax*4 + 0x6c]
jmp 0x474984
mov byte [esi + 0x19], 1
mov byte [esi + 0x1a], 0
mov esi, dword [ebp - 0xe0]
mov ebx, dword [ebp - 0xdc]
cmp dword [ebx + 0xe8], 0
jne 0x47681d
mov ecx, dword [ebx + 0x11c]
test ecx, ecx
je 0x4749e6
mov eax, dword [ebp - 0x13c]
cmp eax, dword [ebp - 0x158]
jb 0x4749e6
mov edi, dword [ebx + 0x124]
xor edx, edx
div edi
push dword [ebx + 0x120]
sub edi, edx
mov edx, dword [ebp - 0x13c]
add edi, edx
mov dword [ebp - 0x158], edi
call ecx
add esp, 4
test eax, eax
jne 0x47680b
mov edi, dword [ebp - 0xe8]
mov ecx, ebx
jmp case.default.0x470fd9
mov eax, dword [ebp - 0xe4]
mov ecx, dword [esi + ebx*4 + 4]
mov eax, dword [eax + 0x38]
mov edx, dword [ebp - 0xe0]
mov edi, dword [eax + ecx*4]
test byte [edx + ebx*4 + 3], 1
mov eax, dword [esi + ebx*4 + 8]
mov ecx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, dword [edi]
mov dword [ebp - 0x104], ecx
je 0x474a31
mov eax, dword [ebp - 0xe4]
inc dword [eax + 0x5c]
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x474a5f
mov ecx, esi
call fcn.00469240
mov ecx, eax
mov dword [ebp - 0xd8], ecx
test ecx, ecx
jne 0x471334
mov ecx, dword [ebp - 0x104]
mov edx, dword [ebp - 0xe0]
cmp dword [edi + 0x40], 0
je 0x474a8d
mov ecx, dword [ebp - 0xdc]
push esi
mov edx, edi
call fcn.004784c0
mov edi, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0xdc]
add esp, 4
mov dword [ebp - 0xd8], eax
jmp 0x4763a2
test byte [edx + ebx*4 + 3], 0x10
je 0x474a99
mov eax, dword [edi + 0xc]
jmp 0x474a9b
xor eax, eax
push eax
push dword [edx + ebx*4 + 0xc]
mov eax, dword [esi + 0x18]
push 0
push 0
cdq
push 0x5e0874
push edx
mov edx, dword [esi + 4]
push eax
call fcn.004658b0
mov ecx, dword [ebp - 0xdc]
mov dword [edi + 0x44], 0
mov edi, dword [ebp - 0xe8]
add esp, 0x1c
mov dword [ebp - 0xd8], eax
jmp 0x4763a2
mov eax, dword [ebp - 0xe4]
mov ecx, dword [esi + ebx*4 + 4]
mov eax, dword [eax + 0x38]
lea edx, [ebp - 0x2cc]
mov esi, dword [eax + ecx*4]
mov ecx, dword [ebp - 0xe0]
mov eax, dword [esi + 8]
mov edi, dword [esi]
mov dword [ebp - 0x2cc], eax
mov ax, word [ecx + ebx*4 + 0xc]
mov word [ebp - 0x2c8], ax
mov eax, dword [ecx + ebx*4 + 8]
mov ecx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
mov byte [ebp - 0x2c6], 0
lea eax, [ecx + eax*8]
mov dword [ebp - 0x2c4], eax
lea eax, [ebp - 0x218]
push eax
push 0
push 0
push 0
mov ecx, edi
call fcn.004629b0
mov ecx, eax
add esp, 0x10
mov dword [ebp - 0xd8], ecx
test ecx, ecx
jne 0x474b60
cmp dword [ebp - 0x218], eax
jne 0x474b60
mov ecx, edi
call fcn.00465b00
mov dword [ebp - 0xd8], eax
mov edi, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0xdc]
mov dword [esi + 0x44], 0
jmp 0x4763a2
mov ecx, dword [esi + ebx*4 + 4]
mov eax, dword [ebp - 0xe4]
mov ebx, dword [ebp - 0xe8]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov eax, 1
mov edi, dword [esi]
mov ecx, esi
mov word [ebx + 0x1c], ax
call fcn.0046d170
mov ecx, eax
mov dword [ebp - 0xd8], ecx
test ecx, ecx
jne 0x476670
cmp byte [esi + 0x19], al
jne 0x471334
lea eax, [ebp - 0x1e0]
xorps xmm0, xmm0
push eax
mov edx, edi
movlpd qword [ebp - 0x1e0], xmm0
call fcn.0046e390
mov ecx, eax
add esp, 4
mov dword [ebp - 0xd8], ecx
test ecx, ecx
mov ecx, dword [ebp - 0xdc]
jne 0x476676
mov eax, dword [ebp - 0x1e0]
mov dword [ebx + 0x10], eax
mov eax, dword [ebp - 0x1dc]
mov dword [ebx + 0x14], eax
mov eax, 4
mov word [ebx + 0x1c], ax
jmp 0x47639c
mov eax, dword [ebp - 0xe4]
mov ecx, dword [esi + ebx*4 + 4]
mov eax, dword [eax + 0x38]
cmp dl, 0x70
mov ecx, dword [eax + ecx*4]
mov edx, dword [ebp - 0xec]
mov eax, dword [ecx + 8]
mov dword [ebp - 0x340], eax
mov ax, word [esi + ebx*4 + 0x10]
mov word [ebp - 0x33c], ax
sbb al, al
mov byte [ebp - 0x33a], al
mov eax, dword [esi + ebx*4 + 0xc]
mov dword [ebp - 0x150], 0
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [ebp - 0x338], eax
lea eax, [ebp - 0x150]
push eax
lea edx, [ebp - 0x340]
call fcn.0046e510
add esp, 4
test byte [esi + ebx*4], 1
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0x150]
jne 0x474c86
neg eax
jmp 0x474c87
inc eax
mov dword [ebp - 0x150], eax
test eax, eax
jle 0x47102f
mov ecx, dword [esi + ebx*4 + 8]
dec ecx
mov dword [ebp - 0xf0], ecx
mov ecx, dword [ebp - 0xdc]
jmp case.default.0x470fd9
mov eax, dword [ecx + 4]
xor edx, edx
test eax, eax
je 0x474ce4
cmp dword [eax + 0x28], 0xbdf20da3
jne 0x474cd7
mov ecx, dword [eax + 0x58]
test ecx, 0x200
je 0x474cd7
and cl, 0xc
cmp cl, 8
jae 0x474cd7
cmp dword [eax + 0x4c], 0
jl 0x474cd7
inc edx
mov eax, dword [eax + 0x34]
test eax, eax
jne 0x474cb4
mov ecx, dword [ebp - 0xdc]
mov eax, 1
mov word [edi + 0x1c], ax
cmp edx, eax
jle 0x474d0b
mov eax, dword [ebp - 0xe4]
mov ebx, 6
mov dword [ebp - 0xd8], ebx
mov byte [eax + 0x56], 2
jmp 0x4763ae
mov eax, dword [esi + ebx*4 + 0xc]
mov ecx, dword [ecx + 0x10]
mov dword [ebp - 0x104], eax
lea edx, [ebp - 0x19c]
add eax, eax
push edx
mov edx, dword [esi + ebx*4 + 4]
mov ecx, dword [ecx + eax*8 + 4]
mov dword [ebp - 0x19c], 0
call fcn.00466490
mov ecx, dword [ebp - 0x19c]
mov dword [ebp - 0xd8], eax
mov eax, 4
mov word [edi + 0x1c], ax
mov eax, ecx
cdq
add esp, 4
cmp dword [ebp - 0xd8], 0
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], edx
jne 0x47102f
test ecx, ecx
je 0x47102f
push dword [esi + ebx*4 + 4]
mov ebx, dword [ebp - 0x104]
push ecx
mov ecx, dword [ebp - 0xdc]
mov edx, ebx
call fcn.00487370
mov ecx, dword [ebp - 0xdc]
add esp, 8
inc bl
mov byte [ebp - 0x121], bl
jmp case.default.0x470fd9
mov ecx, dword [ecx + 0x10]
xor edx, edx
cmp dword [esi + ebx*4 + 0xc], edx
lea eax, [ebp - 0x1a4]
cmove eax, edx
mov edx, dword [esi + ebx*4 + 4]
push eax
mov eax, dword [esi + ebx*4 + 8]
add eax, eax
mov dword [ebp - 0x1a4], 0
mov ecx, dword [ecx + eax*8 + 4]
call fcn.004661d0
add esp, 4
cmp dword [esi + ebx*4 + 0xc], 0
mov dword [ebp - 0xd8], eax
je 0x47102f
mov ecx, dword [ebp - 0xe4]
mov eax, dword [ebp - 0x1a4]
add dword [ecx + 0x5c], eax
mov ecx, dword [esi + ebx*4 + 0xc]
test ecx, ecx
jle 0x47102f
mov ebx, dword [ebp - 0xec]
lea ecx, [ecx + ecx*4]
cdq
add dword [ebx + ecx*8 + 0x10], eax
adc dword [ebx + ecx*8 + 0x14], edx
mov ecx, dword [ebp - 0xdc]
jmp case.default.0x470fd9
mov eax, dword [ebp - 0xe4]
mov ecx, dword [esi + ebx*4 + 4]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov edx, dword [ecx + 0x40]
test edx, edx
je 0x474e45
mov ecx, dword [ebp - 0xdc]
call fcn.00477ea0
mov ecx, dword [ebp - 0xdc]
jmp case.default.0x470fd9
mov ecx, dword [ecx]
push 0
mov edx, dword [ecx + 0x44]
mov ecx, dword [ecx]
call fcn.004661d0
mov ecx, dword [ebp - 0xdc]
add esp, 4
mov dword [ebp - 0xd8], eax
jmp case.default.0x470fd9
mov ecx, dword [esi + ebx*4 + 4]
mov eax, dword [ebp - 0xdc]
shl ecx, 4
add ecx, dword [eax + 0x10]
xor eax, eax
cmp dl, 0x76
mov ecx, dword [ecx + 4]
setne al
lea edx, [ebp - 0x1a8]
mov dword [ebp - 0x1a8], 0
inc eax
push eax
call fcn.00465fd0
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0x1a8]
cdq
add esp, 4
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], edx
jmp case.default.0x470fd9
mov edx, dword [esi + ebx*4 + 4]
push dword [esi + ebx*4 + 0x10]
mov ebx, dword [ebp - 0xdc]
cmp edx, 1
mov eax, str.sqlite_master
mov ecx, str.sqlite_temp_master
cmovne ecx, eax
mov eax, dword [ebp - 0xdc]
mov dword [ebp - 0x260], eax
mov eax, dword [ebp - 0xe4]
add eax, 0x2c
mov dword [ebp - 0x258], edx
mov dword [ebp - 0x25c], eax
mov eax, dword [ebx + 0x10]
push ecx
shl edx, 4
push dword [edx + eax]
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
push ebx
call fcn.0044ee10
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x474f28
mov ecx, ebx
mov dword [ebp - 0xd8], 7
lea ebx, [eax + 7]
jmp 0x474f7c
push 0
lea eax, [ebp - 0x260]
push eax
push fcn.00499f20
push esi
push ebx
mov byte [ebx + 0x89], 1
mov dword [ebp - 0x254], 0
call fcn.004966a0
add esp, 0x14
test eax, eax
cmove eax, dword [ebp - 0x254]
mov edx, esi
mov ecx, ebx
mov dword [ebp - 0xd8], eax
call fcn.0044d450
mov ecx, ebx
mov ebx, dword [ebp - 0xd8]
mov byte [ecx + 0x89], 0
test ebx, ebx
je 0x474f87
call fcn.00484c30
mov ecx, dword [ebp - 0xdc]
cmp ebx, 7
je 0x476866
mov esi, dword [ebp - 0xe0]
jmp 0x4763ae
mov edx, dword [esi + ebx*4 + 4]
call fcn.00483140
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xd8], eax
jmp case.default.0x470fd9
push dword [esi + ebx*4 + 0x10]
mov edx, dword [esi + ebx*4 + 4]
call fcn.00484f10
mov ecx, dword [ebp - 0xdc]
add esp, 4
jmp case.default.0x470fd9
push dword [esi + ebx*4 + 0x10]
mov edx, dword [esi + ebx*4 + 4]
call fcn.004849e0
mov ecx, dword [ebp - 0xdc]
add esp, 4
jmp case.default.0x470fd9
push dword [esi + ebx*4 + 0x10]
mov edx, dword [esi + ebx*4 + 4]
call fcn.004a7660
mov ecx, dword [ebp - 0xdc]
add esp, 4
jmp case.default.0x470fd9
mov edi, dword [esi + ebx*4 + 8]
mov dword [ebp - 0x104], edi
lea edx, [edi*4 + 4]
call fcn.0044d680
mov edx, eax
mov dword [ebp - 0x114], edx
test edx, edx
je 0x476860
mov ecx, dword [esi + ebx*4 + 0xc]
lea eax, [ecx + ecx*4]
mov ecx, dword [esi + ebx*4 + 4]
mov dword [ebp - 0x118], eax
mov eax, dword [ebp - 0xec]
lea ecx, [ecx + ecx*4]
xor esi, esi
lea eax, [eax + ecx*8]
mov dword [ebp - 0xf8], eax
test edi, edi
jle 0x475085
mov ebx, dword [ebp - 0x104]
mov edi, eax
lea ecx, [ecx]
mov ecx, edi
call fcn.004695a0
mov edx, dword [ebp - 0x114]
inc esi
mov dword [edx + esi*4 - 4], eax
add edi, 0x28
cmp esi, ebx
jl 0x475060
mov ebx, dword [ebp - 0xf4]
mov edi, dword [ebp - 0x104]
mov ecx, dword [ebp - 0xec]
lea eax, [ebp - 0x1f4]
push eax
mov eax, dword [ebp - 0x118]
mov dword [edx + esi*4], 0
push dword [ecx + eax*8 + 0x10]
mov eax, dword [ebp - 0xe0]
push edi
movzx eax, byte [eax + ebx*4 + 3]
mov ebx, dword [ebp - 0xdc]
add eax, eax
mov ecx, dword [ebx + 0x10]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.004673b0
mov edx, dword [ebp - 0x114]
add esp, 0xc
mov ecx, ebx
mov edi, eax
call fcn.0044d450
mov esi, dword [ebp - 0x1f4]
mov ecx, dword [ebp - 0x118]
mov ebx, dword [ebp - 0xec]
mov eax, esi
cdq
sub dword [ebx + ecx*8 + 0x10], eax
sbb dword [ebx + ecx*8 + 0x14], edx
mov ebx, dword [ebp - 0xf8]
mov ecx, ebx
call fcn.004698d0
test esi, esi
je 0x475120
test edi, edi
je 0x476860
push fcn.0044d3b0
push 1
push 0xffffffffffffffff
mov edx, edi
mov ecx, ebx
call fcn.00469c10
add esp, 0xc
movzx edx, byte [ebp - 0x110]
mov ecx, ebx
call fcn.00469090
mov edi, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0xdc]
jmp 0x4763a2
mov eax, dword [esi + ebx*4 + 4]
mov ecx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x1c], 0x20
lea esi, [ecx + eax*8]
mov eax, dword [ebp - 0xe0]
mov eax, dword [eax + ebx*4 + 8]
lea edi, [eax + eax*4]
jne 0x475174
mov ecx, esi
call fcn.00469950
test byte [esi + 0x1c], 0x20
je 0x476860
mov eax, dword [ebp - 0xec]
mov ecx, dword [esi + 0x10]
push dword [eax + edi*8 + 0x14]
push dword [eax + edi*8 + 0x10]
call fcn.004560f0
mov edi, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0xdc]
add esp, 8
jmp 0x4763a2
mov eax, dword [esi + ebx*4 + 4]
mov edi, dword [ebp - 0xec]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 0x1c], 0x20
lea esi, [edi + eax*8]
je 0x4751f0
mov ecx, dword [esi + 0x10]
lea edx, [ebp - 0x238]
call fcn.00456470
test eax, eax
je 0x4751f0
mov esi, dword [ebp - 0xe0]
push dword [ebp - 0x234]
mov eax, dword [esi + ebx*4 + 0xc]
push dword [ebp - 0x238]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
call fcn.00469920
add esp, 8
jmp 0x47498e
mov ecx, esi
call fcn.004698d0
mov esi, dword [ebp - 0xe0]
mov ecx, dword [esi + ebx*4 + 8]
dec ecx
mov dword [ebp - 0xf0], ecx
jmp 0x47498e
mov eax, dword [esi + ebx*4 + 4]
mov edx, dword [ebp - 0xec]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x1c], 0x20
lea esi, [edx + eax*8]
mov eax, dword [ecx + ebx*4 + 0xc]
lea edi, [eax + eax*4]
mov eax, dword [ecx + ebx*4 + 0x10]
mov dword [ebp - 0x104], eax
jne 0x475258
mov ecx, esi
call fcn.00469950
test byte [esi + 0x1c], 0x20
je 0x476860
mov eax, dword [ebp - 0x104]
mov edx, dword [ebp - 0xec]
test eax, eax
je 0x47529f
push dword [edx + edi*8 + 0x14]
mov ecx, dword [esi + 0x10]
push dword [edx + edi*8 + 0x10]
mov edx, eax
call fcn.004564d0
add esp, 8
test eax, eax
je 0x475297
mov esi, dword [ebp - 0xe0]
mov edi, dword [ebp - 0xe8]
mov ecx, dword [esi + ebx*4 + 8]
dec ecx
mov dword [ebp - 0xf0], ecx
mov ecx, dword [ebp - 0xdc]
jmp case.default.0x470fd9
mov eax, dword [ebp - 0x104]
test eax, eax
js 0x471334
jmp 0x475174
mov eax, dword [esi + ebx*4 + 0xc]
mov ecx, dword [ebp - 0xec]
mov edx, dword [esi + ebx*4 + 0x10]
cmp byte [esi + ebx*4 + 3], 0
mov ebx, dword [ebp - 0xe4]
lea eax, [eax + eax*4]
mov dword [ebp - 0x104], edx
lea eax, [ecx + eax*8]
mov dword [ebp - 0xf4], eax
je 0x4752f4
mov eax, dword [ebx + 0xb0]
mov ecx, dword [edx + 0x14]
test eax, eax
je 0x4752f4
cmp dword [eax + 0x18], ecx
je 0x47102f
mov eax, dword [eax + 4]
test eax, eax
jne 0x4752e4
mov ecx, dword [ebp - 0xdc]
mov eax, dword [ebx + 0xb8]
cmp eax, dword [ecx + 0x80]
jl 0x475334
push str.too_many_levels_of_trigger_recursion
push ecx
lea eax, [ebx + 0x2c]
push eax
mov dword [ebp - 0xd8], 1
call fcn.0044d820
mov ecx, dword [ebp - 0xdc]
add esp, 0xc
mov ebx, 1
jmp 0x4763ae
mov ebx, dword [ebp - 0xf4]
test byte [ebx + 0x1c], 0x40
jne 0x475415
mov ecx, dword [edx + 0xc]
mov esi, dword [edx + 8]
add esi, ecx
lea eax, [esi + esi*4]
lea ecx, [ecx + eax*2]
mov eax, dword [edx + 0x10]
lea ecx, [ecx + 0x12]
lea edx, [eax + ecx*4]
mov ecx, dword [ebp - 0xdc]
call fcn.0044d650
mov edi, eax
test edi, edi
je 0x476860
mov ecx, ebx
call fcn.004694a0
mov edx, dword [ebp - 0x104]
mov dword [ebx + 0x10], edi
mov eax, 0x40
mov word [ebx + 0x1c], ax
mov ebx, dword [ebp - 0xe4]
mov dword [edi], ebx
mov dword [edi + 0x3c], esi
mov eax, dword [edx + 0xc]
mov dword [edi + 0x40], eax
mov eax, dword [ebp - 0xf0]
mov dword [edi + 0x2c], eax
mov eax, dword [ebx + 8]
mov dword [edi + 0xc], eax
mov eax, dword [ebx + 0x1c]
mov dword [edi + 0x34], eax
mov eax, dword [ebx + 0x38]
mov dword [edi + 0x14], eax
mov eax, dword [ebx + 0x24]
mov dword [edi + 0x28], eax
mov eax, dword [ebx + 4]
mov dword [edi + 8], eax
mov eax, dword [ebx + 0x20]
mov dword [edi + 0x30], eax
mov eax, dword [edx + 0x14]
mov dword [edi + 0x18], eax
mov eax, dword [ebx + 0xc8]
mov dword [edi + 0x10], eax
mov eax, dword [ebx + 0xc4]
mov dword [edi + 0x38], eax
lea eax, [esi*4 + 9]
add eax, esi
lea ecx, [edi + eax*8]
lea eax, [edi + 0x48]
cmp eax, ecx
je 0x47541e
mov esi, dword [ebp - 0xdc]
mov ebx, 0x80
lea ecx, [ecx]
mov word [eax + 0x1c], bx
mov dword [eax], esi
add eax, 0x28
cmp eax, ecx
jne 0x475400
mov edx, dword [ebp - 0x104]
jmp 0x475418
mov edi, dword [ebx + 0x10]
mov ebx, dword [ebp - 0xe4]
inc dword [ebx + 0xb8]
mov eax, dword [ebx + 0xb0]
mov dword [edi + 4], eax
mov eax, dword [ebp - 0x134]
mov dword [edi + 0x20], eax
mov eax, dword [ebp - 0x138]
mov dword [edi + 0x24], eax
mov eax, dword [ebx + 0x5c]
mov dword [edi + 0x44], eax
lea ecx, [edi + 0x20]
mov dword [ebx + 8], ecx
mov dword [ebx + 0x5c], 0
mov dword [ebx + 0xb0], edi
mov eax, dword [edi + 0x3c]
mov dword [ebx + 0x1c], eax
movzx eax, word [edi + 0x40]
mov dword [ebx + 0x24], eax
mov eax, dword [ebx + 0x1c]
inc eax
mov dword [ebp - 0xec], ecx
lea eax, [eax + eax*4]
mov dword [ebp - 0xf0], 0xffffffff
lea ecx, [ecx + eax*8]
mov dword [ebx + 0x38], ecx
mov esi, dword [edx]
mov dword [ebx + 4], esi
mov eax, dword [edx + 4]
mov dword [ebx + 0x20], eax
mov eax, dword [ebx + 0x24]
mov dword [ebp - 0xe0], esi
lea ecx, [ecx + eax*4]
mov dword [ebx + 0xc8], ecx
mov eax, dword [edx + 0x10]
push eax
push 0
push ecx
mov dword [ebx + 0xc4], eax
call fcn.005877c0
mov edi, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0xdc]
add esp, 0xc
jmp case.default.0x470fd9
mov eax, dword [ebp - 0xe4]
push 0x1000
mov edx, dword [eax + 0xb0]
mov eax, dword [edx + 0x2c]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 8]
mov eax, dword [eax + ecx*4 + 4]
add eax, dword [esi + ebx*4 + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
lea edx, [eax + ecx*8]
mov ecx, edi
call fcn.00469a30
mov ecx, dword [ebp - 0xdc]
add esp, 4
jmp case.default.0x470fd9
test dword [ecx + 0x18], 0x1000000
mov eax, dword [esi + ebx*4 + 8]
cdq
je 0x475524
add dword [ecx + 0x1f8], eax
adc dword [ecx + 0x1fc], edx
jmp case.default.0x470fd9
cmp dword [esi + ebx*4 + 4], 0
je 0x47553c
add dword [ecx + 0x1f0], eax
adc dword [ecx + 0x1f4], edx
jmp case.default.0x470fd9
mov ebx, dword [ebp - 0xe4]
add dword [ebx + 0x90], eax
adc dword [ebx + 0x94], edx
jmp case.default.0x470fd9
cmp dword [esi + ebx*4 + 4], 0
je 0x47558e
mov eax, dword [ecx + 0x1f0]
or eax, dword [ecx + 0x1f4]
jne case.default.0x470fd9
mov eax, dword [ecx + 0x1f8]
or eax, dword [ecx + 0x1fc]
jne case.default.0x470fd9
mov ebx, dword [esi + ebx*4 + 8]
dec ebx
mov dword [ebp - 0xf0], ebx
jmp case.default.0x470fd9
mov eax, dword [ebp - 0xe4]
mov edx, dword [ebp - 0xe4]
mov eax, dword [eax + 0x90]
or eax, dword [edx + 0x94]
jmp 0x475566
mov eax, dword [ebp - 0xe4]
mov edx, dword [eax + 0xb0]
test edx, edx
je 0x4755d8
mov eax, dword [edx + 4]
test eax, eax
je 0x4755c9
nop
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x4755c0
mov eax, dword [esi + ebx*4 + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
lea edi, [eax + ecx*8]
jmp 0x4755e8
mov eax, dword [esi + ebx*4 + 4]
mov ecx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov ecx, edi
call fcn.00469750
mov eax, dword [esi + ebx*4 + 8]
mov ecx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.00469750
mov ecx, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
cmp dword [edi + 0x14], ecx
jg 0x471334
jl 0x475620
cmp dword [edi + 0x10], eax
jae 0x471334
mov dword [edi + 0x14], ecx
mov ecx, dword [ebp - 0xdc]
mov dword [edi + 0x10], eax
mov edi, dword [ebp - 0xe8]
jmp 0x4763a2
mov eax, dword [esi + ebx*4 + 4]
mov edx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
cmp dword [edx + eax*8 + 0x14], 0
jl case.default.0x470fd9
jg 0x47557e
cmp dword [edx + eax*8 + 0x10], 0
jbe case.default.0x470fd9
mov ebx, dword [esi + ebx*4 + 8]
dec ebx
mov dword [ebp - 0xf0], ebx
jmp case.default.0x470fd9
mov eax, dword [esi + ebx*4 + 4]
mov edx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
cmp dword [edx + eax*8 + 0x14], 0
jg case.default.0x470fd9
jl 0x47557e
cmp dword [edx + eax*8 + 0x10], 0
jae case.default.0x470fd9
mov ebx, dword [esi + ebx*4 + 8]
dec ebx
mov dword [ebp - 0xf0], ebx
jmp case.default.0x470fd9
mov eax, dword [esi + ebx*4 + 4]
mov edi, dword [ebp - 0xec]
lea ecx, [eax + eax*4]
mov eax, dword [esi + ebx*4 + 0xc]
cdq
add dword [edi + ecx*8 + 0x10], eax
mov eax, edi
adc dword [eax + ecx*8 + 0x14], edx
mov eax, dword [eax + ecx*8 + 0x10]
mov edx, edi
mov edi, dword [ebp - 0xe8]
or eax, dword [edx + ecx*8 + 0x14]
jne 0x47102f
mov ecx, dword [esi + ebx*4 + 8]
dec ecx
mov dword [ebp - 0xf0], ecx
mov ecx, dword [ebp - 0xdc]
jmp case.default.0x470fd9
mov eax, dword [esi + ebx*4 + 8]
mov ecx, dword [ebp - 0xec]
movzx edx, byte [esi + ebx*4 + 3]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [ebp - 0xe4]
mov esi, dword [eax + 0xc]
xor eax, eax
test edx, edx
jle 0x475720
mov dword [esi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, edx
jl 0x475715
mov ecx, dword [ebp - 0xe0]
mov eax, dword [ecx + ebx*4 + 0x10]
mov dword [ebp - 0x318], eax
mov eax, dword [ecx + ebx*4 + 0xc]
mov ecx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [ebp - 0x2e8], eax
inc dword [eax + 0x18]
mov ecx, dword [ebp - 0x318]
mov eax, 1
mov word [ebp - 0x2f4], ax
mov eax, dword [ebp - 0xdc]
mov dword [ebp - 0x30c], 0
mov dword [ebp - 0x2ec], 0
mov dword [ebp - 0x2f0], 0
mov dword [ebp - 0x310], eax
mov dword [ebp - 0x2d8], 0
mov dword [ebp - 0x2e4], 0
mov byte [ebp - 0x2d4], 0
test byte [ecx + 2], 0x20
je 0x4757b6
mov eax, dword [ebp - 0xe0]
mov eax, dword [eax + ebx*4 - 4]
mov dword [ebp - 0x2e4], eax
push esi
push edx
lea eax, [ebp - 0x318]
push eax
mov eax, dword [ecx + 0x10]
call eax
add esp, 0xc
cmp dword [ebp - 0x2d8], 0
je 0x475807
mov dl, 1
lea ecx, [ebp - 0x310]
call fcn.00469e90
push eax
mov eax, dword [ebp - 0xe4]
push 0x5e08f0
push dword [ebp - 0xdc]
add eax, 0x2c
push eax
call fcn.0044d820
mov eax, dword [ebp - 0x2d8]
add esp, 0x10
mov dword [ebp - 0xd8], eax
cmp byte [ebp - 0x2d4], 0
mov esi, dword [ebp - 0xe0]
je 0x475836
mov eax, dword [esi + ebx*4 - 0x10]
test eax, eax
je 0x475836
mov ecx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
push 0
push 1
lea ecx, [ecx + eax*8]
call fcn.00469920
add esp, 8
lea ecx, [ebp - 0x310]
call fcn.004694a0
mov ecx, dword [ebp - 0xdc]
jmp case.default.0x470fd9
mov eax, dword [esi + ebx*4 + 4]
mov ecx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, dword [ebp - 0xe0]
mov ecx, esi
mov edx, dword [eax + ebx*4 + 0x10]
call fcn.004693a0
mov dword [ebp - 0xd8], eax
test eax, eax
je 0x47589e
mov dl, 1
mov ecx, esi
call fcn.00469e90
push eax
mov eax, dword [ebp - 0xe4]
push 0x5e08f0
push dword [ebp - 0xdc]
add eax, 0x2c
push eax
call fcn.0044d820
add esp, 0x10
movzx edx, byte [ebp - 0x110]
mov ecx, esi
call fcn.00469090
mov ecx, esi
call fcn.00469a00
mov ecx, dword [ebp - 0xdc]
test eax, eax
jne 0x4767e3
jmp 0x4763a2
mov edx, dword [esi + ebx*4 + 4]
lea eax, [ebp - 0xcc]
push eax
lea eax, [ebp - 0xd0]
push eax
push dword [esi + ebx*4 + 8]
mov dword [ebp - 0xd4], 0
mov dword [ebp - 0xcc], 0xffffffff
mov dword [ebp - 0xd0], 0xffffffff
call fcn.004bc010
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0xd8], ecx
cmp ecx, 5
jne 0x475923
mov dword [ebp - 0xd8], 0
mov dword [ebp - 0xd4], 1
mov eax, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0xec]
mov eax, dword [eax + ebx*4 + 0xc]
xor esi, esi
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
jmp 0x475940
mov eax, dword [ebp + esi*4 - 0xd4]
cdq
push edx
push eax
mov ecx, edi
call fcn.00469920
inc esi
add esp, 8
add edi, 0x28
cmp esi, 3
jl 0x475940
mov edi, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0xdc]
jmp 0x4763a2
mov eax, dword [ebp - 0xe0]
mov esi, dword [esi + ebx*4 + 0xc]
mov ecx, dword [eax + ebx*4 + 4]
mov eax, dword [ebp - 0xdc]
add ecx, ecx
mov eax, dword [eax + 0x10]
cmp esi, 0xffffffff
mov eax, dword [eax + ecx*8 + 4]
mov dword [ebp - 0x104], eax
mov eax, dword [eax + 4]
mov edi, dword [eax]
movzx edx, byte [edi + 5]
cmove esi, edx
cmp byte [edi + 0x10], 3
mov dword [ebp - 0xf4], edx
jae 0x4759c2
mov eax, dword [edi + 0x40]
cmp dword [eax], 0
je 0x4759c4
cmp dword [edi + 0x4c], 0
jl 0x4759c4
jg 0x4759c2
cmp dword [edi + 0x48], 0
jbe 0x4759c4
mov esi, edx
cmp byte [edi + 0xf], 0
mov ecx, 0x5e0874
jne 0x4759d5
mov ecx, dword [edi + 0xa8]
cmp esi, 5
jne 0x475a3e
call fcn.0044f900
test eax, eax
je 0x4759ee
mov ecx, edi
call fcn.0045b460
test eax, eax
jne 0x475a3e
mov esi, edx
mov eax, dword [ebp - 0xd8]
test eax, eax
je 0x475a00
mov esi, dword [ebp - 0xf4]
mov edx, esi
mov ecx, edi
call fcn.0045b320
mov esi, dword [ebp - 0xe0]
mov edx, dword [ebp - 0xec]
mov ecx, dword [esi + ebx*4 + 8]
lea ecx, [ecx + ecx*4]
lea ebx, [edx + ecx*8]
mov ecx, 0xa02
mov dword [ebp - 0xe8], ebx
mov word [ebx + 0x1c], cx
cmp eax, 6
jne 0x475b16
xor ecx, ecx
jmp 0x475b1d
cmp esi, edx
je 0x4759f0
cmp edx, 5
je 0x475a4c
cmp esi, 5
jne 0x4759f0
mov ecx, dword [ebp - 0xdc]
cmp byte [ecx + 0x3e], 0
je 0x475ac7
cmp dword [ecx + 0x90], 1
jg 0x475ac7
cmp edx, 5
jne 0x475a8a
mov ecx, edi
call fcn.0045b600
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x4759fa
mov edx, esi
mov ecx, edi
call fcn.0045b320
jmp 0x475aa8
cmp edx, 4
jne 0x475a9b
mov edx, 2
mov ecx, edi
call fcn.0045b320
cmp dword [ebp - 0xd8], 0
jne 0x4759fa
mov ecx, dword [ebp - 0x104]
xor edx, edx
cmp esi, 5
sete dl
inc edx
call fcn.00467990
mov dword [ebp - 0xd8], eax
jmp 0x4759f6
mov edx, str.out_of
mov eax, str.into
cmp esi, 5
cmovne eax, edx
push eax
mov eax, dword [ebp - 0xe4]
push str.cannot_change__s_wal_mode_from_within_a_transaction
push ecx
add eax, 0x2c
push eax
mov dword [ebp - 0xd8], 1
call fcn.0044d820
mov edi, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0xdc]
mov esi, dword [ebp - 0xe0]
add esp, 0x10
mov ebx, 1
jmp 0x4763ae
mov ecx, dword [eax*4 + 0x5df8f0]
mov dword [ebx + 4], ecx
call fcn.0044f900
movzx edx, byte [ebp - 0x110]
mov ecx, ebx
mov dword [ebx + 0x18], eax
mov byte [ebx + 0x1e], 1
call fcn.00469090
mov edi, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0xdc]
jmp case.default.0x470fd9
mov ecx, dword [ebp - 0xe4]
mov edx, dword [ebp - 0xdc]
lea ecx, [ecx + 0x2c]
call fcn.004ab320
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xd8], eax
jmp case.default.0x470fd9
mov ecx, dword [esi + ebx*4 + 4]
mov eax, dword [ebp - 0xdc]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov ecx, dword [eax + ecx*8 + 4]
call fcn.00461540
mov ecx, eax
mov dword [ebp - 0xd8], ecx
cmp ecx, 0x65
jne 0x47102f
mov ecx, dword [esi + ebx*4 + 8]
dec ecx
mov dword [ebp - 0xf0], ecx
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xd8], 0
xor ebx, ebx
jmp 0x4763ae
cmp dword [esi + ebx*4 + 4], 0
jne 0x475bcc
call fcn.0046e640
jmp case.default.0x470fd9
mov ebx, dword [ebp - 0xe4]
or dword [ebx + 0x58], 0x20
jmp case.default.0x470fd9
mov al, byte [esi + ebx*4 + 0xc]
mov byte [ebp - 0x1f0], al
test al, al
jne 0x475bf6
test dword [ecx + 0x18], 0x4000
jne case.default.0x470fd9
mov eax, dword [esi + ebx*4 + 4]
mov ecx, dword [ecx + 0x10]
push dword [ebp - 0x1f0]
mov edx, dword [esi + ebx*4 + 8]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.004678b0
mov ecx, eax
add esp, 4
mov dword [ebp - 0xd8], ecx
cmp cl, 6
jne 0x47102f
push dword [esi + ebx*4 + 0x10]
mov eax, dword [ebp - 0xe4]
push str.database_table_is_locked:__s
push dword [ebp - 0xdc]
add eax, 0x2c
push eax
call fcn.0044d820
mov ecx, dword [ebp - 0xdc]
add esp, 0x10
jmp case.default.0x470fd9
mov esi, dword [esi + ebx*4 + 0x10]
mov edx, esi
call fcn.004ac910
mov dword [ebp - 0xd8], eax
test esi, esi
je 0x471109
mov edx, dword [esi + 8]
mov ecx, dword [ebp - 0xe4]
call fcn.0046e710
mov ecx, dword [ebp - 0xdc]
jmp 0x4763a2
mov eax, dword [ebp - 0xe4]
mov edx, dword [esi + ebx*4 + 4]
add eax, 0x2c
push eax
push dword [esi + ebx*4 + 0x10]
call fcn.004ac490
mov ecx, dword [ebp - 0xdc]
add esp, 8
mov dword [ebp - 0xd8], eax
jmp case.default.0x470fd9
mov edx, dword [ebp - 0xe4]
mov eax, dword [edx + 0x58]
and eax, 0xfffffffb
or eax, 8
mov dword [edx + 0x58], eax
push dword [esi + ebx*4 + 0x10]
mov edx, dword [esi + ebx*4 + 4]
call fcn.004ac760
mov ecx, dword [ebp - 0xe4]
add esp, 4
and dword [ecx + 0x58], 0xfffffff3
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xd8], eax
jmp case.default.0x470fd9
mov eax, dword [esi + ebx*4 + 0x10]
mov dword [ebp - 0x160], 0
mov esi, dword [eax + 8]
lea eax, [ebp - 0x160]
mov edi, dword [esi]
push eax
mov eax, dword [edi + 0x18]
push esi
call eax
mov ecx, dword [ebp - 0xe4]
add esp, 8
mov edx, esi
mov dword [ebp - 0xd8], eax
call fcn.0046e710
cmp dword [ebp - 0xd8], 0
jne 0x471334
mov eax, dword [ebp - 0x160]
mov ecx, dword [ebp - 0xe4]
mov dword [eax], esi
mov esi, dword [ebp - 0xe0]
push 0
mov edx, dword [esi + ebx*4 + 4]
push 0xffffffffffffffff
push 0
call fcn.00470c10
add esp, 0xc
test eax, eax
je 0x475d73
mov ecx, dword [ebp - 0x160]
mov edi, dword [ebp - 0xe8]
mov dword [eax + 0x20], ecx
mov ecx, dword [ebp - 0xdc]
jmp case.default.0x470fd9
mov eax, dword [ebp - 0xdc]
push dword [ebp - 0x160]
mov byte [eax + 0x40], 1
mov eax, dword [edi + 0x1c]
call eax
mov edi, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0xdc]
add esp, 4
jmp case.default.0x470fd9
mov eax, dword [esi + ebx*4 + 0xc]
mov edi, dword [ebp - 0xe4]
mov esi, dword [ebp - 0xec]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xe0]
add esi, 0x28
mov ecx, dword [eax + ebx*4 + 4]
mov eax, dword [edi + 0x38]
mov edi, dword [edi + 0xc]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x10c], eax
mov eax, dword [eax + 0x20]
mov dword [ebp - 0x114], eax
mov eax, dword [eax]
mov dword [ebp - 0xf8], eax
mov eax, dword [eax]
lea esi, [esi + edx*8]
mov dword [ebp - 0x118], eax
mov eax, dword [ebp - 0xec]
mov dword [ebp - 0x104], esi
mov esi, dword [esi + 0x10]
mov eax, dword [eax + edx*8 + 0x10]
xor ecx, ecx
mov dword [ebp - 0xf4], eax
test esi, esi
jle 0x475eab
cmp esi, 4
jb 0x475e88
cmp dword [0x631058], 2
jl 0x475e88
movd xmm0, dword [ebp - 0x104]
movdqa xmm2, xmmword [0x5f7220]
mov eax, esi
pshufd xmm1, xmm0, 0
and eax, 0x80000003
jns 0x475e43
dec eax
or eax, 0xfffffffc
inc eax
movdqa xmm4, xmmword [0x5f7230]
movdqa xmm3, xmmword [0x5f7210]
mov edx, esi
sub edx, eax
mov eax, edi
lea esp, [esp]
movd xmm0, ecx
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
paddd xmm0, xmm3
pmulld xmm0, xmm4
paddd xmm0, xmm1
add ecx, 4
movdqu xmmword [eax], xmm0
lea eax, [eax + 0x10]
cmp ecx, edx
jl 0x475e60
cmp ecx, esi
jge 0x475eab
mov edx, dword [ebp - 0x104]
lea eax, [ecx + 1]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
jmp 0x475ea0
mov dword [edi + ecx*4], eax
inc ecx
add eax, 0x28
cmp ecx, esi
jl 0x475ea0
mov ecx, dword [ebp - 0xe4]
push edi
mov eax, dword [ecx + 0x58]
mov edi, dword [ebp - 0x118]
and eax, 0xfffffff7
or eax, 4
mov dword [ecx + 0x58], eax
mov eax, dword [ebp - 0xe0]
push esi
push dword [eax + ebx*4 + 0x10]
mov esi, dword [ebp - 0x114]
push dword [ebp - 0xf4]
mov eax, dword [edi + 0x20]
push esi
call eax
mov edx, dword [ebp - 0xf8]
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0xe4]
add esp, 0x14
and dword [eax + 0x58], 0xfffffff3
mov ecx, eax
call fcn.0046e710
cmp dword [ebp - 0xd8], 0
jne 0x475f43
mov eax, dword [edi + 0x28]
push esi
call eax
mov esi, dword [ebp - 0xe0]
add esp, 4
test eax, eax
je 0x475f49
mov eax, dword [esi + ebx*4 + 8]
mov edi, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0xdc]
dec eax
mov dword [ebp - 0xf0], eax
mov eax, dword [ebp - 0x10c]
mov byte [eax + 0x19], 0
jmp case.default.0x470fd9
mov esi, dword [ebp - 0xe0]
mov eax, dword [ebp - 0x10c]
mov edi, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0xdc]
mov byte [eax + 0x19], 0
jmp case.default.0x470fd9
mov eax, dword [ebp - 0xe4]
mov ecx, dword [esi + ebx*4 + 4]
mov eax, dword [eax + 0x38]
mov edx, dword [ebp - 0xec]
mov ecx, dword [eax + ecx*4]
mov eax, dword [esi + ebx*4 + 0xc]
cmp byte [ecx + 0x19], 0
lea eax, [eax + eax*4]
mov dword [ebp - 0xf4], ecx
lea eax, [edx + eax*8]
mov dword [ebp - 0x104], eax
je 0x475fa8
mov ecx, eax
call fcn.004698d0
mov ecx, dword [ebp - 0xdc]
jmp case.default.0x470fd9
mov eax, dword [ecx + 0x20]
push 0x48
mov edi, dword [eax]
lea eax, [ebp - 0x388]
mov esi, dword [edi]
push 0
push eax
call fcn.005877c0
mov edx, dword [ebp - 0x104]
add esp, 0xc
lea ecx, [ebp - 0x380]
call fcn.00469bb0
mov eax, dword [ebp - 0x364]
and eax, 0xbe01
or eax, 1
mov word [ebp - 0x364], ax
mov eax, dword [ebp - 0xe0]
push dword [eax + ebx*4 + 8]
lea eax, [ebp - 0x388]
push eax
mov eax, dword [ebp - 0xf4]
push dword [eax + 0x20]
mov eax, dword [esi + 0x2c]
call eax
mov ecx, dword [ebp - 0xe4]
add esp, 0xc
mov edx, edi
mov ebx, eax
call fcn.0046e710
mov eax, dword [ebp - 0x348]
movzx edx, byte [ebp - 0x110]
test eax, eax
cmovne ebx, eax
lea ecx, [ebp - 0x380]
mov dword [ebp - 0xd8], ebx
call fcn.00469090
mov ecx, dword [ebp - 0x104]
lea edx, [ebp - 0x380]
call fcn.00469bb0
mov ecx, dword [ebp - 0x104]
call fcn.00469a00
mov ecx, dword [ebp - 0xdc]
test eax, eax
jne 0x4767e3
jmp 0x47639c
mov eax, dword [ebp - 0xe4]
mov ecx, dword [esi + ebx*4 + 4]
mov eax, dword [eax + 0x38]
mov edi, dword [eax + ecx*4]
cmp byte [edi + 0x19], 0
jne 0x4719fb
mov eax, dword [edi + 0x20]
mov edx, dword [ebp - 0xe4]
mov esi, dword [eax]
mov eax, dword [ebp - 0xe4]
mov ecx, dword [esi]
mov eax, dword [eax + 0x58]
and eax, 0xfffffff7
or eax, 4
mov dword [edx + 0x58], eax
push dword [edi + 0x20]
mov eax, dword [ecx + 0x24]
mov dword [ebp - 0x104], ecx
call eax
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0xe4]
add esp, 4
and dword [eax + 0x58], 0xfffffff3
mov edx, esi
mov ecx, eax
call fcn.0046e710
cmp dword [ebp - 0xd8], 0
jne 0x4760f0
mov eax, dword [ebp - 0x104]
push dword [edi + 0x20]
mov eax, dword [eax + 0x28]
call eax
add esp, 4
test eax, eax
jne 0x474988
mov esi, dword [ebp - 0xe0]
mov ecx, dword [esi + ebx*4 + 8]
dec ecx
mov dword [ebp - 0xf0], ecx
jmp 0x47498e
mov eax, dword [esi + ebx*4 + 0x10]
mov ecx, dword [ebp - 0xec]
mov esi, dword [eax + 8]
mov eax, dword [ebp - 0xe0]
mov edx, 1
mov eax, dword [eax + ebx*4 + 4]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov ecx, edi
call fcn.00469090
mov ecx, eax
mov dword [ebp - 0xd8], ecx
test ecx, ecx
jne 0x471334
mov eax, dword [esi]
push dword [edi + 4]
mov eax, dword [eax + 0x4c]
push esi
call eax
mov ebx, dword [ebp - 0xe4]
add esp, 8
mov edx, esi
mov ecx, ebx
mov dword [ebp - 0xd8], eax
call fcn.0046e710
and dword [ebx + 0x58], 0xffffffdf
mov edi, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0xdc]
jmp 0x4763a2
mov eax, dword [esi + ebx*4 + 0x10]
mov esi, dword [esi + ebx*4 + 8]
mov edx, dword [eax + 8]
mov dword [ebp - 0xf4], edx
mov eax, dword [edx]
mov dword [ebp - 0x104], eax
cmp dword [eax + 0x34], 0
je 0x4763a2
mov al, byte [ecx + 0x44]
mov ecx, dword [ebp - 0xec]
mov byte [ebp - 0xf9], al
mov eax, dword [ebp - 0xe4]
mov edi, dword [eax + 0xc]
mov eax, dword [ebp - 0xe0]
mov eax, dword [eax + ebx*4 + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
xor eax, eax
test esi, esi
jle 0x4761d3
mov dword [edi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, esi
jl 0x4761c8
mov eax, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0xdc]
mov al, byte [eax + ebx*4 + 3]
mov byte [ecx + 0x44], al
lea eax, [ebp - 0x250]
push eax
mov eax, dword [ebp - 0x104]
push edi
mov eax, dword [eax + 0x34]
push esi
push edx
call eax
mov ecx, dword [ebp - 0xdc]
mov edi, dword [ebp - 0xe4]
mov edx, dword [ebp - 0xf4]
mov dword [ebp - 0xd8], eax
mov al, byte [ebp - 0xf9]
mov byte [ecx + 0x44], al
add esp, 0x10
mov ecx, edi
call fcn.0046e710
cmp dword [ebp - 0xd8], 0
mov esi, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0xdc]
jne 0x476260
cmp dword [esi + ebx*4 + 4], 0
je 0x476260
mov edx, dword [ebp - 0x250]
mov eax, dword [ebp - 0x24c]
mov dword [ebp - 0x134], edx
mov dword [ebp - 0x138], eax
mov dword [ecx + 0x20], edx
mov dword [ecx + 0x24], eax
cmp byte [ebp - 0xd8], 0x13
jne 0x4762b6
mov eax, dword [esi + ebx*4 + 0x10]
cmp byte [eax + 0x10], 0
je 0x4762b6
mov al, byte [esi + ebx*4 + 3]
cmp al, 4
jne 0x47628e
mov edi, dword [ebp - 0xe8]
xor ebx, ebx
mov dword [ebp - 0xd8], ebx
jmp 0x4763ae
cmp al, 5
jne 0x4762a5
mov eax, 2
mov byte [edi + 0x56], al
mov edi, dword [ebp - 0xe8]
jmp case.default.0x470fd9
movzx eax, al
mov byte [edi + 0x56], al
mov edi, dword [ebp - 0xe8]
jmp case.default.0x470fd9
inc dword [edi + 0x5c]
mov edi, dword [ebp - 0xe8]
jmp case.default.0x470fd9
mov ecx, dword [esi + ebx*4 + 4]
mov eax, dword [ebp - 0xdc]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8 + 4]
mov ecx, dword [ebp - 0xdc]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x2c]
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], 0
jmp case.default.0x470fd9
mov ecx, dword [esi + ebx*4 + 4]
mov eax, dword [ebp - 0xdc]
mov esi, dword [esi + ebx*4 + 0xc]
mov eax, dword [eax + 0x10]
add ecx, ecx
xor edx, edx
mov ecx, dword [eax + ecx*8 + 4]
test esi, esi
je 0x47631a
mov eax, dword [ecx + 4]
mov edx, dword [eax + 0x2c]
cmp edx, esi
cmovb edx, esi
call fcn.00460650
mov ecx, dword [ebp - 0xdc]
cdq
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], edx
jmp 0x4763a2
mov eax, dword [esi + ebx*4 + 8]
test eax, eax
je 0x476340
dec eax
mov dword [ebp - 0xf0], eax
cmp dword [ecx + 0xa4], 0
je case.default.0x470fd9
mov eax, dword [ebp - 0xe4]
test dword [eax + 0x58], 0x800
jne case.default.0x470fd9
mov edx, dword [esi + ebx*4 + 0x10]
mov ebx, eax
test edx, edx
jne 0x47636c
mov edx, dword [ebx + 0xa8]
test edx, edx
je case.default.0x470fd9
mov ecx, ebx
call fcn.00470790
mov ebx, dword [ebp - 0xdc]
mov esi, eax
mov ecx, dword [ebx + 0xa4]
push esi
push dword [ebx + 0xa8]
call ecx
add esp, 8
mov edx, esi
mov ecx, ebx
call fcn.0044d450
mov ecx, ebx
jmp 0x4763a2
mov ecx, eax
mov edi, dword [ebp - 0xe8]
mov esi, dword [ebp - 0xe0]
mov ebx, dword [ebp - 0xd8]
inc dword [ebp - 0xf0]
test ebx, ebx
jne 0x476717
mov ebx, dword [ebp - 0xf0]
jmp 0x470f70
mov eax, dword [esi + ebx*4 + 4]
mov edi, dword [ebp - 0xf0]
mov dword [edx + 0x50], eax
cmp dword [edx + 0x50], 0
mov al, byte [esi + ebx*4 + 8]
mov byte [edx + 0x56], al
mov dword [edx + 0x4c], edi
je 0x476477
mov al, byte [esi + ebx*4 + 3]
test al, al
je 0x476421
movzx eax, al
mov eax, dword [eax*4 + 0x5ddc90]
test eax, eax
je 0x476423
mov ecx, dword [esi + ebx*4 + 0x10]
test ecx, ecx
je 0x476423
push ecx
push eax
push str._s_constraint_failed:__s
push dword [ebp - 0xdc]
lea esi, [edx + 0x2c]
push esi
call fcn.0044d820
add esp, 0x14
jmp 0x47644b
xor eax, eax
mov ecx, dword [esi + ebx*4 + 0x10]
lea esi, [edx + 0x2c]
test ecx, ecx
je 0x476436
push ecx
push 0x5e08f0
jmp 0x47643c
push eax
push str._s_constraint_failed
push dword [ebp - 0xdc]
push esi
call fcn.0044d820
add esp, 0x10
push dword [esi]
mov eax, dword [ebp - 0xe4]
push dword [eax + 0xa8]
mov eax, dword [ebp - 0xe0]
push edi
push str.abort_at__d_in___s_:__s
push dword [eax + ebx*4 + 4]
call fcn.0044f080
mov edx, dword [ebp - 0xe4]
add esp, 0x14
mov ecx, edx
call fcn.0046c780
mov ecx, dword [ebp - 0xdc]
cmp eax, 5
mov eax, dword [ebp - 0xe4]
jne 0x47649c
mov edi, 5
mov dword [eax + 0x50], edi
jmp 0x4767a4
cmp dword [eax + 0x50], 0
mov edi, 0x65
mov eax, 1
cmovne edi, eax
jmp 0x4767a4
mov ecx, 9
mov dword [ebp - 0xd8], ecx
jmp 0x47671d
mov ecx, dword [ebp - 0xe4]
mov edx, dword [ebp - 0xec]
mov eax, dword [ecx + 0x48]
add eax, 2
or eax, 1
mov dword [ecx + 0x48], eax
mov eax, dword [esi + ebx*4 + 4]
xor edi, edi
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [ebp - 0xe0]
mov dword [ecx + 0x14], esi
cmp dword [eax + ebx*4 + 8], edi
jle 0x476526
mov eax, 0x1000
test word [esi + 0x1c], ax
je 0x47650f
mov ecx, esi
call fcn.004691e0
test eax, eax
jne 0x476860
mov ecx, esi
call fcn.004692a0
mov eax, dword [ebp - 0xe0]
inc edi
add esi, 0x28
cmp edi, dword [eax + ebx*4 + 8]
jl 0x4764f5
mov ecx, dword [ebp - 0xdc]
cmp byte [ecx + 0x40], 0
jne 0x476866
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0xe4]
inc eax
mov dword [edx + 0x4c], eax
mov edi, 0x64
jmp 0x4767a4
lea ecx, [ebp - 0x2b0]
call fcn.004694a0
mov ecx, esi
jmp 0x476866
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xd8], 0x14
mov eax, 0x14
jmp 0x47667c
mov eax, dword [ebp - 0xf0]
mov dword [edi + 0x4c], eax
mov eax, dword [ebp - 0xe4]
mov edi, 5
mov byte [ecx + 0x3e], 0
mov dword [eax + 0x50], edi
jmp 0x4767a4
test edx, edx
je 0x4765d9
mov edx, 0x204
mov ecx, esi
call fcn.004bb480
mov byte [esi + 0x3e], 1
mov ecx, esi
call fcn.004bac90
mov eax, dword [ebp - 0xe4]
mov edi, 1
cmp dword [eax + 0x50], 0
mov ecx, 0x65
cmove edi, ecx
mov ecx, dword [ebp - 0xdc]
jmp 0x4767a4
mov ecx, dword [ebp - 0xe4]
mov edx, 1
call fcn.0046c710
mov edi, eax
test edi, edi
jne 0x4765ce
mov ebx, dword [ebp - 0x104]
mov ecx, dword [ebp - 0xe4]
mov byte [esi + 0x3e], bl
call fcn.0046c780
cmp eax, 5
jne 0x4765b0
mov edx, dword [ebp - 0xe4]
mov eax, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0xdc]
mov dword [edx + 0x4c], eax
mov al, 1
sub al, bl
mov edi, 5
mov byte [ecx + 0x3e], al
mov dword [edx + 0x50], edi
jmp 0x4767a4
mov eax, 8
mov dword [ebp - 0xd8], eax
jmp 0x47667c
mov eax, dword [ebp - 0xe4]
mov edx, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0xdc]
mov edi, 5
mov dword [eax + 0x4c], edx
mov dword [eax + 0x50], edi
jmp 0x4767a4
mov ecx, 0x11473
call fcn.004bd500
mov dword [ebp - 0xd8], eax
mov ecx, dword [ebp - 0xdc]
mov eax, dword [ebp - 0xd8]
mov ebx, dword [ebp - 0xe4]
cmp byte [ecx + 0x40], 0
je 0x4766d9
mov ecx, 7
mov edx, str.unknown_error
mov dword [ebp - 0xd8], ecx
call fcn.004bb580
mov ecx, dword [ebp - 0xdc]
jmp 0x476704
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xd8], 0xd
mov eax, 0xd
jmp 0x47667c
mov dword [ebp - 0xd8], 0xd
jmp 0x476670
mov ecx, dword [ebp - 0xdc]
mov eax, dword [ebp - 0xd8]
jmp 0x476682
cmp eax, 0xc0a
je 0x476717
cmp eax, 0x204
je 0x4766ff
mov ecx, dword [ebp - 0xd8]
mov edx, str.unknown_error
call fcn.004bb580
mov ecx, dword [ebp - 0xdc]
jmp 0x476704
mov eax, str.abort_due_to_ROLLBACK
push eax
push 0x5e08f0
push ecx
lea eax, [ebx + 0x2c]
push eax
call fcn.0044d820
add esp, 0x10
mov ecx, dword [ebp - 0xd8]
mov eax, dword [ebp - 0xe4]
push dword [eax + 0x2c]
mov dword [eax + 0x50], ecx
push dword [eax + 0xa8]
push dword [ebp - 0xf0]
push str.statement_aborts_at__d:___s___s
push ecx
call fcn.0044f080
mov ecx, dword [ebp - 0xe4]
add esp, 0x14
call fcn.0046c780
cmp dword [ebp - 0xd8], 0xc0a
mov ecx, dword [ebp - 0xdc]
jne 0x476764
mov byte [ecx + 0x40], 1
mov al, byte [ebp - 0x121]
mov edi, 1
test al, al
je 0x4767a4
mov ebx, dword [ebp - 0xdc]
movzx esi, al
mov eax, dword [ebx + 0x10]
dec esi
mov ecx, esi
add ecx, ecx
push dword [eax + ecx*8 + 0xc]
call fcn.0048b040
add esp, 4
cmp esi, edi
je 0x4767a2
mov eax, dword [ebx + 0x10]
push dword [eax + 0x1c]
call fcn.0048b040
add esp, 4
mov ecx, ebx
mov eax, dword [ebp - 0x134]
mov dword [ecx + 0x20], eax
mov eax, dword [ebp - 0x138]
mov dword [ecx + 0x24], eax
mov ecx, dword [ebp - 0xe4]
mov eax, dword [ebp - 0x13c]
add dword [ecx + 0x7c], eax
call fcn.0046b0a0
mov ecx, dword [ebp - 4]
mov eax, edi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00586d1b
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0xdc]
mov eax, dword [ebp - 0xe4]
push str.string_or_blob_too_big
push ecx
add eax, 0x2c
push eax
call fcn.0044d820
mov ecx, 0x12
add esp, 0xc
mov dword [ebp - 0xd8], ecx
jmp 0x47671d
mov ecx, 9
mov dword [ebp - 0xd8], ecx
jmp 0x47671d
mov ebx, ecx
mov edx, dword [ebp - 0xe4]
mov ecx, str.unknown_error
mov dword [edx + 0x50], 9
mov eax, dword [str.interrupted]
test eax, eax
cmovne ecx, eax
push ecx
push 0x5e08f0
lea eax, [edx + 0x2c]
push ebx
push eax
mov dword [ebp - 0xd8], 9
call fcn.0044d820
add esp, 0x10
mov ecx, 9
jmp 0x47671d
mov ecx, dword [ebp - 0xdc]
mov eax, dword [ebp - 0xe4]
push str.out_of_memory
push ecx
add eax, 0x2c
push eax
mov byte [ecx + 0x40], 1
call fcn.0044d820
mov ecx, 7
add esp, 0xc
mov dword [ebp - 0xd8], ecx
jmp 0x47671d