Function at 0x464490
Capabilities:
Enumerate pe sections
Reference sql statements
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x12c
mov eax, dword [0x5903c4]
xor eax, esp
mov dword [esp + 0x128], eax
mov eax, dword [ecx + 4]
push ebx
mov ebx, dword [ecx]
mov dword [esp + 0xc], eax
push esi
push edi
mov eax, dword [ebx + 8]
xor esi, esi
xor edi, edi
mov dword [esp + 0xc], ecx
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], ebx
mov eax, dword [eax + 0xc]
mov byte [esp + 0x3b], 0
mov dword [esp + 0x50], esi
mov dword [esp + 0x24], edi
mov al, byte [eax + 0x4d]
mov byte [esp + 0x30], al
mov eax, dword [ecx + 8]
mov dword [esp + 0x20], eax
xor eax, eax
mov dword [esp + 0x48], eax
mov eax, dword [ebx + 0x30]
mov dword [esp + 0x3c], eax
mov eax, dword [ebx + 0x34]
mov dword [esp + 0x4c], esi
mov dword [esp + 0x40], eax
call fcn.0045faf0
mov ecx, dword [esp + 0xc]
cmp dword [ecx + 0x5c], 7
je 0x46a9b9
mov dword [ecx + 0x5c], esi
mov dword [ecx + 0x14], esi
mov dword [ebx + 0x1b4], esi
cmp dword [ebx + 0xe0], esi
jne 0x46acf7
mov esi, ebx
mov eax, dword [esi + 0x114]
mov dword [esp + 0x54], eax
mov eax, dword [ecx + 0x58]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x10], eax
cmp byte [esi + 0x1e], 0
jne 0x46a9b5
cmp dword [esp + 0x54], 0
lea ebx, [eax + eax*4]
mov dword [esp + 0x28], ebx
je 0x464587
mov eax, dword [esp + 0x50]
cmp dword [esi + 0x11c], eax
jne 0x46457e
push dword [esi + 0x118]
mov eax, dword [esi + 0x114]
call eax
add esp, 4
test eax, eax
jne 0x46a7dc
mov edx, dword [esp + 0x14]
inc eax
mov dword [esp + 0x50], eax
test byte [edx + ebx*4 + 2], 2
je 0x4645bf
mov eax, dword [edx + ebx*4 + 8]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, 0x2460
mov dword [esp + 0x24], edi
test word [edi + 0x1c], ax
je 0x4645b6
mov ecx, edi
call fcn.0045dc50
mov edx, dword [esp + 0x14]
mov eax, 4
mov word [edi + 0x1c], ax
movzx eax, byte [edx + ebx*4]
dec eax
cmp eax, 0x93
ja case.0x4645cf.17
jmp dword [eax*4 + 0x46ad3c]
cmp dword [esi + 0xe0], 0
jne 0x46acf3
mov eax, dword [edx + ebx*4 + 8]
mov ecx, dword [esp + 0xc]
jmp 0x46453d
mov ecx, dword [edx + ebx*4 + 4]
mov edx, 4
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x20]
lea ecx, [ecx + ecx*4]
mov word [eax + ecx*8 + 0x1c], dx
mov eax, dword [esp + 0x10]
cdq
mov dword [esi + ecx*8 + 0x14], edx
mov edx, dword [esp + 0x14]
mov dword [esi + ecx*8 + 0x10], eax
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0xc]
mov eax, dword [edx + ebx*4 + 8]
jmp 0x46453d
mov eax, dword [edx + ebx*4 + 4]
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0xc]
lea eax, [eax + eax*4]
mov eax, dword [ebx + eax*8 + 0x10]
inc eax
jmp 0x46453d
mov eax, dword [edx + ebx*4 + 4]
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
lea ecx, [eax + eax*4]
mov eax, 4
mov word [ebx + ecx*8 + 0x1c], ax
mov eax, dword [ebx + ecx*8 + 0x10]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x10]
cdq
mov dword [ebx + ecx*8 + 0x10], eax
mov dword [ebx + ecx*8 + 0x14], edx
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0xc]
inc eax
jmp 0x464539
mov eax, dword [edx + ebx*4 + 0xc]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x1c], 1
je case.0x4645cf.17
cmp dword [edx + ebx*4 + 4], 0
jne 0x46a86f
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0xa8]
test ecx, ecx
je 0x46a86f
mov edx, dword [esp + 0xc]
mov eax, dword [ecx + 0x44]
dec dword [edx + 0xb0]
mov dword [edx + 0xa8], eax
mov eax, dword [edx + 0x6c]
add dword [esi + 0x40], eax
mov dword [esi + 0x3c], eax
call fcn.00460490
mov ecx, dword [esi + 0x30]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esi + 0x34]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x14]
cmp dword [ecx + ebx*4 + 8], 4
jne 0x4646fc
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 4]
mov eax, dword [eax + ecx*4 + 8]
dec eax
mov edx, dword [esp + 0xc]
inc eax
mov ecx, dword [esp + 0xc]
mov edx, dword [edx + 4]
mov ebx, dword [ecx + 8]
mov dword [esp + 0x14], edx
mov dword [esp + 0x20], ebx
jmp 0x46453d
mov eax, dword [edx + ebx*4 + 4]
mov ecx, dword [esp + 0xc]
cdq
mov dword [edi + 0x10], eax
mov eax, dword [esp + 0x10]
mov dword [edi + 0x14], edx
inc eax
jmp 0x464539
mov ecx, dword [edx + ebx*4 + 0x10]
mov eax, dword [ecx]
mov dword [edi + 0x10], eax
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0xc]
mov dword [edi + 0x14], eax
mov eax, dword [esp + 0x10]
inc eax
jmp 0x46453d
mov ecx, dword [esp + 0xc]
mov eax, 8
mov word [edi + 0x1c], ax
mov eax, dword [edx + ebx*4 + 0x10]
movsd xmm0, qword [eax]
mov eax, dword [esp + 0x10]
movsd qword [edi + 8], xmm0
inc eax
jmp 0x46453d
mov ecx, dword [edx + ebx*4 + 0x10]
mov byte [edx + ebx*4], 9
call fcn.004470b0
cmp byte [esp + 0x30], 1
mov dword [edx + ebx*4 + 4], eax
je 0x464807
push 0
push 1
mov edx, ecx
mov ecx, edi
push 0xffffffffffffffff
call fcn.0045e2d0
add esp, 0xc
mov dword [esp + 0x18], eax
cmp eax, 0x12
je 0x46ab7c
movzx edx, byte [esp + 0x30]
mov ecx, edi
call fcn.0045d8c0
test eax, eax
jne 0x46a9b1
mov edx, dword [esp + 0x14]
mov ecx, 0xfbff
mov dword [edi + 0x24], eax
mov ax, word [edi + 0x1c]
and ax, cx
mov ecx, 0x800
or ax, cx
mov word [edi + 0x1c], ax
cmp byte [edx + ebx*4 + 1], 0xff
jne 0x4647f4
push dword [edx + ebx*4 + 0x10]
push esi
call fcn.00444f80
mov edx, dword [esp + 0x1c]
add esp, 8
mov byte [edx + ebx*4 + 1], 0xff
mov eax, dword [edi + 4]
mov dword [edx + ebx*4 + 0x10], eax
mov eax, dword [edi + 0x18]
mov dword [edx + ebx*4 + 4], eax
mov eax, dword [edx + ebx*4 + 4]
cmp eax, dword [esi + 0x48]
jg 0x46ab7c
mov eax, 0xa02
mov word [edi + 0x1c], ax
mov eax, dword [edx + ebx*4 + 0x10]
mov dword [edi + 4], eax
mov eax, dword [edx + ebx*4 + 4]
mov dword [edi + 0x18], eax
mov al, byte [esp + 0x30]
mov byte [edi + 0x1f], al
jmp case.0x4645cf.17
mov eax, dword [edx + ebx*4 + 0xc]
sub eax, dword [edx + ebx*4 + 8]
mov ebx, 1
mov dword [esp + 0x68], eax
mov word [edi + 0x1c], bx
cmp dword [esp + 0x68], 0
jle 0x46488d
mov esi, 0x2460
nop dword [eax + eax]
add edi, 0x28
test word [edi + 0x1c], si
je 0x464870
mov ecx, edi
call fcn.0045dc50
mov word [edi + 0x1c], bx
mov eax, dword [esp + 0x68]
dec eax
mov dword [esp + 0x68], eax
test eax, eax
jg 0x464860
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x24], edi
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
inc eax
jmp 0x46453d
push 0
push 0
push dword [edx + ebx*4 + 4]
mov edx, dword [edx + ebx*4 + 0x10]
mov ecx, edi
call fcn.0045e2d0
mov al, byte [esp + 0x3c]
add esp, 0xc
mov ecx, dword [esp + 0xc]
mov byte [edi + 0x1f], al
mov eax, dword [esp + 0x10]
inc eax
jmp 0x464539
mov eax, dword [edx + ebx*4 + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0xc]
lea edx, [edx - 5]
mov eax, dword [eax + 0x48]
lea edx, [eax + edx*8]
mov dword [esp + 0x68], edx
movzx eax, word [edx + 0x1c]
test al, 0x12
je 0x464909
mov esi, dword [edx + 0x18]
test eax, 0x4000
je 0x4648f3
add esi, dword [edx + 0x10]
mov eax, dword [edx]
xor ecx, ecx
cmp esi, dword [eax + 0x48]
mov esi, dword [esp + 0x1c]
setg cl
test ecx, ecx
jne 0x46ab7c
push 0x800
mov ecx, edi
call fcn.0045e1f0
mov eax, dword [esp + 0x14]
add esp, 4
mov ecx, dword [esp + 0xc]
inc eax
jmp 0x464539
mov edx, dword [edx + ebx*4 + 0xc]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x6c], edx
mov eax, dword [ecx + ebx*4 + 4]
mov dword [esp + 0x70], eax
mov ecx, dword [ecx + ebx*4 + 8]
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x74], ecx
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
lea eax, [ecx + ecx*4]
lea edi, [ebx + eax*8]
mov dword [esp + 0x24], edi
test edx, edx
je 0x4649f1
mov ebx, 1
dec edx
mov dword [esp + 0x6c], edx
mov eax, dword [edi + 0x24]
mov dword [esp + 0x68], eax
mov eax, 0x2460
mov dword [edi + 0x24], 0
test word [edi + 0x1c], ax
je 0x464988
mov ecx, edi
call fcn.0045dc50
push dword [edi + 0x24]
push dword [edi]
call fcn.00444f80
mov dword [edi + 4], 0
add esp, 8
mov dword [edi + 0x24], 0
mov dword [edi + 0x20], 0
movups xmm0, xmmword [esi]
movups xmmword [edi], xmm0
movups xmm0, xmmword [esi + 0x10]
movups xmmword [edi + 0x10], xmm0
movq xmm0, qword [esi + 0x20]
movq qword [edi + 0x20], xmm0
add edi, 0x28
mov dword [esi + 0x24], 0
mov word [esi + 0x1c], bx
mov dword [esi + 0x20], 0
mov eax, dword [esp + 0x68]
mov dword [esi + 0x24], eax
add esi, 0x28
mov edx, dword [esp + 0x6c]
test edx, edx
jne 0x464963
mov dword [esp + 0x24], edi
mov eax, dword [esp + 0x10]
dec edx
mov esi, dword [esp + 0x1c]
inc eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x14]
jmp 0x46453d
mov eax, dword [edx + ebx*4 + 8]
mov ecx, dword [esp + 0x20]
push 0x1000
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [edx + ebx*4 + 4]
mov dword [esp + 0x28], edi
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov ecx, edi
call fcn.0045e1f0
mov eax, 0x1000
add esp, 4
test word [edi + 0x1c], ax
je 0x466aec
mov ecx, edi
call fcn.0045da00
test eax, eax
jne 0x46a9b1
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
inc eax
mov ecx, dword [esp + 0xc]
jmp 0x46453d
mov eax, dword [edx + ebx*4 + 8]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [edx + ebx*4 + 4]
mov dword [esp + 0x24], edi
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
push 0x1000
mov ecx, edi
call fcn.0045e1f0
mov eax, dword [esp + 0x14]
add esp, 4
mov edx, dword [esp + 0x14]
inc eax
mov ecx, dword [esp + 0xc]
jmp 0x46453d
mov ecx, dword [esp + 0xc]
xor edx, edx
call fcn.00460ed0
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x18], eax
test eax, eax
jne 0x464ad3
lea edx, [eax + 1]
call fcn.00460dd0
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x18], eax
test eax, eax
je 0x46a8fb
mov edx, dword [esp + 0x14]
jmp 0x4669f9
mov ecx, dword [esp + 0x20]
mov eax, dword [edx + ebx*4 + 4]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [edx + ebx*4 + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, dword [edx + ebx*4 + 0xc]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
movzx ecx, word [edi + 0x1c]
mov dword [esp + 0x24], eax
mov al, byte [esi + 0x1c]
or al, cl
test al, 1
je 0x464b30
mov edi, dword [esp + 0x24]
mov ecx, edi
call fcn.0045df90
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
inc eax
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
jmp 0x46453d
test ecx, 0x4000
je 0x464b47
mov ecx, edi
call fcn.0045da60
test eax, eax
jne 0x46a9b1
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x464b61
mov ecx, esi
call fcn.0045da60
test eax, eax
jne 0x46a9b1
test byte [edi + 0x1c], 0x12
mov bl, byte [esp + 0x30]
jne 0x464b7d
movzx edx, bl
mov ecx, edi
call fcn.0045db10
test eax, eax
jne 0x46a9b1
test byte [esi + 0x1c], 0x12
jne 0x464b95
movzx edx, bl
mov ecx, esi
call fcn.0045db10
test eax, eax
jne 0x46a9b1
mov eax, dword [esi + 0x18]
add eax, dword [edi + 0x18]
cdq
mov ecx, edx
mov ebx, eax
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], ecx
mov eax, dword [edx + 0x48]
cdq
cmp ecx, edx
jg 0x46ab78
jl 0x464bc2
cmp ebx, eax
ja 0x46ab78
mov ebx, dword [esp + 0x24]
mov ecx, 0xbf02
mov ax, word [ebx + 0x1c]
and ax, cx
mov ecx, ebx
or ax, 2
mov word [ebx + 0x1c], ax
xor eax, eax
mov edx, dword [esp + 0x68]
cmp ebx, esi
sete al
push eax
lea edx, [edx + 2]
call fcn.0045d8e0
add esp, 4
test eax, eax
jne 0x46a9b1
cmp ebx, esi
je 0x464c10
push dword [esi + 0x18]
push dword [esi + 4]
push dword [ebx + 4]
call fcn.0051d9c0
add esp, 0xc
push dword [edi + 0x18]
mov eax, dword [esi + 0x18]
push dword [edi + 4]
mov edi, dword [esp + 0x2c]
add eax, dword [edi + 4]
push eax
call fcn.0051d9c0
mov eax, dword [esp + 0x74]
add esp, 0xc
mov ecx, dword [edi + 4]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov byte [eax + ecx], 0
mov eax, dword [esp + 0x68]
mov ecx, dword [edi + 4]
mov byte [eax + ecx + 1], 0
mov eax, 0x200
or word [edi + 0x1c], ax
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0xc]
mov dword [edi + 0x18], eax
mov al, byte [esp + 0x30]
mov byte [edi + 0x1f], al
mov eax, dword [esp + 0x10]
inc eax
jmp 0x46453d
mov eax, dword [edx + ebx*4 + 4]
mov edi, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov ecx, eax
mov dword [esp + 0x34], eax
call fcn.004642d0
mov esi, dword [esp + 0x14]
mov eax, dword [esi + ebx*4 + 8]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov ecx, eax
mov dword [esp + 0x28], eax
call fcn.004642d0
mov eax, dword [esi + ebx*4 + 0xc]
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 0x34]
lea eax, [eax + eax*4]
movzx ecx, word [esi + 0x1c]
lea eax, [edi + eax*8]
mov dword [esp + 0x24], eax
movzx eax, word [edx + 0x1c]
or ecx, eax
mov dword [esp + 0x68], ecx
test cl, 1
jne 0x464b0f
mov al, byte [esi + 0x1c]
and al, byte [edx + 0x1c]
test al, 4
je 0x464e1c
mov eax, edx
mov edx, dword [eax + 0x10]
mov dword [esp + 0x70], edx
mov ecx, dword [eax + 0x14]
mov eax, esi
mov dword [esp + 0x74], ecx
mov esi, dword [eax + 0x10]
mov dword [esp + 0x78], esi
mov edi, dword [eax + 0x14]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x7c], edi
movzx eax, byte [eax + ebx*4]
add eax, 0xffffffaa
cmp eax, 3
ja case.default.0x464d0e
jmp dword [eax*4 + 0x46af8c]
push ecx
push edx
lea ecx, [esp + 0x80]
call fcn.00448040
add esp, 8
test eax, eax
jne 0x464e14
mov esi, dword [esp + 0x78]
jmp 0x464ddc
test edx, edx
jne 0x464d64
cmp ecx, 0x80000000
jne 0x464d64
test edi, edi
jg 0x464e14
jl 0x464d55
test esi, esi
jae 0x464e14
add esi, 0
adc edi, 0x80000000
mov dword [esp + 0x7c], edi
jmp 0x464dd8
neg edx
adc ecx, 0
neg ecx
jmp case.0x464d0e.86
push ecx
push edx
lea ecx, [esp + 0x80]
call fcn.004480e0
jmp 0x464d23
mov eax, edx
or eax, ecx
je 0x464b0f
mov eax, edx
and eax, ecx
cmp eax, 0xffffffff
jne 0x464d9c
test esi, esi
jne 0x464d9c
cmp edi, 0x80000000
je 0x464e14
push ecx
push edx
push edi
push esi
call fcn.0051a2b0
jmp 0x464dd2
mov eax, edx
or eax, ecx
je 0x464b0f
mov eax, edx
and eax, ecx
cmp eax, 0xffffffff
jne 0x464dc9
mov edx, 1
xor ecx, ecx
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], ecx
push ecx
push edx
push edi
push esi
call fcn.0051a720
mov dword [esp + 0x7c], edx
mov esi, eax
mov dword [esp + 0x78], esi
mov edi, dword [esp + 0x24]
mov dword [edi + 0x10], esi
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0x1c]
mov ecx, 0xbf04
mov edx, dword [esp + 0x14]
mov dword [edi + 0x14], eax
mov ax, word [edi + 0x1c]
and ax, cx
mov ecx, dword [esp + 0xc]
or ax, 4
mov word [edi + 0x1c], ax
mov eax, dword [esp + 0x10]
inc eax
jmp 0x46453d
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 0x34]
mov ecx, edx
call fcn.0045ddc0
mov ecx, esi
movsd qword [esp + 0x80], xmm0
call fcn.0045ddc0
mov eax, dword [esp + 0x14]
movsd qword [esp + 0x88], xmm0
movsd qword [esp + 0x28], xmm0
movzx eax, byte [eax + ebx*4]
add eax, 0xffffffaa
cmp eax, 3
ja case.default.0x464e52
jmp dword [eax*4 + 0x46af9c]
addsd xmm0, qword [esp + 0x80]
jmp 0x464f03
subsd xmm0, qword [esp + 0x80]
jmp 0x464f03
mulsd xmm0, qword [esp + 0x80]
jmp 0x464f03
movsd xmm1, qword [esp + 0x80]
ucomisd xmm1, qword [0x57c880]
lahf
test ah, 0x44
jnp 0x464b0f
divsd xmm0, xmm1
jmp 0x464f03
movsd xmm0, qword [esp + 0x80]
call fcn.0051a55f
movsd xmm0, qword [esp + 0x28]
mov esi, eax
mov edi, edx
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], edi
call fcn.0051a55f
mov ecx, esi
mov dword [esp + 0x78], eax
or ecx, edi
mov dword [esp + 0x7c], edx
je 0x464b0f
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x464ef3
mov esi, 1
xor edi, edi
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], edi
push edi
push esi
push edx
push eax
call fcn.0051a720
mov ecx, eax
call fcn.0051a6b0
movsd qword [esp + 0x88], xmm0
call fcn.00447070
test eax, eax
jne 0x464b0f
mov edi, dword [esp + 0x24]
mov ecx, 0xbf08
movsd xmm0, qword [esp + 0x88]
mov ax, word [edi + 0x1c]
and ax, cx
movsd qword [edi + 8], xmm0
or ax, 8
mov word [edi + 0x1c], ax
test byte [esp + 0x68], 8
jne 0x4685c4
mov ecx, edi
call fcn.0045de20
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
inc eax
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
jmp 0x46453d
movzx ecx, byte [edx + ebx*4 + 3]
mov eax, dword [esp + 0xc]
mov edi, dword [esp + 0x20]
mov dword [esp + 0xb4], ecx
mov esi, dword [eax + 0xc]
mov dword [esp + 0xb0], esi
mov eax, dword [edx + ebx*4 + 0xc]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
mov eax, dword [edx + ebx*4 + 8]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x24], edi
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
xor eax, eax
mov dword [esp + 0x6c], edx
mov dword [esp + 0x68], eax
test ecx, ecx
jle 0x464ffe
nop
mov dword [esi + eax*4], edx
mov eax, 0x1000
mov ecx, dword [esp + 0x6c]
test word [ecx + 0x1c], ax
je 0x464fd3
call fcn.0045da00
test eax, eax
jne 0x46a9b1
mov ecx, dword [esp + 0x6c]
call fcn.00464180
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x6c]
inc eax
add edx, 0x28
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], edx
cmp eax, dword [esp + 0xb4]
jge 0x464ffe
mov esi, dword [esp + 0xb0]
jmp 0x464fb0
mov eax, dword [esp + 0x14]
cmp byte [eax + ebx*4 + 1], 0xfb
mov eax, dword [eax + ebx*4 + 0x10]
jne 0x465017
mov dword [esp + 0x74], 0
jmp 0x46501d
mov dword [esp + 0x74], eax
mov eax, dword [eax]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x70], eax
mov eax, 1
push 0
push esi
mov word [esp + 0x9c], ax
mov dword [esp + 0x80], esi
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
call fcn.00444f80
mov dword [esp + 0x84], 0
mov eax, 1
mov dword [esp + 0xa4], 0
add esp, 8
mov dword [esp + 0x98], 0
movups xmm0, xmmword [edi]
movups xmmword [esp + 0x78], xmm0
movups xmm0, xmmword [edi + 0x10]
movups xmmword [esp + 0x88], xmm0
movq xmm0, qword [edi + 0x20]
movq qword [esp + 0x98], xmm0
mov word [edi + 0x1c], ax
mov dword [edi + 0x20], 0
mov dword [edi + 0x24], 0
mov eax, dword [esp + 0x94]
and eax, 0xbf01
mov dword [esp + 0xa4], 0
or eax, 1
mov word [esp + 0x94], ax
mov eax, dword [esp + 0x70]
test byte [eax + 3], 8
je 0x4650ef
mov eax, dword [esp + 0x14]
mov eax, dword [eax + ebx*4 - 4]
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x3c]
mov dword [esi + 0x30], eax
mov eax, dword [esp + 0x40]
mov dword [esi + 0x34], eax
lea eax, [esp + 0x70]
push dword [esp + 0xb0]
push dword [esp + 0xb8]
push eax
mov eax, dword [esp + 0x7c]
mov eax, dword [eax + 0xc]
call eax
mov eax, dword [esi + 0x30]
add esp, 0xc
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x3c], eax
mov eax, dword [esi + 0x34]
mov dword [esp + 0x40], eax
test ecx, ecx
je 0x465150
mov eax, dword [esp + 0x14]
mov edx, dword [eax + ebx*4 + 4]
call fcn.004613a0
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x74]
mov dword [ecx + ebx*4 + 0x10], eax
mov byte [ecx + ebx*4 + 1], 0xf9
cmp byte [esi + 0x1e], 0
jne 0x46a9a8
cmp dword [esp + 0xa4], 0
je 0x465191
mov dl, 1
lea ecx, [esp + 0x78]
call fcn.0045e910
push eax
mov eax, dword [esp + 0x10]
push 0x578aac
add eax, 0x38
push esi
push eax
call fcn.004453a0
mov eax, dword [esp + 0xb4]
add esp, 0x10
mov dword [esp + 0x18], eax
movzx edx, byte [esp + 0x30]
lea ecx, [esp + 0x78]
call fcn.0045d8c0
mov eax, 0x2460
test word [edi + 0x1c], ax
je 0x4651b1
mov ecx, edi
call fcn.0045dc50
push dword [edi + 0x24]
push dword [edi]
call fcn.00444f80
mov dword [edi + 4], 0
mov eax, 1
mov dword [edi + 0x24], 0
add esp, 8
mov dword [edi + 0x20], 0
movups xmm0, xmmword [esp + 0x78]
movups xmmword [edi], xmm0
movups xmm0, xmmword [esp + 0x88]
movups xmmword [edi + 0x10], xmm0
movq xmm0, qword [esp + 0x98]
movq qword [edi + 0x20], xmm0
mov word [esp + 0x94], ax
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0
movzx eax, word [edi + 0x1c]
test al, 0x12
je 0x46523f
mov edx, dword [edi + 0x18]
test eax, 0x4000
je 0x46522d
add edx, dword [edi + 0x10]
mov eax, dword [edi]
xor ecx, ecx
cmp edx, dword [eax + 0x48]
setg cl
test ecx, ecx
jne 0x46ab7c
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
jmp 0x4669f5
mov eax, dword [edx + ebx*4 + 4]
mov edi, dword [esp + 0x20]
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 [esp + 0x24], edi
test al, 1
je 0x465299
mov ecx, edi
call fcn.0045df90
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
inc eax
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
jmp 0x46453d
call fcn.0045dd00
mov ecx, esi
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], edx
call fcn.0045dd00
mov esi, eax
mov dword [esp + 0x7c], edx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x78], esi
mov cl, byte [eax + ebx*4]
mov byte [esp + 0x80], cl
cmp cl, 0x52
jne 0x4652e4
mov ecx, dword [esp + 0x68]
and ecx, esi
and dword [esp + 0x6c], edx
mov dword [esp + 0x68], ecx
mov dword [edi + 0x10], ecx
mov eax, dword [esp + 0x6c]
jmp 0x464de7
cmp cl, 0x53
jne 0x465303
mov ecx, dword [esp + 0x68]
or ecx, esi
or dword [esp + 0x6c], edx
mov dword [esp + 0x68], ecx
mov dword [edi + 0x10], ecx
mov eax, dword [esp + 0x6c]
jmp 0x464de7
mov eax, esi
or eax, edx
je 0x465433
test edx, edx
jg 0x46534a
jl 0x465317
test esi, esi
jae 0x46533f
mov al, 0xa9
sub al, cl
mov cl, al
mov byte [esp + 0x80], cl
cmp edx, 0xffffffff
jl 0x465378
jg 0x465330
cmp esi, 0xffffffc0
jbe 0x465378
neg esi
mov dword [esp + 0x78], esi
adc edx, 0
neg edx
mov dword [esp + 0x7c], edx
test edx, edx
jl 0x4653af
jg 0x46534a
cmp esi, 0x40
jb 0x4653af
cmp dword [esp + 0x6c], 0
jg 0x46538a
jl 0x46535a
cmp dword [esp + 0x68], 0
jae 0x46538a
cmp cl, 0x54
je 0x46538a
or ecx, 0xffffffff
or eax, ecx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], eax
mov dword [edi + 0x10], ecx
mov eax, dword [esp + 0x6c]
jmp 0x464de7
mov dword [esp + 0x78], 0x40
mov dword [esp + 0x7c], 0
jmp 0x46534a
xorps xmm0, xmm0
movlpd qword [esp + 0x28], xmm0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x68], ecx
mov dword [edi + 0x10], ecx
mov eax, dword [esp + 0x6c]
jmp 0x464de7
movq xmm1, qword [esp + 0x68]
movd xmm0, esi
cmp cl, 0x54
jne 0x4653e4
psllq xmm1, xmm0
movq qword [esp + 0x70], xmm1
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x68], ecx
mov dword [edi + 0x10], ecx
mov eax, dword [esp + 0x6c]
jmp 0x464de7
cmp dword [esp + 0x6c], 0
psrlq xmm1, xmm0
movq qword [esp + 0x70], xmm1
jg 0x465417
jl 0x4653fe
cmp dword [esp + 0x68], 0
jae 0x465417
or edx, 0xffffffff
mov ecx, 0x40
sub ecx, esi
mov eax, edx
call fcn.005455b0
or dword [esp + 0x70], eax
or dword [esp + 0x74], edx
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x68], ecx
mov dword [edi + 0x10], ecx
mov eax, dword [esp + 0x6c]
jmp 0x464de7
mov ecx, dword [esp + 0x68]
mov dword [edi + 0x10], ecx
mov eax, dword [esp + 0x6c]
jmp 0x464de7
mov eax, dword [edx + ebx*4 + 4]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.0045dd00
mov dword [esi + 0x10], eax
mov ecx, 0xbf04
mov ax, word [esi + 0x1c]
and ax, cx
mov dword [esi + 0x14], edx
mov ecx, dword [esp + 0xc]
or ax, 4
mov word [esi + 0x1c], ax
mov eax, dword [esp + 0x14]
mov eax, dword [eax + ebx*4 + 8]
cdq
add dword [esi + 0x10], eax
mov eax, dword [esp + 0x10]
adc dword [esi + 0x14], edx
inc eax
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
jmp 0x46453d
mov eax, dword [edx + ebx*4 + 4]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.004642d0
test byte [esi + 0x1c], 8
je 0x4654b9
mov ecx, esi
call fcn.0045de20
movzx eax, word [esi + 0x1c]
test al, 4
jne 0x4654de
mov edx, dword [esp + 0x14]
mov eax, dword [edx + ebx*4 + 8]
test eax, eax
je 0x46a9e1
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0xc]
jmp 0x46453d
mov edx, dword [esp + 0x14]
and eax, 0xbf04
mov ecx, dword [esp + 0xc]
or eax, 4
mov word [esi + 0x1c], ax
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
inc eax
jmp 0x46453d
mov eax, dword [edx + ebx*4 + 4]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x20]
movzx ebx, word [eax + esi*8 + 0x1c]
test bl, 4
je 0x46554b
test bl, 8
je 0x465522
movsd xmm0, qword [eax + esi*8 + 8]
jmp 0x465537
mov edx, dword [eax + esi*8 + 0x14]
mov ecx, dword [eax + esi*8 + 0x10]
call fcn.0051a6b0
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
and ebx, 0xbf08
movsd qword [eax + esi*8 + 8], xmm0
or ebx, 8
mov word [eax + esi*8 + 0x1c], bx
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
inc eax
mov ecx, dword [esp + 0xc]
jmp 0x46453d
mov eax, dword [edx + ebx*4 + 4]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx eax, word [esi + 0x1c]
test al, 1
jne case.0x4645cf.17
shr eax, 3
and eax, 2
or word [esi + 0x1c], ax
mov ax, word [esi + 0x1c]
test al, 2
jne 0x465599
test al, 0xc
je 0x465599
movzx edx, byte [esp + 0x30]
mov ecx, esi
call fcn.0045db10
mov eax, 0xfff3
and word [esi + 0x1c], ax
movzx eax, word [esi + 0x1c]
test eax, 0x4000
je 0x4655ca
mov ecx, esi
call fcn.0045da60
mov edx, dword [esp + 0x14]
mov dword [esp + 0x18], eax
mov eax, 0xbfe3
and word [esi + 0x1c], ax
jmp case.0x4645cf.17
mov edx, dword [esp + 0x14]
mov eax, 0xbfe3
and word [esi + 0x1c], ax
mov dword [esp + 0x18], 0
jmp case.0x4645cf.17
mov eax, dword [edx + ebx*4 + 4]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx eax, word [esi + 0x1c]
test al, 1
jne case.0x4645cf.17
test al, 0x10
jne 0x465640
test al, 2
jne 0x46561a
test al, 0xc
je 0x46561a
movzx edx, byte [esp + 0x30]
mov ecx, esi
call fcn.0045db10
mov edx, dword [esp + 0x14]
mov ax, word [esi + 0x1c]
mov ecx, 0xbf10
and ax, cx
mov ecx, dword [esp + 0xc]
or ax, 0x10
mov word [esi + 0x1c], ax
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
inc eax
jmp 0x46453d
mov ecx, dword [esp + 0xc]
and eax, 0xff10
mov word [esi + 0x1c], ax
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
inc eax
jmp 0x46453d
mov eax, dword [edx + ebx*4 + 4]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.0045dec0
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
inc eax
mov ecx, dword [esp + 0xc]
jmp 0x46453d
mov eax, dword [edx + ebx*4 + 4]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x1c], 1
lea esi, [ecx + eax*8]
jne 0x4656ba
mov ecx, esi
call fcn.0045dd00
mov dword [esi + 0x10], eax
mov ecx, 0xbf04
mov ax, word [esi + 0x1c]
and ax, cx
mov dword [esi + 0x14], edx
mov edx, dword [esp + 0x14]
or ax, 4
mov word [esi + 0x1c], ax
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
inc eax
mov ecx, dword [esp + 0xc]
jmp 0x46453d
mov eax, dword [edx + ebx*4 + 4]
mov ecx, dword [esp + 0x20]
lea esi, [eax + eax*4]
movzx ebx, word [ecx + esi*8 + 0x1c]
test bl, 1
jne 0x46574c
test bl, 8
je 0x4656ee
movsd xmm0, qword [ecx + esi*8 + 8]
jmp 0x465738
test bl, 4
je 0x465702
mov edx, dword [ecx + esi*8 + 0x14]
mov ecx, dword [ecx + esi*8 + 0x10]
call fcn.0051a6b0
jmp 0x465730
xorps xmm0, xmm0
test bl, 0x12
je 0x465738
movzx eax, byte [ecx + esi*8 + 0x1f]
lea edx, [esp + 0x28]
push eax
push dword [ecx + esi*8 + 0x18]
mov ecx, dword [ecx + esi*8 + 4]
movsd qword [esp + 0x30], xmm0
call fcn.00447340
movsd xmm0, qword [esp + 0x30]
add esp, 8
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
and ebx, 0xbf08
movsd qword [ecx + esi*8 + 8], xmm0
or ebx, 8
mov word [ecx + esi*8 + 0x1c], bx
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
inc eax
mov ecx, dword [esp + 0xc]
jmp 0x46453d
mov eax, dword [edx + ebx*4 + 4]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, dword [edx + ebx*4 + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
movzx eax, word [esi + 0x1c]
mov word [esp + 0x6e], ax
movzx eax, word [edi + 0x1c]
mov word [esp + 0x70], ax
or al, byte [esp + 0x6e]
test al, 1
je 0x465801
mov al, byte [edx + ebx*4 + 3]
test al, al
jns 0x4657aa
mov edx, dword [esp + 0x70]
and edx, dword [esp + 0x6e]
not edx
and edx, 1
jmp 0x465876
test al, 0x10
je 0x4657e2
mov eax, dword [edx + ebx*4 + 8]
mov esi, dword [esp + 0x1c]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov ecx, 0xbf01
mov ax, word [edi + 0x1c]
and ax, cx
mov dword [esp + 0x24], edi
mov ecx, dword [esp + 0xc]
or ax, 1
mov word [edi + 0x1c], ax
mov eax, dword [esp + 0x10]
inc eax
jmp 0x46453d
test al, 8
je 0x465926
mov eax, dword [edx + ebx*4 + 8]
mov edi, dword [esp + 0x24]
dec eax
mov esi, dword [esp + 0x1c]
inc eax
mov ecx, dword [esp + 0xc]
jmp 0x46453d
mov dl, byte [edx + ebx*4 + 3]
and dl, 0x67
mov byte [esp + 0x6c], dl
je 0x46583c
push dword [esp + 0x30]
mov ecx, esi
call fcn.00464360
mov dl, byte [esp + 0x70]
add esp, 4
mov ecx, edi
push dword [esp + 0x30]
call fcn.00464360
mov edx, dword [esp + 0x20]
add esp, 4
cmp byte [edx + 0x1e], 0
jne 0x46a9b1
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x465853
mov ecx, esi
call fcn.0045da60
mov eax, 0x4000
test word [edi + 0x1c], ax
je 0x465860
mov ecx, edi
call fcn.0045da60
mov eax, dword [esp + 0x14]
mov edx, esi
mov ecx, edi
push dword [eax + ebx*4 + 0x10]
call fcn.0045e490
add esp, 4
mov edx, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x68], edx
movzx ecx, byte [eax + ebx*4]
add ecx, 0xffffffb5
cmp ecx, 4
ja case.default.0x46588a
jmp dword [ecx*4 + 0x46afac]
xor eax, eax
test edx, edx
sete al
jmp 0x4658c5
xor eax, eax
test edx, edx
setne al
jmp 0x4658c5
xor eax, eax
test edx, edx
sets al
jmp 0x4658c5
xor eax, eax
test edx, edx
setle al
jmp 0x4658c5
xor eax, eax
test edx, edx
setg al
jmp 0x4658c5
xor eax, eax
test edx, edx
setns al
mov edx, dword [esp + 0x14]
mov dword [esp + 0x68], eax
test byte [edx + ebx*4 + 3], 0x10
je 0x46590b
mov eax, dword [edx + ebx*4 + 8]
mov edx, 0xbf04
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov ax, word [ecx + 0x1c]
and ax, dx
mov dword [esp + 0x24], ecx
or ax, 4
mov word [ecx + 0x1c], ax
mov eax, dword [esp + 0x68]
cdq
mov dword [ecx + 0x14], edx
mov edx, dword [esp + 0x14]
mov dword [ecx + 0x10], eax
jmp 0x465918
test eax, eax
je 0x465918
mov eax, dword [edx + ebx*4 + 8]
dec eax
mov dword [esp + 0x10], eax
mov al, byte [esp + 0x6e]
mov byte [esi + 0x1c], al
mov al, byte [esp + 0x70]
mov byte [edi + 0x1c], al
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x24]
inc eax
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0xc]
jmp 0x46453d
mov eax, dword [edx + ebx*4 + 0x10]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
inc eax
jmp 0x46453d
mov eax, dword [edx + ebx*4 + 0xc]
mov dword [esp + 0x68], eax
mov edi, dword [edx + ebx*4 + 0x10]
mov dword [esp + 0x78], edi
mov ecx, dword [edx + ebx*4 + 4]
mov dword [esp + 0x70], ecx
mov ebx, dword [edx + ebx*4 + 8]
xor edx, edx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x6c], edx
test eax, eax
jle 0x465a0f
mov eax, dword [esp + 0x48]
test eax, eax
je 0x465991
mov esi, dword [eax + edx*4]
jmp 0x465993
mov esi, edx
mov dword [esp + 0x7c], esi
mov ecx, dword [edi + edx*4 + 0xc]
mov dword [esp + 0x80], ecx
mov eax, dword [edi + 8]
push ecx
movzx eax, byte [eax + edx]
mov dword [esp + 0x88], eax
lea eax, [esi + ebx]
mov ebx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea edx, [ebx + eax*8]
mov eax, dword [esp + 0x2c]
add eax, esi
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
call fcn.0045e490
add esp, 4
mov dword [esp + 0x4c], eax
test eax, eax
jne 0x4659fb
mov edx, dword [esp + 0x6c]
inc edx
mov dword [esp + 0x6c], edx
cmp edx, dword [esp + 0x68]
jge 0x465a0b
mov ecx, dword [esp + 0x70]
mov edi, dword [esp + 0x78]
mov ebx, dword [esp + 0x74]
mov dword [esp + 0x28], ecx
jmp 0x465984
cmp dword [esp + 0x84], 0
je 0x465a0b
neg eax
mov dword [esp + 0x4c], eax
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x24]
xor eax, eax
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x10]
inc eax
jmp 0x46453d
mov eax, dword [esp + 0x4c]
test eax, eax
jns 0x465a40
mov eax, dword [edx + ebx*4 + 4]
mov ecx, dword [esp + 0xc]
jmp 0x46453d
jne 0x465a4f
mov eax, dword [edx + ebx*4 + 8]
mov ecx, dword [esp + 0xc]
jmp 0x46453d
mov eax, dword [edx + ebx*4 + 0xc]
mov ecx, dword [esp + 0xc]
jmp 0x46453d
mov eax, dword [edx + ebx*4 + 4]
mov edi, dword [esp + 0x20]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 0x1c], 1
lea ecx, [edi + eax*8]
je 0x465a78
mov ecx, 2
jmp 0x465a8e
call fcn.0045dd00
or eax, edx
mov edx, dword [esp + 0x14]
je 0x465a8c
mov ecx, 1
jmp 0x465a8e
xor ecx, ecx
mov dword [esp + 0x68], ecx
mov eax, dword [edx + ebx*4 + 8]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 0x1c], 1
lea eax, [edi + eax*8]
je 0x465aaa
mov eax, 2
jmp 0x465ac6
mov ecx, eax
call fcn.0045dd00
mov ecx, dword [esp + 0x68]
or eax, edx
mov edx, dword [esp + 0x14]
je 0x465ac4
mov eax, 1
jmp 0x465ac6
xor eax, eax
mov dword [esp + 0x6c], eax
lea eax, [eax + ecx*2]
cmp byte [edx + ebx*4], 0x45
jne 0x465add
movzx ecx, byte [ecx + eax + 0x5714fc]
jmp 0x465ae5
movzx ecx, byte [ecx + eax + 0x572ecc]
mov dword [esp + 0x68], ecx
mov eax, dword [edx + ebx*4 + 0xc]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
mov dword [esp + 0x24], edi
cmp ecx, 2
jne 0x465b1e
mov ax, word [edi + 0x1c]
mov ecx, 0xbf01
and ax, cx
mov ecx, dword [esp + 0xc]
or ax, 1
mov word [edi + 0x1c], ax
mov eax, dword [esp + 0x10]
inc eax
jmp 0x46453d
mov eax, ecx
mov ecx, 0xbf04
cdq
mov dword [edi + 0x10], eax
mov ax, word [edi + 0x1c]
and ax, cx
mov dword [edi + 0x14], edx
mov edx, dword [esp + 0x14]
or ax, 4
mov ecx, dword [esp + 0xc]
mov word [edi + 0x1c], ax
mov eax, dword [esp + 0x10]
inc eax
jmp 0x46453d
mov eax, dword [edx + ebx*4 + 4]
mov edi, dword [esp + 0x20]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 0x1c], 1
lea ecx, [edi + eax*8]
mov eax, dword [edx + ebx*4 + 8]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
mov dword [esp + 0x24], edi
je 0x465b89
mov ecx, edi
call fcn.0045df90
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
inc eax
mov ecx, dword [esp + 0xc]
jmp 0x46453d
call fcn.0045dd00
or eax, edx
jne 0x465bb5
mov ecx, 1
push eax
push ecx
mov ecx, edi
call fcn.0045dfe0
mov eax, dword [esp + 0x18]
add esp, 8
mov edx, dword [esp + 0x14]
inc eax
mov ecx, dword [esp + 0xc]
jmp 0x46453d
xorps xmm0, xmm0
movlpd qword [esp + 0x28], xmm0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
push eax
push ecx
mov ecx, edi
call fcn.0045dfe0
mov eax, dword [esp + 0x18]
add esp, 8
mov edx, dword [esp + 0x14]
inc eax
mov ecx, dword [esp + 0xc]
jmp 0x46453d
mov eax, dword [edx + ebx*4 + 4]
mov edi, dword [esp + 0x20]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 0x1c], 1
lea ecx, [edi + eax*8]
mov eax, dword [edx + ebx*4 + 8]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
mov dword [esp + 0x24], edi
je 0x465c20
mov ecx, edi
call fcn.0045df90
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
inc eax
mov ecx, dword [esp + 0xc]
jmp 0x46453d
call fcn.0045dd00
not edx
not eax
push edx
push eax
jmp 0x465bc8
mov eax, dword [esp + 0xc]
mov ecx, dword [edx + ebx*4 + 4]
mov eax, dword [eax + 0xc0]
cmp byte [eax + ecx], 0
je 0x465c4e
mov eax, dword [edx + ebx*4 + 8]
mov ecx, dword [esp + 0xc]
jmp 0x46453d
mov byte [eax + ecx], 1
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
inc eax
jmp 0x46453d
mov eax, dword [edx + ebx*4 + 4]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x1c], 1
lea ecx, [ecx + eax*8]
je 0x465c7b
mov ecx, dword [edx + ebx*4 + 0xc]
jmp 0x465cad
call fcn.0045ddc0
ucomisd xmm0, qword [0x57c880]
mov edx, dword [esp + 0x14]
lahf
xor ecx, ecx
test ah, 0x44
mov eax, 1
cmovp ecx, eax
mov dword [esp + 0x68], ecx
cmp byte [edx + ebx*4], 0x1c
jne 0x465cb1
xor eax, eax
test ecx, ecx
sete al
mov ecx, eax
mov dword [esp + 0x68], ecx
test ecx, ecx
je 0x465944
mov eax, dword [edx + ebx*4 + 8]
mov ecx, dword [esp + 0xc]
dec eax
inc eax
jmp 0x46453d
mov eax, dword [edx + ebx*4 + 4]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x1c], 1
je 0x465944
mov eax, dword [edx + ebx*4 + 8]
mov ecx, dword [esp + 0xc]
dec eax
inc eax
jmp 0x46453d
mov eax, dword [edx + ebx*4 + 4]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x1c], 1
jne 0x465944
mov eax, dword [edx + ebx*4 + 8]
mov ecx, dword [esp + 0xc]
dec eax
inc eax
jmp 0x46453d
mov ecx, dword [edx + ebx*4 + 4]
xorps xmm0, xmm0
mov edi, dword [esp + 0xc]
mov dword [esp + 0x78], ecx
mov eax, dword [edx + ebx*4 + 8]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], 0
movups xmmword [esp + 0xa8], xmm0
movups xmmword [esp + 0xb8], xmm0
movq qword [esp + 0xc8], xmm0
mov eax, dword [edx + ebx*4 + 0xc]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x84], 0
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0xa4], eax
mov eax, dword [edi + 0x44]
mov edx, dword [eax + ecx*4]
mov dword [esp + 0x80], edx
mov eax, dword [edx]
mov dword [esp + 0x88], eax
test eax, eax
je 0x465ecd
mov ecx, edx
call fcn.004615b0
mov dword [esp + 0x18], eax
test eax, eax
jne 0x46a9ea
mov ecx, dword [esp + 0x80]
cmp byte [ecx + 0x1c], al
jne 0x4664fe
mov eax, dword [ecx + 0x50]
cmp eax, dword [edi + 0x54]
jne 0x465dcc
mov edx, dword [ecx + 0x54]
mov dword [esp + 0x68], edx
mov eax, dword [ecx + 0x60]
mov dword [esp + 0x84], eax
jmp 0x465f1a
cmp byte [ecx + 0x1f], 0
mov edx, dword [esp + 0x88]
mov dword [esp + 0x28], edx
je 0x465e6e
cmp byte [edx + 0x53], 1
je 0x465dfd
xorps xmm0, xmm0
movlpd qword [esp + 0x70], xmm0
mov edx, dword [esp + 0x70]
mov dword [esp + 0x68], edx
jmp 0x465f1a
cmp word [edx + 0x3a], 0
jne 0x465e53
movsx eax, word [edx + 0x5a]
mov edi, dword [edx + eax*4 + 0x84]
movzx esi, word [edx + eax*2 + 0x5c]
lea eax, [edx + 0x20]
push eax
mov ecx, dword [edi + 0x48]
movzx eax, byte [ecx + esi*2]
movzx edx, byte [ecx + esi*2 + 1]
mov ecx, edi
shl eax, 8
or edx, eax
movzx eax, word [edi + 0x12]
and edx, eax
add edx, dword [edi + 0x40]
call fcn.00454590
mov edx, dword [esp + 0x2c]
add esp, 4
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0xc]
mov byte [edx + 0x52], 1
mov ecx, dword [esp + 0x80]
mov eax, dword [esp + 0x28]
mov edx, dword [edx + 0x20]
mov dword [esp + 0x70], edx
mov eax, dword [eax + 0x24]
mov dword [esp + 0x74], eax
mov dword [esp + 0x68], edx
jmp 0x465f1a
cmp word [edx + 0x3a], 0
jne 0x465ec4
movsx eax, word [edx + 0x5a]
mov edi, dword [edx + eax*4 + 0x84]
movzx esi, word [edx + eax*2 + 0x5c]
lea eax, [edx + 0x20]
push eax
mov ecx, dword [edi + 0x48]
movzx eax, byte [ecx + esi*2]
movzx edx, byte [ecx + esi*2 + 1]
mov ecx, edi
shl eax, 8
or edx, eax
movzx eax, word [edi + 0x12]
and edx, eax
add edx, dword [edi + 0x40]
call fcn.00454590
mov edx, dword [esp + 0x2c]
add esp, 4
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0xc]
mov byte [edx + 0x52], 1
mov ecx, dword [esp + 0x80]
mov edx, dword [edx + 0x2c]
mov dword [esp + 0x68], edx
jmp 0x465f1a
mov eax, dword [edx + 0x10]
test eax, eax
jle 0x4664fe
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov dword [esp + 0xec], ecx
mov eax, dword [ecx + 0x18]
mov dword [esp + 0x68], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x14]
test byte [eax + ebx*4 + 3], 0x20
je 0x465f09
xor eax, eax
jmp 0x465f0c
mov eax, dword [edi + 0x54]
mov dword [edx + 0x50], eax
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x68]
test edx, edx
je 0x466506
cmp edx, dword [esi + 0x48]
ja 0x46ab7c
mov esi, dword [ecx + 0x14]
mov dword [esp + 0x94], esi
mov edx, dword [ecx + 0x58]
mov dword [esp + 0x8c], edx
mov eax, dword [ecx + 0x50]
cmp eax, dword [edi + 0x54]
jne 0x465f5b
mov ecx, dword [ecx + 0x5c]
mov edi, 1
mov dword [esp + 0x90], ecx
jmp 0x466287
lea eax, [edx + esi*4]
mov dword [esp + 0xe4], 0
mov dword [esp + 0x90], eax
mov dword [ecx + 0x5c], eax
mov ecx, dword [esp + 0x80]
mov eax, dword [esp + 0x68]
mov dword [ecx + 0x54], eax
mov eax, dword [esp + 0x80]
mov ecx, dword [edi + 0x54]
mov dword [eax + 0x50], ecx
mov ecx, dword [esp + 0x84]
test ecx, ecx
je 0x465fa5
mov dword [esp + 0xa0], ecx
jmp 0x46606c
mov edi, dword [esp + 0x80]
cmp byte [edi + 0x1f], 0
je 0x466022
mov edx, dword [esp + 0x88]
xor esi, esi
mov dword [esp + 0x28], edx
cmp byte [edx + 0x53], 1
jne 0x46603e
cmp word [edx + 0x3a], si
jne 0x46600e
movsx eax, word [edx + 0x5a]
mov edi, dword [edx + eax*4 + 0x84]
movzx esi, word [edx + eax*2 + 0x5c]
lea eax, [edx + 0x20]
push eax
mov ecx, dword [edi + 0x48]
movzx eax, byte [ecx + esi*2]
movzx edx, byte [ecx + esi*2 + 1]
mov ecx, edi
shl eax, 8
or edx, eax
movzx eax, word [edi + 0x12]
and edx, eax
add edx, dword [edi + 0x40]
call fcn.00454590
mov edi, dword [esp + 0x84]
add esp, 4
mov edx, dword [esp + 0x28]
movzx esi, word [edx + 0x34]
movzx eax, word [edx + 0x36]
add esi, dword [edx + 0x28]
mov dword [esp + 0xe4], eax
jmp 0x46603e
mov ecx, dword [esp + 0x88]
lea edx, [esp + 0xe4]
call fcn.00457a10
mov edi, dword [esp + 0x80]
mov esi, eax
mov ecx, dword [esp + 0x68]
mov dword [esp + 0xa0], esi
cmp ecx, dword [esp + 0xe4]
ja 0x46605e
mov dword [esp + 0x84], esi
mov dword [edi + 0x60], esi
jmp 0x466065
mov dword [edi + 0x60], 0
mov ecx, dword [esp + 0xa0]
mov al, byte [ecx]
cmp al, 0x80
jae 0x466083
movzx edx, al
mov eax, 1
mov dword [esp + 0xd8], edx
jmp 0x4660a0
lea edx, [esp + 0xd8]
call fcn.00447ea0
mov edx, dword [esp + 0xd8]
mov ecx, dword [esp + 0xa0]
movzx eax, al
movzx eax, al
mov dword [esp + 0xe0], eax
cmp edx, 0x18003
jbe 0x4660cd
mov ecx, 0x105e5
call fcn.0049f790
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x18], eax
jmp 0x4669f5
mov edi, dword [esp + 0x94]
lea esi, [edi*4 + 3]
add esi, edi
cmp esi, edx
cmovg esi, edx
cmp dword [esp + 0x84], 0
mov dword [esp + 0x98], esi
jne 0x466162
cmp dword [esp + 0xe4], esi
jge 0x466162
mov ecx, dword [esp + 0x88]
xor eax, eax
mov word [esp + 0xc4], ax
xor edx, edx
mov dword [esp + 0xa8], eax
lea eax, [esp + 0xa8]
push eax
mov eax, dword [esp + 0x84]
movzx eax, byte [eax + 0x1f]
push eax
push esi
call fcn.0045e730
add esp, 0xc
mov dword [esp + 0x18], eax
test eax, eax
jne 0x467732
mov ecx, dword [esp + 0xac]
mov edx, dword [esp + 0xd8]
mov esi, dword [esp + 0x98]
mov edi, dword [esp + 0x94]
mov dword [esp + 0xa0], ecx
lea eax, [ecx + esi]
mov esi, dword [esp + 0xe0]
add esi, ecx
mov dword [esp + 0xd4], eax
xor ecx, ecx
mov dword [esp + 0xd0], esi
mov dword [esp + 0x9c], ecx
test edi, edi
jle 0x46622b
nop dword [eax]
cmp esi, eax
mov eax, dword [esp + 0x90]
jae 0x4662e8
mov dword [eax + ecx*4], edx
mov ecx, dword [esp + 0xd0]
mov al, byte [ecx]
cmp al, 0x80
jae 0x4661c3
movzx edx, al
inc ecx
mov dword [esp + 0xe8], edx
mov dword [esp + 0xd0], ecx
jmp 0x4661e0
lea edx, [esp + 0xe8]
call fcn.00447ea0
mov edx, dword [esp + 0xe8]
movzx eax, al
add dword [esp + 0xd0], eax
mov ecx, dword [esp + 0x9c]
mov eax, dword [esp + 0x8c]
mov dword [eax + ecx*4], edx
mov ecx, dword [esp + 0xe8]
call fcn.00461750
mov edx, dword [esp + 0xd8]
add edx, eax
mov dword [esp + 0xdc], eax
mov dword [esp + 0xd8], edx
cmp edx, eax
jae 0x4662f6
mov eax, dword [esp + 0xd4]
inc eax
mov dword [esp + 0xd0], eax
lea ecx, [esp + 0xa8]
call fcn.0045dcb0
mov edx, dword [esp + 0xd0]
mov edi, 1
mov esi, dword [esp + 0xd4]
mov word [esp + 0xc4], di
cmp edx, esi
ja 0x4664e3
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0x68]
cmp eax, ecx
ja 0x4664e3
cmp edx, esi
jne 0x466279
cmp eax, ecx
jne 0x4664e3
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x8c]
mov eax, dword [esp + 0x7c]
cmp dword [ecx + eax*4], 0
je 0x466441
cmp dword [esp + 0x84], 0
je 0x466325
mov esi, dword [esp + 0xa4]
mov ebx, 0x2460
test word [esi + 0x1c], bx
je 0x4662d5
mov ecx, esi
call fcn.0045dc50
mov esi, dword [esp + 0xa4]
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x8c]
mov eax, dword [esp + 0x7c]
mov ecx, dword [ecx + eax*4]
add ecx, dword [esp + 0x84]
mov edx, dword [edx + eax*4]
push esi
jmp 0x466429
mov dword [eax + ecx*4], 0
mov edx, dword [esp + 0xd8]
mov ecx, dword [esp + 0x9c]
inc ecx
mov dword [esp + 0x9c], ecx
cmp ecx, dword [esp + 0x94]
jge 0x46622b
mov eax, dword [esp + 0xd4]
mov esi, dword [esp + 0xd0]
jmp 0x466190
mov ecx, dword [edx + eax*4]
call fcn.00461750
test dword [esp + 0xc4], 0x2460
mov esi, dword [esp + 0xa4]
mov dword [esp + 0x98], eax
je 0x466354
lea ecx, [esp + 0xa8]
call fcn.0045dc50
push dword [esp + 0xcc]
push dword [esp + 0xac]
call fcn.00444f80
mov dword [esp + 0xb4], 0
lea eax, [esp + 0xb0]
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd0], 0
movups xmm0, xmmword [esi]
push eax
movups xmmword [esp + 0xb4], xmm0
movups xmm0, xmmword [esi + 0x10]
movups xmmword [esp + 0xc4], xmm0
movq xmm0, qword [esi + 0x20]
movq qword [esp + 0xd4], xmm0
mov word [esi + 0x1c], di
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
mov eax, dword [esp + 0x8c]
mov edx, dword [esp + 0x88]
mov ecx, dword [esp + 0x94]
movzx eax, byte [eax + 0x1f]
push eax
mov eax, dword [esp + 0xa0]
push dword [esp + 0xa8]
mov edx, dword [eax + edx*4]
call fcn.0045e730
add esp, 0x14
mov dword [esp + 0x18], eax
test eax, eax
jne 0x467732
mov eax, dword [esp + 0x8c]
mov edx, dword [esp + 0x7c]
mov ecx, dword [esp + 0xac]
push dword [esp + 0xa4]
mov dword [esp + 0xa4], ecx
mov edx, dword [eax + edx*4]
call fcn.00461830
mov eax, dword [esp + 0xa8]
add esp, 4
mov cl, byte [esp + 0x30]
mov byte [eax + 0x1f], cl
jmp 0x46647a
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0xa4]
cmp byte [eax + ebx*4 + 1], 0xf8
jne 0x466466
mov edx, dword [eax + ebx*4 + 0x10]
push 0x800
call fcn.0045e1f0
add esp, 4
jmp 0x46647a
mov ax, word [ecx + 0x1c]
mov edx, 0xbf01
and ax, dx
or ax, 1
mov word [ecx + 0x1c], ax
cmp dword [esp + 0xcc], 0
je 0x4664c6
mov eax, dword [esp + 0xa4]
mov ecx, 0xe7ff
and word [eax + 0x1c], cx
mov ecx, 0x200
mov eax, dword [esp + 0xa4]
or word [eax + 0x1c], cx
mov ecx, dword [esp + 0xa4]
mov eax, dword [esp + 0xac]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0xcc]
mov dword [eax + 0x24], ecx
mov ecx, dword [esp + 0xa4]
call fcn.0045da00
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x18], eax
jmp 0x4669f5
mov ecx, 0x10635
call fcn.0049f790
mov dword [esp + 0x18], eax
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
jmp 0x4669f5
mov dword [esp + 0x68], 0
mov ecx, dword [esp + 0xa4]
mov edx, 0xbf01
mov edi, dword [esp + 0x24]
mov ax, word [ecx + 0x1c]
and ax, dx
mov edx, dword [esp + 0x14]
or ax, 1
mov word [ecx + 0x1c], ax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
inc eax
jmp 0x46453d
mov ecx, dword [edx + ebx*4 + 0x10]
mov dword [esp + 0x68], ecx
mov eax, dword [edx + ebx*4 + 4]
mov ebx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
mov al, byte [ecx]
mov byte [esp + 0x6c], al
test al, al
je 0x46659f
mov edi, 0x4000
nop dword [eax]
inc ecx
mov dword [esp + 0x68], ecx
test word [esi + 0x1c], di
je 0x466576
mov ecx, esi
call fcn.0045da60
mov al, byte [esp + 0x6c]
push dword [esp + 0x30]
mov dl, al
mov ecx, esi
call fcn.00464360
mov ecx, dword [esp + 0x6c]
add esp, 4
add esi, 0x28
mov al, byte [ecx]
mov byte [esp + 0x6c], al
test al, al
jne 0x466560
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
inc ecx
mov esi, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0xc]
jmp 0x46453d
mov ecx, dword [esp + 0x20]
xor eax, eax
mov edi, dword [esp + 0x14]
xor esi, esi
mov dword [esp + 0x88], eax
xorps xmm0, xmm0
mov dword [esp + 0x34], eax
movlpd qword [esp + 0x70], xmm0
mov dword [esp + 0x78], esi
mov eax, dword [edx + ebx*4 + 4]
mov dword [esp + 0x9c], eax
mov edx, dword [edx + ebx*4 + 0x10]
mov dword [esp + 0xa0], edx
lea eax, [eax + eax*4]
mov dword [esp + 0x28], edx
lea ecx, [ecx + eax*8]
mov dword [esp + 0x94], ecx
mov eax, dword [edi + ebx*4 + 8]
mov dword [esp + 0x9c], eax
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [esp + 0xc]
add ecx, 0xffffffd8
mov dword [esp + 0x98], ecx
movzx eax, byte [eax + 0x65]
mov dword [esp + 0xa4], eax
mov eax, dword [edi + ebx*4 + 0xc]
mov ebx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x94]
mov edi, eax
mov dword [esp + 0x6c], edi
cmp eax, ecx
ja 0x466761
mov ebx, dword [esp + 0x34]
test edx, edx
je 0x46669a
push dword [esp + 0x30]
mov ecx, edi
sub ecx, eax
mov eax, 0x66666667
imul ecx
mov ecx, dword [esp + 0x2c]
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dl, byte [eax + ecx]
mov ecx, edi
call fcn.00464360
mov ecx, dword [esp + 0xa4]
add esp, 4
mov ebx, dword [esp + 0x88]
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x28], ecx
mov eax, 0x4000
test word [edi + 0x1c], ax
je 0x4666c8
cmp dword [edi + 0x18], 0
jle 0x4666c8
mov ecx, edi
call fcn.0045da60
mov ecx, dword [esp + 0xa0]
mov ebx, dword [esp + 0x88]
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x28], ecx
mov edx, dword [esp + 0xa4]
mov ecx, edi
call fcn.00461650
mov esi, eax
mov ecx, esi
mov dword [esp + 0x90], esi
call fcn.00461750
mov dword [esp + 0xac], eax
cdq
add dword [esp + 0x70], eax
adc dword [esp + 0x74], edx
xor ecx, ecx
xor edx, edx
nop word [eax + eax]
shrd esi, ecx, 7
inc edx
shr ecx, 7
mov eax, esi
or eax, ecx
je 0x466713
cmp edx, 9
jl 0x466700
mov esi, dword [esp + 0x78]
mov eax, 0x4000
add esi, edx
mov dword [esp + 0x78], esi
test word [edi + 0x1c], ax
je 0x46672d
add ebx, dword [edi + 0x10]
jmp 0x466739
xor eax, eax
cmp dword [esp + 0xac], eax
cmovne ebx, eax
mov edx, dword [esp + 0x28]
add edi, 0x28
mov eax, dword [esp + 0x94]
mov dword [esp + 0x88], ebx
mov dword [esp + 0x6c], edi
cmp edi, dword [esp + 0x98]
jbe 0x466656
jmp 0x466763
xor ebx, ebx
mov eax, esi
xor edi, edi
cdq
mov ecx, eax
nop word [eax + eax]
shrd ecx, edx, 7
inc edi
shr edx, 7
mov eax, ecx
or eax, edx
je 0x466783
cmp edi, 9
jl 0x466770
add esi, edi
mov dword [esp + 0x8c], edi
mov eax, esi
mov dword [esp + 0x78], esi
cdq
xor esi, esi
mov ecx, eax
shrd ecx, edx, 7
inc esi
shr edx, 7
mov eax, ecx
or eax, edx
je 0x4667aa
cmp esi, 9
jl 0x466797
cmp edi, esi
mov edi, dword [esp + 0x78]
jge 0x4667b7
inc edi
mov dword [esp + 0x78], edi
mov eax, ebx
cdq
mov ecx, eax
mov esi, edx
mov eax, edi
cdq
mov ebx, eax
mov edi, edx
sub ebx, ecx
sbb edi, esi
add ebx, dword [esp + 0x70]
mov esi, dword [esp + 0x1c]
adc edi, dword [esp + 0x74]
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], edi
mov eax, dword [esi + 0x48]
cdq
cmp edi, edx
jg 0x46ab7c
jl 0x4667f9
cmp ebx, eax
ja 0x46ab7c
mov edi, dword [esp + 0x24]
mov edx, ebx
push 0
mov ecx, edi
call fcn.0045d8e0
add esp, 4
test eax, eax
jne 0x46a9b1
mov ecx, dword [esp + 0x78]
mov edx, dword [edi + 4]
mov dword [esp + 0x68], edx
cmp ecx, 0x80
jae 0x466831
mov al, cl
mov byte [edx], al
mov eax, 1
jmp 0x46685c
test ecx, 0xffffc000
jne 0x46684f
mov eax, ecx
shr eax, 7
or al, 0x80
and cl, 0x7f
mov byte [edx], al
mov eax, 2
mov byte [edx + 1], cl
jmp 0x46685c
push 0
push ecx
mov ecx, edx
call fcn.00447c10
add esp, 8
mov ecx, dword [esp + 0x98]
movzx esi, al
mov eax, dword [esp + 0x94]
mov dword [esp + 0xa8], esi
mov dword [esp + 0x6c], eax
cmp eax, ecx
ja 0x466914
mov edx, dword [esp + 0xa4]
mov ecx, eax
call fcn.00461650
mov ecx, eax
mov dword [esp + 0x90], ecx
cmp ecx, 0x80
jae 0x4668af
mov cl, al
mov eax, dword [esp + 0x68]
mov byte [esi + eax], cl
mov eax, 1
jmp 0x4668e0
mov edx, dword [esp + 0x68]
add edx, esi
test ecx, 0xffffc000
jne 0x4668d3
mov eax, ecx
shr eax, 7
or al, 0x80
and cl, 0x7f
mov byte [edx], al
mov eax, 2
mov byte [edx + 1], cl
jmp 0x4668e0
push 0
push ecx
mov ecx, edx
call fcn.00447c10
add esp, 8
mov esi, dword [esp + 0xa8]
mov ecx, dword [esp + 0x98]
movzx eax, al
add esi, eax
mov eax, dword [esp + 0x6c]
add eax, 0x28
mov dword [esp + 0xa8], esi
mov dword [esp + 0x6c], eax
cmp eax, ecx
jbe 0x466880
mov eax, dword [esp + 0x94]
mov dword [esp + 0x6c], eax
cmp eax, ecx
ja 0x466964
nop dword [eax]
mov ecx, dword [esp + 0x68]
push dword [esp + 0xa4]
mov edx, dword [esp + 0x84]
push eax
sub edx, esi
lea ecx, [esi + ecx]
call fcn.00461770
mov esi, dword [esp + 0xb0]
add esp, 8
add esi, eax
mov eax, dword [esp + 0x6c]
add eax, 0x28
mov dword [esp + 0xa8], esi
mov dword [esp + 0x6c], eax
cmp eax, dword [esp + 0x98]
jbe 0x466920
mov eax, dword [esp + 0x80]
mov dword [edi + 0x18], eax
mov eax, 0x410
mov word [edi + 0x1c], ax
mov dword [edi + 0x20], 0
mov eax, dword [esp + 0x88]
test eax, eax
je 0x466995
mov dword [edi + 0x10], eax
mov eax, 0x4410
mov word [edi + 0x1c], ax
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
inc eax
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
mov byte [edi + 0x1f], 1
jmp 0x46453d
mov eax, dword [esp + 0xc]
mov ecx, dword [edx + ebx*4 + 4]
mov eax, dword [eax + 0x44]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax]
mov dword [esp + 0x70], ecx
test ecx, ecx
je 0x4669da
lea edx, [esp + 0x68]
call fcn.0045b680
mov edx, dword [esp + 0x14]
mov dword [esp + 0x18], eax
jmp 0x4669e3
xorps xmm0, xmm0
movlpd qword [esp + 0x68], xmm0
mov eax, dword [esp + 0x68]
mov dword [edi + 0x10], eax
mov eax, dword [esp + 0x6c]
mov dword [edi + 0x14], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
inc esi
mov dword [esp + 0x10], esi
test eax, eax
jne 0x46a7e9
mov eax, esi
mov esi, dword [esp + 0x1c]
jmp 0x464541
mov eax, dword [edx + ebx*4 + 4]
mov dword [esp + 0x34], eax
mov dword [esp + 0x68], eax
mov eax, dword [edx + ebx*4 + 0x10]
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x28], eax
mov dword [esp + 0x6c], eax
test ebx, ebx
jne 0x466afa
cmp dword [esi + 0x90], ebx
jg 0x46aa06
mov ecx, eax
call fcn.004470b0
mov dword [esp + 0x70], eax
xor edx, edx
mov eax, dword [esi + 0x1e4]
mov ecx, esi
add eax, dword [esi + 0x1e0]
push eax
call fcn.00493cc0
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
jne 0x46a9ea
mov edx, dword [esp + 0x70]
mov ecx, esi
lea edx, [edx + 0x19]
call fcn.004451f0
mov dword [esp + 0x74], eax
test eax, eax
je 0x466aec
lea ecx, [eax + 0x18]
mov dword [eax], ecx
mov eax, dword [esp + 0x70]
inc eax
push eax
mov eax, dword [esp + 0x78]
push dword [esp + 0x70]
push dword [eax]
call fcn.0051d9c0
add esp, 0xc
cmp byte [esi + 0x1c], bl
je 0x466ab9
mov byte [esi + 0x1c], bl
mov byte [esi + 0x1e8], 1
jmp 0x466abf
inc dword [esi + 0x1e0]
mov eax, dword [esp + 0x74]
mov ecx, dword [esi + 0x1dc]
mov dword [eax + 0x10], ecx
mov eax, dword [esp + 0x74]
mov dword [esi + 0x1dc], eax
mov ecx, dword [esp + 0x74]
mov eax, dword [esi + 0x1f0]
mov dword [ecx + 8], eax
mov eax, dword [esi + 0x1f4]
mov dword [ecx + 0xc], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
inc eax
jmp 0x464539
xor edi, edi
mov dword [esp + 0x80], edi
mov esi, dword [esi + 0x1dc]
mov dword [esp + 0x78], esi
test esi, esi
je 0x46aa45
mov ecx, dword [esi]
mov edx, eax
call fcn.00447290
test eax, eax
je 0x466b33
mov eax, dword [esp + 0x28]
inc edi
mov dword [esp + 0x80], edi
mov esi, dword [esi + 0x10]
jmp 0x466b09
mov ecx, dword [esp + 0x1c]
cmp dword [ecx + 0x90], 0
jg 0x466d0f
cmp ebx, 2
jne 0x466b56
cmp dword [ecx + 0x8c], 1
jg 0x466d0f
cmp dword [esi + 0x10], 0
jne 0x466bb7
cmp byte [ecx + 0x1e8], 0
je 0x466bb7
mov dword [esp + 0x28], 1
cmp ebx, 1
jne 0x466bbf
mov edi, dword [esp + 0xc]
mov edx, ebx
mov ecx, edi
call fcn.00460ed0
mov esi, eax
test esi, esi
jne 0x46a83f
mov edi, dword [esp + 0x1c]
mov byte [edi + 0x1c], bl
mov ebx, dword [esp + 0xc]
mov ecx, ebx
call fcn.00460f30
cmp eax, 5
je 0x46aa2b
mov byte [edi + 0x1e8], 0
mov eax, dword [ebx + 0x5c]
mov dword [esp + 0x18], eax
jmp 0x466c4c
mov dword [esp + 0x28], 0
mov ecx, dword [ecx + 0x1e0]
xor eax, eax
sub ecx, edi
mov dword [esp + 0x84], eax
mov edi, dword [esp + 0x1c]
dec ecx
mov dword [esp + 0x80], ecx
cmp dword [edi + 4], eax
jle 0x466c26
push ecx
mov ecx, dword [edi + 8]
add eax, eax
mov edx, ebx
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00457270
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
jne 0x46a9ee
mov eax, dword [esp + 0x84]
mov ebx, dword [esp + 0x68]
inc eax
mov dword [esp + 0x84], eax
cmp eax, dword [edi + 4]
jge 0x466c22
mov ecx, dword [esp + 0x80]
jmp 0x466be1
mov esi, dword [esp + 0x78]
cmp ebx, 2
jne 0x466c54
test dword [edi + 0xc], 0x200
je 0x466c54
mov ecx, edi
call fcn.00462110
or eax, 0xffffffff
mov edx, eax
call fcn.00476b50
or dword [edi + 0xc], 0x200
mov ebx, dword [esp + 0x68]
mov esi, dword [esp + 0x78]
cmp dword [edi + 0x1dc], esi
je 0x466c96
nop dword [eax]
mov eax, dword [edi + 0x1dc]
mov dword [esp + 0x7c], eax
mov eax, dword [eax + 0x10]
mov dword [edi + 0x1dc], eax
push dword [esp + 0x7c]
push edi
call fcn.00444f80
dec dword [edi + 0x1e0]
add esp, 8
mov esi, dword [esp + 0x78]
cmp dword [edi + 0x1dc], esi
jne 0x466c60
mov ebx, dword [esp + 0x68]
cmp ebx, 1
jne 0x466cc4
mov eax, dword [esi + 0x10]
mov dword [edi + 0x1dc], eax
push dword [esp + 0x78]
push edi
call fcn.00444f80
add esp, 8
cmp dword [esp + 0x28], 0
jne 0x46a0d2
dec dword [edi + 0x1e0]
jmp 0x466ce1
cmp dword [esp + 0x28], 0
mov eax, dword [esi + 8]
mov dword [edi + 0x1f0], eax
mov eax, dword [esi + 0xc]
mov dword [edi + 0x1f4], eax
jne 0x46a0d2
push dword [esp + 0x80]
mov edx, dword [esp + 0x6c]
mov ecx, edi
call fcn.00493cc0
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
jne 0x46a9ee
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
jmp 0x4669f5
cmp ebx, 2
mov edx, str.release
mov eax, str.rollback
cmovne eax, edx
push eax
mov eax, dword [esp + 0x10]
push str.cannot__s_savepoint___SQL_statements_in_progress
push ecx
add eax, 0x38
push eax
call fcn.004453a0
mov edi, dword [esp + 0x34]
mov eax, 5
mov edx, dword [esp + 0x24]
add esp, 0x10
mov dword [esp + 0x18], eax
jmp 0x4669f5
mov ecx, dword [edx + ebx*4 + 4]
mov eax, dword [esi + 8]
add ecx, ecx
mov ecx, dword [eax + ecx*8 + 4]
mov dword [esp + 0x68], ecx
test ecx, ecx
je case.0x4645cf.17
mov edx, dword [edx + ebx*4 + 8]
call fcn.00456130
mov dword [esp + 0x18], eax
cmp eax, 5
je 0x46aa73
test eax, eax
jne 0x46a9ea
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
cmp dword [edx + ebx*4 + 8], eax
je 0x4669f9
cmp byte [ecx + 0x67], al
je 0x4669f9
cmp byte [esi + 0x1c], al
je 0x466db0
cmp dword [esi + 0x8c], 1
jle 0x4669f9
mov edi, ecx
cmp dword [edi + 0x78], 0
jne 0x466dcd
mov eax, dword [esi + 0x1e0]
inc dword [esi + 0x1e4]
add eax, dword [esi + 0x1e4]
mov dword [edi + 0x78], eax
mov eax, dword [edi + 0x78]
xor edx, edx
dec eax
mov ecx, esi
push eax
call fcn.00493cc0
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
jne 0x466e30
mov ebx, dword [esp + 0x68]
mov ecx, ebx
mov edi, dword [edi + 0x78]
mov esi, dword [ebx + 4]
call fcn.00453c90
mov ecx, dword [esi]
mov edx, edi
call fcn.00450e20
cmp byte [ebx + 9], 0
mov dword [esp + 0x18], eax
je 0x466e28
add dword [ebx + 0xc], 0xffffffff
jne 0x466e28
mov eax, dword [ebx + 4]
mov eax, dword [eax + 0x38]
test eax, eax
je 0x466e24
push eax
call dword [0x5937d4]
add esp, 4
mov byte [ebx + 0xa], 0
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0xc]
mov eax, dword [esi + 0x1f0]
mov edx, dword [esp + 0x14]
mov dword [edi + 0x98], eax
mov eax, dword [esi + 0x1f4]
mov dword [edi + 0x9c], eax
mov edi, dword [esp + 0x24]
jmp case.0x4645cf.17
mov eax, dword [edx + ebx*4 + 4]
lea ecx, [esp + 0x68]
mov dword [esp + 0x6c], eax
add eax, eax
mov edx, dword [edx + ebx*4 + 0xc]
mov dword [esp + 0x70], edx
push ecx
mov ecx, dword [esi + 8]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.0045b570
mov eax, dword [esp + 0x6c]
add esp, 4
mov ecx, dword [esp + 0xc]
cdq
mov dword [edi + 0x10], eax
mov eax, dword [esp + 0x10]
mov dword [edi + 0x14], edx
inc eax
mov edx, dword [esp + 0x14]
jmp 0x46453d
mov eax, dword [edx + ebx*4 + 4]
mov ecx, dword [esp + 0x20]
shl eax, 4
add eax, dword [esi + 8]
mov dword [esp + 0x68], eax
mov eax, dword [edx + ebx*4 + 0xc]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.0045dd00
mov dword [esi + 0x10], eax
mov ecx, 0xbf04
mov ax, word [esi + 0x1c]
and ax, cx
mov dword [esi + 0x14], edx
push dword [esi + 0x10]
or ax, 4
mov word [esi + 0x1c], ax
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x6c]
mov edx, dword [eax + ebx*4 + 8]
mov ecx, dword [ecx + 4]
call fcn.0045b5e0
mov edx, dword [esp + 0x18]
add esp, 4
mov dword [esp + 0x18], eax
mov eax, dword [edx + ebx*4 + 8]
cmp eax, 1
jne 0x466f19
mov eax, dword [esp + 0x68]
mov ecx, dword [eax + 0xc]
mov eax, dword [esi + 0x10]
mov dword [ecx], eax
mov eax, dword [esp + 0x1c]
or dword [eax + 0xc], 0x200
jmp 0x466f2f
cmp eax, 2
jne 0x466f2b
mov eax, dword [esp + 0x68]
mov ecx, dword [eax + 0xc]
mov al, byte [esi + 0x10]
mov byte [ecx + 0x4c], al
mov eax, dword [esp + 0x1c]
cmp dword [edx + ebx*4 + 4], 1
jne case.0x4645cf.17
mov ecx, eax
call fcn.00462110
mov eax, dword [esp + 0xc]
mov byte [eax + 0x63], 0
jmp case.0x4645cf.17
mov ecx, dword [edx + ebx*4 + 4]
mov eax, dword [esi + 8]
add ecx, ecx
mov ecx, dword [eax + ecx*8 + 4]
mov dword [esp + 0x70], ecx
test ecx, ecx
je 0x466f8f
lea eax, [esp + 0x68]
mov edx, 1
push eax
call fcn.0045b570
mov edx, dword [esp + 0x18]
add esp, 4
mov eax, dword [esi + 8]
mov ecx, dword [edx + ebx*4 + 4]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov ecx, dword [esp + 0x68]
mov eax, dword [eax + 4]
jmp 0x466f97
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], eax
cmp ecx, dword [edx + ebx*4 + 8]
jne 0x466fab
cmp eax, dword [edx + ebx*4 + 0xc]
je case.0x4645cf.17
mov eax, dword [esp + 0xc]
push dword [eax + 0x38]
push esi
call fcn.00444f80
add esp, 8
mov edx, str.database_schema_has_changed
mov ecx, esi
call fcn.00445310
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x38], eax
mov eax, dword [esp + 0x14]
mov edx, dword [eax + ebx*4 + 4]
mov ecx, edx
mov eax, dword [esi + 8]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax]
cmp eax, dword [esp + 0x68]
je 0x466ff0
mov ecx, esi
call fcn.00476b50
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
mov byte [eax + 0x63], 1
mov eax, 0x11
mov dword [esp + 0x18], eax
jmp 0x4669f5
mov eax, dword [esp + 0xc]
cmp byte [eax + 0x63], 0
jne 0x46aa9a
mov eax, dword [esp + 0x1c]
xor ecx, ecx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], ecx
mov edi, dword [edx + ebx*4 + 8]
mov dword [esp + 0x70], edi
mov esi, dword [edx + ebx*4 + 0xc]
mov edx, esi
mov dword [esp + 0x74], esi
shl edx, 4
add edx, dword [eax + 8]
mov dword [esp + 0x84], edx
mov eax, dword [edx + 4]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x14]
cmp byte [eax + ebx*4], 0x28
jne 0x467072
mov dword [esp + 0x78], 1
mov eax, dword [edx + 0xc]
mov edx, dword [esp + 0xc]
mov al, byte [eax + 0x4c]
cmp al, byte [edx + 0x65]
jae 0x467076
mov byte [edx + 0x65], al
jmp 0x467076
mov dword [esp + 0x78], ecx
mov edx, dword [esp + 0x14]
cmp byte [edx + ebx*4 + 3], cl
je 0x4670c7
mov ecx, dword [esp + 0x20]
lea eax, [edi + edi*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.0045dd00
mov dword [esi + 0x10], eax
mov ecx, 0xbf04
mov ax, word [esi + 0x1c]
and ax, cx
mov dword [esi + 0x14], edx
or ax, 4
mov word [esi + 0x1c], ax
mov eax, dword [esi + 0x10]
mov dword [esp + 0x70], eax
cmp eax, 2
jl 0x46aa8b
mov esi, dword [esp + 0x74]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x14]
mov al, byte [edx + ebx*4 + 1]
cmp al, 0xfa
jne 0x4670f8
mov eax, dword [esp + 0xc]
mov ecx, dword [edx + ebx*4 + 0x10]
mov dword [esp + 0x6c], ecx
mov eax, dword [eax]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov al, byte [eax + 0x4d]
mov byte [ecx + 4], al
mov eax, dword [esp + 0x6c]
mov esi, dword [esp + 0x74]
movzx ecx, word [eax + 6]
inc ecx
jmp 0x467100
cmp al, 0xf2
jne 0x467104
mov ecx, dword [edx + ebx*4 + 0x10]
mov dword [esp + 0x68], ecx
mov edx, dword [edx + ebx*4 + 4]
push 1
push esi
push ecx
mov ecx, dword [esp + 0x18]
call fcn.004641b0
add esp, 0xc
mov dword [esp + 0x80], eax
test eax, eax
je 0x46a9b1
mov byte [eax + 0x1c], 1
mov eax, dword [esp + 0x80]
mov byte [eax + 0x20], 1
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x7c]
push dword [eax]
push dword [esp + 0x70]
push dword [esp + 0x80]
call fcn.00457320
mov ecx, dword [esp + 0x8c]
add esp, 0xc
mov edx, dword [esp + 0x14]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x6c]
mov dword [ecx + 8], eax
cmp byte [edx + ebx*4 + 1], 0xfa
mov eax, dword [esp + 0x80]
setne cl
mov byte [eax + 0x1e], cl
mov ecx, dword [esp + 0x80]
cmp byte [ecx + 0x1e], 0
sete al
mov byte [ecx + 0x1f], al
mov edi, dword [esp + 0x24]
jmp case.0x4645cf.17
mov ecx, dword [esp + 0xc]
push 1
push 0xffffffffffffffff
push dword [edx + ebx*4 + 8]
mov edx, dword [edx + ebx*4 + 4]
call fcn.004641b0
add esp, 0xc
mov dword [esp + 0x68], eax
test eax, eax
je 0x46a9b1
mov edi, dword [esp + 0x14]
xor edx, edx
mov byte [eax + 0x1c], 1
mov ecx, dword [esi]
push 0x41e
movzx eax, byte [edi + ebx*4 + 3]
or eax, 9
push eax
mov eax, dword [esp + 0x70]
add eax, 4
push eax
push esi
call fcn.00455320
add esp, 0x10
mov dword [esp + 0x18], eax
test eax, eax
jne 0x4673df
mov ecx, dword [esp + 0x68]
lea edx, [eax + 1]
mov ecx, dword [ecx + 4]
call fcn.00456130
mov dword [esp + 0x18], eax
test eax, eax
jne 0x4673df
cmp dword [edi + ebx*4 + 0x10], 0
mov eax, dword [esp + 0x68]
je 0x467355
movzx esi, byte [edi + ebx*4 + 3]
mov edi, dword [eax + 4]
or esi, 2
mov ecx, edi
call fcn.00453c90
push esi
lea edx, [esp + 0x5c]
mov ecx, edi
call fcn.0045aea0
add esp, 4
mov ecx, eax
cmp byte [edi + 9], 0
mov dword [esp + 0x18], ecx
je 0x467270
add dword [edi + 0xc], 0xffffffff
jne 0x467270
mov eax, dword [edi + 4]
mov eax, dword [eax + 0x38]
test eax, eax
je 0x46726c
push eax
call dword [0x5937d4]
mov ecx, dword [esp + 0x1c]
add esp, 4
mov byte [edi + 0xa], 0
test ecx, ecx
jne 0x467348
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x14]
mov edi, dword [eax + 4]
mov ecx, dword [ecx + ebx*4 + 0x10]
mov esi, dword [eax]
mov dword [esp + 0x28], ecx
mov ecx, edi
call fcn.00453c90
mov ecx, dword [edi + 4]
mov eax, dword [esp + 0x58]
test byte [ecx + 0x16], 1
je 0x4672ab
mov dword [esp + 0x18], 8
jmp 0x4672fc
cmp eax, 1
jne 0x4672b8
xor edx, edx
cmp dword [ecx + 0x2c], edx
cmove eax, edx
mov dword [esi + 0x14], eax
or eax, 0xffffffff
mov word [esi + 0x5a], ax
mov eax, dword [esp + 0x28]
mov dword [esi + 0x10], eax
mov dword [esi], edi
mov dword [esi + 4], ecx
mov byte [esi + 0x50], 1
mov eax, dword [ecx + 8]
mov dword [esi + 8], eax
test eax, eax
je 0x4672df
mov dword [eax + 0xc], esi
mov dword [ecx + 8], esi
mov byte [esi + 0x53], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
mov dword [esp + 0x18], 0
cmp byte [edi + 9], 0
je 0x467320
add dword [edi + 0xc], 0xffffffff
jne 0x467320
mov eax, dword [edi + 4]
mov eax, dword [eax + 0x38]
test eax, eax
je 0x46731c
push eax
call dword [0x5937d4]
add esp, 4
mov byte [edi + 0xa], 0
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + ebx*4 + 0x10]
mov eax, dword [esp + 0x68]
mov dword [eax + 8], ecx
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
mov eax, dword [eax + 8]
mov edx, dword [eax + 0xc]
mov eax, dword [esp + 0x68]
mov ecx, dword [eax + 8]
mov al, byte [edx + 0x4d]
mov byte [ecx + 4], al
mov eax, dword [esp + 0x68]
mov byte [eax + 0x1e], 0
jmp 0x4673df
mov edi, dword [eax + 4]
mov ecx, edi
mov esi, dword [eax]
call fcn.00453c90
mov eax, dword [edi + 4]
mov ecx, 1
test byte [eax + 0x16], cl
je 0x467378
mov dword [esp + 0x18], 8
jmp 0x4673b3
xor edx, edx
cmp dword [eax + 0x2c], edx
mov dword [esi + 0x10], edx
cmove ecx, edx
mov dword [esi], edi
mov dword [esi + 0x14], ecx
or ecx, 0xffffffff
mov word [esi + 0x5a], cx
mov dword [esi + 4], eax
mov byte [esi + 0x50], 1
mov ecx, dword [eax + 8]
mov dword [esi + 8], ecx
test ecx, ecx
je 0x4673a3
mov dword [ecx + 0xc], esi
mov dword [eax + 8], esi
mov byte [esi + 0x53], dl
mov dword [esi + 0x18], edx
mov dword [esi + 0x1c], edx
mov dword [esp + 0x18], edx
cmp byte [edi + 9], 0
je 0x4673d7
add dword [edi + 0xc], 0xffffffff
jne 0x4673d7
mov eax, dword [edi + 4]
mov eax, dword [eax + 0x38]
test eax, eax
je 0x4673d3
push eax
call dword [0x5937d4]
add esp, 4
mov byte [edi + 0xa], 0
mov eax, dword [esp + 0x68]
mov byte [eax + 0x1e], 1
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x68]
mov edi, dword [esp + 0x24]
cmp byte [edx + ebx*4 + 3], 0x10
setne cl
mov byte [eax + 0x20], cl
mov ecx, dword [esp + 0x68]
cmp byte [ecx + 0x1e], 0
sete al
mov byte [ecx + 0x1f], al
jmp case.0x4645cf.17
mov ecx, dword [esp + 0xc]
push 1
push 0xffffffffffffffff
push dword [edx + ebx*4 + 8]
mov edx, dword [edx + ebx*4 + 4]
call fcn.004641b0
add esp, 0xc
mov dword [esp + 0x68], eax
test eax, eax
je 0x46a9b1
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + ebx*4 + 0x10]
mov dword [eax + 8], ecx
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
mov eax, dword [eax + 8]
mov edx, dword [eax + 0xc]
mov eax, dword [esp + 0x68]
mov ecx, dword [eax + 8]
mov al, byte [edx + 0x4d]
mov byte [ecx + 4], al
mov ecx, esi
mov eax, dword [esp + 0x68]
mov byte [eax + 0x21], 1
mov edx, dword [esp + 0x68]
call fcn.0046bea0
mov edx, dword [esp + 0x14]
mov dword [esp + 0x18], eax
jmp 0x4669f5
mov ecx, dword [esp + 0xc]
push 0
push 0xffffffffffffffff
push dword [edx + ebx*4 + 0xc]
mov edx, dword [edx + ebx*4 + 4]
call fcn.004641b0
add esp, 0xc
mov dword [esp + 0x68], eax
test eax, eax
je 0x46a9b1
mov edx, dword [esp + 0x14]
mov byte [eax + 0x1c], 1
mov eax, dword [esp + 0x68]
mov ecx, dword [edx + ebx*4 + 8]
mov dword [eax + 0x10], ecx
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0xc]
mov byte [eax + 0x1e], 1
mov eax, dword [esp + 0x68]
mov byte [eax + 0x1f], 0
mov eax, dword [esp + 0x10]
inc eax
jmp 0x46453d
mov eax, dword [esp + 0xc]
mov ecx, dword [edx + ebx*4 + 4]
mov eax, dword [eax + 0x44]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x467525
mov eax, dword [esp + 0xc]
mov edx, esi
mov ecx, dword [eax]
call fcn.0046bf50
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x4674f3
call fcn.004559a0
jmp 0x4674fe
mov ecx, dword [esi]
test ecx, ecx
je 0x4674fe
call fcn.004573c0
mov ecx, dword [esi + 0x24]
test ecx, ecx
je 0x467521
mov eax, dword [esi + 0x28]
mov edx, dword [esp + 0xc]
push ecx
mov byte [edx + 0x66], 1
mov eax, dword [eax + 0x1c]
call eax
mov ecx, dword [esp + 0x10]
add esp, 4
mov byte [ecx + 0x66], 0
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0xc]
mov ecx, dword [edx + ebx*4 + 4]
mov esi, dword [esp + 0x1c]
mov eax, dword [eax + 0x44]
mov dword [eax + ecx*4], 0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
inc eax
jmp 0x46453d
mov eax, dword [esp + 0xc]
mov ecx, dword [edx + ebx*4 + 4]
mov eax, dword [eax + 0x44]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x70], ecx
cmp dword [ecx], 0
je 0x465a42
movzx eax, byte [edx + ebx*4]
mov dword [esp + 0x6c], eax
mov byte [ecx + 0x1c], 0
mov ecx, dword [esp + 0x70]
cmp byte [ecx + 0x1e], 0
je 0x467825
mov eax, dword [edx + ebx*4 + 0xc]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
mov dword [esp + 0x28], esi
call fcn.004642d0
mov ecx, esi
call fcn.0045dd00
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x9c], edx
mov byte [eax + 0x19], 0
movzx eax, word [esi + 0x1c]
test al, 4
jne 0x4677bf
test al, 8
jne 0x4675d9
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0xc]
mov eax, dword [edx + ebx*4 + 8]
jmp 0x46453d
mov edi, dword [esp + 0x98]
mov esi, dword [esp + 0x9c]
test edi, edi
jne 0x467759
cmp esi, 0x80000000
jne 0x467759
mov edx, esi
xor ecx, ecx
call fcn.0051a6b0
mov eax, dword [esp + 0x28]
movsd xmm1, qword [eax + 8]
comisd xmm0, xmm1
xorps xmm0, xmm0
ja 0x467620
comisd xmm1, xmm0
jbe 0x467759
mov dword [esp + 0x68], 1
comisd xmm0, xmmword [eax + 8]
jbe 0x467692
cmp dword [esp + 0x6c], 0x30
jl 0x46773f
mov eax, dword [esp + 0x70]
mov esi, dword [eax]
mov ecx, esi
call fcn.00457b40
mov dword [esp + 0x18], eax
test eax, eax
jne 0x46a9ea
cmp byte [esi + 0x53], al
jne 0x46767a
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x68], 1
mov esi, dword [edx + ebx*4 + 8]
mov dword [esp + 0x18], eax
dec esi
jmp 0x4669fd
mov ecx, esi
mov dword [esp + 0x68], 0
call fcn.00457d00
mov dword [esp + 0x18], eax
jmp 0x467724
cmp dword [esp + 0x6c], 0x2f
jg 0x46773f
mov eax, dword [esp + 0x70]
mov esi, dword [eax]
cmp byte [esi + 0x53], 1
jne 0x4676cb
cmp byte [esi + 0x51], 0
je 0x4676cb
mov edx, dword [esp + 0x14]
xor eax, eax
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x18], eax
mov esi, dword [edx + ebx*4 + 8]
dec esi
jmp 0x4669fd
mov ecx, esi
call fcn.00457b40
mov dword [esp + 0x18], eax
test eax, eax
jne 0x46a9ea
cmp byte [esi + 0x53], al
jne 0x467705
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x68], 1
mov esi, dword [edx + ebx*4 + 8]
mov dword [esp + 0x18], eax
dec esi
jmp 0x4669fd
mov ecx, esi
mov dword [esp + 0x68], 0
call fcn.00457d80
test eax, eax
mov dword [esp + 0x18], eax
sete al
mov byte [esi + 0x51], al
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x46a9ea
cmp dword [esp + 0x68], eax
jne 0x467743
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
jmp 0x4669f5
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
mov esi, dword [edx + ebx*4 + 8]
dec esi
jmp 0x4669fd
mov eax, dword [esp + 0x6c]
cmp eax, 0x2e
je 0x467791
cmp eax, 0x30
je 0x467791
mov edx, esi
mov ecx, edi
call fcn.0051a6b0
mov eax, dword [esp + 0x28]
comisd xmm0, xmmword [eax + 8]
jbe 0x4677cd
add edi, 0xffffffff
mov dword [esp + 0x98], edi
adc esi, 0xffffffff
mov dword [esp + 0x9c], esi
jmp 0x4677cd
mov edx, esi
mov ecx, edi
call fcn.0051a6b0
mov eax, dword [esp + 0x28]
movsd xmm1, qword [eax + 8]
comisd xmm1, xmm0
jbe 0x4677cd
add edi, 1
mov dword [esp + 0x98], edi
adc esi, 0
mov dword [esp + 0x9c], esi
jmp 0x4677cd
mov esi, dword [esp + 0x9c]
mov edi, dword [esp + 0x98]
mov ecx, dword [esp + 0x70]
lea eax, [esp + 0x68]
push eax
push 0
push esi
mov ecx, dword [ecx]
xor edx, edx
push edi
call fcn.00457e10
add esp, 0x10
mov dword [esp + 0x18], eax
test eax, eax
jne 0x46a9ea
mov esi, dword [esp + 0x1c]
cmp dword [esp + 0x68], eax
jne 0x4678a9
mov eax, dword [esp + 0x70]
mov byte [eax + 0x19], 1
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x98]
mov dword [ecx + 0x40], eax
mov eax, dword [esp + 0x9c]
mov dword [ecx + 0x44], eax
jmp 0x4678a9
mov eax, dword [edx + ebx*4 + 0x10]
mov dword [esp + 0x90], eax
mov eax, dword [ecx + 8]
mov dword [esp + 0x78], eax
mov ax, word [esp + 0x90]
mov word [esp + 0x7c], ax
mov al, byte [esp + 0x6c]
and al, 1
mov byte [esp + 0x7e], al
mov eax, dword [edx + ebx*4 + 0xc]
mov edx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov edx, 0x4000
mov dword [esp + 0x88], eax
test word [eax + 0x1c], dx
je 0x467879
mov ecx, eax
call fcn.0045da60
mov ecx, dword [esp + 0x70]
mov ecx, dword [ecx]
lea eax, [esp + 0x68]
push eax
push 0
push 0
push 0
lea edx, [esp + 0x88]
call fcn.00457e10
add esp, 0x10
mov dword [esp + 0x18], eax
test eax, eax
jne 0x46a9ea
mov eax, dword [esp + 0x70]
mov byte [eax + 0x19], 0
mov eax, dword [esp + 0x70]
mov byte [eax + 0x1d], 0
mov eax, dword [esp + 0x70]
mov dword [eax + 0x50], 0
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x68]
cmp eax, 0x30
jl 0x467904
test ecx, ecx
js 0x4678f2
jne 0x4678d4
cmp eax, 0x31
je 0x4678f2
mov dword [esp + 0x68], 0
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
inc eax
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
jmp 0x46453d
lea eax, [esp + 0x68]
push eax
mov eax, dword [esp + 0x74]
push dword [eax]
call fcn.004581d0
jmp 0x467934
test ecx, ecx
jg 0x467924
jne 0x46790f
cmp eax, 0x2e
je 0x467924
mov eax, dword [esp + 0x70]
xor ecx, ecx
mov eax, dword [eax]
cmp byte [eax + 0x53], 1
setne cl
mov dword [esp + 0x68], ecx
jmp 0x46794b
lea eax, [esp + 0x68]
push eax
mov eax, dword [esp + 0x74]
push dword [eax]
call fcn.00458370
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
jne 0x46a9ea
mov eax, dword [esp + 0x70]
mov byte [eax + 0x19], 0
cmp dword [esp + 0x68], 0
je 0x4678dc
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
mov eax, dword [edx + ebx*4 + 8]
dec eax
inc eax
jmp 0x46453d
mov eax, dword [esp + 0xc]
mov ecx, dword [edx + ebx*4 + 4]
mov eax, dword [eax + 0x44]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x68], eax
cmp dword [eax], 0
je 0x4679b5
mov ecx, dword [esp + 0x20]
mov byte [eax + 0x1c], 0
mov eax, dword [edx + ebx*4 + 8]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.0045dd00
mov ecx, dword [esp + 0x68]
mov dword [ecx + 0x38], eax
mov dword [ecx + 0x3c], edx
mov eax, dword [esp + 0x68]
mov byte [eax + 0x19], 0
mov eax, dword [esp + 0x68]
mov byte [eax + 0x1d], 1
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
inc eax
jmp 0x46453d
mov esi, dword [esp + 0x14]
xor edx, edx
mov eax, dword [esp + 0xc]
mov dword [esp + 0x68], edx
mov ecx, dword [esi + ebx*4 + 4]
mov eax, dword [eax + 0x44]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x6c], ecx
mov eax, dword [esi + ebx*4 + 0xc]
mov esi, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
cmp dword [ecx], edx
je 0x467aea
mov edx, dword [esp + 0x14]
cmp dword [edx + ebx*4 + 0x10], 0
jle 0x467a33
mov eax, dword [ecx + 8]
mov dword [esp + 0x80], eax
mov ax, word [edx + ebx*4 + 0x10]
lea edx, [esp + 0x80]
mov word [esp + 0x84], ax
mov dword [esp + 0x90], esi
mov byte [esp + 0x86], 2
mov dword [esp + 0x78], edx
jmp 0x467a84
mov ecx, dword [ecx + 8]
lea eax, [esp + 0x74]
push eax
push 0x97
lea edx, [esp + 0xa0]
call fcn.00461ad0
add esp, 8
mov dword [esp + 0x78], eax
test eax, eax
je 0x46a9b1
mov ecx, dword [esp + 0x6c]
mov edx, dword [esi + 0x18]
push eax
push dword [esi + 4]
mov ecx, dword [ecx + 8]
call fcn.00461b30
mov eax, dword [esp + 0x80]
add esp, 8
or byte [eax + 6], 2
mov edx, dword [esp + 0x78]
mov ecx, dword [esp + 0x6c]
mov ecx, dword [ecx]
lea eax, [esp + 0x70]
push eax
push 0
push 0
push 0
call fcn.00457e10
mov edx, dword [esp + 0x24]
add esp, 0x10
mov dword [esp + 0x18], eax
cmp dword [edx + ebx*4 + 0x10], 0
jne 0x467ac0
push dword [esp + 0x74]
push dword [esp + 0x20]
call fcn.00444f80
mov eax, dword [esp + 0x20]
add esp, 8
mov edx, dword [esp + 0x14]
test eax, eax
jne 0x4669f5
cmp dword [esp + 0x70], eax
sete al
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x6c]
mov byte [eax + 0x1d], 0
mov eax, dword [esp + 0x6c]
mov dword [eax + 0x50], 0
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x14]
cmp byte [eax + ebx*4], 0x34
jne 0x467b11
test edx, edx
mov edx, eax
je 0x46554b
mov eax, dword [edx + ebx*4 + 8]
mov esi, dword [esp + 0x1c]
dec eax
mov ecx, dword [esp + 0xc]
inc eax
jmp 0x46453d
test edx, edx
mov edx, dword [esp + 0x14]
jne 0x46554b
mov eax, dword [edx + ebx*4 + 8]
mov esi, dword [esp + 0x1c]
dec eax
mov ecx, dword [esp + 0xc]
inc eax
jmp 0x46453d
mov eax, dword [edx + ebx*4 + 0xc]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [edx + ebx*4 + 0x10]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x78], eax
mov ecx, dword [edx + ebx*4 + 4]
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x44]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x6c], eax
mov dword [eax + 0x4c], 0
mov eax, dword [esp + 0x6c]
mov dword [eax + 0x50], 0
mov ecx, dword [esp + 0x6c]
mov esi, dword [esp + 0x78]
mov eax, dword [ecx]
mov dword [esp + 0x70], eax
mov dword [esp + 0x28], eax
mov eax, dword [ecx + 8]
xor ecx, ecx
mov dx, word [eax + 6]
xor eax, eax
mov word [esp + 0x74], dx
mov word [esp + 0x68], cx
cmp ax, dx
jae 0x467bbd
nop dword [eax]
movzx eax, cx
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x1c], 1
jne 0x467c98
inc cx
mov word [esp + 0x68], cx
cmp cx, dx
jb 0x467ba0
cmp dword [esp + 0x28], 0
je 0x46a0d2
mov eax, dword [esp + 0x6c]
mov ecx, edi
mov eax, dword [eax + 8]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x74]
inc eax
mov byte [esp + 0x86], 4
mov word [esp + 0x84], ax
mov dword [esp + 0x90], esi
call fcn.0045dd00
mov dword [edi + 0x10], eax
mov ecx, 0xbf04
mov ax, word [edi + 0x1c]
and ax, cx
mov dword [edi + 0x14], edx
or ax, 4
lea edx, [esp + 0x80]
mov word [edi + 0x1c], ax
mov eax, dword [edi + 0x10]
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x98], eax
mov eax, dword [edi + 0x14]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x6c]
add eax, 0x4c
push eax
push 0
push 0
push 0
call fcn.00457e10
add esp, 0x10
mov dword [esp + 0x18], eax
test byte [esp + 0x86], 4
jne 0x467743
mov ecx, dword [esp + 0x88]
cmp ecx, dword [esp + 0x98]
jne 0x467c7e
mov eax, dword [esp + 0x8c]
cmp eax, dword [esp + 0x9c]
je 0x46773f
mov edx, dword [esp + 0x14]
mov dword [edi + 0x10], ecx
mov eax, dword [esp + 0x8c]
mov dword [edi + 0x14], eax
mov edi, dword [esp + 0x24]
jmp case.0x4645cf.17
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x24]
mov eax, dword [edx + ebx*4 + 8]
dec eax
mov dword [esp + 0x70], 0
mov dword [esp + 0x10], eax
jmp case.0x4645cf.17
mov eax, dword [edx + ebx*4 + 0xc]
mov ecx, dword [edx + ebx*4 + 4]
lea edi, [eax + eax*4]
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x44]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x68], eax
mov esi, dword [eax]
mov dword [esp + 0x6c], esi
test esi, esi
je 0x467d7d
mov eax, dword [esp + 0x20]
lea edx, [esp + 0x70]
push edx
mov dword [esp + 0x74], 0
xor edx, edx
push 0
mov ecx, dword [eax + edi*8 + 0x10]
mov dword [esp + 0x80], ecx
mov eax, dword [eax + edi*8 + 0x14]
push eax
push ecx
mov ecx, esi
mov dword [esp + 0x8c], eax
call fcn.00457e10
mov ecx, dword [esp + 0x78]
add esp, 0x10
mov edx, dword [esp + 0x20]
mov dword [esp + 0x18], eax
mov eax, dword [edx + edi*8 + 0x10]
mov dword [ecx + 0x40], eax
mov eax, dword [edx + edi*8 + 0x14]
mov dword [ecx + 0x44], eax
cmp dword [esp + 0x70], 0
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x14]
sete cl
mov byte [eax + 0x19], cl
mov eax, dword [esp + 0x68]
mov byte [eax + 0x1c], 0
mov eax, dword [esp + 0x68]
mov dword [eax + 0x50], 0
mov eax, dword [esp + 0x68]
mov byte [eax + 0x1d], 0
mov ecx, dword [esp + 0x70]
test ecx, ecx
je 0x467d6d
mov eax, dword [edx + ebx*4 + 8]
dec eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x68]
mov edi, dword [esp + 0x24]
mov dword [eax + 0x4c], ecx
jmp case.0x4645cf.17
mov esi, dword [edx + ebx*4 + 8]
mov edi, dword [esp + 0x24]
dec esi
mov dword [eax + 0x4c], 0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
jmp 0x4669fd
mov eax, dword [esp + 0xc]
mov ecx, dword [edx + ebx*4 + 4]
mov eax, dword [eax + 0x44]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 0x30]
mov dword [edi + 0x10], eax
mov eax, dword [ecx + 0x34]
mov dword [edi + 0x14], eax
mov eax, dword [esp + 0xc]
mov ecx, dword [edx + ebx*4 + 4]
mov eax, dword [eax + 0x44]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0xc]
add dword [eax + 0x30], 1
adc dword [eax + 0x34], 0
mov eax, dword [esp + 0x10]
inc eax
jmp 0x46453d
mov eax, dword [esp + 0xc]
xorps xmm0, xmm0
movlpd qword [esp + 0x68], xmm0
mov dword [esp + 0x74], 0
mov ecx, dword [edx + ebx*4 + 4]
mov eax, dword [eax + 0x44]
mov edi, dword [eax + ecx*4]
mov dword [esp + 0x70], edi
mov edx, dword [edi]
test edx, edx
je 0x46818d
cmp byte [edi + 0x1b], 0
jne 0x4680a8
mov esi, dword [edx + 0x18]
mov eax, esi
mov dword [esp + 0x68], esi
mov edx, dword [edx + 0x1c]
or eax, edx
mov dword [esp + 0x6c], edx
jne 0x467ed6
mov esi, dword [edi]
cmp byte [esi + 0x53], 1
jne 0x467e34
cmp byte [esi + 0x51], al
jne 0x467e9f
mov ecx, esi
call fcn.00457b40
mov dword [esp + 0x18], eax
test eax, eax
jne 0x46a9ea
cmp byte [esi + 0x53], al
jne 0x467e63
mov edi, dword [esp + 0x70]
lea esi, [eax + 1]
mov dword [esp + 0x74], 1
xor edx, edx
mov dword [esp + 0x18], eax
jmp 0x467ece
mov ecx, esi
mov dword [esp + 0x74], 0
call fcn.00457d80
test eax, eax
mov dword [esp + 0x18], eax
sete al
mov byte [esi + 0x51], al
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x46a9ea
cmp dword [esp + 0x74], eax
je 0x467e9b
mov edi, dword [esp + 0x70]
lea esi, [eax + 1]
xor edx, edx
jmp 0x467ece
mov edi, dword [esp + 0x70]
mov edx, dword [edi]
mov dword [esp + 0x28], edx
cmp byte [edx + 0x53], 1
je 0x467f32
xorps xmm0, xmm0
mov dword [esp + 0x18], 0
movlpd qword [esp + 0x68], xmm0
mov edx, dword [esp + 0x6c]
mov esi, dword [esp + 0x68]
add esi, 1
adc edx, 0
mov dword [esp + 0x6c], edx
mov dword [esp + 0x68], esi
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + ebx*4 + 0xc]
test eax, eax
je 0x468051
mov edx, dword [esp + 0xc]
mov edx, dword [edx + 0xa8]
test edx, edx
je 0x467fbd
mov dword [esp + 0x80], edx
mov eax, dword [edx + 0x44]
test eax, eax
je 0x467f20
nop word [eax + eax]
mov edx, eax
mov dword [esp + 0x80], edx
mov eax, dword [edx + 0x44]
test eax, eax
jne 0x467f10
mov eax, dword [ecx + ebx*4 + 0xc]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x10]
lea esi, [eax + ecx*8]
jmp 0x467fc7
cmp word [edx + 0x3a], 0
jne 0x467f7d
movsx eax, word [edx + 0x5a]
mov edi, dword [edx + eax*4 + 0x84]
movzx esi, word [edx + eax*2 + 0x5c]
lea eax, [edx + 0x20]
push eax
mov ecx, dword [edi + 0x48]
movzx edx, byte [ecx + esi*2]
movzx eax, byte [ecx + esi*2 + 1]
mov ecx, edi
shl edx, 8
or edx, eax
movzx eax, word [edi + 0x12]
and edx, eax
add edx, dword [edi + 0x40]
call fcn.00454590
mov edx, dword [esp + 0x2c]
add esp, 4
mov byte [edx + 0x52], 1
mov edi, dword [esp + 0x70]
mov esi, dword [edx + 0x20]
mov dword [esp + 0x68], esi
mov edx, dword [edx + 0x24]
mov dword [esp + 0x6c], edx
mov dword [esp + 0x18], 0
cmp esi, 0xffffffff
jne 0x467ec8
cmp edx, 0x7fffffff
jne 0x467ec8
mov byte [edi + 0x1b], 1
mov edi, dword [esp + 0x70]
mov edx, dword [esp + 0x6c]
mov esi, dword [esp + 0x68]
jmp 0x467ed6
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
mov dword [esp + 0x7c], esi
call fcn.0045dd00
mov dword [esi + 0x10], eax
mov ecx, 0xbf04
mov ax, word [esi + 0x1c]
and ax, cx
mov dword [esi + 0x14], edx
or ax, 4
mov word [esi + 0x1c], ax
mov esi, dword [esp + 0x7c]
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
cmp edx, 0xffffffff
jne 0x468007
cmp ecx, 0x7fffffff
je 0x46aaa9
mov eax, dword [esp + 0x70]
cmp byte [eax + 0x1b], 0
jne 0x46aaa9
add edx, 1
adc ecx, 0
cmp dword [esp + 0x6c], ecx
jg 0x468037
jl 0x46802b
mov eax, dword [esp + 0x68]
cmp eax, edx
jae 0x46803b
mov eax, edx
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x68], eax
jmp 0x46803b
mov eax, dword [esp + 0x68]
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x6c]
mov dword [esi + 0x14], eax
mov edi, dword [esp + 0x70]
mov edx, dword [esp + 0x6c]
mov esi, dword [esp + 0x68]
cmp edx, 0x7fffffff
jg 0x468068
jl 0x468060
cmp esi, 0xffffffff
jae 0x468068
add esi, 1
adc edx, 0
jmp 0x468079
xorps xmm0, xmm0
movlpd qword [esp + 0x28], xmm0
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
mov ebx, dword [edi]
mov eax, dword [ebx + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x46809e
mov eax, dword [ecx + 0x14]
cmp eax, dword [ebx + 0x14]
jne 0x468093
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x1c], edx
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x468085
mov edi, dword [esp + 0x70]
cmp byte [edi + 0x1b], 0
je 0x468176
mov eax, dword [esp + 0x40]
lea edx, [esp + 0x74]
mov ecx, dword [esp + 0x3c]
and eax, 0x3fffffff
add ecx, 1
mov dword [esp + 0x78], 0
push edx
adc eax, 0
mov dword [esp + 0x6c], ecx
push 0
push eax
mov dword [esp + 0x78], eax
xor edx, edx
push ecx
mov ecx, dword [edi]
call fcn.00457e10
mov edx, eax
add esp, 0x10
mov dword [esp + 0x18], edx
test edx, edx
jne 0x468172
nop
mov ecx, dword [esp + 0x74]
test ecx, ecx
jne 0x468166
mov eax, dword [esp + 0x78]
inc eax
mov dword [esp + 0x78], eax
cmp eax, 0x64
jge 0x468166
lea eax, [esp + 0x68]
push eax
push 8
call fcn.004469b0
mov eax, dword [esp + 0x70]
add esp, 8
cmp dword [esp + 0x78], 5
jge 0x468129
and eax, 0xffffff
xor ecx, ecx
jmp 0x468133
mov ecx, dword [esp + 0x6c]
and ecx, 0x3fffffff
add eax, 1
lea edx, [esp + 0x74]
push edx
adc ecx, 0
mov dword [esp + 0x6c], eax
push 0
push ecx
mov dword [esp + 0x78], ecx
xor edx, edx
mov ecx, dword [esp + 0x7c]
push eax
mov ecx, dword [ecx]
call fcn.00457e10
mov edx, eax
add esp, 0x10
mov dword [esp + 0x18], edx
test edx, edx
je 0x4680f0
jmp 0x468172
test edx, edx
jne 0x468172
test ecx, ecx
je 0x46aaa9
mov edi, dword [esp + 0x70]
mov byte [edi + 0x19], 0
mov eax, dword [esp + 0x70]
mov byte [eax + 0x1d], 0
mov eax, dword [esp + 0x70]
mov dword [eax + 0x50], 0
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x14]
mov dword [edi + 0x10], eax
mov eax, dword [esp + 0x6c]
jmp 0x4669ee
mov eax, dword [edx + ebx*4 + 8]
mov edi, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x68], esi
mov ecx, dword [edx + ebx*4 + 4]
mov eax, dword [eax + 0x44]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x78], ecx
cmp byte [edx + ebx*4], 0x39
mov eax, dword [edx + ebx*4 + 0xc]
mov dword [esp + 0x28], ecx
jne 0x4681f1
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [esp + 0x6c], eax
mov edi, dword [eax + 0x10]
mov dword [esp + 0x70], edi
mov eax, dword [eax + 0x14]
mov dword [esp + 0x74], eax
jmp 0x468200
cdq
mov edi, eax
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x70], edi
test byte [edx + ebx*4 + 3], 1
je 0x46820e
mov eax, dword [esp + 0xc]
inc dword [eax + 0x6c]
test byte [edx + ebx*4 + 3], 2
je 0x46823f
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x74]
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], edi
mov dword [ecx + 0x30], edi
mov eax, dword [esp + 0x74]
mov dword [ecx + 0x34], eax
mov ecx, dword [esp + 0x78]
mov edi, dword [esp + 0x70]
mov esi, dword [esp + 0x68]
mov dword [esp + 0x28], ecx
test byte [esi + 0x1c], 1
je 0x468267
mov dword [esi + 4], 0
mov eax, dword [esp + 0x68]
mov dword [eax + 0x18], 0
mov ecx, dword [esp + 0x78]
mov edi, dword [esp + 0x70]
mov esi, dword [esp + 0x68]
mov dword [esp + 0x28], ecx
test byte [edx + ebx*4 + 3], 0x10
je 0x468273
mov eax, dword [ecx + 0x4c]
jmp 0x468275
xor eax, eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x18], eax
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x468290
mov eax, dword [esi + 0x10]
jmp 0x468292
xor eax, eax
mov dword [esp + 0x7c], eax
mov edx, dword [ecx]
mov dword [esp + 0x34], eax
mov eax, dword [edx + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x4682e0
mov eax, dword [ecx + 0x14]
cmp eax, dword [edx + 0x14]
jne 0x4682bc
mov dword [ecx + 0x18], 0
mov dword [ecx + 0x1c], 0
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x4682a6
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x7c]
mov edi, dword [esp + 0x70]
mov esi, dword [esp + 0x68]
mov dword [esp + 0x28], edx
jmp 0x4682e8
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x18]
push eax
mov eax, dword [esp + 0x18]
xor edx, edx
movzx eax, byte [eax + ebx*4 + 3]
and eax, 8
push eax
push ecx
push dword [esi + 0x18]
mov ecx, dword [esp + 0x38]
push dword [esi + 4]
push dword [esp + 0x88]
mov ecx, dword [ecx]
push edi
call fcn.0045aa60
mov edx, dword [esp + 0x30]
add esp, 0x1c
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x78]
mov byte [eax + 0x19], 0
mov eax, dword [esp + 0x78]
mov byte [eax + 0x1d], 0
mov eax, dword [esp + 0x78]
mov dword [eax + 0x50], 0
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x46a7c6
mov esi, dword [esp + 0x1c]
cmp dword [esi + 0xbc], eax
je 0x46a7c6
cmp dword [edx + ebx*4 + 0x10], eax
je 0x46a7c6
mov eax, dword [esp + 0x78]
push dword [esp + 0x74]
push dword [esp + 0x74]
mov ecx, dword [eax + 0xc]
mov eax, dword [esi + 8]
add ecx, ecx
mov edx, dword [eax + ecx*8]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x8c], edx
mov ecx, dword [eax + ebx*4 + 0x10]
mov dword [esp + 0x90], ecx
test byte [eax + ebx*4 + 3], 4
mov eax, 0x12
push ecx
mov ebx, 0x17
cmovne eax, ebx
push edx
push eax
mov dword [esp + 0xa0], eax
push dword [esi + 0xb8]
mov eax, dword [esi + 0xbc]
call eax
mov edi, dword [esp + 0x3c]
add esp, 0x18
mov edx, dword [esp + 0x14]
jmp case.0x4645cf.17
mov eax, dword [esp + 0xc]
xorps xmm0, xmm0
movlpd qword [esp + 0x68], xmm0
mov ecx, dword [edx + ebx*4 + 4]
mov eax, dword [eax + 0x44]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x70], ecx
cmp dword [esi + 0xbc], 0
je 0x4683fe
cmp dword [edx + ebx*4 + 0x10], 0
je 0x4683fe
mov eax, dword [ecx + 0x40]
mov dword [esp + 0x68], eax
mov eax, dword [ecx + 0x44]
mov dword [esp + 0x6c], eax
call fcn.004615b0
mov dword [esp + 0x18], eax
test eax, eax
jne 0x46a9ea
mov esi, dword [esp + 0x70]
mov edx, dword [esi]
mov eax, dword [edx + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x468441
nop
mov eax, dword [ecx + 0x14]
cmp eax, dword [edx + 0x14]
jne 0x468436
mov dword [ecx + 0x18], 0
mov dword [ecx + 0x1c], 0
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x468420
mov esi, dword [esp + 0x70]
mov ecx, dword [esi]
call fcn.0045ac60
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x70]
mov dword [eax + 0x50], 0
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x4684a2
mov esi, dword [esp + 0x1c]
mov edx, dword [esi + 0xbc]
test edx, edx
je 0x4684a2
mov eax, dword [esp + 0x14]
mov eax, dword [eax + ebx*4 + 0x10]
test eax, eax
je 0x46849e
push dword [esp + 0x6c]
push dword [esp + 0x6c]
push eax
mov eax, dword [esp + 0x7c]
mov ecx, dword [eax + 0xc]
mov eax, dword [esi + 8]
add ecx, ecx
push dword [eax + ecx*8]
push 9
push dword [esi + 0xb8]
call edx
add esp, 0x18
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
test byte [edx + ebx*4 + 8], 1
je 0x4669f9
mov esi, ecx
inc dword [esi + 0x6c]
jmp 0x4669f9
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
mov eax, dword [eax + 0x6c]
add dword [esi + 0x40], eax
mov dword [esi + 0x3c], eax
mov eax, dword [esp + 0xc]
mov dword [eax + 0x6c], 0
mov eax, dword [esp + 0x10]
inc eax
jmp 0x46453d
mov eax, dword [esp + 0xc]
mov ecx, dword [edx + ebx*4 + 4]
mov eax, dword [eax + 0x44]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x68], ecx
mov eax, dword [edx + ebx*4 + 0xc]
mov edx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
lea eax, [esp + 0x6c]
push eax
call fcn.0046c8d0
mov edx, dword [esp + 0x18]
add esp, 4
cmp dword [esp + 0x6c], 0
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x18], eax
je 0x4669f9
mov esi, dword [edx + ebx*4 + 8]
dec esi
jmp 0x4669fd
mov eax, dword [edx + ebx*4 + 8]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, dword [edx + ebx*4 + 4]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x44]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x68], eax
mov edx, dword [eax + 0x48]
mov eax, dword [edx + 0xc]
test eax, eax
je 0x468576
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 8]
mov esi, dword [eax + ecx*8 + 0x1c]
lea eax, [eax + ecx*8]
add eax, 0x20
jmp 0x46857c
mov eax, dword [edx + 0x28]
mov esi, dword [eax + 4]
mov ebx, dword [esp + 0x24]
mov edx, esi
mov edi, dword [eax]
mov ecx, ebx
push 0
call fcn.0045d8e0
add esp, 4
test eax, eax
jne 0x46aab3
mov ax, word [ebx + 0x1c]
mov ecx, 0xbf10
push esi
push edi
mov edi, ebx
mov dword [ebx + 0x18], esi
and ax, cx
or ax, 0x10
mov word [ebx + 0x1c], ax
push dword [edi + 4]
call fcn.0051d9c0
add esp, 0xc
xor eax, eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
inc eax
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
jmp 0x46453d
mov eax, dword [edx + ebx*4 + 8]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [esp + 0xc]
mov ecx, dword [edx + ebx*4 + 4]
mov dword [esp + 0x24], edi
mov eax, dword [eax + 0x44]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x68], ecx
mov eax, dword [ecx]
mov dword [esp + 0x6c], eax
call fcn.004615b0
mov dword [esp + 0x18], eax
test eax, eax
jne 0x46a9ea
mov eax, dword [esp + 0x68]
mov ebx, dword [esp + 0x6c]
cmp byte [eax + 0x1f], 0
je 0x4686b5
cmp byte [ebx + 0x53], 1
je 0x468640
xorps xmm0, xmm0
movlpd qword [esp + 0x78], xmm0
mov esi, dword [esp + 0x7c]
mov ecx, dword [esp + 0x78]
jmp 0x468695
cmp word [ebx + 0x3a], 0
jne 0x468687
movsx eax, word [ebx + 0x5a]
mov edi, dword [ebx + eax*4 + 0x84]
movzx esi, word [ebx + eax*2 + 0x5c]
lea eax, [ebx + 0x20]
push eax
mov ecx, dword [edi + 0x48]
movzx eax, byte [ecx + esi*2]
movzx edx, byte [ecx + esi*2 + 1]
mov ecx, edi
shl eax, 8
or edx, eax
movzx eax, word [edi + 0x12]
and edx, eax
add edx, dword [edi + 0x40]
call fcn.00454590
mov edi, dword [esp + 0x28]
add esp, 4
mov byte [ebx + 0x52], 1
mov ecx, dword [ebx + 0x20]
mov dword [esp + 0x78], ecx
mov esi, dword [ebx + 0x24]
mov dword [esp + 0x7c], esi
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x48]
cdq
cmp esi, edx
jg 0x46ab78
jl 0x4686af
cmp ecx, eax
ja 0x46ab78
mov dword [esp + 0x70], ecx
jmp 0x468710
cmp word [ebx + 0x3a], 0
jne 0x468700
movsx eax, word [ebx + 0x5a]
mov edi, dword [ebx + eax*4 + 0x84]
movzx esi, word [ebx + eax*2 + 0x5c]
lea eax, [ebx + 0x20]
push eax
mov ecx, dword [edi + 0x48]
movzx eax, byte [ecx + esi*2]
movzx edx, byte [ecx + esi*2 + 1]
mov ecx, edi
shl eax, 8
or edx, eax
movzx eax, word [edi + 0x12]
and edx, eax
add edx, dword [edi + 0x40]
call fcn.00454590
mov edi, dword [esp + 0x28]
add esp, 4
mov esi, dword [esp + 0x1c]
mov byte [ebx + 0x52], 1
mov ecx, dword [ebx + 0x2c]
mov dword [esp + 0x70], ecx
cmp ecx, dword [esi + 0x48]
ja 0x46ab7c
mov edx, ecx
mov ecx, edi
push 0
call fcn.0045d8e0
add esp, 4
test eax, eax
jne 0x46a9b1
mov eax, dword [esp + 0x70]
mov ecx, 0xbf10
mov dword [edi + 0x18], eax
mov ax, word [edi + 0x1c]
and ax, cx
or ax, 0x10
mov word [edi + 0x1c], ax
mov eax, dword [esp + 0x68]
cmp byte [eax + 0x1f], 0
je 0x468773
mov ecx, dword [esp + 0x6c]
xor edx, edx
push 0
push dword [edi + 4]
push dword [esp + 0x78]
call fcn.00457680
mov edx, dword [esp + 0x20]
add esp, 0xc
mov dword [esp + 0x18], eax
mov byte [edi + 0x1f], 1
jmp 0x4669f5
mov esi, dword [esp + 0x6c]
mov edi, dword [edi + 4]
mov ebx, dword [esp + 0x70]
mov al, byte [esi + 0x53]
test al, al
jne 0x46879f
mov edi, dword [esp + 0x24]
mov eax, 4
mov edx, dword [esp + 0x14]
mov dword [esp + 0x18], eax
mov byte [edi + 0x1f], 1
jmp 0x4669f5
cmp al, 2
jb 0x4687b2
mov ecx, esi
call fcn.00454250
mov dword [esp + 0x18], eax
test eax, eax
jne 0x4687c6
push 0
push edi
push ebx
xor edx, edx
mov ecx, esi
call fcn.00457680
add esp, 0xc
mov dword [esp + 0x18], eax
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
mov byte [edi + 0x1f], 1
jmp 0x4669f5
mov eax, dword [esp + 0xc]
mov ecx, dword [edx + ebx*4 + 4]
mov eax, dword [eax + 0x44]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x68], ecx
cmp byte [ecx + 0x1c], 0
je 0x468806
mov ecx, dword [esp + 0xc]
mov eax, 1
mov word [edi + 0x1c], ax
mov eax, dword [esp + 0x10]
inc eax
jmp 0x46453d
cmp byte [ecx + 0x1d], 0
je 0x46882a
mov eax, dword [ecx + 0x38]
mov dword [esp + 0x70], eax
mov eax, dword [ecx + 0x3c]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x70]
mov dword [edi + 0x10], eax
mov eax, dword [esp + 0x74]
jmp 0x4669ee
mov eax, dword [ecx + 0x24]
test eax, eax
je 0x468878
mov eax, dword [eax]
lea edx, [esp + 0x70]
mov dword [esp + 0x78], eax
push edx
mov eax, dword [eax]
mov dword [esp + 0x80], eax
push dword [ecx + 0x24]
mov eax, dword [eax + 0x30]
call eax
mov edx, dword [esp + 0x80]
add esp, 8
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x18], eax
call fcn.00464410
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x14]
mov dword [edi + 0x10], eax
mov eax, dword [esp + 0x74]
jmp 0x4669ee
call fcn.004615b0
mov dword [esp + 0x18], eax
test eax, eax
jne 0x46a9ea
mov ebx, dword [esp + 0x68]
cmp byte [ebx + 0x19], al
je 0x4688b4
mov eax, dword [ebx + 0x40]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x70], eax
mov eax, dword [ebx + 0x44]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x70]
mov dword [edi + 0x10], eax
mov eax, dword [esp + 0x74]
jmp 0x4669ee
mov ebx, dword [ebx]
cmp byte [ebx + 0x53], 1
je 0x4688c7
xorps xmm0, xmm0
movlpd qword [esp + 0x70], xmm0
jmp 0x468918
cmp word [ebx + 0x3a], 0
jne 0x46890a
movsx eax, word [ebx + 0x5a]
mov edi, dword [ebx + eax*4 + 0x84]
movzx esi, word [ebx + eax*2 + 0x5c]
lea eax, [ebx + 0x20]
push eax
mov ecx, dword [edi + 0x48]
movzx edx, byte [ecx + esi*2]
movzx eax, byte [ecx + esi*2 + 1]
mov ecx, edi
shl edx, 8
or edx, eax
movzx eax, word [edi + 0x12]
and edx, eax
add edx, dword [edi + 0x40]
call fcn.00454590
add esp, 4
mov byte [ebx + 0x52], 1
mov eax, dword [ebx + 0x20]
mov dword [esp + 0x70], eax
mov eax, dword [ebx + 0x24]
mov dword [esp + 0x74], eax
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x18], 0
mov dword [edi + 0x10], eax
mov eax, dword [esp + 0x74]
jmp 0x4669ee
mov eax, dword [esp + 0xc]
mov ecx, dword [edx + ebx*4 + 4]
mov eax, dword [eax + 0x44]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x68], eax
mov byte [eax + 0x1c], 1
mov eax, dword [esp + 0x68]
mov byte [eax + 0x19], 0
mov eax, dword [esp + 0x68]
mov ecx, dword [eax]
test ecx, ecx
je 0x4679b5
call fcn.00454120
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
inc eax
mov ecx, dword [esp + 0xc]
jmp 0x46453d
mov eax, dword [esp + 0xc]
mov ecx, dword [edx + ebx*4 + 4]
mov eax, dword [eax + 0x44]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x68], ecx
mov esi, dword [ecx]
mov dword [esp + 0x6c], esi
mov dword [esp + 0x70], 0
test esi, esi
je 0x4689f6
cmp byte [esi + 0x53], 1
jne 0x4689b5
cmp byte [esi + 0x51], 0
je 0x4689b5
mov dword [esp + 0x18], 0
jmp 0x4689f6
mov ecx, esi
call fcn.00457b40
mov dword [esp + 0x18], eax
test eax, eax
jne 0x4689ee
cmp byte [esi + 0x53], al
jne 0x4689d3
mov dword [esp + 0x70], 1
jmp 0x4689ee
mov ecx, esi
mov dword [esp + 0x70], 0
call fcn.00457d80
test eax, eax
mov dword [esp + 0x18], eax
sete al
mov byte [esi + 0x51], al
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x14]
mov al, byte [esp + 0x70]
mov byte [ecx + 0x1c], al
mov eax, dword [esp + 0x68]
mov byte [eax + 0x1d], 0
mov eax, dword [esp + 0x68]
mov byte [eax + 0x19], 0
mov eax, dword [esp + 0x68]
mov dword [eax + 0x50], 0
mov eax, dword [edx + ebx*4 + 8]
test eax, eax
jle case.0x4645cf.17
cmp dword [esp + 0x70], 0
mov ecx, dword [esp + 0xc]
je 0x468b06
lea esi, [eax - 1]
mov eax, dword [esp + 0x18]
jmp 0x4669fd
mov eax, dword [esp + 0xc]
inc dword [eax + 0x80]
jmp 0x468a4f
mov eax, dword [esp + 0xc]
mov ecx, dword [edx + ebx*4 + 4]
mov eax, dword [eax + 0x44]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x68], eax
mov dword [esp + 0x70], 1
cmp dword [eax + 0x48], 0
je 0x468a82
lea ecx, [esp + 0x70]
mov edx, eax
push ecx
mov ecx, esi
call fcn.0046c500
add esp, 4
mov dword [esp + 0x18], eax
jmp 0x468ae3
mov esi, dword [eax]
mov ecx, esi
mov dword [esp + 0x6c], esi
call fcn.00457b40
mov dword [esp + 0x18], eax
test eax, eax
jne 0x468ab9
cmp byte [esi + 0x53], al
jne 0x468aa6
mov dword [esp + 0x70], 1
jmp 0x468ab9
mov ecx, esi
mov dword [esp + 0x70], 0
call fcn.00457d00
mov dword [esp + 0x18], eax
cmp dword [esp + 0x70], 0
mov eax, dword [esp + 0x68]
sete cl
mov byte [eax + 0x1a], cl
mov eax, dword [esp + 0x68]
mov byte [eax + 0x1d], 0
mov eax, dword [esp + 0x68]
mov dword [eax + 0x50], 0
mov eax, dword [esp + 0x68]
mov byte [eax + 0x19], 0
mov eax, dword [esp + 0x68]
mov cl, byte [esp + 0x70]
mov edx, dword [esp + 0x14]
mov byte [eax + 0x1c], cl
cmp dword [esp + 0x70], 0
mov ecx, dword [esp + 0xc]
je 0x468b06
mov eax, dword [edx + ebx*4 + 8]
dec eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x18]
jmp 0x4669f9
cmp dword [esi + 0xe0], 0
jne 0x46acf3
mov eax, dword [esp + 0xc]
mov ecx, dword [edx + ebx*4 + 4]
mov eax, dword [eax + 0x44]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x68], eax
test eax, eax
je case.0x4645cf.17
cmp dword [eax + 0x48], 0
lea ecx, [esp + 0x6c]
push ecx
je 0x468b4f
mov edx, eax
mov ecx, esi
call fcn.0046c810
add esp, 4
jmp 0x468b62
mov dword [esp + 0x70], 1
push dword [eax]
mov eax, dword [edx + ebx*4 + 0x10]
call eax
add esp, 8
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x18], eax
mov al, byte [esp + 0x6c]
mov byte [ecx + 0x1c], al
mov eax, dword [esp + 0x68]
mov dword [eax + 0x50], 0
cmp dword [esp + 0x6c], 0
jne 0x468ba3
mov eax, dword [edx + ebx*4 + 8]
dec eax
mov dword [esp + 0x10], eax
mov al, byte [edx + ebx*4 + 3]
test al, al
je 0x468ba3
mov esi, dword [esp + 0xc]
movzx eax, al
inc dword [esi + eax*4 + 0x78]
mov eax, dword [esp + 0x68]
mov byte [eax + 0x19], 0
jmp case.0x4645cf.17
mov eax, dword [esp + 0xc]
mov ecx, dword [edx + ebx*4 + 4]
mov esi, dword [esp + 0x20]
mov eax, dword [eax + 0x44]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x68], ecx
mov eax, dword [edx + ebx*4 + 8]
mov edi, dword [ecx]
mov dword [esp + 0x6c], edi
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
test edi, edi
je 0x467193
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x468c04
mov ecx, esi
call fcn.0045da60
mov dword [esp + 0x18], eax
test eax, eax
jne 0x467732
mov edi, dword [esp + 0x6c]
mov ecx, dword [esp + 0x68]
cmp dword [ecx + 0x48], 0
je 0x468c2a
mov edx, ecx
mov ecx, dword [esp + 0x1c]
push esi
call fcn.0046c3a0
mov edi, dword [esp + 0x28]
add esp, 4
mov edx, dword [esp + 0x14]
mov dword [esp + 0x18], eax
jmp 0x4669f5
mov edx, dword [esi + 0x18]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x70], edx
mov esi, dword [esi + 4]
mov dword [esp + 0x74], esi
test byte [eax + ebx*4 + 3], 0x10
je 0x468c48
mov eax, dword [ecx + 0x4c]
jmp 0x468c4a
xor eax, eax
push eax
mov eax, dword [esp + 0x18]
mov ecx, edi
push dword [eax + ebx*4 + 0xc]
mov eax, edx
push 0
push 0
cdq
push 0x574775
push edx
push eax
mov edx, esi
call fcn.0045aa60
mov edi, dword [esp + 0x40]
add esp, 0x1c
mov edx, dword [esp + 0x14]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x68]
mov dword [eax + 0x50], 0
jmp case.0x4645cf.17
mov eax, dword [esp + 0xc]
mov ecx, dword [edx + ebx*4 + 4]
mov eax, dword [eax + 0x44]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x68], eax
mov ecx, dword [eax]
mov dword [esp + 0x6c], ecx
test ecx, ecx
je case.0x4645cf.17
mov eax, dword [eax + 8]
mov dword [esp + 0x78], eax
mov ax, word [edx + ebx*4 + 0xc]
mov word [esp + 0x7c], ax
mov byte [esp + 0x7e], 0
mov eax, dword [edx + ebx*4 + 8]
mov edx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x88], eax
lea edx, [esp + 0x78]
lea eax, [esp + 0x70]
push eax
push 0
push 0
push 0
call fcn.00457e10
add esp, 0x10
mov dword [esp + 0x18], eax
test eax, eax
jne 0x468d06
cmp dword [esp + 0x70], eax
jne 0x468d06
mov ecx, dword [esp + 0x6c]
call fcn.0045ac60
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x14]
mov dword [eax + 0x50], 0
jmp case.0x4645cf.17
mov eax, dword [esp + 0xc]
mov ecx, dword [edx + ebx*4 + 4]
mov eax, dword [eax + 0x44]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x6c], eax
mov eax, dword [eax]
mov dword [esp + 0x68], eax
mov eax, 1
mov word [edi + 0x1c], ax
cmp dword [esp + 0x68], 0
je 0x4679b5
mov ecx, dword [esp + 0x6c]
call fcn.004615b0
mov dword [esp + 0x18], eax
test eax, eax
jne 0x46a9ea
mov eax, dword [esp + 0x6c]
cmp byte [eax + 0x1c], 0
jne 0x4679b1
mov edx, dword [esp + 0x68]
lea eax, [esp + 0x70]
push eax
call fcn.00461e70
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
jne 0x46a9ea
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
mov dword [edi + 0x10], eax
mov eax, dword [esp + 0x74]
mov dword [edi + 0x14], eax
mov eax, 4
mov word [edi + 0x1c], ax
mov eax, dword [esp + 0x10]
inc eax
jmp 0x46453d
mov eax, dword [esp + 0xc]
mov ecx, dword [edx + ebx*4 + 4]
mov eax, dword [eax + 0x44]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x68], ecx
cmp dword [ecx], 0
je case.0x4645cf.17
mov eax, dword [ecx + 8]
mov dword [esp + 0x70], eax
mov ax, word [edx + ebx*4 + 0x10]
mov word [esp + 0x74], ax
cmp byte [edx + ebx*4 + 3], 0
setne al
add al, 2
mov byte [esp + 0x76], al
mov eax, dword [edx + ebx*4 + 0xc]
mov edx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x80], eax
lea edx, [esp + 0x70]
lea eax, [esp + 0x6c]
push eax
call fcn.00462010
mov edx, dword [esp + 0x18]
add esp, 4
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x6c]
cmp byte [edx + ebx*4], 0x64
jne 0x468e25
neg eax
jmp 0x468e26
inc eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x6c], eax
test eax, eax
jle 0x468b06
mov eax, dword [edx + ebx*4 + 8]
dec eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x18]
jmp 0x4669f9
xor ecx, ecx
mov dword [esp + 0x6c], ecx
mov eax, dword [esi + 0x88]
mov dword [esp + 0x70], eax
test eax, eax
je 0x468e85
nop dword [eax]
cmp dword [eax + 0x34], 0xbdf20da3
jne 0x468e7a
cmp byte [eax + 0x66], 2
jae 0x468e7a
cmp dword [eax + 0x58], 0
jl 0x468e7a
inc ecx
mov dword [esp + 0x6c], ecx
mov eax, dword [eax + 0x40]
mov dword [esp + 0x70], eax
test eax, eax
jne 0x468e60
mov eax, 1
mov word [edi + 0x1c], ax
cmp dword [esp + 0x6c], eax
jg 0x46aaf4
mov eax, dword [esp + 0x1c]
mov ecx, dword [edx + ebx*4 + 0xc]
mov dword [esp + 0x74], ecx
add ecx, ecx
mov esi, dword [edx + ebx*4 + 4]
mov eax, dword [eax + 8]
mov edi, dword [eax + ecx*8 + 4]
mov ecx, edi
call fcn.00453c90
lea eax, [esp + 0x68]
mov edx, esi
push eax
mov ecx, edi
call fcn.0045b360
add esp, 4
mov dword [esp + 0x18], eax
cmp byte [edi + 9], 0
je 0x468ef1
add dword [edi + 0xc], 0xffffffff
jne 0x468ef1
mov eax, dword [edi + 4]
mov eax, dword [eax + 0x38]
test eax, eax
je 0x468eed
push eax
call dword [0x5937d4]
add esp, 4
mov byte [edi + 0xa], 0
mov edi, dword [esp + 0x24]
mov eax, 4
mov word [edi + 0x1c], ax
mov eax, dword [esp + 0x68]
cdq
mov dword [edi + 0x10], eax
mov eax, dword [esp + 0x18]
mov dword [edi + 0x14], edx
test eax, eax
jne 0x465243
mov edx, dword [esp + 0x68]
test edx, edx
je 0x465243
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x74]
shl edi, 4
mov esi, dword [eax + ebx*4 + 4]
mov eax, dword [esp + 0x1c]
add edi, dword [eax + 8]
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x468f52
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x14], edx
jne 0x468f4c
mov dword [ecx + 0x14], esi
mov eax, dword [eax]
test eax, eax
jne 0x468f41
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x468f71
nop dword [eax]
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x14], edx
jne 0x468f6b
mov dword [ecx + 0x14], esi
mov eax, dword [eax]
test eax, eax
jne 0x468f60
mov al, byte [esp + 0x74]
mov edi, dword [esp + 0x24]
inc al
mov edx, dword [esp + 0x14]
mov byte [esp + 0x3b], al
jmp case.0x4645cf.17
mov dword [esp + 0x68], 0
lea eax, [esp + 0x68]
xor ecx, ecx
cmp dword [edx + ebx*4 + 0xc], ecx
cmove eax, ecx
mov ecx, dword [esi + 8]
push eax
mov eax, dword [edx + ebx*4 + 8]
mov edx, dword [edx + ebx*4 + 4]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.0045b2b0
mov edx, dword [esp + 0x18]
add esp, 4
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x18], eax
cmp dword [edx + ebx*4 + 0xc], 0
je 0x4669f9
mov eax, dword [esp + 0x68]
add dword [ecx + 0x6c], eax
mov ecx, dword [edx + ebx*4 + 0xc]
mov esi, dword [esp + 0x10]
test ecx, ecx
jle 0x467d8d
mov ebx, dword [esp + 0x20]
lea ecx, [ecx + ecx*4]
cdq
add dword [ebx + ecx*8 + 0x10], eax
mov eax, dword [esp + 0x18]
adc dword [ebx + ecx*8 + 0x14], edx
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
jmp 0x4669fd
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x68], 0
mov eax, dword [edx + ebx*4 + 4]
xor ebx, ebx
shl eax, 4
add eax, dword [esi + 8]
mov dword [esp + 0x70], eax
cmp byte [edx + ecx*4], 0x69
setne bl
inc ebx
mov dword [esp + 0x6c], ebx
mov esi, dword [eax + 4]
mov ecx, esi
call fcn.00453c90
push ebx
lea edx, [esp + 0x6c]
mov ecx, esi
call fcn.0045aea0
add esp, 4
mov dword [esp + 0x18], eax
cmp byte [esi + 9], 0
je 0x46906f
add dword [esi + 0xc], 0xffffffff
jne 0x46906f
mov eax, dword [esi + 4]
mov eax, dword [eax + 0x38]
test eax, eax
je 0x46906b
push eax
call dword [0x5937d4]
add esp, 4
mov byte [esi + 0xa], 0
mov eax, dword [esp + 0x68]
cdq
mov dword [edi + 0x14], edx
mov edx, dword [esp + 0x14]
mov dword [edi + 0x10], eax
jmp case.0x4645cf.17
mov edx, dword [edx + ebx*4 + 4]
mov eax, str.sqlite_master
cmp edx, 1
mov dword [esp + 0x68], edx
mov ecx, str.sqlite_temp_master
mov dword [esp + 0x74], esi
cmovne ecx, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x6c], ecx
add edx, edx
mov eax, dword [eax + ebx*4 + 4]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0xc]
add eax, 0x38
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x14]
push dword [eax + ebx*4 + 0x10]
mov eax, dword [esi + 8]
push ecx
push dword [eax + edx*8]
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
push esi
call fcn.00446650
add esp, 0x14
mov dword [esp + 0x70], eax
test eax, eax
je 0x46a9b1
push 0
lea eax, [esp + 0x78]
mov byte [esi + 0x7c], 1
push eax
push fcn.004872c0
push dword [esp + 0x7c]
mov dword [esp + 0x90], 0
push esi
call fcn.00484450
add esp, 0x14
test eax, eax
cmove eax, dword [esp + 0x80]
mov dword [esp + 0x18], eax
push dword [esp + 0x70]
push esi
call fcn.00444f80
mov eax, dword [esp + 0x20]
add esp, 8
mov ecx, dword [esp + 0xc]
mov byte [esi + 0x7c], 0
mov esi, dword [esp + 0x10]
cmp eax, 7
je 0x46a9b9
mov edx, dword [esp + 0x14]
jmp 0x4669fd
mov edx, dword [edx + ebx*4 + 4]
mov ecx, esi
call fcn.00475410
mov edx, dword [esp + 0x14]
mov dword [esp + 0x18], eax
jmp 0x4669f5
mov eax, dword [esp + 0x14]
mov edx, dword [edx + ebx*4 + 0x10]
mov ecx, dword [eax + ebx*4 + 4]
mov eax, edx
shl ecx, 4
add ecx, dword [esi + 8]
test edx, edx
je 0x46918d
cmp byte [edx], 0
je 0x469186
nop
inc eax
cmp byte [eax], 0
jne 0x469180
sub eax, edx
and eax, 0x3fffffff
mov ecx, dword [ecx + 0xc]
push 0
push eax
add ecx, 8
call fcn.004485d0
add esp, 8
mov edx, eax
mov ecx, esi
call fcn.00476d30
mov eax, dword [esp + 0x10]
or dword [esi + 0xc], 0x200
inc eax
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
jmp 0x46453d
push dword [edx + ebx*4 + 0x10]
mov edx, dword [edx + ebx*4 + 4]
mov ecx, esi
call fcn.00476ac0
mov eax, dword [esp + 0x14]
add esp, 4
mov edx, dword [esp + 0x14]
inc eax
mov ecx, dword [esp + 0xc]
jmp 0x46453d
push dword [edx + ebx*4 + 0x10]
mov edx, dword [edx + ebx*4 + 4]
mov ecx, esi
call fcn.004904c0
mov eax, dword [esp + 0x14]
add esp, 4
mov edx, dword [esp + 0x14]
inc eax
mov ecx, dword [esp + 0xc]
jmp 0x46453d
mov edx, dword [edx + ebx*4 + 8]
mov ecx, esi
mov dword [esp + 0x68], edx
lea edx, [edx*4 + 4]
call fcn.004451f0
mov edx, eax
mov dword [esp + 0x6c], edx
test edx, edx
je 0x46a9b1
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x20]
mov ecx, dword [eax + ebx*4 + 0xc]
lea ecx, [ecx + ecx*4]
lea ecx, [esi + ecx*8]
mov dword [esp + 0x7c], ecx
mov ecx, dword [eax + ebx*4 + 4]
lea eax, [ecx + ecx*4]
lea esi, [esi + eax*8]
xor eax, eax
mov dword [esp + 0x70], eax
cmp dword [esp + 0x68], eax
jle 0x469289
nop dword [eax + eax]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
call fcn.0045dd00
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x6c]
mov dword [ecx + edx*4], eax
mov eax, dword [esp + 0x70]
inc eax
mov dword [esp + 0x70], eax
cmp eax, dword [esp + 0x68]
jl 0x469260
mov edx, dword [esp + 0x6c]
mov dword [edx + eax*4], 0
lea eax, [esp + 0x74]
mov edx, dword [esp + 0x6c]
push eax
mov eax, dword [esp + 0x80]
push dword [eax + 0x10]
mov eax, dword [esp + 0x1c]
push dword [esp + 0x70]
movzx eax, byte [eax + ebx*4 + 3]
mov ebx, dword [esp + 0x28]
add eax, eax
mov ecx, dword [ebx + 8]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.0045c370
add esp, 0xc
mov dword [esp + 0x78], eax
push dword [esp + 0x6c]
push ebx
call fcn.00444f80
mov ecx, dword [esp + 0x84]
add esp, 8
mov eax, dword [esp + 0x74]
cdq
sub dword [ecx + 0x10], eax
sbb dword [ecx + 0x14], edx
mov ecx, esi
call fcn.0045df90
cmp dword [esp + 0x74], 0
je 0x469315
mov edx, dword [esp + 0x78]
test edx, edx
je 0x46a9b1
push fcn.00444ee0
push 1
push 0xffffffffffffffff
mov ecx, esi
call fcn.0045e2d0
add esp, 0xc
movzx edx, byte [esp + 0x30]
mov ecx, esi
call fcn.0045d8c0
mov eax, dword [esp + 0x10]
mov esi, ebx
mov edx, dword [esp + 0x14]
inc eax
mov ecx, dword [esp + 0xc]
jmp 0x46453d
mov eax, dword [edx + ebx*4 + 4]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x1c], 0x20
lea esi, [ecx + eax*8]
mov eax, dword [edx + ebx*4 + 8]
lea edi, [eax + eax*4]
jne 0x469362
mov ecx, esi
call fcn.0045e110
test byte [esi + 0x1c], 0x20
je 0x46a9b1
mov ebx, dword [esp + 0x20]
mov ecx, dword [esi + 0x10]
push dword [ebx + edi*8 + 0x14]
push dword [ebx + edi*8 + 0x10]
call fcn.0044c9a0
add esp, 8
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x24]
inc eax
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
jmp 0x46453d
cmp dword [esi + 0xe0], 0
jne 0x46acf3
mov eax, dword [edx + ebx*4 + 4]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x1c], 0x20
lea edi, [ecx + eax*8]
je 0x46945b
mov esi, dword [edi + 0x10]
cmp byte [esi + 0x1a], 0
jne 0x4693c9
mov ecx, esi
call fcn.0044caa0
mov ecx, dword [esi + 0x14]
test ecx, ecx
je 0x4693f7
lea eax, [esp + 0x64]
push eax
lea edx, [esp + 0x60]
call fcn.0044cb70
mov edx, dword [esp + 0x60]
add esp, 4
mov ecx, dword [esi + 8]
mov dword [esi + 0x14], 0
call fcn.0044ca30
mov dword [esi + 8], eax
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x46945b
mov eax, dword [ecx]
mov dword [esp + 0x68], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0x6c], eax
mov eax, dword [esi + 8]
mov eax, dword [eax + 8]
mov dword [esi + 8], eax
test eax, eax
jne 0x46941f
mov ecx, esi
call fcn.0044c960
mov eax, dword [esp + 0x14]
push dword [esp + 0x6c]
mov ecx, dword [esp + 0x24]
push dword [esp + 0x6c]
mov eax, dword [eax + ebx*4 + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.0045dfe0
mov eax, dword [esp + 0x18]
add esp, 8
mov edx, dword [esp + 0x14]
inc eax
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0xc]
jmp 0x46453d
mov ecx, edi
call fcn.0045df90
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0xc]
mov eax, dword [edx + ebx*4 + 8]
dec eax
inc eax
jmp 0x46453d
mov eax, dword [edx + ebx*4 + 4]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, dword [edx + ebx*4 + 0xc]
lea edi, [eax + eax*4]
mov eax, dword [edx + ebx*4 + 0x10]
mov dword [esp + 0x68], eax
test byte [esi + 0x1c], 0x20
jne 0x4694b9
mov ecx, esi
call fcn.0045e110
test byte [esi + 0x1c], 0x20
je 0x46a9b1
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x20]
test eax, eax
je 0x469505
js 0x4694c4
and eax, 0xf
jmp 0x4694c9
mov eax, 0xff
push dword [ecx + edi*8 + 0x14]
mov dl, al
push dword [ecx + edi*8 + 0x10]
mov ecx, dword [esi + 0x10]
call fcn.0044ccc0
add esp, 8
mov dword [esp + 0x6c], eax
test eax, eax
je 0x4694ff
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0xc]
mov eax, dword [edx + ebx*4 + 8]
jmp 0x46453d
mov eax, dword [esp + 0x68]
test eax, eax
js 0x469379
jmp 0x469362
mov ecx, dword [esp + 0x14]
mov edx, dword [edx + ebx*4 + 0x10]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x80], edx
mov eax, dword [ecx + ebx*4 + 0xc]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov dword [esp + 0x70], esi
cmp byte [ecx + ebx*4 + 3], 0
je 0x469568
mov eax, dword [esp + 0xc]
mov ecx, dword [edx + 0x14]
mov dword [esp + 0x84], ecx
mov eax, dword [eax + 0xa8]
mov dword [esp + 0x7c], eax
test eax, eax
je 0x469568
cmp dword [eax + 0x28], ecx
je 0x4685c4
mov eax, dword [eax + 0x44]
mov dword [esp + 0x7c], eax
test eax, eax
jne 0x469554
mov ecx, dword [esp + 0xc]
mov ebx, dword [esp + 0x1c]
mov eax, dword [ecx + 0xb0]
cmp eax, dword [ebx + 0x70]
jge 0x46ab0b
test byte [esi + 0x1c], 0x40
jne 0x4696c5
mov eax, dword [edx + 8]
add eax, dword [edx + 0xc]
mov dword [esp + 0x68], eax
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
lea ecx, [eax + ecx*2]
mov eax, dword [edx + 0x10]
lea ecx, [ecx + 0x12]
lea edx, [eax + ecx*4]
mov ecx, ebx
mov dword [esp + 0x6c], edx
call fcn.004451c0
mov dword [esp + 0x7c], eax
test eax, eax
je 0x46a9b1
mov ecx, dword [esp + 0x70]
call fcn.0045dcb0
mov eax, dword [esp + 0x70]
mov ecx, 0x40
mov esi, dword [esp + 0x10]
mov word [eax + 0x1c], cx
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x7c]
mov dword [eax + 0x10], ecx
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0xc]
mov dword [eax], ecx
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x68]
mov dword [ecx + 0x2c], eax
mov eax, dword [esp + 0x80]
mov ecx, dword [eax + 0xc]
mov eax, dword [esp + 0x7c]
mov dword [eax + 0x30], ecx
mov eax, dword [esp + 0x7c]
mov dword [eax + 4], esi
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0xc]
mov ecx, dword [esi + 8]
mov dword [eax + 0x10], ecx
mov eax, dword [esp + 0x7c]
mov ecx, dword [esi + 0x18]
mov dword [eax + 0x14], ecx
mov eax, dword [esp + 0x7c]
mov ecx, dword [esi + 0x44]
mov dword [eax + 0x20], ecx
mov eax, dword [esp + 0x7c]
mov cx, word [esi + 0x32]
mov word [eax + 0x24], cx
mov eax, dword [esp + 0x7c]
mov ecx, dword [esi + 4]
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x7c]
mov ecx, dword [esi + 0x1c]
mov dword [eax + 0xc], ecx
mov eax, dword [esp + 0x80]
mov ecx, dword [eax + 0x14]
mov eax, dword [esp + 0x7c]
mov dword [eax + 0x28], ecx
mov eax, dword [esp + 0x7c]
mov ecx, dword [esi + 0xc0]
mov dword [eax + 0x18], ecx
mov eax, dword [esp + 0x7c]
mov ecx, dword [esi + 0xbc]
mov dword [eax + 0x1c], ecx
mov edx, dword [esp + 0x7c]
mov eax, dword [edx + 0x2c]
lea ecx, [edx + 0x48]
mov dword [esp + 0x74], ecx
lea eax, [eax + eax*4]
lea eax, [eax + 9]
lea eax, [edx + eax*8]
mov dword [esp + 0x78], eax
cmp ecx, eax
je 0x4696ce
mov edi, 0x80
nop
mov word [ecx + 0x1c], di
mov eax, dword [esp + 0x74]
mov dword [eax], ebx
mov ecx, dword [esp + 0x74]
add ecx, 0x28
mov dword [esp + 0x74], ecx
cmp ecx, dword [esp + 0x78]
jne 0x4696a0
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x7c]
jmp 0x4696ce
mov edx, dword [esi + 0x10]
mov esi, ecx
mov dword [esp + 0x7c], edx
inc dword [esi + 0xb0]
mov eax, dword [esi + 0xa8]
mov dword [edx + 0x44], eax
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x3c]
mov dword [eax + 0x38], ecx
mov ecx, dword [esp + 0x40]
mov dword [eax + 0x3c], ecx
mov eax, dword [esp + 0x7c]
mov ecx, dword [esi + 0x6c]
mov dword [eax + 0x40], ecx
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x80]
mov dword [esi + 0xa8], ecx
mov dword [esi + 0x6c], 0
lea ebx, [ecx + 0x20]
mov dword [esi + 8], ebx
mov eax, dword [ecx + 0x2c]
mov dword [esi + 0x18], eax
mov ax, word [ecx + 0x30]
mov word [esi + 0x32], ax
mov eax, dword [esi + 0x18]
inc eax
mov dword [esp + 0x20], ebx
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
mov dword [esi + 0x44], ecx
mov eax, dword [edx]
mov dword [esp + 0x14], eax
mov dword [esi + 4], eax
mov eax, dword [edx + 4]
mov dword [esi + 0x1c], eax
movzx eax, word [esi + 0x32]
lea ecx, [ecx + eax*4]
mov dword [esi + 0xc0], ecx
mov eax, dword [edx + 0x10]
mov dword [esi + 0xbc], eax
mov eax, dword [edx + 4]
mov dword [esi + 0x1c], eax
mov eax, dword [esp + 0xc]
push dword [eax + 0xbc]
push 0
push ecx
call fcn.0051df40
mov esi, dword [esp + 0x28]
or eax, 0xffffffff
mov edx, dword [esp + 0x20]
add esp, 0xc
mov ecx, dword [esp + 0xc]
inc eax
jmp 0x46453d
mov eax, dword [esp + 0xc]
mov edx, dword [eax + 0xa8]
mov dword [esp + 0x68], edx
mov eax, dword [edx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 8]
mov eax, dword [eax + ecx*4 + 4]
mov ecx, dword [esp + 0x14]
add eax, dword [ecx + ebx*4 + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x10]
lea edx, [eax + ecx*8]
mov dword [esp + 0x6c], edx
jmp 0x464a83
mov eax, dword [edx + ebx*4 + 8]
cmp dword [edx + ebx*4 + 4], 0
cdq
je 0x4697ea
add dword [esi + 0x1f0], eax
mov eax, dword [esp + 0x10]
adc dword [esi + 0x1f4], edx
inc eax
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
jmp 0x46453d
mov ecx, dword [esp + 0xc]
add dword [ecx + 0x90], eax
mov eax, ecx
adc dword [eax + 0x94], edx
mov eax, dword [esp + 0x10]
inc eax
jmp 0x464539
cmp dword [edx + ebx*4 + 4], 0
je 0x46982e
mov eax, dword [esi + 0x1f0]
or eax, dword [esi + 0x1f4]
jne 0x465944
mov eax, dword [edx + ebx*4 + 8]
mov ecx, dword [esp + 0xc]
dec eax
inc eax
jmp 0x46453d
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
mov eax, dword [eax + 0x90]
or eax, dword [ecx + 0x94]
jne 0x46984f
mov eax, dword [edx + ebx*4 + 8]
dec eax
inc eax
jmp 0x46453d
mov eax, dword [esp + 0x10]
inc eax
jmp 0x46453d
mov eax, dword [esp + 0xc]
mov edx, dword [eax + 0xa8]
test edx, edx
je 0x469892
mov dword [esp + 0x6c], edx
mov eax, dword [edx + 0x44]
test eax, eax
je 0x46987f
mov edx, eax
mov dword [esp + 0x6c], edx
mov eax, dword [edx + 0x44]
test eax, eax
jne 0x469872
mov eax, dword [esp + 0x14]
mov eax, dword [eax + ebx*4 + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x10]
lea esi, [eax + ecx*8]
jmp 0x4698a4
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
mov eax, dword [eax + ebx*4 + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
mov dword [esp + 0x68], esi
call fcn.0045dd00
mov dword [esi + 0x10], eax
mov ecx, 0xbf04
movzx eax, word [esi + 0x1c]
and ax, cx
mov dword [esi + 0x14], edx
mov ecx, dword [esp + 0x20]
or ax, 4
mov word [esi + 0x1c], ax
mov eax, dword [esp + 0x14]
mov eax, dword [eax + ebx*4 + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.0045dd00
mov dword [esi + 0x10], eax
mov ecx, 0xbf04
movzx eax, word [esi + 0x1c]
and ax, cx
mov dword [esi + 0x14], edx
mov ecx, dword [esi + 0x10]
or ax, 4
mov word [esi + 0x1c], ax
mov eax, dword [esp + 0x68]
cmp dword [eax + 0x14], edx
jg 0x4685c4
jl 0x469917
cmp dword [eax + 0x10], ecx
jae 0x4685c4
mov esi, dword [esp + 0x1c]
mov dword [eax + 0x10], ecx
mov ecx, dword [esp + 0xc]
mov dword [eax + 0x14], edx
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
inc eax
jmp 0x46453d
mov eax, dword [edx + ebx*4 + 4]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
cmp dword [ecx + eax*8 + 0x14], 0
jl 0x465944
jg 0x469956
cmp dword [ecx + eax*8 + 0x10], 0
jbe 0x465944
mov eax, dword [edx + ebx*4 + 8]
mov ecx, dword [esp + 0xc]
dec eax
inc eax
jmp 0x46453d
mov eax, dword [edx + ebx*4 + 4]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
cmp dword [ecx + eax*8 + 0x14], 0
jg 0x465944
jl 0x469956
cmp dword [ecx + eax*8 + 0x10], 0
jae 0x465944
mov eax, dword [edx + ebx*4 + 8]
mov ecx, dword [esp + 0xc]
dec eax
inc eax
jmp 0x46453d
mov eax, dword [edx + ebx*4 + 4]
mov edi, dword [esp + 0x20]
lea ecx, [eax + eax*4]
mov eax, dword [edx + ebx*4 + 0xc]
cdq
add dword [edi + ecx*8 + 0x10], eax
mov eax, edi
adc dword [eax + ecx*8 + 0x14], edx
mov edx, edi
mov eax, dword [eax + ecx*8 + 0x10]
mov edi, dword [esp + 0x24]
or eax, dword [edx + ecx*8 + 0x14]
mov edx, dword [esp + 0x14]
jne 0x465944
mov eax, dword [edx + ebx*4 + 8]
mov ecx, dword [esp + 0xc]
dec eax
inc eax
jmp 0x46453d
movzx ecx, byte [edx + ebx*4 + 3]
mov dword [esp + 0x68], ecx
mov eax, dword [edx + ebx*4 + 8]
mov edx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x74], edx
mov esi, dword [eax + 0xc]
xor eax, eax
mov dword [esp + 0xb8], esi
mov dword [esp + 0x6c], eax
test ecx, ecx
jle 0x469a3f
nop dword [eax + eax]
mov dword [esi + eax*4], edx
mov ecx, dword [esp + 0x74]
call fcn.00464180
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x74]
inc eax
add edx, 0x28
mov dword [esp + 0x6c], eax
mov dword [esp + 0x74], edx
cmp eax, dword [esp + 0x68]
jge 0x469a3f
mov esi, dword [esp + 0xb8]
jmp 0x469a10
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
mov eax, dword [edx + ebx*4 + 0x10]
mov dword [esp + 0x78], eax
mov eax, dword [edx + ebx*4 + 0xc]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x70], eax
mov dword [esp + 0xa8], eax
inc dword [eax + 0x18]
mov eax, 1
mov ecx, dword [esp + 0x78]
mov word [esp + 0x9c], ax
mov dword [esp + 0x84], 0
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0x80], esi
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0
test byte [ecx + 3], 8
je 0x469acb
mov eax, dword [edx + ebx*4 - 4]
mov dword [esp + 0xb0], eax
push dword [esp + 0xb8]
lea eax, [esp + 0x7c]
push dword [esp + 0x6c]
push eax
mov eax, dword [ecx + 0x10]
call eax
add esp, 0xc
cmp dword [esp + 0xac], 0
je 0x469b1d
mov dl, 1
lea ecx, [esp + 0x80]
call fcn.0045e910
push eax
mov eax, dword [esp + 0x10]
push 0x578aac
add eax, 0x38
push esi
push eax
call fcn.004453a0
mov eax, dword [esp + 0xbc]
add esp, 0x10
mov dword [esp + 0x18], eax
lea ecx, [esp + 0x80]
call fcn.0045dcb0
mov edx, dword [esp + 0x14]
jmp case.0x4645cf.17
mov eax, dword [edx + ebx*4 + 4]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov dword [esp + 0x68], ecx
mov edx, dword [edx + ebx*4 + 0x10]
call fcn.0045dbc0
mov dword [esp + 0x18], eax
test eax, eax
je 0x469b77
mov ecx, dword [esp + 0x68]
mov dl, 1
call fcn.0045e910
push eax
mov eax, dword [esp + 0x10]
push 0x578aac
add eax, 0x38
push esi
push eax
call fcn.004453a0
add esp, 0x10
movzx edx, byte [esp + 0x30]
mov ecx, dword [esp + 0x68]
call fcn.0045d8c0
mov eax, dword [esp + 0x68]
movzx ecx, word [eax + 0x1c]
test cl, 0x12
je 0x46523f
mov edx, dword [eax + 0x18]
test ecx, 0x4000
je 0x469ba4
add edx, dword [eax + 0x10]
mov eax, dword [eax]
jmp 0x46522f
lea eax, [esp + 0x74]
mov dword [esp + 0x6c], 0
push eax
lea eax, [esp + 0x74]
mov dword [esp + 0x78], 0xffffffff
mov dword [esp + 0x74], 0xffffffff
mov ecx, esi
push eax
push dword [edx + ebx*4 + 8]
mov edx, dword [edx + ebx*4 + 4]
call fcn.0049e500
mov edx, eax
add esp, 0xc
mov dword [esp + 0x18], edx
cmp edx, 5
jne 0x469bfa
mov dword [esp + 0x18], 0
mov dword [esp + 0x6c], 1
mov ecx, dword [esp + 0x14]
xor eax, eax
mov edx, dword [esp + 0x20]
mov dword [esp + 0x68], eax
mov ecx, dword [ecx + ebx*4 + 0xc]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
mov dword [esp + 0x78], ecx
mov eax, dword [esp + eax*4 + 0x6c]
cdq
push edx
push eax
call fcn.0045dfe0
mov eax, dword [esp + 0x70]
add esp, 8
mov ecx, dword [esp + 0x78]
inc eax
add ecx, 0x28
mov dword [esp + 0x68], eax
mov dword [esp + 0x78], ecx
cmp eax, 3
jl 0x469c16
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
jmp 0x4669f5
mov esi, dword [edx + ebx*4 + 0xc]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x70], esi
mov ecx, dword [edx + ebx*4 + 4]
add ecx, ecx
cmp esi, 0xffffffff
mov eax, dword [eax + 8]
mov eax, dword [eax + ecx*8 + 4]
mov dword [esp + 0x68], eax
mov dword [esp + 0x28], eax
mov eax, dword [eax + 4]
mov edi, dword [eax]
mov dword [esp + 0x6c], edi
movzx edx, byte [edi + 5]
cmove esi, edx
mov dword [esp + 0x74], edx
mov dword [esp + 0x70], esi
cmp byte [edi + 0x10], 3
jae 0x469ca3
mov eax, dword [edi + 0x40]
cmp dword [eax], 0
je 0x469ca9
cmp dword [edi + 0x4c], 0
jl 0x469ca9
jg 0x469ca3
cmp dword [edi + 0x48], 0
jbe 0x469ca9
mov esi, edx
mov dword [esp + 0x70], esi
mov ecx, dword [edi + 0x90]
mov dword [esp + 0x78], ecx
cmp esi, 5
jne 0x469ce2
call fcn.004470b0
test eax, eax
je 0x469cd7
cmp byte [edi + 4], 0
mov eax, dword [edi + 0x3c]
mov eax, dword [eax]
jne 0x469ce2
cmp dword [eax], 2
jl 0x469cd7
cmp dword [eax + 0x34], 0
jne 0x469ce2
mov esi, edx
mov dword [esp + 0x70], esi
jmp 0x469d85
cmp esi, edx
je 0x469d85
cmp edx, 5
je 0x469cf8
cmp esi, 5
jne 0x469d85
mov eax, dword [esp + 0x1c]
cmp byte [eax + 0x1c], 0
je 0x46ab36
cmp dword [eax + 0x8c], 1
jg 0x46ab36
cmp edx, 5
jne 0x469d3e
mov ecx, edi
call fcn.004515a0
mov dword [esp + 0x18], eax
test eax, eax
jne 0x469d73
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x6c]
call fcn.00451350
mov esi, dword [esp + 0x70]
mov ecx, dword [esp + 0x68]
jmp 0x469d5d
cmp edx, 4
jne 0x469d59
mov edx, 2
mov ecx, edi
call fcn.00451350
mov esi, dword [esp + 0x70]
mov ecx, dword [esp + 0x68]
jmp 0x469d5d
mov ecx, dword [esp + 0x28]
xor edx, edx
cmp esi, 5
sete dl
inc edx
call fcn.0045cae0
mov dword [esp + 0x18], eax
test eax, eax
je 0x469d7d
mov esi, dword [esp + 0x74]
mov dword [esp + 0x70], esi
jmp 0x469d81
mov esi, dword [esp + 0x70]
mov edi, dword [esp + 0x6c]
mov edx, esi
mov ecx, edi
call fcn.00451350
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax + ebx*4 + 8]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, 0xa02
mov word [edi + 0x1c], ax
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x24], edi
cmp ecx, 6
jne 0x469dbe
xor ecx, ecx
jmp 0x469dc5
mov ecx, dword [ecx*4 + 0x571618]
mov dword [edi + 4], ecx
call fcn.004470b0
movzx edx, byte [esp + 0x30]
mov ecx, edi
mov dword [edi + 0x18], eax
mov byte [edi + 0x1f], 1
call fcn.0045d8c0
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
jmp 0x4669f5
mov ecx, dword [esp + 0xc]
mov edx, esi
lea ecx, [ecx + 0x38]
call fcn.004928d0
mov edx, dword [esp + 0x14]
mov dword [esp + 0x18], eax
jmp 0x4669f5
mov ecx, dword [edx + ebx*4 + 4]
mov eax, dword [esi + 8]
add ecx, ecx
mov ecx, dword [eax + ecx*8 + 4]
mov dword [esp + 0x68], ecx
call fcn.00456b50
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x18], eax
cmp eax, 0x65
jne 0x4669f9
mov eax, dword [edx + ebx*4 + 8]
dec eax
mov dword [esp + 0x10], eax
xor eax, eax
mov dword [esp + 0x18], eax
jmp 0x4669f9
cmp dword [edx + ebx*4 + 4], 0
jne 0x469e63
mov ecx, esi
call fcn.00462110
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
inc eax
jmp 0x46453d
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
mov byte [eax + 0x63], 1
mov eax, dword [esp + 0x10]
inc eax
jmp 0x46453d
mov al, byte [edx + ebx*4 + 0xc]
mov byte [esp + 0x60], al
test al, al
jne 0x469e92
test dword [esi + 0xc], 0x80000
jne case.0x4645cf.17
mov eax, dword [edx + ebx*4 + 4]
mov ecx, dword [esi + 8]
add eax, eax
push dword [esp + 0x60]
mov edx, dword [edx + ebx*4 + 8]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.0045c980
add esp, 4
mov dword [esp + 0x18], eax
cmp al, 6
jne 0x465243
mov eax, dword [esp + 0x14]
push dword [eax + ebx*4 + 0x10]
mov eax, dword [esp + 0x10]
push str.database_table_is_locked:__s
add eax, 0x38
push esi
push eax
call fcn.004453a0
mov eax, dword [esp + 0x28]
add esp, 0x10
mov edx, dword [esp + 0x14]
jmp 0x4669f5
mov edx, dword [edx + ebx*4 + 0x10]
mov ecx, esi
mov dword [esp + 0x68], edx
call fcn.00493bd0
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x18], eax
test edx, edx
je 0x46a7cf
mov edx, dword [edx + 8]
call fcn.00464410
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
jmp 0x4669f5
mov eax, dword [esp + 0xc]
mov ecx, esi
add eax, 0x38
push eax
push dword [edx + ebx*4 + 0x10]
mov edx, dword [edx + ebx*4 + 4]
call fcn.004936a0
mov edx, dword [esp + 0x1c]
add esp, 8
mov dword [esp + 0x18], eax
jmp 0x4669f5
mov eax, dword [esp + 0xc]
mov ecx, esi
mov byte [eax + 0x66], 2
push dword [edx + ebx*4 + 0x10]
mov edx, dword [edx + ebx*4 + 4]
call fcn.004939b0
mov edx, dword [esp + 0x10]
add esp, 4
mov dword [esp + 0x18], eax
mov byte [edx + 0x66], 0
mov edx, dword [esp + 0x14]
jmp 0x4669f5
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov eax, dword [edx + ebx*4 + 0x10]
lea edx, [esp + 0x6c]
push edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x74], ecx
push ecx
mov eax, dword [ecx]
mov dword [esp + 0x7c], eax
mov eax, dword [eax + 0x18]
call eax
mov edx, dword [esp + 0x78]
add esp, 8
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x18], eax
call fcn.00464410
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x465243
mov eax, dword [esp + 0x6c]
xor esi, esi
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0xc]
mov dword [eax], ecx
mov eax, dword [esp + 0x14]
mov ebx, dword [eax + ebx*4 + 4]
mov eax, dword [edx + 0x18]
sub eax, ebx
lea ecx, [eax + eax*4]
mov eax, dword [edx + 8]
lea eax, [eax + ecx*8]
mov dword [esp + 0x28], eax
mov eax, dword [edx + 0x44]
mov edi, dword [eax + ebx*4]
test edi, edi
je 0x46a045
mov eax, dword [esp + 0xc]
mov edx, edi
mov ecx, dword [eax]
call fcn.0046bf50
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x46a00f
call fcn.004559a0
jmp 0x46a01a
mov ecx, dword [edi]
test ecx, ecx
je 0x46a01a
call fcn.004573c0
mov ecx, dword [edi + 0x24]
test ecx, ecx
je 0x46a03b
mov eax, dword [edi + 0x28]
mov edi, dword [esp + 0xc]
push ecx
mov byte [edi + 0x66], 1
mov eax, dword [eax + 0x1c]
call eax
add esp, 4
mov byte [edi + 0x66], 0
jmp 0x46a03f
mov edi, dword [esp + 0xc]
mov eax, dword [edi + 0x44]
mov dword [eax + ebx*4], esi
mov edi, dword [esp + 0x28]
mov edx, 0x68
push 0
mov ecx, edi
call fcn.0045d8e0
add esp, 4
test eax, eax
jne 0x46a086
mov eax, dword [esp + 0xc]
mov esi, dword [edi + 4]
push 0x68
push 0
mov eax, dword [eax + 0x44]
push esi
mov dword [eax + ebx*4], esi
call fcn.0051df40
add esp, 0xc
mov dword [esi + 0xc], 0xffffffff
mov dword [esi + 0x14], 0
mov dword [esp + 0x68], esi
test esi, esi
je 0x46a0ba
mov eax, dword [esp + 0x6c]
mov edi, dword [esp + 0x24]
mov dword [esi + 0x24], eax
mov eax, dword [esp + 0x6c]
mov esi, dword [esp + 0x1c]
mov eax, dword [eax]
mov ecx, dword [eax]
mov eax, dword [esp + 0x68]
mov dword [eax + 0x28], ecx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
inc eax
jmp 0x464539
mov eax, dword [esp + 0x1c]
mov byte [eax + 0x1e], 1
mov eax, dword [esp + 0x74]
push dword [esp + 0x6c]
mov eax, dword [eax + 0x1c]
call eax
add esp, 4
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
jmp 0x4669f5
mov eax, dword [edx + ebx*4 + 0xc]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x74], edx
lea esi, [edx + 0x28]
mov dword [esp + 0x78], esi
mov ecx, dword [eax + ebx*4 + 4]
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x44]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x84], eax
mov edi, dword [eax + 0x24]
mov dword [esp + 0x7c], edi
mov eax, dword [edi]
mov dword [esp + 0x80], eax
mov eax, dword [eax]
mov dword [esp + 0x70], eax
mov dword [esp + 0x34], eax
mov eax, dword [esi + 0x10]
mov dword [esp + 0x68], eax
mov ecx, dword [edx + 0x10]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x88], 0
mov edx, dword [ecx + 0xc]
xor ecx, ecx
mov dword [esp + 0x90], edx
mov dword [esp + 0x8c], ecx
test eax, eax
jle 0x46a1bb
lea eax, [ecx + 1]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [edx + ecx*4], eax
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x90]
mov ecx, dword [ecx + eax*4]
call fcn.00464180
mov ecx, dword [esp + 0x8c]
mov eax, dword [esp + 0x68]
inc ecx
mov edx, dword [esp + 0x90]
mov dword [esp + 0x8c], ecx
cmp ecx, eax
jge 0x46a1ad
mov esi, dword [esp + 0x78]
jmp 0x46a167
mov edi, dword [esp + 0x7c]
mov ecx, dword [esp + 0x70]
mov esi, dword [esp + 0x6c]
jmp 0x46a1c3
mov ecx, dword [esp + 0x34]
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0xc]
push edx
push eax
mov eax, dword [esp + 0x1c]
mov byte [ebx + 0x66], 1
mov ebx, dword [esp + 0x30]
push dword [eax + ebx*4 + 0x10]
mov eax, dword [ecx + 0x20]
push esi
push edi
call eax
mov edx, dword [esp + 0x94]
add esp, 0x14
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xc]
mov ecx, eax
mov byte [eax + 0x66], 0
call fcn.00464410
cmp dword [esp + 0x18], 0
jne 0x46a21d
mov eax, dword [esp + 0x70]
push dword [esp + 0x7c]
mov eax, dword [eax + 0x28]
call eax
add esp, 4
mov dword [esp + 0x88], eax
jmp 0x46a224
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x14]
test eax, eax
je 0x46a235
mov eax, dword [edx + ebx*4 + 8]
dec eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x84]
mov edi, dword [esp + 0x24]
mov byte [eax + 0x1c], 0
jmp case.0x4645cf.17
mov eax, dword [esp + 0xc]
mov ecx, dword [edx + ebx*4 + 4]
mov eax, dword [eax + 0x44]
mov edi, dword [eax + ecx*4]
mov eax, dword [edx + ebx*4 + 0xc]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov dword [esp + 0x70], ecx
cmp byte [edi + 0x1c], 0
je 0x46a28a
call fcn.0045df90
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x24]
inc eax
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
jmp 0x46453d
mov eax, dword [edi + 0x24]
push 0x40
push 0
mov eax, dword [eax]
mov dword [esp + 0x70], eax
mov eax, dword [eax]
mov dword [esp + 0x74], eax
lea eax, [esp + 0x80]
push eax
call fcn.0051df40
mov esi, dword [esp + 0x7c]
add esp, 0xc
test dword [esp + 0x9c], 0x2460
je 0x46a2ca
lea ecx, [esp + 0x80]
call fcn.0045dc50
push dword [esp + 0xa4]
push dword [esp + 0x84]
call fcn.00444f80
mov dword [esp + 0x8c], 0
mov eax, 1
mov dword [esp + 0xac], 0
mov dword [esp + 0xa8], 0
movups xmm0, xmmword [esi]
movups xmmword [esp + 0x88], xmm0
movups xmm0, xmmword [esi + 0x10]
movups xmmword [esp + 0x98], xmm0
movq xmm0, qword [esi + 0x20]
movq qword [esp + 0xa8], xmm0
mov word [esi + 0x1c], ax
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
mov eax, dword [esp + 0xa4]
and eax, 0xbf01
or eax, 1
mov word [esp + 0xa4], ax
mov eax, dword [esp + 0x1c]
push dword [eax + ebx*4 + 8]
lea eax, [esp + 0x84]
push eax
mov eax, dword [esp + 0x7c]
push dword [edi + 0x24]
mov eax, dword [eax + 0x2c]
call eax
mov edx, dword [esp + 0x7c]
add esp, 0x14
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x18], eax
call fcn.00464410
mov eax, dword [esp + 0xac]
test eax, eax
mov ecx, dword [esp + 0x18]
movzx edx, byte [esp + 0x30]
cmovne ecx, eax
mov dword [esp + 0x18], ecx
lea ecx, [esp + 0x80]
call fcn.0045d8c0
mov esi, dword [esp + 0x70]
mov eax, 0x2460
test word [esi + 0x1c], ax
je 0x46a3bc
mov ecx, esi
call fcn.0045dc50
push dword [esi + 0x24]
push dword [esi]
call fcn.00444f80
mov dword [esi + 4], 0
mov eax, 1
mov dword [esi + 0x24], 0
add esp, 8
mov dword [esi + 0x20], 0
movups xmm0, xmmword [esp + 0x80]
movups xmmword [esi], xmm0
movups xmm0, xmmword [esp + 0x90]
movups xmmword [esi + 0x10], xmm0
movq xmm0, qword [esp + 0xa0]
movq qword [esi + 0x20], xmm0
mov word [esp + 0x9c], ax
mov eax, dword [esp + 0x70]
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
movzx ecx, word [eax + 0x1c]
test cl, 0x12
je 0x46a0d2
mov edx, dword [eax + 0x18]
test ecx, 0x4000
je 0x46a445
add edx, dword [eax + 0x10]
mov eax, dword [eax]
xor ecx, ecx
cmp edx, dword [eax + 0x48]
setg cl
test ecx, ecx
jne 0x46ab78
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
jmp 0x4669f5
mov esi, dword [esp + 0xc]
mov dword [esp + 0x70], 0
mov ecx, dword [edx + ebx*4 + 4]
mov eax, dword [esi + 0x44]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x74], ecx
cmp byte [ecx + 0x1c], 0
jne case.0x4645cf.17
mov eax, dword [ecx + 0x24]
mov eax, dword [eax]
mov dword [esp + 0x68], eax
mov eax, dword [eax]
mov dword [esp + 0x6c], eax
mov byte [esi + 0x66], 1
push dword [ecx + 0x24]
mov eax, dword [eax + 0x24]
call eax
mov edx, dword [esp + 0x6c]
add esp, 4
mov ecx, esi
mov dword [esp + 0x18], eax
mov byte [esi + 0x66], 0
call fcn.00464410
cmp dword [esp + 0x18], 0
jne 0x46a4dd
mov eax, dword [esp + 0x74]
push dword [eax + 0x24]
mov eax, dword [esp + 0x70]
mov eax, dword [eax + 0x28]
call eax
add esp, 4
mov dword [esp + 0x70], eax
jmp 0x46a4e1
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
test eax, eax
jne 0x468b06
mov eax, dword [edx + ebx*4 + 8]
dec eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x18]
jmp 0x4669f9
mov eax, dword [edx + ebx*4 + 0x10]
mov ecx, dword [esp + 0x20]
mov eax, dword [eax + 8]
mov dword [esp + 0x68], eax
mov eax, dword [edx + ebx*4 + 4]
mov edx, 1
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov dword [esp + 0x6c], ecx
call fcn.0045d8c0
mov dword [esp + 0x18], eax
test eax, eax
jne 0x465243
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x6c]
mov edx, dword [ecx]
push dword [eax + 4]
push ecx
mov eax, dword [edx + 0x4c]
call eax
mov esi, dword [esp + 0x14]
add esp, 8
mov edx, dword [esp + 0x68]
mov ecx, esi
mov dword [esp + 0x18], eax
call fcn.00464410
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov byte [esi + 0x63], 0
jmp 0x4669f5
mov eax, dword [edx + ebx*4 + 0x10]
mov eax, dword [eax + 8]
mov dword [esp + 0x68], eax
mov eax, dword [eax]
mov dword [esp + 0x6c], eax
mov edx, dword [edx + ebx*4 + 8]
mov dword [esp + 0x70], edx
cmp dword [eax + 0x34], 0
je 0x46523f
mov al, byte [esi + 0x22]
mov ecx, dword [esp + 0x20]
mov byte [esp + 0x47], al
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax + ebx*4 + 0xc]
mov dword [esp + 0x74], 0
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov dword [esp + 0x84], ecx
test edx, edx
jle 0x46a60a
nop dword [eax]
call fcn.00464180
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x84]
mov dword [eax + ecx*4], edx
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x84]
inc eax
add ecx, 0x28
mov dword [esp + 0x74], eax
mov dword [esp + 0x84], ecx
cmp eax, dword [esp + 0x70]
jl 0x46a5d0
mov eax, dword [esp + 0x14]
mov al, byte [eax + ebx*4 + 3]
mov byte [esi + 0x22], al
lea eax, [esp + 0x78]
push eax
push dword [esp + 0x84]
mov eax, dword [esp + 0x74]
push dword [esp + 0x78]
push dword [esp + 0x74]
mov eax, dword [eax + 0x34]
call eax
mov ecx, dword [esp + 0x1c]
add esp, 0x10
mov dword [esp + 0x18], eax
mov al, byte [esp + 0x47]
mov byte [esi + 0x22], al
mov edx, dword [esp + 0x68]
call fcn.00464410
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
test eax, eax
jne 0x46a689
cmp dword [edx + ebx*4 + 4], eax
je 0x46a67d
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x3c], eax
mov dword [esi + 0x30], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x40], ecx
mov dword [esi + 0x34], eax
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0xc]
inc dword [esi + 0x6c]
jmp 0x4669f5
cmp eax, 0x13
jne 0x46a67d
mov eax, dword [edx + ebx*4 + 0x10]
cmp byte [eax + 0x10], 0
je 0x46a679
cmp byte [edx + ebx*4 + 3], 4
jne 0x46ab9c
mov ecx, dword [esp + 0xc]
xor eax, eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x10]
inc eax
jmp 0x46453d
mov ecx, dword [edx + ebx*4 + 4]
mov eax, dword [esi + 8]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 4]
mov ecx, dword [esp + 0xc]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x2c]
mov dword [edi + 0x10], eax
mov eax, dword [esp + 0x10]
mov dword [edi + 0x14], 0
inc eax
jmp 0x46453d
mov ecx, dword [edx + ebx*4 + 4]
xor edi, edi
mov eax, dword [esi + 8]
add ecx, ecx
mov esi, dword [eax + ecx*8 + 4]
mov ecx, dword [edx + ebx*4 + 0xc]
test ecx, ecx
je 0x46a704
mov eax, dword [esi + 4]
mov edi, dword [eax + 0x2c]
cmp edi, ecx
cmovb edi, ecx
mov ecx, esi
call fcn.00453c90
mov eax, dword [esi + 4]
mov eax, dword [eax]
test edi, edi
jle 0x46a71a
mov dword [eax + 0x84], edi
cmp byte [esi + 9], 0
mov edi, dword [eax + 0x84]
je 0x46a744
add dword [esi + 0xc], 0xffffffff
jne 0x46a744
mov eax, dword [esi + 4]
mov ecx, dword [eax + 0x38]
test ecx, ecx
je 0x46a740
push ecx
call dword [0x5937d4]
add esp, 4
mov byte [esi + 0xa], 0
mov esi, dword [esp + 0x1c]
mov eax, edi
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
cdq
mov dword [edi + 0x10], eax
mov eax, dword [esp + 0x10]
mov dword [edi + 0x14], edx
inc eax
mov edx, dword [esp + 0x14]
jmp 0x46453d
cmp dword [esi + 0x98], 0
je case.0x4645cf.17
mov edx, dword [edx + ebx*4 + 0x10]
mov eax, dword [esp + 0xc]
test edx, edx
jne 0x46a786
mov edx, dword [eax + 0xa0]
mov dword [esp + 0x68], edx
test edx, edx
je 0x46523f
mov ecx, eax
call fcn.00463e20
push eax
mov dword [esp + 0x70], eax
push dword [esi + 0x9c]
mov eax, dword [esi + 0x98]
call eax
push dword [esp + 0x74]
push esi
call fcn.00444f80
mov eax, dword [esp + 0x28]
add esp, 0x10
mov edx, dword [esp + 0x14]
jmp 0x4669f5
mov edi, dword [esp + 0x24]
jmp 0x4669f5
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
jmp 0x4669f9
mov eax, 9
mov esi, dword [esp + 0x10]
mov dword [esp + 0x18], eax
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0xc]
push dword [ecx + 0x38]
mov dword [ecx + 0x5c], eax
push dword [ecx + 0xa0]
push esi
push str.statement_aborts_at__d:___s___s
push eax
call fcn.00446860
mov ecx, dword [esp + 0x20]
add esp, 0x14
call fcn.00460f30
cmp dword [esp + 0x18], 0xc0a
jne 0x46a823
mov byte [edi + 0x1e], 1
mov al, byte [esp + 0x3b]
mov esi, 1
test al, al
je 0x46a83b
movzx edx, al
mov ecx, edi
dec edx
call fcn.00476b50
mov edi, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x3c]
mov dword [eax + 0x30], ecx
mov ecx, dword [esp + 0x40]
mov dword [eax + 0x34], ecx
mov ecx, edi
call fcn.0045fb50
mov ecx, dword [esp + 0x134]
mov eax, esi
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00519876
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 0xc]
mov ecx, dword [edx + ebx*4 + 4]
mov esi, dword [esp + 0x10]
mov dword [edi + 0x5c], ecx
mov al, byte [edx + ebx*4 + 8]
mov byte [edi + 0x60], al
mov dword [edi + 0x58], esi
mov eax, dword [edx + ebx*4 + 0x10]
test eax, eax
je 0x46a8c5
push eax
push 0x578aac
push dword [esp + 0x24]
lea eax, [edi + 0x38]
push eax
call fcn.004453a0
mov eax, dword [esp + 0x24]
push dword [eax + ebx*4 + 0x10]
push dword [edi + 0xa0]
push esi
push str.abort_at__d_in___s_:__s
push dword [eax + ebx*4 + 4]
call fcn.00446860
add esp, 0x24
jmp 0x46a8e1
test ecx, ecx
je 0x46a8e1
push dword [edi + 0xa0]
push esi
push str.constraint_failed_at__d_in___s_
push dword [edx + ebx*4 + 4]
call fcn.00446860
add esp, 0x10
mov ecx, edi
call fcn.00460f30
cmp eax, 5
jne 0x46ac8b
mov esi, eax
mov dword [edi + 0x5c], esi
jmp 0x46a83f
mov eax, dword [ecx + 0x54]
mov edi, dword [esp + 0x14]
add eax, 2
mov edx, dword [esp + 0x20]
or eax, 1
mov dword [ecx + 0x54], eax
mov eax, dword [edi + ebx*4 + 4]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov dword [ecx + 0x14], edx
xor ecx, ecx
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], ecx
cmp dword [edi + ebx*4 + 8], ecx
jle 0x46a98c
nop dword [eax]
lea eax, [ecx + ecx*4]
mov esi, 0x1000
test word [edx + eax*8 + 0x1c], si
lea eax, [edx + eax*8]
mov esi, dword [esp + 0x1c]
je 0x46a959
mov ecx, eax
call fcn.0045da00
test eax, eax
jne 0x46a9b1
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x68]
lea eax, [ecx + ecx*4]
lea ecx, [edx + eax*8]
call fcn.0045dac0
mov eax, dword [esp + 0x6c]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x68]
lea ecx, [eax + ecx*8]
call fcn.00464180
mov ecx, dword [esp + 0x6c]
inc ecx
mov dword [esp + 0x6c], ecx
cmp ecx, dword [edi + ebx*4 + 8]
jge 0x46a98c
mov edx, dword [esp + 0x68]
jmp 0x46a930
cmp byte [esi + 0x1e], 0
jne 0x46a9b1
mov edi, dword [esp + 0xc]
mov esi, 0x64
mov eax, dword [esp + 0x10]
inc eax
mov dword [edi + 0x58], eax
jmp 0x46a83f
lea ecx, [esp + 0x78]
call fcn.0045dcb0
mov ecx, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x1c]
lea eax, [ecx + 0x38]
push str.out_of_memory
push edi
push eax
mov byte [edi + 0x1e], 1
call fcn.004453a0
mov eax, 7
add esp, 0xc
mov dword [esp + 0x18], eax
jmp 0x46a7ed
mov eax, 0x14
mov dword [esp + 0x18], eax
mov edi, dword [esp + 0x1c]
cmp byte [edi + 0x1e], 0
je 0x46aac2
mov eax, 7
mov dword [esp + 0x18], eax
jmp 0x46aac9
push str.cannot_open_savepoint___SQL_statements_in_progress
mov eax, dword [esp + 0x10]
add eax, 0x38
push esi
push eax
call fcn.004453a0
mov esi, dword [esp + 0x1c]
add esp, 0xc
mov eax, 5
inc esi
jmp 0x46a7e5
mov esi, dword [esp + 0x10]
mov dword [ebx + 0x58], esi
mov esi, 5
mov byte [edi + 0x1c], 0
mov edi, ebx
mov dword [edi + 0x5c], esi
jmp 0x46a83f
mov edi, dword [esp + 0x1c]
push eax
mov eax, dword [esp + 0x10]
push str.no_such_savepoint:__s
add eax, 0x38
push edi
push eax
call fcn.004453a0
mov esi, dword [esp + 0x20]
mov eax, 1
add esp, 0x10
mov dword [esp + 0x18], eax
inc esi
jmp 0x46a7ed
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
mov dword [edi + 0x58], esi
mov esi, 5
mov dword [edi + 0x5c], esi
jmp 0x46a83f
mov ecx, 0x1094b
call fcn.0049f790
jmp 0x46a9e6
mov esi, dword [esp + 0x10]
mov eax, 4
inc esi
jmp 0x46a7e5
mov eax, 0xd
jmp 0x46a9e6
mov esi, dword [esp + 0x10]
mov eax, 7
inc esi
jmp 0x46a7e5
cmp eax, 0xc0a
je 0x46aaeb
mov ecx, eax
call fcn.0049dbb0
push eax
mov eax, dword [esp + 0x10]
push 0x578aac
add eax, 0x38
push edi
push eax
call fcn.004453a0
mov eax, dword [esp + 0x28]
add esp, 0x10
mov esi, dword [esp + 0x10]
jmp 0x46a7ed
mov esi, dword [esp + 0xc]
mov eax, 6
mov byte [esi + 0x60], 2
mov esi, dword [esp + 0x10]
inc esi
jmp 0x46a7e5
push str.too_many_levels_of_trigger_recursion
mov edi, ebx
mov dword [esp + 0x1c], 1
lea eax, [ecx + 0x38]
push edi
push eax
call fcn.004453a0
mov esi, dword [esp + 0x1c]
add esp, 0xc
inc esi
mov eax, 1
jmp 0x46a7ed
mov edi, dword [esp + 0x1c]
mov ecx, str.out_of
cmp esi, 5
mov dword [esp + 0x18], 1
mov eax, str.into
cmovne eax, ecx
push eax
mov eax, dword [esp + 0x10]
push str.cannot_change__s_wal_mode_from_within_a_transaction
add eax, 0x38
push edi
push eax
call fcn.004453a0
mov esi, dword [esp + 0x20]
add esp, 0x10
inc esi
mov eax, 1
jmp 0x46a7ed
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0xc]
push str.string_or_blob_too_big
add eax, 0x38
push esi
push eax
call fcn.004453a0
add esp, 0xc
mov eax, 0x12
jmp 0x46a7e1
mov al, byte [edx + ebx*4 + 3]
cmp al, 5
jne 0x46abbe
mov esi, dword [esp + 0xc]
mov eax, 2
mov byte [esi + 0x60], al
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
inc esi
jmp 0x46a7e9
mov esi, dword [esp + 0xc]
movzx eax, al
mov byte [esi + 0x60], al
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
inc esi
jmp 0x46a7e9
mov eax, dword [esp + 0x14]
mov edx, dword [edx + ebx*4 + 4]
mov dword [esp + 0x68], edx
mov ecx, dword [eax + ebx*4 + 8]
mov dword [esp + 0x6c], ecx
test edx, edx
je 0x46ac26
cmp byte [esi + 0x1c], 0
jne 0x46ac26
mov dword [esp + 0x70], 1
test ecx, ecx
je 0x46ac13
cmp dword [esi + 0x8c], 1
jle 0x46ac2e
push str.cannot_rollback_transaction___SQL_statements_in_progress
jmp 0x46aa0b
cmp dword [esi + 0x90], 0
jle 0x46ac2e
push str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x46aa0b
mov dword [esp + 0x70], 0
movzx eax, byte [esi + 0x1c]
cmp edx, eax
jne 0x46ac71
test edx, edx
jne 0x46ac41
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x46ac50
test ecx, ecx
mov eax, str.cannot_rollback___no_transaction_is_active
mov edx, str.cannot_commit___no_transaction_is_active
cmove eax, edx
push eax
mov eax, dword [esp + 0x10]
add eax, 0x38
push esi
push eax
call fcn.004453a0
mov esi, dword [esp + 0x1c]
add esp, 0xc
mov eax, 1
inc esi
jmp 0x46a7e5
test ecx, ecx
je 0x46aca1
mov ecx, esi
call fcn.0049dad0
mov edi, dword [esp + 0xc]
mov byte [esi + 0x1c], 1
mov ecx, esi
call fcn.0049d6a0
cmp dword [edi + 0x5c], 0
mov esi, 0x65
mov eax, 1
cmovne esi, eax
jmp 0x46a83f
mov edi, dword [esp + 0xc]
mov edx, 1
mov ecx, edi
call fcn.00460ed0
mov esi, eax
test esi, esi
jne 0x46a83f
mov esi, dword [esp + 0x1c]
mov ecx, edi
mov al, byte [esp + 0x68]
mov byte [esi + 0x1c], al
call fcn.00460f30
cmp eax, 5
jne 0x46ac84
mov edx, dword [esp + 0x1c]
mov al, 1
mov esi, dword [esp + 0x10]
sub al, byte [esp + 0x68]
mov dword [edi + 0x58], esi
mov esi, 5
mov byte [edx + 0x1c], al
mov dword [edi + 0x5c], esi
jmp 0x46a83f
mov esi, dword [esp + 0x10]
mov eax, dword [str.interrupted]
mov ecx, str.unknown_error
mov ebx, dword [esp + 0xc]
test eax, eax
mov edi, dword [esp + 0x1c]
cmovne ecx, eax
mov dword [esp + 0x18], 9
push ecx
push 0x578aac
mov eax, ebx
mov dword [ebx + 0x5c], 9
add eax, 0x38
push edi
push eax
call fcn.004453a0
add esp, 0x10
mov eax, 9
jmp 0x46a7ed