Function at 0x49f400
Capabilities:
Reference sql statements
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x1c8
push esi
push edi
mov edi, ecx
mov dword [esp + 0xc], 0
xor ecx, ecx
mov dword [esp + 8], edi
mov dword [esp + 0x20], 0
mov dword [esp + 0xe4], 0
mov esi, dword [edi]
mov dword [esp + 0x10], esi
mov dword [esp + 0x2c], 0
mov dword [esp + 0x18], ecx
mov eax, dword [esi + 8]
mov dword [esp + 0x10c], ecx
mov eax, dword [eax + 0xc]
mov al, byte [eax + 0x49]
mov byte [esp + 0xe8], al
xor eax, eax
cmp dword [edi + 0x64], 7
mov dword [esp + 0x108], eax
mov dword [esp + 0x104], eax
je 0x4a593a
mov dword [edi + 0x64], eax
mov dword [edi + 0x2c], eax
mov dword [esi + 0x198], eax
cmp dword [esi + 0xd8], eax
jne 0x4a5cdf
mov edx, dword [edi + 0x60]
xorps xmm0, xmm0
movsd qword [esp + 0x130], xmm0
movsd xmm0, qword [0x524c88]
movsd qword [esp + 0x148], xmm0
movsd xmm0, qword [0x524c48]
movsd qword [esp + 0x158], xmm0
mov dword [esp + 0x1c], edx
cmp byte [esi + 0x1e], 0
jne 0x4a593a
mov ecx, dword [esp + 0x10]
lea edi, [edx + edx*4]
mov edx, dword [esp + 8]
mov dword [esp + 0x24], edi
mov eax, dword [ecx + 0xf8]
mov esi, dword [edx + 0x14]
mov dword [esp + 0x14], esi
test eax, eax
je 0x49f526
mov edi, dword [esp + 0x104]
cmp dword [ecx + 0x100], edi
mov edi, dword [esp + 0x24]
jne 0x49f517
push dword [ecx + 0xfc]
call eax
add esp, 4
test eax, eax
jne 0x4a57d9
mov edx, dword [esp + 8]
jmp 0x49f51e
mov eax, dword [esp + 0x104]
inc eax
mov dword [esp + 0x104], eax
movzx eax, byte [esi + edi*4]
mov cl, byte [eax + 0x5200a0]
test cl, 2
je 0x49f566
mov eax, dword [esi + edi*4 + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x58]
lea eax, [eax + ecx*8]
mov ecx, eax
mov dword [esp + 0x18], eax
call fcn.0049a930
mov edx, dword [esp + 0x18]
mov eax, 1
mov word [edx + 0x1c], ax
mov dword [edx + 0x18], 0
jmp 0x49f5f5
mov dl, cl
and dl, 8
test cl, 4
je 0x49f5d5
mov eax, dword [esp + 8]
mov esi, dword [eax + 0x58]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + edi*4 + 4]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [esp + 0x20], eax
test dl, dl
je 0x49f5b4
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + edi*4 + 8]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [esp + 0xe4], eax
mov eax, dword [ecx + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea edx, [esi + eax*8]
mov esi, ecx
mov dword [esp + 0x18], edx
jmp 0x49f5f5
mov edx, dword [esp + 0x18]
test cl, 0x10
je 0x49f637
mov eax, dword [esp + 0x14]
mov eax, dword [eax + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov esi, dword [esp + 0x14]
mov dword [esp + 0x2c], ecx
jmp 0x49f5f9
test dl, dl
je 0x49f617
mov eax, dword [esi + edi*4 + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x58]
lea eax, [eax + ecx*8]
mov dword [esp + 0xe4], eax
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x2c]
movzx eax, byte [esi + edi*4]
dec eax
cmp eax, 0x90
ja case.0x49f610.10
movzx eax, byte [eax + 0x4a5ec8]
jmp dword [eax*4 + 0x4a5d38]
test cl, 0x10
je 0x49f5f1
mov eax, dword [esi + edi*4 + 0xc]
mov edx, dword [esp + 0x18]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x58]
lea ecx, [eax + ecx*8]
mov dword [esp + 0x2c], ecx
jmp 0x49f5f9
mov esi, dword [esp + 0x14]
jmp 0x49f5f5
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 0xd8], 0
jne 0x4a5cd5
mov edx, dword [esi + edi*4 + 8]
mov esi, ecx
mov edi, dword [esp + 8]
dec edx
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0xc]
jmp 0x4a086a
mov eax, dword [esi + edi*4 + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 4
mov word [ecx + 0x1c], ax
mov eax, dword [esp + 0x1c]
cdq
mov dword [esp + 0x20], ecx
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x4a0855
mov eax, dword [esp + 0x20]
mov edx, dword [eax]
jmp 0x4a085a
mov ecx, dword [esp + 0x20]
mov eax, 4
mov word [ecx + 0x1c], ax
mov eax, dword [ecx]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x1c]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x30]
jmp 0x4a085a
test byte [ecx + 0x1c], 1
je case.0x49f610.10
mov eax, dword [esi + edi*4 + 4]
mov ecx, dword [esp + 8]
test eax, eax
jne 0x4a57fa
mov edi, dword [ecx + 0xdc]
test edi, edi
je 0x4a57f6
mov eax, dword [edi + 0x3c]
dec dword [ecx + 0xe0]
mov dword [ecx + 0xdc], eax
mov eax, dword [ecx + 0x74]
mov ecx, dword [esp + 0x10]
add dword [ecx + 0x40], eax
mov dword [ecx + 0x3c], eax
mov esi, dword [edi]
mov eax, dword [edi + 8]
mov dword [esi + 0x14], eax
mov eax, dword [edi + 0xc]
mov dword [esi + 0xc], eax
mov eax, dword [edi + 0x10]
mov dword [esi + 0x58], eax
mov eax, dword [edi + 0x14]
mov dword [esi + 0x54], eax
mov eax, dword [edi + 0x18]
mov dword [esi + 0x34], eax
mov ax, word [edi + 0x1c]
mov word [esi + 0x32], ax
mov eax, dword [esi]
mov ecx, dword [edi + 0x30]
mov edx, dword [edi + 0x34]
mov dword [eax + 0x30], ecx
mov ecx, dword [esp + 0x14]
mov dword [eax + 0x34], edx
mov eax, dword [edi + 0x38]
mov dword [esi + 0x74], eax
mov eax, dword [esp + 0x24]
mov edx, dword [edi + 4]
mov edi, dword [esp + 8]
mov esi, dword [esp + 0x10]
cmp dword [ecx + eax*4 + 8], 4
mov dword [esp + 0x1c], edx
jne 0x49f771
mov eax, dword [edi + 0x14]
lea ecx, [edx + edx*4]
mov edx, dword [eax + ecx*4 + 8]
dec edx
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0xc]
jmp 0x4a086a
mov ecx, dword [esp + 0x18]
mov eax, 4
mov word [edx + 0x1c], ax
mov eax, dword [esi + edi*4 + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x49f610.10
mov eax, 4
mov word [edx + 0x1c], ax
mov eax, dword [esi + edi*4 + 0x10]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [edx], ecx
mov dword [edx + 4], eax
jmp case.0x49f610.10
mov eax, 8
mov word [edx + 0x1c], ax
mov eax, dword [esi + edi*4 + 0x10]
movsd xmm0, qword [eax]
movsd qword [edx + 8], xmm0
jmp case.0x49f610.10
mov ecx, dword [esi + edi*4 + 0x10]
mov eax, ecx
mov byte [esi + edi*4], 9
mov dword [esp + 0xd8], ecx
test ecx, ecx
je 0x49f7f4
cmp byte [ecx], 0
je 0x49f7ed
inc eax
cmp byte [eax], 0
jne 0x49f7e7
sub eax, ecx
and eax, 0x3fffffff
cmp byte [esp + 0xe8], 1
mov dword [esi + edi*4 + 4], eax
je 0x49f8ef
test ecx, ecx
jne 0x49f817
mov ecx, edx
call fcn.0049ac70
mov edx, dword [esp + 0x18]
jmp 0x49f871
mov edi, dword [edx + 0x10]
xor esi, esi
test edi, edi
je 0x49f829
mov edi, dword [edi + 0x48]
test edi, edi
js 0x49f83b
jmp 0x49f830
mov edi, 0x3b9aca00
nop
cmp byte [esi + ecx], 0
je 0x49f83b
inc esi
cmp esi, edi
jle 0x49f830
mov ecx, edx
call fcn.0049aa10
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0xd8]
mov dword [edx + 0x14], eax
mov dword [edx + 0x20], 0
mov dword [edx + 0x18], esi
mov dword [edx + 0x1c], 0x1030a02
cmp esi, edi
jg 0x4a5b63
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x14]
test byte [edx + 0x1c], 2
mov dword [esp + 0xc], 0
je 0x49f8a2
mov al, byte [esp + 0xe8]
cmp byte [edx + 0x1f], al
je 0x49f8a2
mov ecx, dword [esp + 0x18]
mov dl, al
call fcn.0048cb90
test eax, eax
jne 0x4a5932
mov edx, dword [esp + 0x18]
mov ax, word [edx + 0x1c]
mov ecx, 0xfbff
and ax, cx
mov dword [edx + 0x24], 0
mov ecx, 0x800
or ax, cx
mov word [edx + 0x1c], ax
cmp byte [esi + edi*4 + 1], 0xff
jne 0x49f8dc
push dword [esi + edi*4 + 0x10]
push dword [esp + 0x14]
call fcn.0048ae30
mov edx, dword [esp + 0x20]
add esp, 8
mov byte [esi + edi*4 + 1], 0xff
mov eax, dword [edx + 0x14]
mov dword [esi + edi*4 + 0x10], eax
mov eax, dword [edx + 0x18]
mov dword [esi + edi*4 + 4], eax
mov ecx, dword [esp + 0x10]
cmp eax, dword [ecx + 0x48]
jg 0x4a5b86
mov eax, 0xa02
mov word [edx + 0x1c], ax
mov eax, dword [esi + edi*4 + 0x10]
mov dword [edx + 0x14], eax
mov eax, dword [esi + edi*4 + 4]
mov dword [edx + 0x18], eax
mov al, byte [esp + 0xe8]
mov byte [edx + 0x1f], al
jmp case.0x49f610.10
mov eax, dword [esp + 0x24]
mov edi, dword [esi + edi*4 + 0x10]
mov esi, dword [esi + eax*4 + 4]
test edi, edi
jne 0x49f94c
mov edi, dword [esp + 0x18]
mov ecx, edi
call fcn.0049ac70
mov al, byte [esp + 0xe8]
mov byte [edi + 0x1f], al
jmp case.0x49f610.10
mov ecx, dword [edx + 0x10]
test ecx, ecx
je 0x49f958
mov ecx, dword [ecx + 0x48]
jmp 0x49f95d
mov ecx, 0x3b9aca00
mov eax, 0x10
mov dword [esp + 0x28], eax
test esi, esi
jns 0x49f989
xor esi, esi
test ecx, ecx
js 0x49f980
mov al, byte [esi + edi + 1]
or al, byte [esi + edi]
je 0x49f980
add esi, 2
cmp esi, ecx
jle 0x49f970
mov eax, 0x210
mov dword [esp + 0x28], eax
mov ecx, edx
call fcn.0049aa10
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x28]
or eax, 0x800
mov dword [ecx + 0x14], edi
mov edi, dword [esp + 0x18]
mov dword [edi + 0x20], 0
mov word [edi + 0x1c], ax
mov al, byte [esp + 0xe8]
mov dword [edi + 0x18], esi
mov byte [edi + 0x1e], 4
mov byte [edi + 0x1f], al
jmp case.0x49f610.10
mov edx, dword [esi + edi*4 + 4]
mov eax, dword [esp + 0x14]
dec edx
mov dword [esp + 0x30], edx
mov esi, dword [esi + edi*4 + 8]
mov dword [esp + 0x34], esi
mov eax, dword [eax + edi*4 + 0xc]
test eax, eax
jle 0x49faa5
mov edi, dword [esp + 8]
lea ecx, [edx + edx*4]
dec eax
inc edx
mov dword [esp + 0x38], eax
mov dword [esp + 0x30], edx
mov eax, dword [edi + 0x48]
lea eax, [eax + ecx*8]
mov dword [esp + 0x3c], eax
movzx edx, word [eax + 0x1c]
test dl, 0x12
je 0x49fa23
mov ecx, dword [eax + 0x18]
test edx, 0x4000
je 0x49fa17
add ecx, dword [eax]
mov eax, dword [eax + 0x10]
cmp ecx, dword [eax + 0x48]
jg 0x4a5b67
mov eax, dword [edi + 0x58]
lea ecx, [esi + esi*4]
inc esi
mov dword [esp + 0x34], esi
lea edi, [eax + ecx*8]
mov ecx, edi
mov dword [esp + 0x18], edi
call fcn.0049a930
mov eax, 1
mov ecx, edi
mov word [edi + 0x1c], ax
mov esi, dword [esp + 0x3c]
call fcn.0049a930
movups xmm0, xmmword [esi]
mov eax, 0x400
movups xmmword [edi], xmm0
movups xmm0, xmmword [esi + 0x10]
movups xmmword [edi + 0x10], xmm0
mov dword [edi + 0x20], 0
test word [esi + 0x1c], ax
jne 0x49fa78
mov eax, dword [esi + 0x14]
cmp eax, dword [esi + 0x24]
jne 0x49fa90
mov ax, word [edi + 0x1c]
mov ecx, 0xebff
and ax, cx
mov ecx, 0x800
or ax, cx
mov word [edi + 0x1c], ax
mov eax, dword [esp + 0x38]
test eax, eax
jle 0x49faa5
mov esi, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
jmp 0x49f9e6
dec eax
mov dword [esp + 0x38], eax
jmp case.0x49f610.10
mov ecx, dword [esp + 0x14]
mov esi, dword [esi + edi*4 + 0xc]
mov dword [esp + 0x34], esi
mov eax, dword [ecx + edi*4 + 4]
mov dword [esp + 0x38], eax
mov edx, dword [ecx + edi*4 + 8]
mov ecx, dword [esp + 8]
mov dword [esp + 0x3c], edx
lea eax, [eax + eax*4]
mov ecx, dword [ecx + 0x58]
lea eax, [ecx + eax*8]
mov dword [esp + 0x20], eax
lea eax, [edx + edx*4]
lea edi, [ecx + eax*8]
mov dword [esp + 0x18], edi
test esi, esi
je 0x49fb81
nop
dec esi
mov ecx, edi
mov dword [esp + 0x34], esi
mov eax, dword [edi + 0x24]
mov dword [esp + 0x30], eax
mov dword [edi + 0x24], 0
call fcn.0049a930
push dword [edi + 0x24]
push dword [edi + 0x10]
call fcn.0048ae30
mov ecx, dword [esp + 0x28]
mov eax, 1
mov dword [edi + 0x14], 0
add esp, 8
mov dword [edi + 0x24], 0
mov dword [edi + 0x20], 0
movups xmm0, xmmword [ecx]
movups xmmword [edi], xmm0
movups xmm0, xmmword [ecx + 0x10]
movups xmmword [edi + 0x10], xmm0
movq xmm0, qword [ecx + 0x20]
movq qword [edi + 0x20], xmm0
add edi, 0x28
mov dword [ecx + 0x24], 0
mov word [ecx + 0x1c], ax
mov dword [ecx + 0x20], 0
mov eax, dword [esp + 0x30]
mov dword [ecx + 0x24], eax
add ecx, 0x28
mov esi, dword [esp + 0x34]
mov dword [esp + 0x20], ecx
test esi, esi
jne 0x49faf0
mov dword [esp + 0x18], edi
dec esi
mov dword [esp + 0x34], esi
jmp case.0x49f610.10
mov eax, dword [esi + edi*4 + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x58]
lea edi, [eax + ecx*8]
mov ecx, edi
mov dword [esp + 0x18], edi
call fcn.0049a930
mov ecx, dword [esp + 0x20]
mov eax, 0x400
movups xmm0, xmmword [ecx]
movups xmmword [edi], xmm0
movups xmm0, xmmword [ecx + 0x10]
movups xmmword [edi + 0x10], xmm0
mov dword [edi + 0x20], 0
test word [ecx + 0x1c], ax
jne 0x49fbd3
mov eax, dword [ecx + 0x14]
cmp eax, dword [ecx + 0x24]
jne 0x49fbeb
mov ax, word [edi + 0x1c]
mov ecx, 0xf3ff
and ax, cx
mov ecx, 0x1000
or ax, cx
mov word [edi + 0x1c], ax
movzx eax, word [edi + 0x1c]
test eax, 0x1000
je case.0x49f610.10
test eax, 0x4000
je 0x49fc08
mov ecx, edi
call fcn.0049a820
test byte [edi + 0x1c], 0x12
je case.0x49f610.10
mov eax, dword [edi + 0x14]
cmp eax, dword [edi + 0x24]
je case.0x49f610.10
mov edx, dword [edi + 0x18]
mov ecx, edi
push 1
add edx, 2
call fcn.0049a630
mov esi, dword [esp + 0x14]
add esp, 4
test eax, eax
jne 0x4a5d21
mov ecx, dword [edi + 0x18]
mov eax, dword [edi + 0x14]
mov edx, dword [esp + 0xc]
mov byte [ecx + eax], 0
mov eax, dword [edi + 0x14]
mov ecx, dword [edi + 0x18]
mov byte [ecx + eax + 1], 0
mov eax, 0x200
or word [edi + 0x1c], ax
mov edi, dword [esp + 8]
jmp 0x4a086a
mov eax, dword [esi + edi*4 + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x58]
lea edi, [eax + ecx*8]
mov ecx, edi
mov dword [esp + 0x18], edi
call fcn.0049a930
mov ecx, dword [esp + 0x20]
mov eax, 0x400
movups xmm0, xmmword [ecx]
movups xmmword [edi], xmm0
movups xmm0, xmmword [ecx + 0x10]
movups xmmword [edi + 0x10], xmm0
mov dword [edi + 0x20], 0
test word [ecx + 0x1c], ax
jne 0x49fcb3
mov eax, dword [ecx + 0x14]
cmp eax, dword [ecx + 0x24]
jne case.0x49f610.10
mov ax, word [edi + 0x1c]
mov ecx, 0xf3ff
and ax, cx
mov ecx, 0x1000
or ax, cx
mov word [edi + 0x1c], ax
jmp case.0x49f610.10
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0xe4]
movzx ecx, word [edi + 0x1c]
mov al, byte [esi + 0x1c]
or al, cl
test al, 1
je 0x49fcf4
mov ecx, edx
call fcn.0049ac70
jmp case.0x49f610.10
test ecx, 0x4000
je 0x49fd4c
mov edx, dword [edi]
mov eax, 1
add edx, dword [edi + 0x18]
mov ecx, edi
test edx, edx
push eax
cmovle edx, eax
call fcn.0049a630
add esp, 4
test eax, eax
je 0x49fd21
mov eax, 7
jmp 0x49fd44
push dword [edi]
mov eax, dword [edi + 0x14]
add eax, dword [edi + 0x18]
push 0
push eax
call fcn.004de6d0
mov eax, dword [edi]
add esp, 0xc
add dword [edi + 0x18], eax
mov eax, 0xbdff
and word [edi + 0x1c], ax
xor eax, eax
test eax, eax
jne 0x4a5932
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x49fd66
mov ecx, esi
call fcn.0049a820
test eax, eax
jne 0x4a5932
test byte [edi + 0x1c], 0x12
movzx esi, byte [esp + 0xe8]
jne 0x49fd85
mov edx, esi
mov ecx, edi
call fcn.0049a880
test eax, eax
jne 0x4a5932
mov eax, dword [esp + 0xe4]
test byte [eax + 0x1c], 0x12
jne 0x49fdaa
mov edx, esi
mov ecx, eax
call fcn.0049a880
test eax, eax
jne 0x4a5932
mov eax, dword [esp + 0xe4]
mov ecx, dword [eax + 0x18]
add ecx, dword [edi + 0x18]
mov esi, dword [esp + 0x10]
mov eax, ecx
cdq
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
cmp ecx, dword [esi + 0x48]
jg 0x4a5b5d
mov edi, dword [esp + 0x18]
mov ecx, 0xbf02
mov ax, word [edi + 0x1c]
and ax, cx
mov ecx, edi
or ax, 2
mov word [edi + 0x1c], ax
xor eax, eax
mov edx, dword [esp + 0x30]
cmp edi, dword [esp + 0xe4]
sete al
push eax
lea edx, [edx + 2]
call fcn.0049a630
add esp, 4
test eax, eax
jne 0x4a5d21
mov eax, dword [esp + 0xe4]
cmp edi, eax
je 0x49fe22
push dword [eax + 0x18]
push dword [eax + 0x14]
push dword [edi + 0x14]
call fcn.004de150
add esp, 0xc
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0xe4]
push dword [eax + 0x18]
push dword [eax + 0x14]
mov eax, dword [edi + 0x14]
add eax, dword [ecx + 0x18]
push eax
call fcn.004de150
mov eax, dword [esp + 0x3c]
add esp, 0xc
mov ecx, dword [edi + 0x14]
mov byte [eax + ecx], 0
mov eax, dword [esp + 0x30]
mov ecx, dword [edi + 0x14]
mov byte [ecx + eax + 1], 0
mov eax, 0x200
or word [edi + 0x1c], ax
mov eax, dword [esp + 0x30]
mov dword [edi + 0x18], eax
mov al, byte [esp + 0xe8]
mov byte [edi + 0x1f], al
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 8]
jmp 0x4a086a
mov ecx, dword [esp + 0x20]
call fcn.0049f250
mov ecx, dword [esp + 0xe4]
call fcn.0049f250
mov eax, dword [esp + 0xe4]
mov edx, dword [esp + 0x20]
movzx ecx, word [eax + 0x1c]
movzx eax, word [edx + 0x1c]
or ecx, eax
mov dword [esp + 0x30], ecx
test cl, 1
jne 0x4a01b3
mov eax, dword [esp + 0xe4]
mov al, byte [eax + 0x1c]
and al, byte [edx + 0x1c]
test al, 4
je 0x49ffbd
mov esi, dword [edx]
mov eax, dword [esp + 0xe4]
mov edi, dword [edx + 4]
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], edi
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x24]
mov dword [esp + 0xd8], esi
mov esi, dword [esp + 0x14]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], edx
movzx eax, byte [esi + eax*4]
mov esi, dword [esp + 0xd8]
add eax, 0xffffffaa
cmp eax, 3
ja case.default.0x49ff0f
jmp dword [eax*4 + 0x4a5f5c]
add ecx, esi
adc edx, edi
jmp 0x49ff93
sub ecx, esi
sbb edx, edi
jmp 0x49ff93
push edx
push ecx
push edi
push esi
call fcn.004dce60
jmp 0x49ff91
mov eax, esi
or eax, edi
je 0x4a01b3
mov eax, esi
and eax, edi
cmp eax, 0xffffffff
jne 0x49ff5b
test ecx, ecx
jne 0x49ff5b
cmp edx, 0x80000000
jne 0x49ff5b
mov esi, 1
xor edi, edi
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], edi
push edi
push esi
push edx
push ecx
call fcn.00501bf0
jmp 0x49ff91
mov eax, esi
or eax, edi
je 0x4a01b3
mov eax, esi
and eax, edi
cmp eax, 0xffffffff
jne 0x49ff88
mov esi, 1
xor edi, edi
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], edi
push edi
push esi
push edx
push ecx
call fcn.00501ce0
mov ecx, eax
mov esi, dword [esp + 0x18]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], edx
mov ax, word [esi + 0x1c]
mov dword [esi], ecx
mov ecx, 0xbf04
and ax, cx
mov dword [esi + 4], edx
or ax, 4
mov word [esi + 0x1c], ax
jmp case.0x49f610.10
mov ecx, edx
call fcn.0049ab30
mov ecx, dword [esp + 0xe4]
movsd qword [esp + 0x48], xmm0
call fcn.0049ab30
movsd qword [esp + 0x50], xmm0
movzx eax, byte [esi + edi*4]
add eax, 0xffffffaa
movsd qword [esp + 0xf0], xmm0
cmp eax, 3
ja case.default.0x49fff1
jmp dword [eax*4 + 0x4a5f6c]
addsd xmm0, qword [esp + 0x48]
jmp 0x4a0099
subsd xmm0, qword [esp + 0x48]
jmp 0x4a0099
mulsd xmm0, qword [esp + 0x48]
jmp 0x4a0099
movsd xmm1, qword [esp + 0x48]
ucomisd xmm1, qword [esp + 0x130]
lahf
test ah, 0x44
jnp 0x4a01b3
divsd xmm0, xmm1
jmp 0x4a0099
movsd xmm0, qword [esp + 0x48]
call fcn.00502210
movsd xmm0, qword [esp + 0xf0]
mov esi, eax
mov edi, edx
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], edi
call fcn.00502210
mov ecx, eax
mov dword [esp + 0x44], edx
mov eax, esi
mov dword [esp + 0x40], ecx
or eax, edi
je 0x4a01b3
mov eax, esi
and eax, edi
cmp eax, 0xffffffff
jne 0x4a0089
mov esi, 1
xor edi, edi
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], edi
push edi
push esi
push edx
push ecx
call fcn.00501ce0
mov ecx, eax
call fcn.00502320
movsd qword [esp + 0x50], xmm0
movsd qword [esp + 0xf0], xmm0
movsd xmm0, qword [esp + 0xf0]
movsd qword [esp + 0xd8], xmm0
movsd xmm0, qword [esp + 0xf0]
ucomisd xmm0, qword [esp + 0xd8]
lahf
test ah, 0x44
jp 0x4a01b3
mov ecx, dword [esp + 0x18]
movsd xmm0, qword [esp + 0x50]
mov ax, word [ecx + 0x1c]
movsd qword [ecx + 8], xmm0
mov ecx, 0xbf08
movsd xmm0, qword [esp + 0x50]
and ax, cx
or ax, 8
movsd qword [esp + 0xf0], xmm0
movzx ecx, ax
mov dword [esp + 0xd8], ecx
mov ecx, dword [esp + 0x18]
mov word [ecx + 0x1c], ax
test byte [esp + 0x30], 8
jne case.0x49f610.10
movsd xmm1, qword [esp + 0x148]
comisd xmm1, xmm0
jbe 0x4a0139
xor edi, edi
mov esi, connect
jmp 0x4a015a
comisd xmm0, xmmword [esp + 0x158]
jbe 0x4a014d
xor edi, edi
mov esi, connect
jmp 0x4a015a
call fcn.00502210
mov ecx, dword [esp + 0x18]
mov edi, eax
mov esi, edx
mov dword [ecx], edi
mov edx, esi
mov dword [ecx + 4], esi
mov ecx, edi
call fcn.00502320
movsd xmm1, qword [esp + 0xf0]
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp case.0x49f610.10
add edi, 0xffffffff
adc esi, 0x7fffffff
cmp esi, 0xffffffff
ja case.0x49f610.10
jb 0x4a019c
cmp edi, 0xfffffffd
ja case.0x49f610.10
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0xd8]
or eax, 4
mov word [ecx + 0x1c], ax
jmp case.0x49f610.10
mov ecx, dword [esp + 0x18]
call fcn.0049ac70
jmp case.0x49f610.10
mov cl, byte [esi + edi*4 + 3]
mov edx, dword [esp + 0x14]
movzx eax, cl
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 8]
mov esi, dword [eax + 0x24]
mov edi, dword [eax + 0x58]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x78], esi
mov eax, dword [edx + eax*4 + 8]
lea eax, [eax + eax*4]
lea edx, [edi + eax*8]
xor eax, eax
mov dword [esp + 0x34], edx
mov dword [esp + 0x30], eax
test cl, cl
je 0x4a025b
nop word [eax + eax]
mov dword [esi + eax*4], edx
mov ecx, dword [esp + 0x34]
movzx eax, word [ecx + 0x1c]
test al, 1
je 0x4a0215
mov byte [ecx + 0x1e], 5
jmp 0x4a0234
test al, 4
je 0x4a021f
mov byte [ecx + 0x1e], 1
jmp 0x4a0234
test al, 8
je 0x4a0229
mov byte [ecx + 0x1e], 2
jmp 0x4a0234
and al, 2
neg al
sbb al, al
add al, 4
mov byte [ecx + 0x1e], al
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
inc eax
add edx, 0x28
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
cmp eax, dword [esp + 0x7c]
jge 0x4a0254
mov esi, dword [esp + 0x78]
jmp 0x4a0200
mov eax, dword [esp + 8]
mov edi, dword [eax + 0x58]
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
cmp byte [ecx + esi*4 + 1], 0xfb
mov eax, dword [ecx + esi*4 + 0x10]
jne 0x4a0278
mov dword [esp + 0x3c], 0
jmp 0x4a027e
mov dword [esp + 0x3c], eax
mov eax, dword [eax]
mov dword [esp + 0x38], eax
mov eax, dword [ecx + esi*4 + 0xc]
lea ecx, [esp + 0x40]
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
mov eax, 1
mov word [esp + 0x5c], ax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], edi
mov dword [esp + 0x50], eax
call fcn.0049a930
push dword [esp + 0x64]
push dword [esp + 0x54]
call fcn.0048ae30
mov dword [esp + 0x5c], 0
mov eax, 1
mov dword [esp + 0x6c], 0
add esp, 8
mov dword [esp + 0x60], 0
movups xmm0, xmmword [edi]
movups xmmword [esp + 0x40], xmm0
movups xmm0, xmmword [edi + 0x10]
movups xmmword [esp + 0x50], xmm0
movq xmm0, qword [edi + 0x20]
movq qword [esp + 0x60], xmm0
mov word [edi + 0x1c], ax
mov dword [edi + 0x20], 0
mov dword [edi + 0x24], 0
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x38]
and eax, 0xbf01
mov edi, dword [esp + 0x14]
or eax, 1
mov word [esp + 0x5c], ax
mov dword [esp + 0x6c], 0
test byte [ecx + 3], 8
je 0x4a0345
mov eax, dword [edi + esi*4 - 4]
mov dword [esp + 0x70], eax
push dword [esp + 0x78]
lea eax, [esp + 0x3c]
push dword [esp + 0x80]
push eax
mov eax, dword [ecx + 0xc]
call eax
mov eax, dword [esp + 0x1c]
add esp, 0xc
cmp byte [eax + 0x1e], 0
jne 0x4a5868
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x4a0389
mov edx, dword [edi + esi*4 + 4]
call fcn.0049d6d0
mov eax, dword [esp + 0x3c]
mov dword [edi + esi*4 + 0x10], eax
mov byte [edi + esi*4 + 1], 0xf9
cmp dword [esp + 0x6c], 0
je 0x4a03c0
mov dl, 1
lea ecx, [esp + 0x40]
call fcn.0049b5f0
mov esi, dword [esp + 0x10]
push eax
mov eax, dword [esp + 0xc]
push 0x5227f8
add eax, 0x68
push esi
push eax
call fcn.0048b2a0
mov eax, dword [esp + 0x7c]
add esp, 0x10
mov dword [esp + 0xc], eax
jmp 0x4a03c4
mov esi, dword [esp + 0x10]
test byte [esp + 0x5c], 2
je 0x4a03e3
mov al, byte [esp + 0xe8]
cmp byte [esp + 0x5f], al
je 0x4a03e3
mov dl, al
lea ecx, [esp + 0x40]
call fcn.0048cb90
mov edi, dword [esp + 0x18]
mov ecx, edi
call fcn.0049a930
push dword [edi + 0x24]
push dword [edi + 0x10]
call fcn.0048ae30
mov dword [edi + 0x14], 0
mov eax, 1
mov dword [edi + 0x24], 0
add esp, 8
mov dword [edi + 0x20], 0
movups xmm0, xmmword [esp + 0x40]
movups xmmword [edi], xmm0
movups xmm0, xmmword [esp + 0x50]
movups xmmword [edi + 0x10], xmm0
movq xmm0, qword [esp + 0x60]
movq qword [edi + 0x20], xmm0
mov word [esp + 0x5c], ax
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
movzx eax, word [edi + 0x1c]
test al, 0x12
je 0x49fe73
mov ecx, dword [edi + 0x18]
test eax, 0x4000
je 0x4a045f
add ecx, dword [edi]
mov eax, dword [edi + 0x10]
mov edi, dword [esp + 8]
cmp ecx, dword [eax + 0x48]
jg 0x4a5b6b
mov edx, dword [esp + 0xc]
jmp 0x4a086a
mov ecx, dword [esp + 0xe4]
mov esi, dword [esp + 0x20]
mov al, byte [ecx + 0x1c]
or al, byte [esi + 0x1c]
test al, 1
je 0x4a0499
mov ecx, edx
call fcn.0049ac70
jmp case.0x49f610.10
call fcn.0049aa50
mov ecx, esi
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
call fcn.0049aa50
mov ecx, eax
mov esi, edx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], esi
movzx eax, byte [eax + edi*4]
sub eax, 0x52
je 0x4a050b
sub eax, 1
je 0x4a04fd
sub eax, 1
je 0x4a04df
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
call fcn.00502170
jmp 0x4a0517
movq xmm1, qword [esp + 0x30]
movd xmm0, ecx
psllq xmm1, xmm0
movq qword [esp + 0x30], xmm1
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
jmp 0x4a051f
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
or eax, ecx
or edx, esi
jmp 0x4a0517
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
and eax, ecx
and edx, esi
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
mov ecx, dword [esp + 0x18]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov edx, 0xbf04
mov ax, word [ecx + 0x1c]
and ax, dx
or ax, 4
mov word [ecx + 0x1c], ax
jmp case.0x49f610.10
mov ecx, dword [esp + 0x20]
call fcn.0049aa50
mov ecx, dword [esp + 0x20]
mov dword [ecx], eax
mov ax, word [ecx + 0x1c]
mov dword [ecx + 4], edx
mov edx, 0xbf04
and ax, dx
or ax, 4
mov word [ecx + 0x1c], ax
mov eax, dword [esi + edi*4 + 8]
cdq
add dword [ecx], eax
adc dword [ecx + 4], edx
jmp case.0x49f610.10
mov ecx, dword [esp + 0x20]
call fcn.0049f250
mov ecx, dword [esp + 0x20]
test byte [ecx + 0x1c], 8
je 0x4a0592
call fcn.0049abf0
mov ecx, dword [esp + 0x20]
movzx eax, word [ecx + 0x1c]
test al, 4
jne 0x4a05ba
mov eax, dword [esi + edi*4 + 8]
mov edi, dword [esp + 8]
test eax, eax
je 0x4a5969
lea edx, [eax - 1]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0xc]
jmp 0x4a0866
and eax, 0xbf04
or eax, 4
mov word [ecx + 0x1c], ax
jmp case.0x49f610.10
mov ecx, dword [esp + 0x20]
test byte [ecx + 0x1c], 4
je case.0x49f610.10
call fcn.0049ab30
mov ecx, dword [esp + 0x20]
mov edx, 0xbf08
mov ax, word [ecx + 0x1c]
and ax, dx
movsd qword [ecx + 8], xmm0
or ax, 8
mov word [ecx + 0x1c], ax
jmp case.0x49f610.10
mov eax, dword [esp + 0x20]
movzx ecx, word [eax + 0x1c]
test cl, 1
jne case.0x49f610.10
mov eax, ecx
shr eax, 3
and eax, 2
or eax, ecx
mov ecx, dword [esp + 0x20]
mov word [ecx + 0x1c], ax
test al, 2
jne 0x4a063c
test al, 0xc
je 0x4a063c
movzx edx, byte [esp + 0xe8]
call fcn.0049a880
mov ecx, dword [esp + 0x20]
mov eax, 0xfff3
and word [ecx + 0x1c], ax
mov ax, word [ecx + 0x1c]
test eax, 0x4000
je 0x4a06be
mov edx, dword [ecx]
mov eax, 1
add edx, dword [ecx + 0x18]
test edx, edx
push eax
cmovle edx, eax
call fcn.0049a630
mov ecx, dword [esp + 0x24]
add esp, 4
test eax, eax
je 0x4a0692
movzx eax, word [ecx + 0x1c]
mov edx, 7
movzx eax, ax
and eax, 0xbfe3
mov dword [esp + 0xc], 7
mov word [ecx + 0x1c], ax
jmp 0x4a0862
push dword [ecx]
mov eax, dword [ecx + 0x14]
add eax, dword [ecx + 0x18]
push 0
push eax
call fcn.004de6d0
mov ecx, dword [esp + 0x2c]
add esp, 0xc
mov eax, dword [ecx]
add dword [ecx + 0x18], eax
mov eax, 0xbdff
and ax, word [ecx + 0x1c]
mov word [ecx + 0x1c], ax
movzx eax, ax
xor edx, edx
movzx eax, ax
and eax, 0xbfe3
mov dword [esp + 0xc], edx
mov word [ecx + 0x1c], ax
jmp 0x4a0862
mov ecx, dword [esp + 0x20]
movzx eax, word [ecx + 0x1c]
test al, 1
jne case.0x49f610.10
test al, 0x10
jne 0x4a071b
test al, 2
jne 0x4a0702
test al, 0xc
je 0x4a0702
movzx edx, byte [esp + 0xe8]
call fcn.0049a880
mov ecx, dword [esp + 0x20]
mov ax, word [ecx + 0x1c]
mov edx, 0xbf10
and ax, dx
or ax, 0x10
mov word [ecx + 0x1c], ax
jmp case.0x49f610.10
and eax, 0xff10
mov word [ecx + 0x1c], ax
jmp case.0x49f610.10
mov ecx, dword [esp + 0x20]
test byte [ecx + 0x1c], 0xd
jne case.0x49f610.10
call fcn.0049ab30
movsd xmm1, qword [esp + 0x148]
comisd xmm1, xmm0
movsd qword [esp + 0xf0], xmm0
jbe 0x4a075d
xor eax, eax
mov edx, connect
jmp 0x4a0776
comisd xmm0, xmmword [esp + 0x158]
jbe 0x4a0771
xor eax, eax
mov edx, connect
jmp 0x4a0776
call fcn.00502210
mov ecx, eax
call fcn.00502320
movsd xmm1, qword [esp + 0xf0]
mov ecx, dword [esp + 0x20]
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x4a07a2
call fcn.0049aa50
mov ecx, dword [esp + 0x20]
jmp 0x4a0523
movsd qword [ecx + 8], xmm1
mov ax, word [ecx + 0x1c]
mov edx, 0xbf08
and ax, dx
or ax, 8
mov word [ecx + 0x1c], ax
jmp case.0x49f610.10
mov ecx, dword [esp + 0x20]
test byte [ecx + 0x1c], 1
jne case.0x49f610.10
call fcn.0049aa50
mov ecx, dword [esp + 0x20]
jmp 0x4a0523
mov ecx, dword [esp + 0x20]
test byte [ecx + 0x1c], 1
jne case.0x49f610.10
call fcn.0049ab30
mov ecx, dword [esp + 0x20]
movsd qword [ecx + 8], xmm0
jmp 0x4a07a7
mov eax, dword [esp + 0x20]
movzx ecx, word [ecx + 0x1c]
movzx edx, word [eax + 0x1c]
mov al, cl
or al, dl
test al, 1
je 0x4a087f
mov al, byte [esi + edi*4 + 3]
test al, al
jns 0x4a081e
and ecx, edx
not ecx
and ecx, 1
jmp 0x4a0949
test al, 0x10
je 0x4a0851
mov eax, dword [esi + edi*4 + 8]
mov edx, 0xbf01
mov edi, dword [esp + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea ecx, [eax + ecx*8]
mov ax, word [ecx + 0x1c]
and ax, dx
mov dword [esp + 0x18], ecx
mov edx, dword [esp + 0xc]
or ax, 1
mov word [ecx + 0x1c], ax
jmp 0x4a0866
test al, 8
je case.0x49f610.10
mov edx, dword [esi + edi*4 + 8]
dec edx
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 8]
mov esi, dword [esp + 0x10]
inc dword [esp + 0x1c]
test edx, edx
jne 0x4a5ca6
mov edx, dword [esp + 0x1c]
jmp 0x49f4c1
mov dl, byte [esi + edi*4 + 3]
and dl, 0x67
mov byte [esp + 0x34], dl
je 0x4a08c4
push dword [esp + 0xe8]
mov ecx, dword [esp + 0x24]
call fcn.0049f330
mov dl, byte [esp + 0x38]
add esp, 4
mov ecx, dword [esp + 0x2c]
push dword [esp + 0xe8]
call fcn.0049f330
mov eax, dword [esp + 0x14]
add esp, 4
cmp byte [eax + 0x1e], 0
jne 0x4a5d2a
mov ecx, dword [esp + 0x20]
mov edx, 0xe
mov ax, word [ecx + 0x1c]
bt ax, dx
jae 0x4a091b
mov edx, dword [ecx]
mov eax, 1
add edx, dword [ecx + 0x18]
test edx, edx
push eax
cmovle edx, eax
call fcn.0049a630
add esp, 4
test eax, eax
jne 0x4a091b
mov ecx, dword [esp + 0x20]
push dword [ecx]
push eax
mov eax, dword [ecx + 0x14]
add eax, dword [ecx + 0x18]
push eax
call fcn.004de6d0
mov ecx, dword [esp + 0x2c]
add esp, 0xc
mov eax, dword [ecx]
add dword [ecx + 0x18], eax
mov eax, 0xbdff
and word [ecx + 0x1c], ax
mov eax, dword [esp + 0x2c]
mov ecx, 0x4000
test word [eax + 0x1c], cx
je 0x4a0935
mov ecx, eax
call fcn.0049a820
mov eax, dword [esp + 0x2c]
push dword [esi + edi*4 + 0x10]
mov edx, dword [esp + 0x24]
mov ecx, eax
call fcn.0049b170
add esp, 4
mov ecx, eax
mov dword [esp + 0x30], ecx
movzx eax, byte [esi + edi*4]
add eax, 0xffffffb5
cmp eax, 4
ja case.default.0x4a0959
jmp dword [eax*4 + 0x4a5f7c]
xor eax, eax
test ecx, ecx
sete al
jmp 0x4a098f
xor eax, eax
test ecx, ecx
setne al
jmp 0x4a098f
mov eax, ecx
jmp 0x4a098c
xor eax, eax
test ecx, ecx
setle al
jmp 0x4a098f
xor eax, eax
test ecx, ecx
setg al
jmp 0x4a098f
mov eax, ecx
not eax
shr eax, 0x1f
mov dword [esp + 0x30], eax
test byte [esi + edi*4 + 3], 0x10
je 0x4a0d24
mov eax, dword [esi + edi*4 + 8]
mov edi, dword [esp + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea esi, [eax + ecx*8]
mov ecx, 0xbf04
mov ax, word [esi + 0x1c]
and ax, cx
mov dword [esp + 0x18], esi
or ax, 4
mov word [esi + 0x1c], ax
mov eax, dword [esp + 0x30]
cdq
mov dword [esi + 4], edx
mov edx, dword [esp + 0xc]
mov dword [esi], eax
jmp 0x4a0866
mov eax, dword [esi + edi*4 + 0x10]
mov dword [esp + 0x108], eax
jmp case.0x49f610.10
mov eax, dword [esi + edi*4 + 0xc]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x30], eax
mov esi, dword [esi + edi*4 + 0x10]
mov dword [esp + 0x40], esi
mov ecx, dword [edx + edi*4 + 4]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x38], ecx
mov ecx, dword [edx + edi*4 + 8]
xor edx, edx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x34], edx
test eax, eax
jle 0x4a0ab8
mov eax, dword [esp + 0x108]
test eax, eax
je 0x4a0a34
mov edi, dword [eax + edx*4]
jmp 0x4a0a36
mov edi, edx
mov dword [esp + 0x44], edi
mov ecx, dword [esi + edx*4 + 0xc]
mov dword [esp + 0x48], ecx
mov eax, dword [esi + 8]
push ecx
movzx eax, byte [eax + edx]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0xc]
mov esi, dword [eax + 0x58]
mov eax, dword [esp + 0x2c]
add eax, edi
lea eax, [eax + eax*4]
lea edx, [esi + eax*8]
mov eax, dword [esp + 0x28]
add eax, edi
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
call fcn.0049b170
add esp, 4
mov dword [esp + 0x10c], eax
test eax, eax
jne 0x4a0aa8
mov edx, dword [esp + 0x34]
inc edx
mov dword [esp + 0x34], edx
cmp edx, dword [esp + 0x30]
jge 0x4a0ab8
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x40]
mov dword [esp + 0x28], edi
mov dword [esp + 0x24], ecx
jmp 0x4a0a24
cmp dword [esp + 0x4c], 0
je 0x4a0ab8
neg eax
mov dword [esp + 0x10c], eax
xor eax, eax
mov dword [esp + 0x108], eax
jmp case.0x49f610.10
mov ecx, dword [esp + 0x10c]
test ecx, ecx
jns 0x4a0add
mov eax, dword [esi + edi*4 + 4]
lea edx, [eax - 1]
jmp 0x4a085a
jne 0x4a0aeb
mov eax, dword [esi + edi*4 + 8]
lea edx, [eax - 1]
jmp 0x4a085a
mov eax, dword [esi + edi*4 + 0xc]
lea edx, [eax - 1]
jmp 0x4a085a
mov eax, dword [esp + 0x20]
test byte [eax + 0x1c], 1
je 0x4a0b08
mov ecx, 2
jmp 0x4a0b1c
mov ecx, eax
call fcn.0049aa50
or eax, edx
je 0x4a0b1a
mov ecx, 1
jmp 0x4a0b1c
xor ecx, ecx
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], ecx
test byte [eax + 0x1c], 1
je 0x4a0b34
mov eax, 2
jmp 0x4a0b4c
mov ecx, eax
call fcn.0049aa50
or eax, edx
mov ecx, dword [esp + 0x30]
je 0x4a0b4a
mov eax, 1
jmp 0x4a0b4c
xor eax, eax
mov dword [esp + 0x34], eax
lea eax, [eax + ecx*2]
cmp byte [esi + edi*4], 0x45
jne 0x4a0b63
movzx eax, byte [ecx + eax + 0x51e19c]
jmp 0x4a0b6b
movzx eax, byte [ecx + eax + 0x51d704]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x30], eax
cmp eax, 2
jne 0x4a0b94
mov ax, word [edi + 0x1c]
mov ecx, 0xbf01
and ax, cx
or ax, 1
movzx eax, ax
mov word [edi + 0x1c], ax
jmp case.0x49f610.10
cdq
mov ecx, 0xbf04
mov dword [edi], eax
mov ax, word [edi + 0x1c]
and ax, cx
mov dword [edi + 4], edx
or ax, 4
movzx eax, ax
mov word [edi + 0x1c], ax
jmp case.0x49f610.10
mov eax, dword [esi + edi*4 + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x58]
lea edi, [eax + ecx*8]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x18], edi
test byte [eax + 0x1c], 1
je 0x4a0be1
mov ecx, edi
call fcn.0049ac70
jmp case.0x49f610.10
mov ecx, eax
call fcn.0049aa50
or eax, edx
jne 0x4a0bf3
lea esi, [eax + 1]
xor edi, edi
jmp 0x4a0c0d
xorps xmm0, xmm0
movlpd qword [esp + 0xf0], xmm0
mov edi, dword [esp + 0xf4]
mov esi, dword [esp + 0xf0]
mov ecx, dword [esp + 0x18]
call fcn.0049a930
mov eax, dword [esp + 0x18]
push dword [eax + 0x24]
push dword [eax + 0x10]
call fcn.0048ae30
mov ecx, dword [esp + 0x20]
mov eax, 4
add esp, 8
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x24], 0
mov dword [ecx + 0x20], 0
mov dword [ecx], esi
mov dword [ecx + 4], edi
mov byte [ecx + 0x1e], 1
mov word [ecx + 0x1c], ax
jmp case.0x49f610.10
mov eax, dword [esi + edi*4 + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x58]
lea edi, [eax + ecx*8]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x18], edi
test byte [eax + 0x1c], 1
je 0x4a0c83
mov ecx, edi
call fcn.0049ac70
jmp case.0x49f610.10
mov ecx, eax
call fcn.0049aa50
mov esi, eax
mov edi, edx
not esi
not edi
mov ecx, dword [esp + 0x18]
call fcn.0049a930
mov eax, dword [esp + 0x18]
push dword [eax + 0x24]
push dword [eax + 0x10]
call fcn.0048ae30
mov eax, dword [esp + 0x20]
mov ecx, 4
add esp, 8
mov dword [eax + 0x14], 0
mov dword [eax + 0x24], 0
mov dword [eax + 0x20], 0
mov dword [eax], esi
mov dword [eax + 4], edi
mov word [eax + 0x1c], cx
mov byte [eax + 0x1e], 1
jmp case.0x49f610.10
mov ecx, dword [esp + 0x20]
test byte [ecx + 0x1c], 1
je 0x4a0cf6
mov eax, dword [esi + edi*4 + 0xc]
test eax, eax
mov dword [esp + 0x30], eax
jmp 0x4a0853
call fcn.0049ab30
ucomisd xmm0, qword [esp + 0x130]
lahf
test ah, 0x44
jnp 0x4a0d11
mov eax, 1
jmp 0x4a0d13
xor eax, eax
mov dword [esp + 0x30], eax
cmp byte [esi + edi*4], 0x1b
jne 0x4a0d24
xor eax, 1
mov dword [esp + 0x30], eax
test eax, eax
jmp 0x4a0853
mov eax, dword [esp + 0x20]
test byte [eax + 0x1c], 1
jmp 0x4a0853
mov eax, dword [esp + 0x20]
test byte [eax + 0x1c], 1
jne case.0x49f610.10
jmp 0x4a0855
mov eax, dword [esi + edi*4 + 4]
xorps xmm0, xmm0
mov edx, dword [esp + 8]
mov dword [esp + 0x40], eax
mov eax, dword [esi + edi*4 + 8]
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], 0
movups xmmword [esp + 0x70], xmm0
movups xmmword [esp + 0x80], xmm0
movq qword [esp + 0x90], xmm0
mov eax, dword [esi + edi*4 + 0xc]
mov esi, 0xbf01
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x58]
lea ecx, [eax + ecx*8]
mov dword [esp + 0x6c], ecx
mov ax, word [ecx + 0x1c]
and ax, si
or ax, 1
mov word [ecx + 0x1c], ax
mov ecx, dword [edx + 0x34]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x4c], 0
mov esi, dword [ecx + eax*4]
mov ecx, esi
mov dword [esp + 0x48], ecx
mov eax, dword [ecx]
mov dword [esp + 0x50], eax
test eax, eax
je 0x4a0f94
cmp byte [esi + 0x15], 0
je 0x4a0e3c
mov ecx, dword [esi]
lea eax, [esp + 0x128]
push eax
push 0
push dword [esi + 0x1c]
xor edx, edx
push dword [esi + 0x18]
call fcn.004971b0
mov edx, eax
add esp, 0x10
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4a5adb
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc], ecx
mov ecx, dword [esp + 0x128]
test ecx, ecx
mov dword [esi + 8], eax
sete al
mov byte [esi + 0x11], al
test ecx, ecx
jns 0x4a0e36
mov ecx, dword [esi]
lea edx, [esp + 0x128]
call fcn.004976b0
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4a5adb
mov byte [esi + 0x15], 0
jmp 0x4a0e7e
mov edi, dword [esi]
test edi, edi
je 0x4a0e89
cmp byte [edi + 0x43], 2
jb 0x4a0e61
mov ecx, edi
call fcn.00495270
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4a5adb
mov ecx, dword [esp + 0x48]
cmp byte [edi + 0x43], 1
jne 0x4a0e71
cmp dword [edi + 0x50], 0
jne 0x4a0e71
xor eax, eax
jmp 0x4a0e76
mov eax, 1
test eax, eax
je 0x4a0e89
mov byte [esi + 0x14], 1
mov dword [esi + 0x44], 0
mov ecx, dword [esp + 0x48]
xor edi, edi
cmp byte [ecx + 0x14], 0
mov dword [esp + 0xc], edi
je 0x4a0eab
mov dword [esp + 0x30], edi
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 8]
inc edx
mov esi, dword [esp + 0x10]
jmp 0x49f4bd
mov esi, dword [esp + 8]
mov eax, dword [ecx + 0x44]
cmp eax, dword [esi + 0x5c]
jne 0x4a0ed8
mov edx, dword [ecx + 0x48]
mov dword [esp + 0x30], edx
mov eax, dword [ecx + 0x54]
mov dword [esp + 0x4c], eax
mov eax, esi
mov esi, 0x5c
mov dword [esp + 0xc], edi
lea edi, [esi + eax]
jmp 0x4a0fdc
cmp byte [ecx + 0x17], 0
je 0x4a0f0a
mov ecx, dword [esp + 0x50]
lea edx, [esp + 0x38]
call fcn.00496930
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0xc], eax
mov eax, esi
mov esi, 0x5c
mov dword [esp + 0x30], edx
lea edi, [esi + eax]
jmp 0x4a0fdc
mov edx, dword [esp + 0x50]
mov dword [esp + 0xec], edx
cmp word [edx + 0x3e], di
jne 0x4a0f79
movsx eax, word [edx + 0x5c]
movzx edi, word [edx + eax*2 + 0xb0]
mov eax, dword [edx + eax*4 + 0x60]
mov dword [esp + 0xd8], eax
mov ecx, dword [eax + 0x40]
movzx esi, word [eax + 0xc]
lea eax, [edx + 0x20]
add esi, ecx
push eax
movzx eax, byte [esi + edi*2 + 1]
movzx edx, byte [esi + edi*2]
mov esi, dword [esp + 0xdc]
shl edx, 8
or edx, eax
movzx eax, word [esi + 0x12]
and edx, eax
add edx, ecx
mov ecx, esi
call fcn.004953b0
mov edx, dword [esp + 0xf0]
add esp, 4
mov esi, dword [esp + 8]
mov byte [edx + 0x42], 1
mov ecx, dword [esp + 0x48]
mov edx, dword [edx + 0x30]
mov eax, esi
mov esi, 0x5c
mov dword [esp + 0xc], 0
mov dword [esp + 0x30], edx
lea edi, [esi + eax]
jmp 0x4a0fdc
mov eax, dword [esi + 0x24]
test eax, eax
jle 0x4a15a6
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x58]
lea ecx, [eax + ecx*8]
mov dword [esp + 0xb8], ecx
mov eax, dword [ecx + 0x18]
mov dword [esp + 0x30], eax
mov eax, dword [ecx + 0x14]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x14]
test byte [eax + edi*4 + 3], 0x20
lea edi, [edx + 0x5c]
je 0x4a0fcf
xor eax, eax
jmp 0x4a0fd1
mov eax, dword [edi]
mov dword [esi + 0x44], eax
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x10]
test edx, edx
je 0x49fe73
cmp edx, dword [esi + 0x48]
ja 0x4a5b5d
mov esi, dword [ecx + 0x2c]
mov dword [esp + 0x5c], esi
mov edx, dword [ecx + 0x4c]
mov dword [esp + 0x54], edx
mov eax, dword [ecx + 0x44]
cmp eax, dword [edi]
jne 0x4a1012
mov eax, dword [ecx + 0x50]
mov dword [esp + 0x58], eax
jmp 0x4a1314
lea eax, [edx + esi*4]
mov dword [esp + 0xb4], 0
mov dword [esp + 0x58], eax
mov dword [ecx + 0x50], eax
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x30]
mov dword [ecx + 0x48], eax
mov eax, dword [esp + 0x48]
mov ecx, dword [edi]
mov dword [eax + 0x44], ecx
mov ecx, dword [esp + 0x4c]
test ecx, ecx
je 0x4a1049
mov dword [esp + 0x68], ecx
jmp 0x4a10a3
mov esi, dword [esp + 0x48]
xor edx, edx
mov ecx, dword [esp + 0x50]
cmp byte [esi + 0x17], dl
je 0x4a1061
cmp byte [ecx + 0x43], 1
jne 0x4a107e
push edx
jmp 0x4a1069
cmp byte [ecx + 0x43], 1
jne 0x4a107e
push 1
lea edx, [esp + 0xb8]
call fcn.00496da0
mov esi, dword [esp + 0x4c]
add esp, 4
mov edx, eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x68], edx
cmp eax, dword [esp + 0xb4]
ja 0x4a1098
mov dword [esp + 0x4c], edx
mov dword [esi + 0x54], edx
jmp 0x4a109f
mov dword [esi + 0x54], 0
mov ecx, dword [esp + 0x68]
mov al, byte [ecx]
cmp al, 0x80
jae 0x4a10b7
movzx edx, al
mov al, 1
mov dword [esp + 0xa0], edx
jmp 0x4a10ce
lea edx, [esp + 0xa0]
call fcn.0048deb0
mov edx, dword [esp + 0xa0]
mov ecx, dword [esp + 0x68]
movzx eax, al
mov dword [esp + 0xb0], eax
cmp edx, 0x18003
ja 0x4a5977
mov edi, dword [esp + 0x5c]
lea esi, [edi*4 + 3]
add esi, edi
cmp esi, edx
cmovg esi, edx
cmp dword [esp + 0x4c], 0
mov dword [esp + 0x60], esi
jne 0x4a1160
cmp dword [esp + 0xb4], esi
jge 0x4a1160
mov ecx, dword [esp + 0x50]
xor eax, eax
mov word [esp + 0x8c], ax
xor edx, edx
mov dword [esp + 0x80], eax
lea eax, [esp + 0x70]
push eax
mov eax, dword [esp + 0x4c]
movzx eax, byte [eax + 0x17]
push eax
push esi
call fcn.0049b480
mov edx, eax
add esp, 0xc
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4a0862
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0xa0]
mov esi, dword [esp + 0x60]
mov edi, dword [esp + 0x5c]
mov dword [esp + 0x68], ecx
lea eax, [ecx + esi]
mov dword [esp + 0xa8], edx
mov esi, dword [esp + 0xb0]
add esi, ecx
mov dword [esp + 0x9c], eax
xor ecx, ecx
mov dword [esp + 0x98], esi
mov dword [esp + 0xac], 0
mov dword [esp + 0x64], ecx
test edi, edi
jle 0x4a1271
nop word [eax + eax]
cmp esi, eax
mov eax, dword [esp + 0x58]
jae 0x4a1241
mov dword [eax + ecx*4], edx
mov ecx, dword [esp + 0x98]
mov al, byte [ecx]
cmp al, 0x80
jae 0x4a11ce
mov ecx, dword [esp + 0x64]
movzx edx, al
mov eax, dword [esp + 0x54]
mov dword [eax + ecx*4], edx
mov al, 1
jmp 0x4a11de
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x54]
lea edx, [eax + edx*4]
call fcn.0048deb0
mov esi, dword [esp + 0x98]
mov ecx, dword [esp + 0x64]
movzx eax, al
add esi, eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x98], esi
mov eax, dword [eax + ecx*4]
cmp eax, 0xc
jb 0x4a1220
mov edx, dword [esp + 0xa8]
add eax, 0xfffffff4
shr eax, 1
add edx, eax
mov dword [esp + 0xa8], edx
adc dword [esp + 0xac], 0
jmp 0x4a125a
mov edx, dword [esp + 0xa8]
movzx eax, byte [eax + 0x51d4b4]
add edx, eax
mov dword [esp + 0xa8], edx
adc dword [esp + 0xac], 0
jmp 0x4a125a
mov dword [eax + ecx*4], 0
mov edx, dword [esp + 0xa8]
mov esi, dword [esp + 0x98]
mov ecx, dword [esp + 0x64]
inc ecx
mov dword [esp + 0x64], ecx
cmp ecx, dword [esp + 0x5c]
jge 0x4a1271
mov eax, dword [esp + 0x9c]
jmp 0x4a11a0
lea ecx, [esp + 0x70]
call fcn.0049a930
push dword [esp + 0x94]
push dword [esp + 0x84]
call fcn.0048ae30
mov edx, dword [esp + 0xa0]
add esp, 8
mov esi, dword [esp + 0x9c]
mov eax, 1
mov dword [esp + 0x84], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x90], 0
mov word [esp + 0x8c], ax
cmp edx, esi
ja 0x4a1598
mov edi, dword [esp + 0xac]
mov ecx, dword [esp + 0x30]
test edi, edi
ja 0x4a1598
mov eax, dword [esp + 0xa8]
jb 0x4a12f8
cmp eax, ecx
ja 0x4a1598
cmp edx, esi
jne 0x4a130c
cmp eax, ecx
jne 0x4a1598
test edi, edi
jne 0x4a1598
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x44]
cmp dword [eax + ecx*4], 0
je 0x4a14e6
cmp dword [esp + 0x4c], 0
je 0x4a134d
mov ecx, dword [esp + 0x6c]
call fcn.0049a930
mov esi, dword [esp + 0x44]
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x54]
mov ecx, dword [eax + esi*4]
add ecx, dword [esp + 0x4c]
mov edx, dword [edx + esi*4]
jmp 0x4a14ca
mov eax, dword [edx + ecx*4]
cmp eax, 0xc
jb 0x4a135c
add eax, 0xfffffff4
shr eax, 1
jmp 0x4a1363
movzx eax, byte [eax + 0x51d4b4]
mov edi, dword [esp + 0x6c]
lea ecx, [esp + 0x70]
mov dword [esp + 0x60], eax
call fcn.0049a930
mov ecx, dword [esp + 0x80]
mov esi, dword [esp + 0x94]
test ecx, ecx
je 0x4a13b4
test esi, esi
je 0x4a1423
cmp esi, dword [ecx + 0xf0]
jb 0x4a13b4
cmp esi, dword [ecx + 0xf4]
jae 0x4a13b4
mov eax, dword [ecx + 0xec]
mov dword [esi], eax
dec dword [ecx + 0xe4]
mov dword [ecx + 0xec], esi
jmp 0x4a1423
test esi, esi
je 0x4a1423
cmp dword [0x533cd8], 0
je 0x4a1419
mov eax, dword [0x536520]
test eax, eax
je 0x4a13d4
push eax
call dword [0x533d20]
add esp, 4
push esi
call dword [0x533cfc]
mov ecx, dword [0x5363a8]
neg eax
add ecx, eax
add esp, 4
mov eax, dword [0x5363cc]
cmp ecx, eax
mov dword [0x5363a8], ecx
cmovg eax, ecx
push esi
mov dword [0x5363cc], eax
call dword [0x533cf4]
mov eax, dword [0x536520]
add esp, 4
test eax, eax
je 0x4a1423
push eax
call dword [0x533d28]
jmp 0x4a1420
push esi
call dword [0x533cf4]
add esp, 4
mov dword [esp + 0x84], 0
mov eax, 1
mov dword [esp + 0x94], 0
mov dword [esp + 0x90], 0
movups xmm0, xmmword [edi]
movups xmmword [esp + 0x70], xmm0
movups xmm0, xmmword [edi + 0x10]
movups xmmword [esp + 0x80], xmm0
movq xmm0, qword [edi + 0x20]
movq qword [esp + 0x90], xmm0
mov word [edi + 0x1c], ax
lea eax, [esp + 0x70]
mov dword [edi + 0x20], 0
mov dword [edi + 0x24], 0
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x50]
push eax
mov eax, dword [esp + 0x4c]
movzx eax, byte [eax + 0x17]
push eax
mov eax, dword [esp + 0x60]
push dword [esp + 0x68]
mov edx, dword [eax + edx*4]
call fcn.0049b480
mov edx, eax
add esp, 0xc
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4a0862
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x68], ecx
mov edx, dword [eax + edx*4]
push dword [esp + 0x6c]
call fcn.0049d8b0
mov eax, dword [esp + 0x70]
add esp, 4
mov cl, byte [esp + 0xe8]
mov byte [eax + 0x1f], cl
jmp 0x4a1544
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
cmp byte [ecx + eax*4 + 1], 0xf8
jne 0x4a1544
mov edi, dword [ecx + eax*4 + 0x10]
mov esi, dword [esp + 0x6c]
mov ecx, esi
call fcn.0049a930
movups xmm0, xmmword [edi]
mov eax, 0x400
movups xmmword [esi], xmm0
movups xmm0, xmmword [edi + 0x10]
movups xmmword [esi + 0x10], xmm0
mov dword [esi + 0x20], 0
test word [edi + 0x1c], ax
jne 0x4a152c
mov eax, dword [edi + 0x14]
cmp eax, dword [edi + 0x24]
jne 0x4a1544
mov ax, word [esi + 0x1c]
mov ecx, 0xebff
and ax, cx
mov ecx, 0x800
or ax, cx
mov word [esi + 0x1c], ax
cmp dword [esp + 0x94], 0
je 0x4a1584
mov eax, dword [esp + 0x6c]
mov ecx, 0xe7ff
and word [eax + 0x1c], cx
mov ecx, 0x200
mov eax, dword [esp + 0x6c]
or word [eax + 0x1c], cx
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x84]
mov dword [ecx + 0x14], eax
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x94]
mov dword [eax + 0x24], ecx
mov ecx, dword [esp + 0x6c]
call fcn.0049a7c0
mov edx, eax
mov dword [esp + 0xc], edx
jmp 0x4a0862
mov edx, 0xb
mov dword [esp + 0xc], edx
jmp 0x4a0862
mov dword [esp + 0x30], 0
jmp case.0x49f610.10
mov eax, dword [esi + edi*4 + 0x10]
mov dword [esp + 0x30], eax
mov eax, dword [esi + edi*4 + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x58]
lea esi, [eax + ecx*8]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x34], esi
mov eax, dword [eax + edi*4 + 8]
mov dword [esp + 0x3c], esi
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [esi + eax*8]
mov dword [esp + 0x38], eax
cmp esi, eax
ja case.0x49f610.10
mov dword [esp + 0x3c], esi
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x4a160b
mov ecx, esi
call fcn.0049a820
mov esi, dword [esp + 0x3c]
push dword [esp + 0xe8]
mov ecx, esi
mov eax, 0x66666667
sub ecx, dword [esp + 0x38]
imul ecx
mov eax, dword [esp + 0x34]
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov dl, byte [ecx + eax]
mov ecx, esi
call fcn.0049f330
mov esi, dword [esp + 0x40]
add esp, 4
add esi, 0x28
mov dword [esp + 0x3c], esi
cmp esi, dword [esp + 0x38]
jbe 0x4a15f5
jmp case.0x49f610.10
mov ecx, dword [esp + 0x14]
xor esi, esi
xorps xmm0, xmm0
mov dword [esp + 0x50], esi
xor edx, edx
movlpd qword [esp + 0x38], xmm0
mov dword [esp + 0x40], edx
movlpd qword [esp + 0x48], xmm0
mov eax, dword [ecx + edi*4 + 4]
mov dword [esp + 0x64], eax
mov ecx, dword [ecx + edi*4 + 0x10]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x28], ecx
lea ecx, [eax + eax*4]
mov eax, dword [esp + 8]
mov dword [esp + 0x18], esi
mov eax, dword [eax + 0x58]
lea edi, [eax + ecx*8]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x5c], edi
mov eax, dword [ecx + eax*4 + 8]
mov dword [esp + 0x64], eax
mov dword [esp + 0x34], edi
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea ecx, [edi + eax*8]
mov eax, dword [esp + 8]
mov dword [esp + 0x60], ecx
movzx eax, byte [eax + 0x6f]
mov dword [esp + 0x6c], eax
cmp edi, ecx
ja 0x4a17d5
mov dword [esp + 0x34], edi
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x4a1718
push dword [esp + 0xe8]
mov esi, edi
mov eax, 0x66666667
sub esi, dword [esp + 0x60]
imul esi
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dl, byte [eax + ecx]
mov ecx, edi
call fcn.0049f330
mov ecx, dword [esp + 0x6c]
add esp, 4
mov eax, dword [esp + 0x50]
mov edi, dword [esp + 0x34]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x18], eax
mov eax, 0x4000
test word [edi + 0x1c], ax
je 0x4a1744
cmp dword [edi + 0x18], 0
jle 0x4a1744
mov ecx, edi
call fcn.0049a820
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x50]
mov edi, dword [esp + 0x34]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x6c]
mov ecx, edi
call fcn.0049d7d0
mov edx, eax
mov dword [esp + 0x58], edx
cmp edx, 0xc
jb 0x4a1761
lea eax, [edx - 0xc]
shr eax, 1
jmp 0x4a1768
movzx eax, byte [edx + 0x51d4b4]
add dword [esp + 0x38], eax
mov dword [esp + 0xf8], eax
adc dword [esp + 0x3c], 0
xor ecx, ecx
mov dword [esp + 0x74], eax
xor esi, esi
shrd edx, ecx, 7
inc esi
shr ecx, 7
mov eax, edx
or eax, ecx
je 0x4a1793
cmp esi, 9
jl 0x4a1780
mov edx, dword [esp + 0x40]
mov eax, 0x4000
add edx, esi
mov esi, dword [esp + 0x18]
mov dword [esp + 0x40], edx
test word [edi + 0x1c], ax
je 0x4a17b0
add esi, dword [edi]
jmp 0x4a17bc
xor eax, eax
cmp dword [esp + 0xf8], eax
cmovne esi, eax
add edi, 0x28
mov dword [esp + 0x50], esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x34], edi
cmp edi, dword [esp + 0x60]
jbe 0x4a16d1
mov eax, edx
xor edi, edi
cdq
mov ecx, eax
nop dword [eax]
shrd ecx, edx, 7
inc edi
shr edx, 7
mov eax, ecx
or eax, edx
je 0x4a17f3
cmp edi, 9
jl 0x4a17e0
mov eax, dword [esp + 0x40]
add eax, edi
mov dword [esp + 0xd8], edi
mov dword [esp + 0x40], eax
cdq
mov dword [esp + 0x54], edi
mov ecx, eax
xor edi, edi
nop dword [eax]
shrd ecx, edx, 7
inc edi
shr edx, 7
mov eax, ecx
or eax, edx
je 0x4a1823
cmp edi, 9
jl 0x4a1810
mov eax, dword [esp + 0x40]
cmp dword [esp + 0xd8], edi
jge 0x4a1835
inc eax
mov dword [esp + 0x40], eax
cdq
mov edi, eax
mov ecx, edx
mov eax, esi
mov esi, dword [esp + 0x10]
cdq
sub edi, eax
sbb ecx, edx
add edi, dword [esp + 0x38]
mov dword [esp + 0x48], edi
adc ecx, dword [esp + 0x3c]
mov dword [esp + 0x4c], ecx
mov eax, dword [esi + 0x48]
cdq
cmp ecx, edx
jg 0x4a5b5d
jl 0x4a186b
cmp edi, eax
ja 0x4a5b5d
mov ecx, dword [esp + 0x14]
mov edx, edi
mov eax, dword [esp + 0x24]
push 0
mov eax, dword [ecx + eax*4 + 0xc]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x58]
lea esi, [eax + ecx*8]
mov ecx, esi
mov dword [esp + 0x1c], esi
call fcn.0049a630
add esp, 4
test eax, eax
jne 0x4a5932
mov ecx, dword [esp + 0x40]
mov edx, dword [esi + 0x14]
mov dword [esp + 0x30], edx
cmp ecx, 0x80
jae 0x4a18bc
mov al, cl
mov byte [edx], al
mov eax, 1
jmp 0x4a18e7
test ecx, 0xffffc000
jne 0x4a18da
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 0x4a18e7
push 0
push ecx
mov ecx, edx
call fcn.0048dc30
add esp, 8
mov esi, dword [esp + 0x5c]
movzx edi, al
mov dword [esp + 0x70], edi
mov dword [esp + 0x34], esi
cmp esi, dword [esp + 0x60]
ja 0x4a197c
mov edx, dword [esp + 0x6c]
mov ecx, esi
call fcn.0049d7d0
mov ecx, eax
mov dword [esp + 0x58], ecx
cmp ecx, 0x80
jae 0x4a1929
mov cl, al
mov eax, dword [esp + 0x30]
mov byte [edi + eax], cl
mov eax, 1
jmp 0x4a195a
mov edx, dword [esp + 0x30]
add edx, edi
test ecx, 0xffffc000
jne 0x4a194d
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 0x4a195a
push 0
push ecx
mov ecx, edx
call fcn.0048dc30
add esp, 8
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x70]
add esi, 0x28
movzx eax, al
add edi, eax
mov dword [esp + 0x34], esi
mov dword [esp + 0x70], edi
cmp esi, dword [esp + 0x60]
jbe 0x4a1900
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x34], esi
cmp esi, dword [esp + 0x60]
ja 0x4a1a8a
nop word [eax + eax]
mov eax, dword [esp + 0x48]
mov ecx, esi
mov edx, dword [esp + 0x6c]
sub eax, edi
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x30]
add eax, edi
mov dword [esp + 0x28], eax
call fcn.0049d7d0
mov dword [esp + 0xf8], eax
lea ecx, [eax - 1]
cmp ecx, 6
ja 0x4a1a0f
mov ecx, eax
cmp eax, 7
jne 0x4a19fe
mov edx, dword [esi + 8]
mov eax, dword [esi + 0xc]
movzx ecx, byte [ecx + 0x51d4b4]
mov dword [esp + 0x24], ecx
test ecx, ecx
je 0x4a19f8
mov esi, dword [esp + 0x28]
dec ecx
mov byte [ecx + esi], dl
shrd edx, eax, 8
shr eax, 8
test ecx, ecx
jne 0x4a19e1
mov edi, dword [esp + 0x70]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x24]
jmp 0x4a1a73
mov edx, dword [esi]
mov eax, dword [esi + 4]
cmp ecx, 0xc
jb 0x4a19ce
add ecx, 0xfffffff4
shr ecx, 1
jmp 0x4a19d5
cmp eax, 0xc
jb 0x4a1a71
mov edi, dword [esi + 0x18]
push edi
push dword [esi + 0x14]
mov dword [esp + 0x2c], edi
push dword [esp + 0x30]
call fcn.004de150
mov eax, 0x4000
add esp, 0xc
test word [esi + 0x1c], ax
je 0x4a1a63
add edi, dword [esi]
cmp edi, dword [esp + 0xd8]
cmova edi, dword [esp + 0xd8]
mov eax, edi
mov dword [esp + 0x24], edi
sub eax, dword [esi + 0x18]
push eax
mov eax, dword [esp + 0x2c]
add eax, dword [esi + 0x18]
push 0
push eax
call fcn.004de6d0
add esp, 0xc
mov edi, dword [esp + 0x70]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x24]
jmp 0x4a1a73
xor eax, eax
add esi, 0x28
add edi, eax
mov dword [esp + 0x70], edi
mov dword [esp + 0x34], esi
cmp esi, dword [esp + 0x60]
jbe 0x4a1990
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x48]
mov dword [edi + 0x18], eax
mov eax, 0x410
mov word [edi + 0x1c], ax
mov dword [edi + 0x20], 0
mov eax, dword [esp + 0x50]
test eax, eax
je 0x4a1ab8
mov dword [edi], eax
mov eax, 0x4410
mov word [edi + 0x1c], ax
mov byte [edi + 0x1f], 1
jmp case.0x49f610.10
mov ecx, dword [esi + edi*4 + 4]
mov edi, dword [esp + 8]
mov eax, dword [edi + 0x34]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax]
mov dword [esp + 0x38], ecx
test ecx, ecx
je 0x4a1ae8
lea edx, [esp + 0x30]
call fcn.0049a2e0
mov dword [esp + 0xc], eax
jmp 0x4a1af1
xorps xmm0, xmm0
movlpd qword [esp + 0x30], xmm0
mov edx, dword [esp + 0x18]
mov eax, 4
mov word [edx + 0x1c], ax
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov dword [edx], eax
mov dword [edx + 4], ecx
mov edx, dword [esp + 0xc]
jmp 0x4a0866
mov edx, dword [esi + edi*4 + 4]
mov dword [esp + 0x30], edx
mov eax, dword [esi + edi*4 + 0x10]
mov esi, dword [esp + 0x10]
mov dword [esp + 0xd8], edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x34], eax
test edx, edx
jne 0x4a1c5b
cmp dword [esi + 0x90], edx
jg 0x4a5994
test eax, eax
je 0x4a1b63
mov ecx, dword [esp + 0x28]
cmp byte [ecx], 0
je 0x4a1b5c
mov eax, ecx
inc eax
cmp byte [eax], 0
jne 0x4a1b56
sub eax, ecx
and eax, 0x3fffffff
mov dword [esp + 0x38], eax
lea edx, [eax + 0x19]
cmp byte [esi + 0x1e], 0
je 0x4a1b85
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 8]
mov dword [esp + 0x3c], 0
jmp 0x4a086a
cmp byte [esi + 0xe2], 0
je 0x4a1bcc
movzx eax, word [esi + 0xe0]
cmp edx, eax
ja 0x4a1bcc
mov ecx, dword [esi + 0xec]
test ecx, ecx
je 0x4a1bcc
mov eax, dword [ecx]
mov dword [esi + 0xec], eax
mov eax, dword [esi + 0xe4]
inc eax
mov dword [esi + 0xe4], eax
cmp eax, dword [esi + 0xe8]
jle 0x4a1bc6
mov dword [esi + 0xe8], eax
mov dword [esp + 0x3c], ecx
jmp 0x4a1beb
push edx
call fcn.0048ad40
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x4a1bdf
mov byte [esi + 0x1e], 1
mov dword [esp + 0x3c], ecx
test ecx, ecx
je 0x49fe73
lea eax, [ecx + 0x18]
mov dword [ecx], eax
mov eax, dword [esp + 0x38]
inc eax
push eax
mov eax, dword [esp + 0x40]
push dword [esp + 0x38]
push dword [eax]
call fcn.004de150
add esp, 0xc
cmp byte [esi + 0x1c], 0
je 0x4a1c1b
mov byte [esi + 0x1c], 0
mov byte [esi + 0x1cc], 1
jmp 0x4a1c21
inc dword [esi + 0x1c4]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esi + 0x1c0]
mov edi, dword [esp + 8]
mov dword [eax + 0x10], ecx
mov eax, dword [esp + 0x3c]
mov edx, dword [esi + 0x1d4]
mov ecx, dword [esi + 0x1d0]
mov dword [esi + 0x1c0], eax
mov eax, dword [esp + 0x3c]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0xc]
jmp 0x4a086a
xor ecx, ecx
mov dword [esp + 0x48], ecx
mov edi, dword [esi + 0x1c0]
mov dword [esp + 0x40], edi
test edi, edi
je 0x4a59e4
mov esi, dword [edi]
mov edx, eax
mov cl, byte [esi]
test cl, cl
je 0x4a1cb0
mov al, cl
sub esi, edx
movzx ecx, byte [edx]
mov byte [esp + 0x103], al
movzx eax, al
mov al, byte [eax + 0x51e778]
cmp al, byte [ecx + 0x51e778]
jne 0x4a1ca9
mov al, byte [edx + esi + 1]
inc edx
mov cl, al
test al, al
jne 0x4a1c81
jmp 0x4a1cb0
mov cl, byte [esp + 0x103]
movzx eax, cl
movzx ecx, byte [eax + 0x51e778]
movzx eax, byte [edx]
movzx eax, byte [eax + 0x51e778]
sub ecx, eax
je 0x4a1ce3
inc dword [esp + 0x48]
mov eax, dword [edi + 0x10]
mov edi, eax
mov dword [esp + 0x40], edi
test eax, eax
je 0x4a59e4
mov eax, dword [esp + 0x28]
jmp 0x4a1c73
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0xd8]
mov esi, dword [esp + 0x10]
test edi, edi
je 0x4a59e4
cmp dword [esi + 0x90], 0
jg 0x4a1ee3
cmp edx, 2
jne 0x4a1d19
cmp dword [esi + 0x8c], 1
jg 0x4a1ee3
cmp dword [edi + 0x10], 0
jne 0x4a1d70
cmp byte [esi + 0x1cc], 0
je 0x4a1d70
mov esi, 1
mov dword [esp + 0x24], esi
cmp edx, esi
jne 0x4a1d7a
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 8]
mov ecx, edi
mov byte [eax + 0x1c], 1
call fcn.0049d1f0
cmp eax, 5
je 0x4a59c3
mov ecx, dword [esp + 0x10]
mov byte [ecx + 0x1cc], 0
mov eax, dword [edi + 0x64]
mov edi, dword [esp + 0x40]
mov edx, dword [esp + 0x30]
mov dword [esp + 0xc], eax
jmp 0x4a1e42
mov dword [esp + 0x24], 0
jmp 0x4a1d7e
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0x1c4]
xor esi, esi
sub eax, ecx
mov dword [esp + 0x4c], esi
mov ecx, dword [esp + 0x10]
dec eax
mov dword [esp + 0x48], eax
cmp dword [ecx + 4], esi
jle 0x4a1e0b
nop word [eax + eax]
mov eax, dword [esp + 0x10]
mov ecx, esi
add ecx, ecx
xor edi, edi
mov dword [esp + 0xc], edi
mov eax, dword [eax + 8]
mov eax, dword [eax + ecx*8 + 4]
test eax, eax
je 0x4a1df1
cmp byte [eax + 8], 2
jne 0x4a1df1
mov esi, dword [eax + 4]
push dword [esp + 0x48]
mov ecx, dword [esi]
call fcn.00494ec0
mov edx, eax
add esp, 4
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4a1de5
mov ecx, esi
call fcn.00496500
mov dword [esp + 0xc], eax
mov edi, dword [esp + 0xc]
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x4c]
test edi, edi
jne 0x4a5ad7
mov ecx, dword [esp + 0x10]
inc esi
mov dword [esp + 0x4c], esi
cmp esi, dword [ecx + 4]
jl 0x4a1da0
mov edi, dword [esp + 0x40]
cmp edx, 2
jne 0x4a1e3e
test byte [ecx + 0xc], 0x10
je 0x4a1e3e
mov eax, dword [ecx + 0x88]
test eax, eax
je 0x4a1e2b
mov byte [eax + 0x6e], 1
mov eax, dword [eax + 8]
test eax, eax
jne 0x4a1e20
xor edx, edx
call fcn.004b0930
mov edi, dword [esp + 0x40]
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
mov eax, dword [ecx + 0x1c0]
cmp eax, edi
je 0x4a1e86
nop dword [eax]
mov dword [esp + 0x44], eax
mov eax, dword [eax + 0x10]
mov dword [ecx + 0x1c0], eax
push dword [esp + 0x44]
push ecx
call fcn.0048ae30
mov ecx, dword [esp + 0x18]
add esp, 8
dec dword [ecx + 0x1c4]
mov eax, dword [ecx + 0x1c0]
mov edi, dword [esp + 0x40]
cmp eax, edi
jne 0x4a1e50
mov edx, dword [esp + 0x30]
cmp edx, 1
jne 0x4a1ec0
mov eax, dword [edi + 0x10]
mov dword [ecx + 0x1c0], eax
push dword [esp + 0x40]
push ecx
call fcn.0048ae30
mov edx, dword [esp + 0x14]
add esp, 8
mov edi, dword [esp + 8]
test esi, esi
mov esi, dword [esp + 0x10]
jne 0x4a086a
dec dword [esi + 0x1c4]
jmp 0x4a086a
mov esi, dword [esp + 0x10]
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0xc]
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 8]
mov dword [esi + 0x1d0], eax
mov dword [esi + 0x1d4], ecx
jmp 0x4a086a
mov edi, dword [esp + 8]
cmp edx, 2
mov ecx, str.release
mov eax, str.rollback
cmovne eax, ecx
push eax
push str.cannot__s_savepoint___SQL_statements_in_progress
lea eax, [edi + 0x68]
push esi
push eax
call fcn.0048b2a0
mov edx, 5
add esp, 0x10
mov dword [esp + 0xc], edx
jmp 0x4a086a
mov edx, dword [esi + edi*4 + 4]
mov dword [esp + 0x30], edx
mov ecx, dword [esi + edi*4 + 8]
mov esi, dword [esp + 0x10]
mov dword [esp + 0x34], ecx
test edx, edx
je 0x4a1f72
cmp byte [esi + 0x1c], 0
jne 0x4a1f72
mov dword [esp + 0x38], 1
test ecx, ecx
je 0x4a1f5a
cmp dword [esi + 0x8c], 1
jle 0x4a1f7a
mov dword [esp + 0xc], 5
mov eax, str.cannot_rollback_transaction___SQL_statements_in_progress
jmp 0x4a1fa8
cmp dword [esi + 0x90], 0
jle 0x4a1f7a
mov dword [esp + 0xc], 5
mov eax, str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x4a1fa8
mov dword [esp + 0x38], 0
movzx eax, byte [esi + 0x1c]
cmp edx, eax
jne 0x4a5a1b
test edx, edx
jne 0x4a1f91
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x4a1fa0
test ecx, ecx
mov eax, str.cannot_rollback___no_transaction_is_active
mov ecx, str.cannot_commit___no_transaction_is_active
cmove eax, ecx
mov dword [esp + 0xc], 1
mov edi, dword [esp + 8]
mov ecx, edi
push eax
push esi
lea eax, [ecx + 0x68]
push eax
call fcn.0048b2a0
mov edx, dword [esp + 0x18]
add esp, 0xc
jmp 0x4a086a
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + edi*4 + 4]
add ecx, ecx
mov eax, dword [eax + 8]
mov ecx, dword [eax + ecx*8 + 4]
mov dword [esp + 0x30], ecx
test ecx, ecx
je case.0x49f610.10
mov edx, dword [esi + edi*4 + 8]
call fcn.00496590
mov edx, eax
mov dword [esp + 0xc], edx
cmp edx, 5
je 0x4a5a8b
test edx, edx
jne 0x4a5adb
cmp dword [esi + edi*4 + 8], eax
mov edi, dword [esp + 8]
je 0x4a0866
cmp byte [edi + 0x71], al
je 0x4a0866
mov esi, dword [esp + 0x10]
cmp byte [esi + 0x1c], al
je 0x4a202f
cmp dword [esi + 0x8c], 1
jle 0x4a086a
mov edx, dword [edi + 0xd8]
test edx, edx
jne 0x4a2051
mov edx, dword [esi + 0x1c4]
inc dword [esi + 0x1c8]
add edx, dword [esi + 0x1c8]
mov dword [edi + 0xd8], edx
mov eax, dword [esp + 0x30]
cmp byte [eax + 8], 2
jne 0x4a2071
mov ecx, dword [eax + 4]
cmp byte [ecx + 0x10], 0
jne 0x4a2071
mov ecx, dword [ecx]
call fcn.00494d70
mov dword [esp + 0xc], eax
jmp 0x4a2079
mov dword [esp + 0xc], 2
mov eax, dword [esi + 0x1d0]
mov ecx, dword [esi + 0x1d4]
mov edx, dword [esp + 0xc]
mov dword [edi + 0xd0], eax
mov dword [edi + 0xd4], ecx
jmp 0x4a086a
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x34], ecx
add ecx, ecx
mov edx, dword [esi + edi*4 + 0xc]
mov dword [esp + 0x38], edx
mov eax, dword [eax + 8]
mov eax, dword [eax + ecx*8 + 4]
mov edi, dword [eax + 4]
mov eax, dword [edi + 0xc]
mov ecx, dword [eax + 0x40]
movzx eax, byte [ecx + edx*4 + 0x24]
movzx esi, byte [ecx + edx*4 + 0x25]
shl eax, 8
or esi, eax
movzx eax, byte [ecx + edx*4 + 0x26]
shl esi, 8
or esi, eax
movzx eax, byte [ecx + edx*4 + 0x27]
shl esi, 8
or esi, eax
mov dword [esp + 0x30], esi
cmp edx, 4
jne 0x4a20f8
test esi, esi
je 0x4a20f8
mov byte [edi + 0x10], 1
mov esi, dword [esp + 0x30]
mov eax, esi
cdq
jmp 0x4a051f
mov eax, dword [esi + edi*4 + 4]
mov ecx, dword [esp + 0x10]
shl eax, 4
add eax, dword [ecx + 8]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x30], eax
call fcn.0049aa50
mov ecx, dword [esp + 0x2c]
mov dword [ecx], eax
mov ax, word [ecx + 0x1c]
mov dword [ecx + 4], edx
mov edx, 0xbf04
and ax, dx
or ax, 4
mov word [ecx + 0x1c], ax
mov eax, dword [ecx]
mov esi, dword [esi + edi*4 + 8]
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 4]
mov eax, dword [eax + 4]
mov ecx, dword [eax + 0xc]
mov edi, dword [ecx + 0x40]
mov ecx, dword [ecx + 0x44]
call fcn.00494960
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4a218b
mov ecx, dword [esp + 0xd8]
mov eax, ecx
shr eax, 0x18
mov byte [edi + esi*4 + 0x24], al
mov eax, ecx
shr eax, 0x10
mov byte [edi + esi*4 + 0x25], al
mov eax, ecx
shr eax, 8
mov byte [edi + esi*4 + 0x26], al
mov byte [edi + esi*4 + 0x27], cl
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x14]
mov eax, dword [esi + edx*4 + 8]
cmp eax, 1
jne 0x4a21b5
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 0xc]
mov eax, dword [esp + 0x2c]
mov eax, dword [eax]
mov dword [ecx], eax
mov eax, dword [esp + 0x10]
or dword [eax + 0xc], 0x10
jmp 0x4a21ca
cmp eax, 2
jne 0x4a21ca
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 0xc]
mov eax, dword [esp + 0x2c]
mov al, byte [eax]
mov byte [ecx + 0x48], al
cmp dword [esi + edx*4 + 4], 1
mov esi, dword [esp + 0x10]
jne 0x49fe73
mov eax, dword [esi + 0x88]
test eax, eax
je 0x4a21ee
mov byte [eax + 0x6e], 1
mov eax, dword [eax + 8]
test eax, eax
jne 0x4a21e3
mov edi, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov byte [edi + 0x6e], 0
jmp 0x4a086a
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + edi*4 + 4]
add ecx, ecx
mov eax, dword [eax + 8]
mov eax, dword [eax + ecx*8 + 4]
mov dword [esp + 0x34], eax
test eax, eax
je 0x4a2242
mov eax, dword [eax + 4]
mov eax, dword [eax + 0xc]
mov ecx, dword [eax + 0x40]
movzx edx, byte [ecx + 0x28]
movzx eax, byte [ecx + 0x29]
shl edx, 8
or edx, eax
movzx eax, byte [ecx + 0x2a]
shl edx, 8
or edx, eax
movzx eax, byte [ecx + 0x2b]
shl edx, 8
or edx, eax
jmp 0x4a2244
xor edx, edx
mov dword [esp + 0x30], edx
cmp edx, dword [esi + edi*4 + 8]
je case.0x49f610.10
mov eax, dword [esp + 8]
push dword [eax + 0x68]
push dword [esp + 0x14]
call fcn.0048ae30
add esp, 8
mov eax, str.database_schema_has_changed
nop word [eax + eax]
inc eax
cmp byte [eax], 0
jne 0x4a2270
mov ecx, dword [esp + 0x10]
sub eax, str.database_schema_has_changed
and eax, 0x3fffffff
cmp byte [ecx + 0x1e], 0
lea edi, [eax + 1]
je 0x4a2291
xor esi, esi
jmp 0x4a22ed
cmp byte [ecx + 0xe2], 0
je 0x4a2349
movzx eax, word [ecx + 0xe0]
cmp edi, eax
ja 0x4a2349
mov esi, dword [ecx + 0xec]
test esi, esi
je 0x4a2349
mov eax, dword [esi]
mov dword [ecx + 0xec], eax
mov eax, dword [ecx + 0xe4]
inc eax
mov dword [ecx + 0xe4], eax
cmp eax, dword [ecx + 0xe8]
jle 0x4a22de
mov dword [ecx + 0xe8], eax
push edi
push str.database_schema_has_changed
push esi
call fcn.004de150
add esp, 0xc
mov edi, dword [esp + 8]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
mov dword [edi + 0x68], esi
mov esi, dword [esp + 0x10]
mov edx, dword [ecx + eax*4 + 4]
mov ecx, edx
add ecx, ecx
mov eax, dword [esi + 8]
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax]
cmp eax, dword [esp + 0x30]
je 0x4a231e
mov ecx, esi
call fcn.004b0930
mov eax, dword [esi + 0x88]
test eax, eax
je 0x4a233b
nop dword [eax + eax]
mov byte [eax + 0x6e], 1
mov eax, dword [eax + 8]
test eax, eax
jne 0x4a2330
mov edx, 0x11
mov dword [esp + 0xc], edx
jmp 0x4a086a
push edi
call fcn.0048ad40
mov esi, eax
add esp, 4
test esi, esi
jne 0x4a22de
mov eax, dword [esp + 0x10]
mov byte [eax + 0x1e], 1
jmp 0x4a22ed
mov eax, dword [esp + 8]
cmp byte [eax + 0x6e], 0
jne 0x4a5ab3
mov eax, dword [esp + 0x14]
xor edx, edx
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], edx
mov esi, dword [esi + edi*4 + 8]
mov dword [esp + 0x38], esi
mov ecx, dword [eax + edi*4 + 0xc]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x3c], ecx
shl ecx, 4
add ecx, dword [eax + 8]
mov dword [esp + 0x4c], ecx
mov eax, dword [ecx + 4]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x14]
cmp byte [eax + edi*4], 0x27
jne 0x4a23c9
mov dword [esp + 0x40], 1
mov eax, dword [ecx + 0xc]
mov ecx, dword [esp + 8]
mov al, byte [eax + 0x48]
cmp al, byte [ecx + 0x6f]
jae 0x4a23cd
mov byte [ecx + 0x6f], al
jmp 0x4a23cd
mov dword [esp + 0x40], edx
mov ecx, dword [esp + 0x14]
cmp byte [ecx + edi*4 + 3], dl
je 0x4a241e
mov eax, dword [esp + 8]
lea ecx, [esi + esi*4]
mov eax, dword [eax + 0x58]
lea esi, [eax + ecx*8]
mov ecx, esi
mov dword [esp + 0xe4], esi
call fcn.0049aa50
mov dword [esi], eax
mov ecx, 0xbf04
mov ax, word [esi + 0x1c]
and ax, cx
mov dword [esi + 4], edx
or ax, 4
mov word [esi + 0x1c], ax
mov eax, dword [esi]
mov dword [esp + 0x38], eax
cmp eax, 2
jl 0x4a5aa8
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x14]
mov al, byte [esi + edi*4 + 1]
cmp al, 0xfa
jne 0x4a244f
mov eax, dword [esp + 8]
mov ecx, dword [esi + edi*4 + 0x10]
mov dword [esp + 0x34], ecx
mov eax, dword [eax]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov al, byte [eax + 0x49]
mov byte [ecx + 4], al
mov eax, dword [esp + 0x34]
movzx edx, word [eax + 6]
inc edx
jmp 0x4a2457
cmp al, 0xf2
jne 0x4a245b
mov edx, dword [esi + edi*4 + 0x10]
mov dword [esp + 0x30], edx
push 1
push dword [esp + 0x40]
push edx
mov edx, dword [esi + edi*4 + 4]
mov edi, dword [esp + 0x14]
mov ecx, edi
call fcn.0049f150
add esp, 0xc
mov dword [esp + 0x48], eax
test eax, eax
je 0x4a5936
mov byte [eax + 0x14], 1
mov edi, dword [esp + 0x44]
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x34]
mov dword [esp + 0xf8], ecx
cmp dword [esp + 0xf8], 0
mov ecx, dword [esp + 0x38]
mov esi, dword [eax]
mov dword [esp + 0x28], edi
mov edi, dword [edi + 4]
mov dword [esp + 0xec], edx
mov dword [esp + 0xd8], ecx
je 0x4a24d6
cmp byte [edi + 0x10], 0
je 0x4a24d6
mov dword [eax + 0x28], edx
mov dword [esp + 0xc], 8
jmp 0x4a2578
cmp ecx, 1
jne 0x4a2523
mov ecx, dword [edi]
lea edx, [esp + 0x124]
mov dword [esp + 0x124], 0xffffffff
call fcn.00492fa0
cmp dword [esp + 0x124], 0
jne 0x4a2515
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x34]
mov dword [ecx + 0x28], eax
mov eax, dword [esp + 0x48]
mov dword [eax], 0
jmp 0x4a2570
mov ecx, dword [esp + 0xd8]
mov edx, dword [esp + 0xec]
or eax, 0xffffffff
mov dword [esi + 0x14], ecx
mov word [esi + 0x5c], ax
mov eax, dword [esp + 0x28]
mov dword [esi], eax
mov eax, dword [esp + 0xf8]
mov dword [esi + 0x10], edx
mov dword [esi + 4], edi
mov byte [esi + 0x40], al
mov eax, dword [edi + 8]
mov dword [esi + 8], eax
test eax, eax
je 0x4a2550
mov dword [eax + 0xc], esi
mov dword [edi + 8], esi
mov byte [esi + 0x43], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x34]
mov dword [ecx + 0x28], eax
mov dword [esp + 0xc], 0
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
cmp byte [ecx + eax*4 + 1], 0xfa
mov eax, dword [esp + 0x48]
setne cl
mov byte [eax + 0x16], cl
mov ecx, dword [esp + 0x48]
cmp byte [ecx + 0x16], 0
sete al
mov byte [ecx + 0x17], al
jmp case.0x49f610.10
mov edx, dword [esi + edi*4 + 4]
mov ecx, dword [esp + 8]
push 1
push 0xffffffffffffffff
push dword [esi + edi*4 + 8]
call fcn.0049f150
add esp, 0xc
mov dword [esp + 0x30], eax
test eax, eax
je 0x4a5932
mov ecx, dword [esp + 0x10]
mov edx, ecx
mov byte [eax + 0x14], 1
mov esi, dword [esp + 0x30]
push 0x41e
mov eax, dword [ecx + 0xc]
add esi, 0x20
and eax, 0x1000
xor ecx, ecx
or eax, 0x800
shr eax, 0xb
push eax
push esi
call fcn.00495e00
mov ecx, eax
add esp, 0xc
mov dword [esp + 0xc], ecx
test ecx, ecx
jne 0x4a2872
mov eax, dword [esi]
mov eax, dword [eax + 4]
cmp dword [eax + 0x24], ecx
jne 0x4a2637
mov eax, dword [eax]
mov eax, dword [eax + 0xa8]
mov dword [eax + 0x10], 0x1f4
mov eax, dword [eax + 0x28]
test eax, eax
je 0x4a2637
push 0x1f4
push eax
call dword [0x533d44]
add esp, 8
jmp 0x4a263f
test ecx, ecx
jne 0x4a2872
mov ecx, dword [esp + 0x30]
mov edx, 1
mov ecx, dword [ecx + 0x20]
call fcn.00496590
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4a2872
mov eax, dword [esp + 0x14]
cmp dword [eax + edi*4 + 0x10], 0
mov eax, dword [esp + 0x30]
je 0x4a27cc
mov eax, dword [eax + 0x20]
lea edx, [esp + 0x138]
push ecx
lea ecx, [esp + 0x114]
push 1
push ecx
mov ecx, dword [eax + 4]
call fcn.004979b0
add esp, 0xc
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4a27b1
mov esi, dword [esp + 0x138]
lea edx, [eax + 0xa]
mov ecx, esi
call fcn.00495c50
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x4a26c2
mov esi, dword [ecx + 0x10]
call fcn.0048fe90
mov ecx, esi
call fcn.00494200
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x30]
mov eax, dword [eax + edi*4 + 0x10]
mov esi, dword [ecx]
mov dword [esp + 0xd8], eax
mov eax, dword [ecx + 0x20]
mov dword [esp + 0xec], eax
mov edi, dword [eax + 4]
cmp byte [edi + 0x10], 0
je 0x4a26f7
mov dword [esp + 0xc], 8
jmp 0x4a2789
mov eax, dword [esp + 0x110]
cmp eax, 1
jne 0x4a2737
mov ecx, dword [edi]
lea edx, [esp + 0x12c]
mov dword [esp + 0x12c], 0xffffffff
call fcn.00492fa0
cmp dword [esp + 0x12c], 0
jne 0x4a2730
mov dword [esp + 0xc], 0x10
jmp 0x4a2785
mov eax, dword [esp + 0x110]
mov dword [esi + 0x14], eax
or eax, 0xffffffff
mov word [esi + 0x5c], ax
mov eax, dword [esp + 0xd8]
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0xec]
mov dword [esi], eax
mov dword [esi + 4], edi
mov byte [esi + 0x40], 1
mov eax, dword [edi + 8]
mov dword [esi + 8], eax
test eax, eax
je 0x4a2768
mov dword [eax + 0xc], esi
mov dword [edi + 8], esi
mov byte [esi + 0x43], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
mov dword [esp + 0xc], 0
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
mov eax, dword [edx + eax*4 + 0x10]
mov dword [ecx + 0x28], eax
mov eax, dword [esp + 8]
mov eax, dword [eax]
mov eax, dword [eax + 8]
mov edx, dword [eax + 0xc]
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 0x28]
mov al, byte [edx + 0x49]
mov byte [ecx + 4], al
mov eax, dword [esp + 0x30]
mov byte [eax + 0x16], 0
mov ecx, dword [esp + 0x30]
cmp byte [ecx + 0x16], 0
sete al
mov byte [ecx + 0x17], al
jmp case.0x49f610.10
mov ecx, dword [eax + 0x20]
mov esi, dword [eax]
mov dword [esp + 0xd8], ecx
mov edi, dword [ecx + 4]
cmp byte [edi + 0x10], 0
je 0x4a27ee
mov dword [esp + 0xc], 8
jmp 0x4a286e
mov ecx, dword [edi]
lea edx, [esp + 0x114]
mov dword [esp + 0x114], 0xffffffff
call fcn.00492fa0
cmp dword [esp + 0x114], 0
jne 0x4a281b
mov dword [esp + 0xc], 0x10
jmp 0x4a286a
or eax, 0xffffffff
mov dword [esi + 0x14], 1
mov word [esi + 0x5c], ax
mov eax, dword [esp + 0xd8]
mov dword [esi + 0x10], 0
mov dword [esi], eax
mov dword [esi + 4], edi
mov byte [esi + 0x40], 1
mov eax, dword [edi + 8]
mov dword [esi + 8], eax
test eax, eax
je 0x4a284d
mov dword [eax + 0xc], esi
mov dword [edi + 8], esi
mov byte [esi + 0x43], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0x30]
mov byte [eax + 0x16], 1
mov ecx, dword [esp + 0x30]
cmp byte [ecx + 0x16], 0
sete al
mov byte [ecx + 0x17], al
jmp case.0x49f610.10
mov edx, dword [esi + edi*4 + 4]
mov ecx, dword [esp + 8]
push 0
push 0xffffffffffffffff
push dword [esi + edi*4 + 0xc]
call fcn.0049f150
add esp, 0xc
mov dword [esp + 0x30], eax
test eax, eax
je 0x4a5932
mov byte [eax + 0x14], 1
mov eax, dword [esp + 0x30]
mov ecx, dword [esi + edi*4 + 8]
mov dword [eax + 0x24], ecx
mov eax, dword [esp + 0x30]
mov byte [eax + 0x16], 1
mov eax, dword [esp + 0x30]
mov byte [eax + 0x17], 0
jmp case.0x49f610.10
mov edx, dword [esp + 8]
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [edx + 0x34]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x4a291b
mov ecx, dword [esi + 0x20]
test ecx, ecx
je 0x4a28ed
call fcn.00496060
jmp 0x4a28f8
mov ecx, dword [esi]
test ecx, ecx
je 0x4a28fc
call fcn.004968a0
mov edx, dword [esp + 8]
mov ecx, dword [esi + 0x38]
test ecx, ecx
je 0x4a291b
mov eax, dword [esi + 0x3c]
mov byte [edx + 0x70], 1
push ecx
mov eax, dword [eax + 0x1c]
call eax
mov eax, dword [esp + 0xc]
add esp, 4
mov byte [eax + 0x70], 0
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
mov ecx, dword [eax + edi*4 + 4]
mov edi, dword [esp + 8]
mov eax, dword [edi + 0x34]
mov dword [eax + ecx*4], 0
jmp 0x4a0866
mov eax, dword [esp + 8]
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [eax + 0x34]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x38], ecx
cmp dword [ecx], 0
je 0x4a0855
movzx eax, byte [esi + edi*4]
mov dword [esp + 0x34], eax
mov byte [ecx + 0x14], 0
mov ecx, dword [esp + 0x38]
cmp byte [ecx + 0x16], 0
je 0x4a2ba9
mov ecx, dword [esp + 0x2c]
call fcn.0049f250
mov ecx, dword [esp + 0x2c]
call fcn.0049aa50
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x64], edx
mov byte [eax + 0x11], 0
movzx eax, word [ecx + 0x1c]
test al, 4
jne 0x4a2b4c
test al, 8
je 0x4a0855
mov edi, dword [esp + 0x60]
mov esi, dword [esp + 0x64]
test edi, edi
jne 0x4a2af2
cmp esi, 0x80000000
jne 0x4a2af2
movsd xmm0, qword [ecx + 8]
movsd xmm1, qword [esp + 0x148]
comisd xmm1, xmm0
ja 0x4a29e8
comisd xmm0, xmmword [esp + 0x130]
jbe 0x4a2af2
movsd xmm0, qword [esp + 0x130]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x30], 1
comisd xmm0, xmmword [ecx + 8]
jbe 0x4a2a58
cmp eax, 0x2e
je 0x4a2a12
cmp eax, 0x2d
jne 0x4a2ae1
mov eax, dword [esp + 0x38]
mov esi, dword [eax]
mov ecx, esi
call fcn.00496eb0
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4a5adb
cmp byte [esi + 0x43], al
jne 0x4a2a43
mov dword [esp + 0x30], 1
mov dword [esp + 0xc], edx
jmp 0x4a2ad6
mov ecx, esi
mov dword [esp + 0x30], 0
call fcn.00496ff0
mov edx, eax
test edx, edx
jmp 0x4a2acc
cmp eax, 0x2b
je 0x4a2a62
cmp eax, 0x2c
jne 0x4a2ae1
mov eax, dword [esp + 0x38]
mov esi, dword [eax]
cmp byte [esi + 0x43], 1
jne 0x4a2a8d
cmp byte [esi + 0x41], 0
je 0x4a2a8d
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xc], 0
mov edx, dword [ecx + eax*4 + 8]
jmp 0x4a0859
mov ecx, esi
call fcn.00496eb0
mov ecx, eax
mov edx, ecx
mov dword [esp + 0xc], edx
test ecx, ecx
jne 0x4a2ac8
cmp byte [esi + 0x43], al
jne 0x4a2aaf
mov dword [esp + 0x30], 1
jmp 0x4a2ad6
mov ecx, esi
mov dword [esp + 0x30], 0
call fcn.004970d0
mov ecx, eax
test ecx, ecx
sete al
mov byte [esi + 0x41], al
mov edx, ecx
test ecx, ecx
mov dword [esp + 0xc], edx
jne 0x4a5adb
cmp dword [esp + 0x30], 0
je 0x4a0862
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + eax*4 + 8]
jmp 0x4a0859
mov eax, dword [esp + 0x34]
cmp eax, 0x2b
je 0x4a2b24
cmp eax, 0x2d
je 0x4a2b24
mov edx, esi
mov ecx, edi
call fcn.00502320
mov eax, dword [esp + 0x2c]
comisd xmm0, xmmword [eax + 8]
jbe 0x4a2b54
add edi, 0xffffffff
mov dword [esp + 0x60], edi
adc esi, 0xffffffff
mov dword [esp + 0x64], esi
jmp 0x4a2b54
mov edx, esi
mov ecx, edi
call fcn.00502320
mov eax, dword [esp + 0x2c]
movsd xmm1, qword [eax + 8]
comisd xmm1, xmm0
jbe 0x4a2b54
add edi, 1
mov dword [esp + 0x60], edi
adc esi, 0
mov dword [esp + 0x64], esi
jmp 0x4a2b54
mov esi, dword [esp + 0x64]
mov edi, dword [esp + 0x60]
mov ecx, dword [esp + 0x38]
lea eax, [esp + 0x30]
push eax
push 0
push esi
mov ecx, dword [ecx]
xor edx, edx
push edi
call fcn.004971b0
mov edx, eax
add esp, 0x10
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4a5adb
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x14]
cmp dword [esp + 0x30], eax
jne 0x4a2c21
mov eax, dword [esp + 0x38]
mov byte [eax + 0x11], 1
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x64]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
jmp 0x4a2c21
mov eax, dword [esi + edi*4 + 0x10]
mov dword [esp + 0x58], eax
mov eax, dword [ecx + 0x28]
mov dword [esp + 0x40], eax
mov ax, word [esp + 0x58]
mov word [esp + 0x44], ax
mov eax, dword [esp + 0x34]
cmp eax, 0x2e
je 0x4a2bd4
cmp eax, 0x2c
je 0x4a2bd4
xor eax, eax
jmp 0x4a2bd9
mov eax, 8
mov word [esp + 0x46], ax
mov eax, dword [esi + edi*4 + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x58]
lea eax, [eax + edx*8]
mov dword [esp + 0x50], eax
lea edx, [esp + 0x40]
mov ecx, dword [ecx]
lea eax, [esp + 0x30]
push eax
push 0
push 0
push 0
call fcn.004971b0
mov edx, eax
add esp, 0x10
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4a5adb
mov eax, dword [esp + 0x38]
mov byte [eax + 0x11], dl
mov eax, dword [esp + 0x38]
mov byte [eax + 0x15], 0
mov eax, dword [esp + 0x38]
mov dword [eax + 0x44], 0
mov eax, dword [esp + 0x34]
cmp eax, 0x2d
je 0x4a2c77
cmp eax, 0x2e
je 0x4a2c77
mov ecx, dword [esp + 0x30]
test ecx, ecx
jg 0x4a2c66
jne 0x4a2c51
cmp eax, 0x2b
je 0x4a2c66
mov eax, dword [esp + 0x38]
xor ecx, ecx
mov eax, dword [eax]
cmp byte [eax + 0x43], 1
setne cl
mov dword [esp + 0x30], ecx
jmp 0x4a2cc5
mov ecx, dword [esp + 0x38]
lea edx, [esp + 0x30]
mov ecx, dword [ecx]
call fcn.00497820
jmp 0x4a2caf
mov ecx, dword [esp + 0x30]
test ecx, ecx
js 0x4a2ca0
jne 0x4a2c86
cmp eax, 0x2e
je 0x4a2ca0
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 8]
inc edx
mov esi, dword [esp + 0x10]
mov dword [esp + 0x30], 0
jmp 0x49f4bd
mov ecx, dword [esp + 0x38]
lea edx, [esp + 0x30]
mov ecx, dword [ecx]
call fcn.004976b0
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4a5adb
mov eax, dword [esp + 0x38]
mov byte [eax + 0x11], 0
cmp dword [esp + 0x30], 0
je 0x4a0e99
mov edx, dword [esi + edi*4 + 8]
mov edi, dword [esp + 8]
dec edx
mov esi, dword [esp + 0x10]
inc edx
jmp 0x49f4bd
mov ecx, dword [esi + edi*4 + 4]
mov edi, dword [esp + 8]
mov eax, dword [edi + 0x34]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x30], eax
cmp dword [eax], 0
je 0x4a05b1
mov ecx, dword [esp + 0xe4]
mov byte [eax + 0x14], 0
call fcn.0049aa50
mov ecx, dword [esp + 0x30]
mov dword [ecx + 0x18], eax
mov dword [ecx + 0x1c], edx
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0xc]
mov byte [eax + 0x11], 0
mov eax, dword [esp + 0x30]
mov byte [eax + 0x15], 1
jmp 0x4a0866
mov eax, dword [esp + 8]
xor edx, edx
mov dword [esp + 0x30], edx
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [eax + 0x34]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x34], ecx
cmp dword [ecx], edx
je 0x4a2df8
mov eax, dword [esp + 0x2c]
mov edx, 0x4000
test word [eax + 0x1c], dx
je 0x4a2d6f
mov ecx, eax
call fcn.0049a820
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x2c]
mov ecx, dword [ecx + 0x28]
lea edx, [esp + 0x40]
push 0x97
push edx
push dword [eax + 0x14]
mov edx, dword [eax + 0x18]
call fcn.0049db60
add esp, 0xc
mov dword [esp + 0x3c], eax
test eax, eax
je 0x4a5932
cmp byte [esi + edi*4], 0x31
jne 0x4a2da5
or word [eax + 6], 0x10
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x38]
mov edx, eax
push ecx
mov ecx, dword [esp + 0x38]
push 0
push 0
push 0
mov ecx, dword [ecx]
call fcn.004971b0
mov ecx, dword [esp + 0x4c]
add esp, 0x10
mov dword [esp + 0xc], eax
call fcn.0049dd40
mov edx, dword [esp + 0xc]
test edx, edx
jne 0x4a0862
xor eax, eax
cmp dword [esp + 0x38], eax
sete al
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x34]
mov byte [eax + 0x15], dl
mov eax, dword [esp + 0x34]
mov dword [eax + 0x44], edx
mov edx, dword [esp + 0x30]
cmp byte [esi + edi*4], 0x31
jne 0x4a2e05
test edx, edx
jmp 0x4a0853
test edx, edx
jne case.0x49f610.10
jmp 0x4a0855
mov eax, dword [esi + edi*4 + 0x10]
mov edx, dword [esp + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x58]
lea eax, [eax + ecx*8]
mov dword [esp + 0x40], eax
mov ecx, dword [esi + edi*4 + 4]
xor esi, esi
mov eax, dword [edx + 0x34]
mov eax, dword [eax + ecx*4]
xor ecx, ecx
mov dword [esp + 0x34], eax
mov dword [eax + 0x40], 0
mov eax, dword [esp + 0x34]
mov dword [eax + 0x44], 0
mov eax, dword [esp + 0x34]
mov edi, dword [eax]
mov dword [esp + 0x38], edi
mov eax, dword [eax + 0x28]
movzx eax, word [eax + 6]
cmp si, ax
mov word [esp + 0x3c], ax
mov esi, dword [esp + 0x40]
mov edx, eax
mov word [esp + 0x30], cx
jae 0x4a2e8e
movzx eax, cx
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x1c], 1
jne 0x4a2f38
inc cx
mov word [esp + 0x30], cx
cmp cx, dx
jb 0x4a2e71
test edi, edi
je case.0x49f610.10
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0x28]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x3c]
inc eax
mov dword [esp + 0x58], esi
mov esi, dword [esp + 0x2c]
mov ecx, esi
mov word [esp + 0x4c], ax
mov eax, 0x20
mov word [esp + 0x4e], ax
call fcn.0049aa50
mov dword [esi], eax
mov ecx, 0xbf04
mov ax, word [esi + 0x1c]
and ax, cx
mov dword [esi + 4], edx
or ax, 4
mov ecx, edx
mov word [esi + 0x1c], ax
lea edx, [esp + 0x48]
mov eax, dword [esi]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x34]
add eax, 0x40
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x38]
push eax
push 0
push 0
push 0
call fcn.004971b0
add esp, 0x10
mov dword [esp + 0xc], eax
test byte [esp + 0x4e], 0x20
jne 0x4a2ae1
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x54]
cmp ecx, dword [esp + 0x60]
jne 0x4a2f2e
cmp eax, dword [esp + 0x64]
je 0x4a2ae1
mov dword [esi], ecx
mov dword [esi + 4], eax
jmp case.0x49f610.10
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + eax*4 + 8]
mov dword [esp + 0x38], 0
jmp 0x4a0859
mov eax, dword [esp + 8]
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [eax + 0x34]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x30], eax
mov ecx, dword [eax]
mov dword [esp + 0x34], ecx
test ecx, ecx
je 0x4a2fff
mov eax, dword [esp + 0x2c]
lea edi, [esp + 0x38]
push edi
mov dword [esp + 0x3c], 0
push 0
mov edx, dword [eax]
mov eax, dword [eax + 4]
push eax
mov dword [esp + 0x4c], edx
push edx
xor edx, edx
mov dword [esp + 0x54], eax
call fcn.004971b0
mov dword [esp + 0x1c], eax
add esp, 0x10
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x24]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x30]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
cmp dword [esp + 0x38], 0
mov eax, dword [esp + 0x30]
sete cl
mov byte [eax + 0x11], cl
mov eax, dword [esp + 0x30]
mov byte [eax + 0x14], 0
mov eax, dword [esp + 0x30]
mov dword [eax + 0x44], 0
mov eax, dword [esp + 0x30]
mov byte [eax + 0x15], 0
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x4a2ff3
mov eax, dword [esi + edi*4 + 8]
dec eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x30]
mov dword [eax + 0x40], ecx
jmp case.0x49f610.10
mov edx, dword [esi + edi*4 + 8]
mov dword [eax + 0x40], 0
jmp 0x4a0859
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x34]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax + 0x30]
mov eax, dword [eax + 0x34]
mov dword [edx + 4], eax
mov dword [edx], ecx
mov ecx, dword [esi + edi*4 + 4]
mov edi, dword [esp + 8]
mov eax, dword [edi + 0x34]
mov eax, dword [eax + ecx*4]
mov ecx, 0xbf04
add dword [eax + 0x30], 1
adc dword [eax + 0x34], 0
mov ax, word [edx + 0x1c]
and ax, cx
or ax, 4
mov word [edx + 0x1c], ax
mov edx, dword [esp + 0xc]
jmp 0x4a0866
xorps xmm0, xmm0
mov dword [esp + 0x3c], 0
movlpd qword [esp + 0x30], xmm0
mov ecx, dword [esi + edi*4 + 4]
mov edi, dword [esp + 8]
mov eax, dword [edi + 0x34]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x38], ecx
cmp dword [ecx], 0
je 0x4a32ad
mov dword [esp + 0x40], 0
cmp byte [ecx + 0x13], 0
jne 0x4a31c9
mov eax, dword [ecx]
mov esi, dword [eax + 0x18]
mov edx, dword [eax + 0x1c]
mov eax, esi
or eax, edx
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], edx
jne 0x4a316d
mov esi, dword [ecx]
cmp byte [esi + 0x43], 1
jne 0x4a30c0
cmp byte [esi + 0x41], al
jne 0x4a3125
mov ecx, esi
call fcn.00496eb0
mov ecx, eax
mov dword [esp + 0xc], ecx
test ecx, ecx
jne 0x4a30fa
cmp byte [esi + 0x43], al
jne 0x4a30e1
mov eax, 1
mov dword [esp + 0x3c], eax
jmp 0x4a310c
mov ecx, esi
mov dword [esp + 0x3c], 0
call fcn.004970d0
mov ecx, eax
test ecx, ecx
sete al
mov byte [esi + 0x41], al
mov edx, ecx
mov dword [esp + 0xc], edx
test ecx, ecx
jne 0x4a5adf
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x4a3125
mov esi, 1
xor edx, edx
mov dword [esp + 0x30], esi
add esi, esi
mov dword [esp + 0x34], edx
adc edx, edx
jmp 0x4a319e
mov ecx, dword [esp + 0x38]
lea edx, [esp + 0x30]
mov ecx, dword [ecx]
call fcn.00496930
mov esi, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov dword [esp + 0xc], eax
cmp esi, 0xffffffff
jne 0x4a315f
cmp edx, 0x7fffffff
jne 0x4a315f
mov eax, dword [esp + 0x38]
mov byte [eax + 0x13], 1
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
jmp 0x4a316d
add esi, 1
mov dword [esp + 0x30], esi
adc edx, 0
mov dword [esp + 0x34], edx
cmp edx, 0x7fffffff
jg 0x4a3184
jl 0x4a317c
cmp esi, 0xffffffff
jae 0x4a3184
add esi, 1
adc edx, 0
jmp 0x4a319e
xorps xmm0, xmm0
movlpd qword [esp + 0xf0], xmm0
mov edx, dword [esp + 0xf4]
mov esi, dword [esp + 0xf0]
mov eax, dword [esp + 0x38]
mov edi, dword [eax]
mov eax, dword [edi + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x4a31c5
nop
mov eax, dword [ecx + 0x14]
cmp eax, dword [edi + 0x14]
jne 0x4a31be
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x1c], edx
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x4a31b0
mov edi, dword [esp + 8]
mov eax, dword [esp + 0x38]
cmp byte [eax + 0x13], 0
je 0x4a3292
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x30]
mov edx, dword [eax + 0x34]
xor eax, eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], edx
mov dword [esp + 0x40], eax
nop
test eax, eax
jne 0x4a3214
mov eax, ecx
xor esi, esi
and eax, 0xffffff
cmp eax, ecx
jne 0x4a3214
cmp esi, edx
jne 0x4a3214
add ecx, 1
mov dword [esp + 0x30], ecx
adc edx, esi
mov dword [esp + 0x34], edx
jmp 0x4a3243
lea edx, [esp + 0x30]
mov ecx, 8
call fcn.0048c9d0
cmp dword [esp + 0x40], 5
mov ecx, dword [esp + 0x30]
jge 0x4a323f
and ecx, 0xffffff
xor edx, edx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], edx
jmp 0x4a3243
mov edx, dword [esp + 0x34]
lea eax, [esp + 0x3c]
push eax
push 0
push edx
push ecx
mov ecx, dword [esp + 0x48]
xor edx, edx
mov ecx, dword [ecx]
call fcn.004971b0
mov ecx, eax
add esp, 0x10
mov eax, dword [esp + 0x40]
inc eax
mov dword [esp + 0xc], ecx
mov dword [esp + 0x40], eax
test ecx, ecx
jne 0x4a3292
cmp eax, 0x64
jge 0x4a3287
cmp dword [esp + 0x3c], ecx
jne 0x4a3292
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
jmp 0x4a31f0
cmp dword [esp + 0x3c], 0
je 0x4a5acc
mov eax, dword [esp + 0x38]
mov byte [eax + 0x11], 0
mov eax, dword [esp + 0x38]
mov byte [eax + 0x15], 0
mov eax, dword [esp + 0x38]
mov dword [eax + 0x44], 0
mov edx, dword [esp + 0x18]
mov ecx, 0xbf04
mov ax, word [edx + 0x1c]
and ax, cx
or ax, 4
jmp 0x4a1afa
mov eax, dword [esp + 8]
mov edx, dword [eax + 0x58]
mov eax, dword [esi + edi*4 + 8]
mov dword [esp + 0xd8], edx
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x30], esi
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x34]
mov ecx, dword [eax + ecx*4]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x40], ecx
cmp byte [edx + edi*4], 0x36
mov edx, dword [esp + 0xd8]
mov eax, dword [eax + edi*4 + 0xc]
mov dword [esp + 0xc], ecx
jne 0x4a332e
lea eax, [eax + eax*4]
lea ecx, [edx + eax*8]
mov dword [esp + 0x34], ecx
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0xc]
jmp 0x4a3333
cdq
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x38], eax
test byte [edx + edi*4 + 3], 1
je 0x4a3349
mov eax, dword [esp + 8]
inc dword [eax + 0x74]
test byte [edx + edi*4 + 3], 2
je 0x4a336e
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], ecx
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x30]
mov dword [esp + 0xc], ecx
test byte [esi + 0x1c], 1
je 0x4a3392
mov dword [esi + 0x14], 0
mov eax, dword [esp + 0x30]
mov dword [eax + 0x18], 0
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x30]
mov dword [esp + 0xc], ecx
test byte [edx + edi*4 + 3], 0x10
je 0x4a339e
mov eax, dword [ecx + 0x40]
jmp 0x4a33a0
xor eax, eax
mov dword [esp + 0x48], eax
mov dword [esp + 0xf8], eax
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x4a33ba
mov edi, dword [esi]
jmp 0x4a33bc
xor edi, edi
mov dword [esp + 0x44], edi
mov edx, dword [ecx]
mov eax, dword [edx + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x4a33ff
nop dword [eax]
mov eax, dword [ecx + 0x14]
cmp eax, dword [edx + 0x14]
jne 0x4a33e6
mov dword [ecx + 0x18], 0
mov dword [ecx + 0x1c], 0
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x4a33d0
mov eax, dword [esp + 0x48]
mov edi, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x30]
jmp 0x4a340a
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
push eax
mov eax, dword [esp + 0x28]
mov ecx, dword [ecx]
movzx eax, byte [edx + eax*4 + 3]
xor edx, edx
and eax, 8
push eax
push edi
push dword [esi + 0x18]
push dword [esi + 0x14]
push dword [esp + 0x50]
push dword [esp + 0x50]
call fcn.00499b20
mov esi, dword [esp + 0x2c]
add esp, 0x1c
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0xc]
mov byte [eax + 0x11], 0
mov eax, dword [esp + 0x40]
mov byte [eax + 0x15], 0
mov eax, dword [esp + 0x40]
mov dword [eax + 0x44], 0
test edx, edx
jne 0x49fe77
cmp dword [esi + 0xb8], edx
je 0x49fe77
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x14]
cmp dword [edi + esi*4 + 0x10], edx
je 0x4a0862
mov eax, dword [esp + 0x40]
push dword [esp + 0x3c]
push dword [esp + 0x3c]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x18]
add ecx, ecx
mov eax, dword [eax + 8]
mov edx, dword [eax + ecx*8]
mov eax, 0x12
mov dword [esp + 0x54], edx
mov ecx, dword [edi + esi*4 + 0x10]
mov dword [esp + 0x58], ecx
test byte [edi + esi*4 + 3], 4
mov esi, 0x17
push ecx
cmovne eax, esi
mov esi, dword [esp + 0x1c]
push edx
push eax
mov dword [esp + 0x68], eax
push dword [esi + 0xb4]
mov eax, dword [esi + 0xb8]
call eax
mov edx, dword [esp + 0x34]
add esp, 0x18
mov edi, dword [esp + 8]
inc edx
jmp 0x49f4bd
mov eax, dword [esp + 8]
xorps xmm0, xmm0
movlpd qword [esp + 0x30], xmm0
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [eax + 0x34]
mov esi, dword [eax + ecx*4]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x38], esi
cmp dword [eax + 0xb8], 0
je 0x4a3528
mov eax, dword [esp + 0x14]
cmp dword [eax + edi*4 + 0x10], 0
je 0x4a3528
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ecx
cmp byte [esi + 0x15], 0
je 0x4a35a0
mov ecx, dword [esi]
lea eax, [esp + 0x118]
push eax
push 0
push dword [esi + 0x1c]
xor edx, edx
push dword [esi + 0x18]
call fcn.004971b0
mov edx, eax
add esp, 0x10
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4a5adb
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc], ecx
mov ecx, dword [esp + 0x118]
test ecx, ecx
mov dword [esi + 8], eax
sete al
mov byte [esi + 0x11], al
test ecx, ecx
jns 0x4a3593
mov ecx, dword [esi]
lea edx, [esp + 0x118]
call fcn.004976b0
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4a5adb
mov byte [esi + 0x15], 0
mov dword [esi + 0x44], 0
jmp 0x4a35ef
mov edi, dword [esi]
test edi, edi
je 0x4a35eb
cmp byte [edi + 0x43], 2
jb 0x4a35c1
mov ecx, edi
call fcn.00495270
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4a5adb
cmp byte [edi + 0x43], 1
jne 0x4a35d1
cmp dword [edi + 0x50], 0
jne 0x4a35d1
xor eax, eax
jmp 0x4a35d6
mov eax, 1
mov edi, dword [esp + 0x24]
test eax, eax
je 0x4a35ef
mov dword [esi + 0x44], 0
mov byte [esi + 0x14], 1
jmp 0x4a35ef
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x38]
mov edx, dword [eax]
mov eax, dword [edx + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x4a361d
nop
mov eax, dword [ecx + 0x14]
cmp eax, dword [edx + 0x14]
jne 0x4a3616
mov dword [ecx + 0x18], 0
mov dword [ecx + 0x1c], 0
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x4a3600
mov ecx, dword [esp + 0x38]
mov ecx, dword [ecx]
call fcn.00499de0
mov esi, dword [esp + 0x10]
mov dword [esp + 0xc], eax
cmp dword [esp + 0xc], 0
mov eax, dword [esp + 0x38]
mov dword [eax + 0x44], 0
jne 0x4a367d
mov edx, dword [esi + 0xb8]
test edx, edx
je 0x4a367d
mov eax, dword [esp + 0x14]
mov eax, dword [eax + edi*4 + 0x10]
test eax, eax
je 0x4a367d
push dword [esp + 0x34]
push dword [esp + 0x34]
push eax
mov eax, dword [esp + 0x44]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 8]
add ecx, ecx
push dword [eax + ecx*8]
push 9
push dword [esi + 0xb4]
call edx
add esp, 0x18
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
test byte [eax + edi*4 + 8], 1
mov edi, dword [esp + 8]
je 0x4a086a
inc dword [edi + 0x74]
jmp 0x4a086a
mov edi, dword [esp + 8]
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov eax, dword [edi + 0x74]
add dword [esi + 0x40], eax
mov dword [esi + 0x3c], eax
mov dword [edi + 0x74], 0
jmp 0x4a086a
mov eax, dword [esi + edi*4 + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x58]
lea eax, [eax + ecx*8]
mov ecx, dword [esi + edi*4 + 4]
mov edi, dword [esp + 8]
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0x34]
mov esi, dword [eax + ecx*4]
mov dword [esp + 0x30], esi
mov eax, dword [esi]
mov dword [esp + 0x34], eax
cmp byte [esi + 0x15], 0
je 0x4a3762
mov ecx, dword [esi]
lea eax, [esp + 0x11c]
push eax
push 0
push dword [esi + 0x1c]
xor edx, edx
push dword [esi + 0x18]
call fcn.004971b0
mov edx, eax
add esp, 0x10
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4a5adf
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc], ecx
mov ecx, dword [esp + 0x11c]
test ecx, ecx
mov dword [esi + 8], eax
sete al
mov byte [esi + 0x11], al
test ecx, ecx
jns 0x4a3755
mov ecx, dword [esi]
lea edx, [esp + 0x11c]
call fcn.004976b0
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4a5adf
mov byte [esi + 0x15], 0
mov dword [esi + 0x44], 0
jmp 0x4a37b1
mov edi, dword [esi]
test edi, edi
je 0x4a37ad
cmp byte [edi + 0x43], 2
jb 0x4a3783
mov ecx, edi
call fcn.00495270
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4a5adb
cmp byte [edi + 0x43], 1
jne 0x4a3793
cmp dword [edi + 0x50], 0
jne 0x4a3793
xor eax, eax
jmp 0x4a3798
mov eax, 1
mov edi, dword [esp + 8]
test eax, eax
je 0x4a37b1
mov dword [esi + 0x44], 0
mov byte [esi + 0x14], 1
jmp 0x4a37b1
mov edi, dword [esp + 8]
mov eax, dword [esp + 0x30]
cmp byte [eax + 0x17], 0
je 0x4a37ee
mov ecx, dword [esp + 0x34]
lea edx, [esp + 0x40]
call fcn.00496930
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0x48]
cdq
cmp dword [esp + 0x44], edx
jg 0x4a5b6b
mov edx, dword [esp + 0x40]
jl 0x4a37e8
cmp edx, eax
ja 0x4a5b6b
mov dword [esp + 0x38], edx
jmp 0x4a386a
mov edx, dword [esp + 0x34]
mov dword [esp + 0xec], edx
cmp word [edx + 0x3e], 0
jne 0x4a3856
movsx eax, word [edx + 0x5c]
movzx edi, word [edx + eax*2 + 0xb0]
mov eax, dword [edx + eax*4 + 0x60]
mov dword [esp + 0xd8], eax
mov ecx, dword [eax + 0x40]
movzx esi, word [eax + 0xc]
lea eax, [edx + 0x20]
add esi, ecx
push eax
movzx eax, byte [esi + edi*2 + 1]
movzx edx, byte [esi + edi*2]
mov esi, dword [esp + 0xdc]
shl edx, 8
or edx, eax
movzx eax, word [esi + 0x12]
and edx, eax
add edx, ecx
mov ecx, esi
call fcn.004953b0
mov edx, dword [esp + 0xf0]
add esp, 4
mov byte [edx + 0x42], 1
mov esi, dword [esp + 0x10]
mov edx, dword [edx + 0x30]
mov dword [esp + 0x38], edx
cmp edx, dword [esi + 0x48]
ja 0x4a5b5d
mov esi, dword [esp + 0x18]
mov ecx, esi
push 0
call fcn.0049a630
add esp, 4
test eax, eax
jne 0x4a5932
mov eax, dword [esp + 0x38]
mov ecx, 0xbf10
mov edi, dword [esi + 0x14]
mov dword [esi + 0x18], eax
mov ax, word [esi + 0x1c]
and ax, cx
or ax, 0x10
mov word [esi + 0x1c], ax
mov eax, dword [esp + 0x30]
cmp byte [eax + 0x17], 0
je 0x4a38ce
mov ecx, dword [esp + 0x34]
xor edx, edx
push 0
push edi
push dword [esp + 0x40]
call fcn.004969d0
mov edx, eax
mov byte [esi + 0x1f], 1
add esp, 0xc
mov dword [esp + 0xc], edx
jmp 0x4a0862
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
mov dword [esp + 0xd8], eax
mov al, byte [esi + 0x43]
test al, al
jne 0x4a38fa
mov esi, dword [esp + 0x18]
mov edx, 4
mov dword [esp + 0xc], edx
mov byte [esi + 0x1f], 1
jmp 0x4a0862
cmp al, 2
jb 0x4a390f
mov ecx, esi
call fcn.00495270
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4a392b
push 0
push edi
push dword [esp + 0xe0]
xor edx, edx
mov ecx, esi
call fcn.004969d0
mov edx, eax
add esp, 0xc
mov dword [esp + 0xc], edx
mov esi, dword [esp + 0x18]
mov byte [esi + 0x1f], 1
jmp 0x4a0862
mov ecx, dword [esi + edi*4 + 4]
mov edi, dword [esp + 8]
mov eax, dword [edi + 0x34]
mov esi, dword [eax + ecx*4]
mov ecx, esi
mov dword [esp + 0x30], ecx
cmp byte [esi + 0x14], 0
jne 0x4a05b1
cmp byte [esi + 0x15], 0
je 0x4a396f
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x1c]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
jmp 0x4a3a29
cmp dword [esi + 0x38], 0
je 0x4a39b8
mov eax, dword [esi + 0x38]
lea ecx, [esp + 0x38]
push ecx
mov eax, dword [eax]
mov dword [esp + 0x44], eax
mov eax, dword [eax]
mov dword [esp + 0x48], eax
push dword [esi + 0x38]
mov eax, dword [eax + 0x30]
call eax
push dword [edi + 0x68]
mov esi, dword [esp + 0x1c]
push esi
mov dword [esp + 0x1c], eax
call fcn.0048ae30
mov ecx, dword [esp + 0x50]
add esp, 0x10
mov eax, dword [ecx + 8]
mov dword [edi + 0x68], eax
mov dword [ecx + 8], 0
jmp 0x4a3a2d
mov edi, dword [esi]
test edi, edi
je 0x4a39f8
cmp byte [edi + 0x43], 2
jb 0x4a39dd
mov ecx, edi
call fcn.00495270
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4a5adb
mov ecx, dword [esp + 0x30]
cmp byte [edi + 0x43], 1
jne 0x4a39e9
cmp dword [edi + 0x50], 0
je 0x4a39f8
mov dword [esi + 0x44], 0
mov byte [esi + 0x14], 1
mov ecx, dword [esp + 0x30]
cmp byte [ecx + 0x11], 0
mov dword [esp + 0xc], 0
je 0x4a3a16
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
jmp 0x4a3a25
mov ecx, dword [ecx]
lea edx, [esp + 0x38]
call fcn.00496930
mov dword [esp + 0xc], eax
mov edi, dword [esp + 8]
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov dword [edx], eax
mov ax, word [edx + 0x1c]
mov dword [edx + 4], ecx
mov ecx, 0xbf04
and ax, cx
or ax, 4
mov word [edx + 0x1c], ax
mov edx, dword [esp + 0xc]
jmp 0x4a086a
mov ecx, dword [esi + edi*4 + 4]
mov edi, dword [esp + 8]
mov eax, dword [edi + 0x34]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x30], eax
mov byte [eax + 0x14], 1
mov eax, dword [esp + 0x30]
mov byte [eax + 0x11], 0
mov eax, dword [esp + 0x30]
mov ecx, dword [eax]
test ecx, ecx
je 0x4a05b1
call fcn.004951e0
mov edx, dword [esp + 0xc]
jmp 0x4a0866
mov eax, dword [esp + 8]
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [eax + 0x34]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x30], ecx
mov esi, dword [ecx]
mov dword [esp + 0x34], esi
test esi, esi
jne 0x4a3abb
mov dword [esp + 0x38], 1
jmp 0x4a3b0e
cmp byte [esi + 0x43], 1
jne 0x4a3ad1
cmp byte [esi + 0x41], 0
je 0x4a3ad1
mov dword [esp + 0xc], 0
jmp 0x4a3b0e
mov ecx, esi
call fcn.00496eb0
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4a3b0a
cmp byte [esi + 0x43], al
jne 0x4a3aef
mov dword [esp + 0x38], 1
jmp 0x4a3b0a
mov ecx, esi
mov dword [esp + 0x38], 0
call fcn.004970d0
test eax, eax
mov dword [esp + 0xc], eax
sete al
mov byte [esi + 0x41], al
mov ecx, dword [esp + 0x30]
mov al, byte [esp + 0x38]
mov byte [ecx + 0x14], al
mov eax, dword [esp + 0x30]
mov byte [eax + 0x15], 0
mov eax, dword [esp + 0x30]
mov byte [eax + 0x11], 0
mov eax, dword [esp + 0x30]
mov dword [eax + 0x44], 0
mov eax, dword [esp + 0x14]
mov eax, dword [eax + edi*4 + 8]
test eax, eax
jle case.0x49f610.10
cmp dword [esp + 0x38], 0
mov edi, dword [esp + 8]
mov esi, dword [esp + 0x10]
je 0x49f771
lea edx, [eax - 1]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0xc]
jmp 0x4a086a
mov eax, dword [esp + 8]
inc dword [eax + 0xbc]
jmp 0x4a3b73
mov eax, dword [esp + 8]
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [eax + 0x34]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x30], ecx
mov esi, dword [ecx]
mov dword [esp + 0x34], esi
test esi, esi
je 0x4a3bf2
mov ecx, esi
call fcn.00496eb0
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4a3bc2
cmp byte [esi + 0x43], al
jne 0x4a3baf
mov dword [esp + 0x38], 1
mov dword [esp + 0xc], eax
jmp 0x4a3bc2
mov ecx, esi
mov dword [esp + 0x38], 0
call fcn.00496ff0
mov dword [esp + 0xc], eax
cmp dword [esp + 0x38], 0
mov eax, dword [esp + 0x30]
sete cl
mov byte [eax + 0x12], cl
mov eax, dword [esp + 0x30]
mov byte [eax + 0x15], 0
mov eax, dword [esp + 0x30]
mov dword [eax + 0x44], 0
mov eax, dword [esp + 0x30]
mov byte [eax + 0x11], 0
mov ecx, dword [esp + 0x30]
jmp 0x4a3bfa
mov dword [esp + 0x38], 1
mov al, byte [esp + 0x38]
mov esi, dword [esp + 0x10]
mov byte [ecx + 0x14], al
cmp dword [esp + 0x38], 0
je 0x49fe73
mov eax, dword [esp + 0x14]
mov edx, dword [eax + edi*4 + 8]
mov edi, dword [esp + 8]
dec edx
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0xc]
jmp 0x4a086a
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xd8], 0
jne 0x4a5cd9
mov eax, dword [esp + 8]
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [eax + 0x34]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x30], eax
test eax, eax
je case.0x49f610.10
mov ecx, dword [eax]
mov dword [esp + 0x34], ecx
test ecx, ecx
jne 0x4a3c68
mov byte [eax + 0x14], 1
jmp case.0x49f610.10
mov dword [esp + 0x38], 1
lea edx, [esp + 0x38]
cmp byte [esi + edi*4], 0x42
jne 0x4a3c81
call fcn.004976b0
jmp 0x4a3c86
call fcn.00497820
mov ecx, dword [esp + 0x30]
mov dword [esp + 0xc], eax
mov al, byte [esp + 0x38]
mov byte [ecx + 0x14], al
mov eax, dword [esp + 0x30]
mov dword [eax + 0x44], 0
cmp dword [esp + 0x38], 0
jne 0x4a3cd7
mov eax, dword [esi + edi*4 + 8]
dec eax
mov dword [esp + 0x1c], eax
mov al, byte [esi + edi*4 + 3]
mov edi, dword [esp + 8]
test al, al
je 0x4a3cdb
mov edx, dword [esp + 0xc]
movzx eax, al
inc dword [edi + eax*4 + 0xb4]
mov eax, dword [esp + 0x30]
mov byte [eax + 0x11], 0
jmp 0x4a0866
mov edi, dword [esp + 8]
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0xc]
mov byte [eax + 0x11], 0
jmp 0x4a0866
mov eax, dword [esp + 8]
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [eax + 0x34]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x30], eax
mov ecx, dword [eax]
mov dword [esp + 0x34], ecx
test ecx, ecx
je case.0x49f610.10
mov esi, dword [esp + 0xe4]
mov edx, 0x4000
test word [esi + 0x1c], dx
je 0x4a3d3b
mov ecx, esi
call fcn.0049a820
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4a0862
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
mov edx, dword [esi + 0x18]
mov dword [esp + 0x38], edx
mov esi, dword [esi + 0x14]
mov dword [esp + 0x3c], esi
mov dword [esp + 0xd8], esi
mov esi, dword [esp + 0x14]
test byte [esi + edi*4 + 3], 0x10
mov esi, dword [esp + 0xd8]
je 0x4a3d67
mov eax, dword [eax + 0x40]
jmp 0x4a3d69
xor eax, eax
push eax
mov eax, dword [esp + 0x18]
push dword [eax + edi*4 + 0xc]
mov eax, edx
push 0
push 0
cdq
push 0x5204b8
push edx
push eax
mov edx, esi
call fcn.00499b20
mov dword [esp + 0x28], eax
add esp, 0x1c
mov eax, dword [esp + 0x30]
mov dword [eax + 0x44], 0
jmp case.0x49f610.10
mov eax, dword [esp + 8]
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [eax + 0x34]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x30], eax
mov ecx, dword [eax]
mov dword [esp + 0x34], ecx
test ecx, ecx
je case.0x49f610.10
mov eax, dword [eax + 0x28]
mov dword [esp + 0x40], eax
mov ax, word [esi + edi*4 + 0xc]
mov word [esp + 0x44], ax
xor eax, eax
mov word [esp + 0x46], ax
mov eax, dword [esi + edi*4 + 8]
mov edi, dword [esp + 8]
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea eax, [eax + edx*8]
mov dword [esp + 0x50], eax
lea edx, [esp + 0x40]
lea eax, [esp + 0x38]
push eax
push 0
push 0
push 0
call fcn.004971b0
add esp, 0x10
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4a3e1d
cmp dword [esp + 0x38], eax
jne 0x4a3e1d
mov ecx, dword [esp + 0x34]
call fcn.00499de0
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0xc]
mov dword [eax + 0x44], 0
jmp 0x4a0866
mov ecx, dword [esi + edi*4 + 4]
mov edi, dword [esp + 8]
mov eax, dword [edi + 0x34]
mov esi, dword [eax + ecx*4]
mov dword [esp + 0x34], esi
mov eax, dword [esi]
mov dword [esp + 0x30], eax
test eax, eax
je 0x4a05b1
cmp byte [esi + 0x15], 0
je 0x4a3ec9
mov ecx, dword [esi]
lea eax, [esp + 0x120]
push eax
push 0
push dword [esi + 0x1c]
xor edx, edx
push dword [esi + 0x18]
call fcn.004971b0
mov edx, eax
add esp, 0x10
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4a5adf
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc], ecx
mov ecx, dword [esp + 0x120]
test ecx, ecx
mov dword [esi + 8], eax
sete al
mov byte [esi + 0x11], al
test ecx, ecx
jns 0x4a3ebc
mov ecx, dword [esi]
lea edx, [esp + 0x120]
call fcn.004976b0
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4a5adf
mov byte [esi + 0x15], 0
mov dword [esi + 0x44], 0
jmp 0x4a3f18
mov edi, dword [esi]
test edi, edi
je 0x4a3f14
cmp byte [edi + 0x43], 2
jb 0x4a3eea
mov ecx, edi
call fcn.00495270
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4a5adb
cmp byte [edi + 0x43], 1
jne 0x4a3efa
cmp dword [edi + 0x50], 0
jne 0x4a3efa
xor eax, eax
jmp 0x4a3eff
mov eax, 1
mov edi, dword [esp + 8]
test eax, eax
je 0x4a3f18
mov dword [esi + 0x44], 0
mov byte [esi + 0x14], 1
jmp 0x4a3f18
mov edi, dword [esp + 8]
mov eax, dword [esp + 0x34]
mov dword [esp + 0xc], 0
cmp byte [eax + 0x14], 0
jne 0x4a57d2
mov edx, dword [esp + 0x30]
lea eax, [esp + 0x38]
push eax
call fcn.0049e300
mov edx, eax
add esp, 4
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4a5adf
mov edx, dword [esp + 0x18]
mov ecx, 0xbf04
mov esi, dword [esp + 0x10]
mov ax, word [edx + 0x1c]
and ax, cx
or ax, 4
mov word [edx + 0x1c], ax
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov dword [edx], eax
mov dword [edx + 4], ecx
mov edx, dword [esp + 0x1c]
inc edx
jmp 0x49f4bd
mov edx, dword [esp + 8]
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [edx + 0x34]
mov esi, dword [eax + ecx*4]
mov dword [esp + 0x30], esi
cmp dword [esi], 0
je case.0x49f610.10
mov ecx, dword [esp + 0x14]
mov eax, dword [esi + 0x28]
mov dword [esp + 0x38], eax
mov ax, word [ecx + edi*4 + 0x10]
mov word [esp + 0x3c], ax
mov eax, 0xc
cmp byte [ecx + edi*4 + 3], 0
jne 0x4a3fc1
mov eax, 4
mov word [esp + 0x3e], ax
xorps xmm0, xmm0
mov eax, dword [ecx + edi*4 + 0xc]
movlpd qword [esp + 0x150], xmm0
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x58]
lea edx, [esp + 0x150]
lea eax, [eax + ecx*8]
mov dword [esp + 0x48], eax
mov ecx, dword [esi]
call fcn.00496930
mov edx, dword [esp + 0x150]
mov ecx, edx
mov eax, dword [esp + 0x154]
add ecx, 0xffffffff
adc eax, 0xffffffff
test eax, eax
ja 0x4a40ce
jb 0x4a401d
cmp ecx, 0x7ffffffe
ja 0x4a40ce
mov ecx, dword [esi]
lea eax, [esp + 0x160]
push eax
xorps xmm0, xmm0
push 1
push edx
xor edx, edx
movaps xmmword [esp + 0x16c], xmm0
movaps xmmword [esp + 0x17c], xmm0
movq qword [esp + 0x18c], xmm0
call fcn.0049b480
add esp, 0xc
mov dword [esp + 0xc], eax
test eax, eax
je 0x4a405e
mov eax, dword [esp + 0x34]
jmp 0x4a40dc
mov edx, dword [esp + 0x174]
lea eax, [esp + 0x38]
mov ecx, dword [esp + 0x178]
push eax
call fcn.0049de50
add esp, 4
mov dword [esp + 0x34], eax
lea ecx, [esp + 0x160]
call fcn.0049a930
push dword [esp + 0x184]
push dword [esp + 0x174]
call fcn.0048ae30
mov eax, dword [esp + 0x3c]
add esp, 8
mov dword [esp + 0x174], 0
mov dword [esp + 0x184], 0
mov dword [esp + 0x180], 0
mov dword [esp + 0xc], 0
jmp 0x4a40dc
xor eax, eax
mov dword [esp + 0xc], 0xb
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0x14]
cmp byte [ecx + edi*4], 0x48
jne 0x4a40ea
neg eax
jmp 0x4a40eb
inc eax
mov esi, dword [esp + 0x10]
mov dword [esp + 0x34], eax
test eax, eax
jle 0x49fe73
mov edx, dword [ecx + edi*4 + 8]
mov edi, dword [esp + 8]
dec edx
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0xc]
jmp 0x4a086a
mov eax, dword [esp + 0x10]
xor edx, edx
mov dword [esp + 0x34], edx
mov ecx, dword [eax + 0x88]
mov dword [esp + 0x38], ecx
test ecx, ecx
je 0x4a4160
nop dword [eax]
cmp dword [ecx + 0x50], 0xbdf20da3
jne 0x4a414a
cmp byte [ecx + 0x70], 2
jae 0x4a414a
cmp dword [ecx + 0x60], 0
jl 0x4a414a
inc edx
mov dword [esp + 0x34], edx
mov eax, dword [ecx + 8]
mov ecx, eax
mov dword [esp + 0x38], ecx
test eax, eax
jne 0x4a4130
cmp edx, 1
jg 0x4a5b3c
mov ecx, dword [esi + edi*4 + 0xc]
mov dword [esp + 0x3c], ecx
add ecx, ecx
mov edi, dword [esi + edi*4 + 4]
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 8]
mov eax, dword [eax + ecx*8 + 4]
mov dword [esp + 0xec], eax
mov eax, dword [eax + 4]
mov dword [esp + 0xd8], eax
cmp dword [eax + 8], 0
je 0x4a419d
mov dword [esp + 0xc], 0x106
jmp 0x4a4277
lea ecx, [esp + 0x13c]
mov edx, edi
push 0
push ecx
mov ecx, dword [eax]
call fcn.00494260
add esp, 8
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4a4277
mov ecx, dword [esp + 0x13c]
cmp edi, 1
push 0
mov edx, edi
mov esi, dword [ecx + 4]
mov eax, dword [ecx]
mov dword [esi + 0x40], eax
mov eax, dword [esp + 0xdc]
mov dword [esi + 0x3c], eax
setne al
dec al
mov dword [esi + 0x44], ecx
mov ecx, dword [esp + 0xf0]
and al, 0x64
mov dword [esi + 0x48], edi
mov byte [esi + 5], al
call fcn.0049a270
add esp, 4
mov dword [esp + 0xc], eax
test eax, eax
je 0x4a4222
test esi, esi
je 0x4a4273
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x4a4273
mov esi, dword [ecx + 0x10]
call fcn.0048fe90
mov ecx, esi
call fcn.00494200
jmp 0x4a4273
mov dword [esp + 0x30], 0
cmp edi, 1
jbe 0x4a4245
push dword [esi + 0x48]
mov ecx, dword [esi + 0x3c]
mov edx, esi
call fcn.00497e40
add esp, 4
mov dword [esp + 0xc], eax
jmp 0x4a4255
mov edx, 9
mov ecx, esi
call fcn.00495c50
test esi, esi
je 0x4a426b
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x4a426b
mov esi, dword [ecx + 0x10]
call fcn.0048fe90
mov ecx, esi
call fcn.00494200
mov eax, dword [esp + 0xc]
mov dword [esp + 0xc], eax
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
mov edx, 0xbf04
mov edi, dword [esp + 8]
mov ax, word [ecx + 0x1c]
and ax, dx
or ax, 4
mov word [ecx + 0x1c], ax
mov eax, dword [esp + 0x30]
cdq
mov dword [ecx + 4], edx
mov edx, dword [esp + 0xc]
mov dword [ecx], eax
jmp 0x4a086a
mov dword [esp + 0x30], 0
lea eax, [esp + 0x30]
xor ecx, ecx
cmp dword [esi + edi*4 + 0xc], ecx
mov edi, dword [esi + edi*4 + 4]
cmove eax, ecx
mov dword [esp + 0xec], eax
mov eax, dword [esp + 0x24]
mov ecx, dword [esi + eax*4 + 8]
mov eax, dword [esp + 0x10]
add ecx, ecx
mov eax, dword [eax + 8]
mov eax, dword [eax + ecx*8 + 4]
mov ecx, dword [eax + 4]
mov dword [esp + 0xd8], ecx
mov eax, dword [ecx + 8]
test eax, eax
je 0x4a4301
nop dword [eax]
cmp byte [eax + 0x54], 0
je 0x4a42fa
mov byte [eax + 0x43], 0
mov eax, dword [eax + 8]
test eax, eax
jne 0x4a42f0
mov esi, dword [ecx + 8]
test esi, esi
je 0x4a4336
test edi, edi
je 0x4a4311
cmp dword [esi + 0x14], edi
jne 0x4a4328
cmp byte [esi + 0x43], 1
jne 0x4a4328
mov ecx, esi
call fcn.00495020
mov ecx, eax
mov dword [esp + 0xc], ecx
test ecx, ecx
jne 0x4a434d
mov esi, dword [esi + 8]
test esi, esi
jne 0x4a4308
mov ecx, dword [esp + 0xd8]
push dword [esp + 0xec]
mov edx, edi
push 0
call fcn.0049a0d0
add esp, 8
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 8]
cmp dword [edx + ecx*4 + 0xc], 0
je 0x4a05b1
mov eax, dword [esp + 0x30]
add dword [edi + 0x74], eax
mov ecx, dword [edx + ecx*4 + 0xc]
test ecx, ecx
jle 0x4a05b1
lea esi, [ecx + ecx*4]
cdq
mov ecx, dword [edi + 0x58]
add dword [ecx + esi*8], eax
adc dword [ecx + esi*8 + 4], edx
mov edx, dword [esp + 0xc]
jmp 0x4a0866
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x140]
mov dword [esp + 0x30], 0
mov ecx, dword [esi + edi*4 + 4]
mov esi, 2
shl ecx, 4
mov eax, dword [eax + 8]
add eax, ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x38], eax
cmp byte [ecx + edi*4], 0x61
mov ecx, 5
push ecx
cmove esi, ecx
lea ecx, [esp + 0x148]
mov dword [esp + 0x38], esi
mov eax, dword [eax + 4]
push 1
push ecx
mov ecx, dword [eax + 4]
call fcn.004979b0
add esp, 0xc
mov dword [esp + 0xc], eax
test eax, eax
je 0x4a43f5
mov eax, dword [esp + 0x30]
cdq
jmp 0x4a051f
or esi, 8
mov edx, esi
mov esi, dword [esp + 0x140]
mov ecx, esi
call fcn.00495c50
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x4a441e
mov esi, dword [ecx + 0x10]
call fcn.0048fe90
mov ecx, esi
call fcn.00494200
mov eax, dword [esp + 0x144]
mov dword [esp + 0x30], eax
mov dword [esp + 0xc], 0
cdq
jmp 0x4a051f
mov edx, dword [esi + edi*4 + 4]
mov dword [esp + 0x30], edx
cmp dword [esi + edi*4 + 8], 0
jne 0x4a445f
mov eax, dword [esp + 0x10]
mov ecx, edx
add ecx, ecx
mov eax, dword [eax + 8]
mov eax, dword [eax + ecx*8 + 0xc]
test byte [eax + 0x4a], 1
je 0x4a44f5
mov eax, dword [esp + 0x10]
add edx, edx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x34], str.sqlite_master
mov eax, dword [esi + edi*4 + 4]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 8]
add eax, 0x68
mov dword [esp + 0x44], eax
push dword [esi + edi*4 + 0x10]
mov esi, dword [esp + 0x14]
push str.sqlite_master
mov eax, dword [esi + 8]
push dword [eax + edx*8]
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s
push esi
call fcn.0048c690
add esp, 0x14
mov dword [esp + 0x38], eax
test eax, eax
je 0x4a5d21
push 0
lea eax, [esp + 0x40]
mov byte [esi + 0x7c], 1
mov edx, dword [esp + 0x3c]
mov ecx, esi
push eax
push fcn.004c0ff0
mov dword [esp + 0x54], 0
call fcn.004bd9e0
add esp, 0xc
test eax, eax
cmove eax, dword [esp + 0x48]
mov dword [esp + 0xc], eax
push dword [esp + 0x38]
push esi
call fcn.0048ae30
add esp, 8
mov byte [esi + 0x7c], 0
jmp 0x4a44f9
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 8]
cmp edx, 7
je 0x4a593a
jmp 0x4a086a
mov edx, dword [esi + edi*4 + 0x10]
mov eax, edx
mov ecx, dword [esi + edi*4 + 4]
mov esi, dword [esp + 0x10]
shl ecx, 4
add ecx, dword [esi + 8]
test edx, edx
je 0x4a453d
cmp byte [edx], 0
je 0x4a4536
nop dword [eax]
inc eax
cmp byte [eax], 0
jne 0x4a4530
sub eax, edx
and eax, 0x3fffffff
mov ecx, dword [ecx + 0xc]
push 0
push eax
add ecx, 4
call fcn.0048e440
add esp, 8
mov ecx, eax
call fcn.004b0f80
or dword [esi + 0xc], 0x10
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 8]
jmp 0x4a086a
mov edx, dword [esi + edi*4 + 0x10]
mov ecx, dword [esi + edi*4 + 4]
mov esi, dword [esp + 0x10]
add ecx, ecx
mov eax, dword [esi + 8]
mov ecx, dword [eax + ecx*8 + 0xc]
mov eax, edx
add ecx, 0x14
test edx, edx
je 0x4a459d
cmp byte [edx], 0
je 0x4a4596
nop dword [eax]
inc eax
cmp byte [eax], 0
jne 0x4a4590
sub eax, edx
and eax, 0x3fffffff
push 0
push eax
call fcn.0048e440
mov edi, eax
add esp, 8
test edi, edi
je 0x4a45f4
mov edx, dword [edi + 0x10]
mov ecx, dword [edx + 0x14]
cmp ecx, edi
jne 0x4a45c0
mov eax, dword [edi + 0x20]
mov dword [edx + 0x14], eax
jmp 0x4a45d8
test ecx, ecx
je 0x4a45d8
lea edx, [ecx + 0x20]
mov ecx, dword [edx]
cmp ecx, edi
je 0x4a45d3
test ecx, ecx
jne 0x4a45c4
jmp 0x4a45d8
mov eax, dword [edi + 0x20]
mov dword [edx], eax
mov eax, dword [edi + 0x10]
push dword [edi + 0x1c]
mov esi, dword [eax]
push esi
call fcn.0048ae30
push edi
push esi
call fcn.0048ae30
mov esi, dword [esp + 0x20]
add esp, 0x10
or dword [esi + 0xc], 0x10
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 8]
jmp 0x4a086a
mov eax, dword [esp + 8]
mov edx, dword [eax + 0x58]
mov eax, dword [esi + edi*4 + 4]
lea eax, [eax + eax*4]
lea ecx, [edx + eax*8]
mov dword [esp + 0x30], ecx
mov eax, dword [esi + edi*4 + 8]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x34], eax
test byte [ecx + 0x1c], 0x20
jne 0x4a4645
call fcn.0049add0
mov ecx, dword [esp + 0x30]
test byte [ecx + 0x1c], 0x20
je 0x4a5932
mov eax, dword [esp + 0x34]
push dword [eax + 4]
mov ecx, dword [ecx]
push dword [eax]
call fcn.00490e30
add esp, 8
jmp case.0x49f610.10
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xd8], 0
jne 0x4a5cd9
mov eax, dword [esp + 8]
mov ecx, dword [eax + 0x58]
mov eax, dword [esi + edi*4 + 4]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov dword [esp + 0x30], edx
test byte [edx + 0x1c], 0x20
mov eax, dword [esi + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x18], eax
je 0x4a46d9
mov esi, dword [edx]
mov ecx, esi
call fcn.00490fc0
mov edx, dword [esi + 8]
test edx, edx
je 0x4a46d1
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
mov eax, dword [esi + 8]
mov eax, dword [eax + 8]
mov dword [esi + 8], eax
test eax, eax
jne 0x4a46c4
mov ecx, esi
call fcn.00490d60
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
jmp 0x4a0c92
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x14]
mov ecx, edx
call fcn.0049ac70
jmp 0x4a0855
mov edi, dword [esi + edi*4 + 0x10]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x30], edi
test byte [esi + 0x1c], 0x20
jne 0x4a470c
mov ecx, esi
call fcn.0049add0
test byte [esi + 0x1c], 0x20
je 0x4a5932
mov edi, dword [esp + 0x30]
test edi, edi
je 0x4a48af
js 0x4a471d
mov eax, edi
and eax, 0xf
jmp 0x4a4722
mov eax, 0xff
mov edx, dword [esp + 0x2c]
mov esi, dword [esi]
mov dword [esp + 0xf8], eax
mov dword [esp + 0xf0], esi
mov ecx, dword [edx]
mov dword [esp + 0xec], ecx
mov ecx, dword [edx + 4]
mov dword [esp + 0xd8], ecx
cmp al, byte [esi + 0x1b]
je 0x4a485d
cmp dword [esi + 8], 0
je 0x4a4856
mov ecx, esi
call fcn.00490fc0
mov edi, dword [esi + 8]
mov edx, 1
mov dword [esp + 0xfc], edi
mov dword [esp + 0x28], edx
mov eax, dword [edi + 8]
mov dword [esp + 0xfc], eax
mov dword [edi + 8], 0
mov dword [edi + 0xc], 0
mov eax, dword [esp + 0xfc]
test eax, eax
je 0x4a483e
nop dword [eax]
mov ecx, edi
mov edi, eax
mov eax, dword [edi + 8]
mov dword [esp + 0xfc], eax
mov dword [edi + 0xc], ecx
mov ecx, dword [esp + 0xfc]
test ecx, ecx
je 0x4a4820
cmp edx, 1
jne 0x4a47db
mov eax, dword [ecx + 8]
mov dword [esp + 0xfc], eax
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
jmp 0x4a4820
lea edx, [edx - 1]
lea ecx, [esp + 0xfc]
call fcn.00490f60
mov esi, dword [esp + 0xfc]
mov ecx, eax
mov edx, dword [esp + 0x28]
test esi, esi
je 0x4a4820
mov eax, dword [esi + 8]
lea edx, [edx - 1]
mov dword [esi + 0xc], ecx
lea ecx, [esp + 0xfc]
mov dword [esp + 0xfc], eax
call fcn.00490f60
mov edx, dword [esp + 0x28]
mov ecx, esi
mov dword [esi + 8], eax
mov dword [edi + 8], ecx
inc edx
mov eax, dword [esp + 0xfc]
mov dword [esp + 0x28], edx
test eax, eax
jne 0x4a47a0
mov esi, dword [esp + 0xf0]
mov eax, dword [esp + 0xf8]
mov dword [esi + 0x14], edi
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov byte [esi + 0x1b], al
mov edi, dword [esp + 0x30]
mov eax, dword [esi + 0x14]
test eax, eax
je 0x4a48a1
mov ecx, dword [eax + 4]
mov edx, dword [eax]
cmp ecx, dword [esp + 0xd8]
jg 0x4a4884
jl 0x4a487f
mov esi, dword [esp + 0xec]
cmp edx, esi
jae 0x4a488b
mov eax, dword [eax + 8]
jmp 0x4a489d
mov esi, dword [esp + 0xec]
cmp ecx, dword [esp + 0xd8]
jl 0x4a48cd
jg 0x4a489a
cmp edx, esi
jbe 0x4a48cd
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x4a4864
mov esi, dword [esp + 0x20]
test edi, edi
mov dword [esp + 0x34], 0
js case.0x49f610.10
mov eax, dword [esp + 0x2c]
mov ecx, dword [esi]
push dword [eax + 4]
push dword [eax]
call fcn.00490e30
add esp, 8
jmp case.0x49f610.10
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x34], 1
mov edx, dword [ecx + eax*4 + 8]
jmp 0x4a0859
mov ecx, dword [esp + 0x20]
cmp dword [ecx + 4], 0
jl case.0x49f610.10
jg 0x4a0855
cmp dword [ecx], 0
jbe case.0x49f610.10
jmp 0x4a0855
mov ecx, dword [esp + 0x20]
cmp dword [ecx + 4], 0
jg case.0x49f610.10
jl 0x4a0855
cmp dword [ecx], 0
jae case.0x49f610.10
jmp 0x4a0855
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx]
or eax, dword [ecx + 4]
jne case.0x49f610.10
jmp 0x4a0855
mov dl, byte [esi + edi*4 + 3]
movzx eax, dl
mov dword [esp + 0x30], eax
mov eax, dword [esi + edi*4 + 8]
mov esi, dword [esp + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
mov esi, dword [esi + 0x24]
mov dword [esp + 0x80], esi
lea ecx, [eax + ecx*8]
xor eax, eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x34], eax
test dl, dl
je 0x4a49c9
mov dword [esi + eax*4], ecx
mov ecx, dword [esp + 0x3c]
movzx eax, word [ecx + 0x1c]
test al, 1
je 0x4a4987
mov byte [ecx + 0x1e], 5
jmp 0x4a49a6
test al, 4
je 0x4a4991
mov byte [ecx + 0x1e], 1
jmp 0x4a49a6
test al, 8
je 0x4a499b
mov byte [ecx + 0x1e], 2
jmp 0x4a49a6
and al, 2
neg al
sbb al, al
add al, 4
mov byte [ecx + 0x1e], al
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x3c]
inc eax
add ecx, 0x28
mov dword [esp + 0x34], eax
mov dword [esp + 0x3c], ecx
cmp eax, dword [esp + 0x30]
jge 0x4a49c9
mov esi, dword [esp + 0x80]
jmp 0x4a4972
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
mov eax, dword [edx + edi*4 + 0x10]
mov dword [esp + 0x40], eax
mov eax, dword [edx + edi*4 + 0xc]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x58]
lea eax, [eax + ecx*8]
mov dword [esp + 0x38], eax
mov dword [esp + 0x70], eax
inc dword [eax + 0x18]
mov eax, 1
mov ecx, dword [esp + 0x40]
mov word [esp + 0x64], ax
mov dword [esp + 0x5c], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x58], esi
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
test byte [ecx + 3], 8
je 0x4a4a3d
mov eax, dword [edx + edi*4 - 4]
mov dword [esp + 0x78], eax
push dword [esp + 0x80]
lea eax, [esp + 0x44]
push dword [esp + 0x34]
push eax
mov eax, dword [ecx + 0x10]
call eax
add esp, 0xc
cmp dword [esp + 0x74], 0
je 0x4a4a8b
mov dl, 1
lea ecx, [esp + 0x48]
call fcn.0049b5f0
mov edi, dword [esp + 8]
push eax
push 0x5227f8
push esi
lea eax, [edi + 0x68]
push eax
call fcn.0048b2a0
mov eax, dword [esp + 0x84]
add esp, 0x10
mov dword [esp + 0xc], eax
jmp 0x4a4a8f
mov edi, dword [esp + 8]
lea ecx, [esp + 0x48]
call fcn.0049a930
push dword [esp + 0x6c]
push dword [esp + 0x5c]
call fcn.0048ae30
mov edx, dword [esp + 0x14]
add esp, 8
mov dword [esp + 0x5c], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
jmp 0x4a086a
mov eax, dword [esi + edi*4 + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x58]
lea esi, [eax + ecx*8]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x30], esi
xor ecx, ecx
mov dword [esp + 0xc], ecx
mov edi, dword [eax + edi*4 + 0x10]
test edi, edi
je 0x4a4b92
mov eax, dword [edi + 0x14]
mov dword [esp + 0xf0], eax
test eax, eax
je 0x4a4b92
push 0x40
push ecx
lea eax, [esp + 0x198]
push eax
call fcn.004de6d0
mov eax, 1
mov dword [esp + 0x1cc], esi
mov word [esp + 0x1c0], ax
add esp, 0xc
mov eax, dword [esi + 0x10]
mov dword [esp + 0x1a8], eax
lea eax, [esp + 0x190]
mov dword [esp + 0x190], edi
push eax
call dword [esp + 0xf4]
add esp, 4
push dword [esi + 0x24]
push dword [esi + 0x10]
call fcn.0048ae30
movups xmm0, xmmword [esp + 0x1a0]
mov ecx, dword [esp + 0x1cc]
add esp, 8
mov dword [esp + 0xc], ecx
movups xmmword [esi], xmm0
movups xmm0, xmmword [esp + 0x1a8]
movups xmmword [esi + 0x10], xmm0
movq xmm0, qword [esp + 0x1b8]
movq qword [esi + 0x20], xmm0
mov esi, dword [esp + 0x30]
test ecx, ecx
je 0x4a4bbf
mov dl, 1
mov ecx, esi
call fcn.0049b5f0
mov edi, dword [esp + 8]
push eax
push 0x5227f8
push dword [esp + 0x18]
lea eax, [edi + 0x68]
push eax
call fcn.0048b2a0
mov esi, dword [esp + 0x40]
add esp, 0x10
jmp 0x4a4bc3
mov edi, dword [esp + 8]
test byte [esi + 0x1c], 2
je 0x4a4be2
mov al, byte [esp + 0xe8]
cmp byte [esi + 0x1f], al
je 0x4a4be2
mov dl, al
mov ecx, esi
call fcn.0048cb90
mov esi, dword [esp + 0x30]
movzx eax, word [esi + 0x1c]
test al, 0x12
je 0x4a05b1
mov ecx, dword [esi + 0x18]
test eax, 0x4000
je 0x4a4bfa
add ecx, dword [esi]
mov eax, dword [esi + 0x10]
mov esi, dword [esp + 0x10]
cmp ecx, dword [eax + 0x48]
jg 0x4a5b6b
mov edx, dword [esp + 0xc]
jmp 0x4a086a
cmp dword [esi + edi*4 + 4], 0
mov esi, dword [esp + 0x10]
jne 0x4a4c48
mov eax, dword [esi + 0x88]
test eax, eax
je 0x49fe73
nop dword [eax]
mov byte [eax + 0x6e], 1
mov eax, dword [eax + 8]
test eax, eax
jne 0x4a4c30
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 8]
jmp 0x4a086a
mov edi, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov byte [edi + 0x6e], 1
jmp 0x4a086a
mov eax, dword [esp + 0x10]
mov esi, dword [esi + edi*4 + 0x10]
mov dword [esp + 0x30], esi
mov dword [esp + 0xc], 0
mov edx, dword [eax + 0x11c]
test edx, edx
jle 0x4a4c8b
cmp dword [eax + 0x118], 0
jne 0x4a4c8b
mov edx, 6
mov dword [esp + 0xc], edx
jmp 0x4a4cfa
test esi, esi
jne 0x4a4c97
xor edx, edx
mov dword [esp + 0xc], edx
jmp 0x4a4cfa
mov edi, dword [esi + 8]
mov eax, dword [edi]
mov eax, dword [eax + 0x38]
mov dword [esp + 0xf0], eax
test eax, eax
je 0x4a4cf6
xor ecx, ecx
test edx, edx
jle 0x4a4cd3
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x118]
nop word [eax + eax]
cmp dword [eax], esi
je 0x4a4c8f
inc ecx
add eax, 4
cmp ecx, edx
jl 0x4a4cc0
mov eax, dword [esp + 0xf0]
push edi
call eax
mov ecx, eax
add esp, 4
mov dword [esp + 0xc], ecx
test ecx, ecx
jne 0x4a4cf6
mov ecx, dword [esp + 0x10]
mov edx, esi
call fcn.004ce9f0
mov edx, eax
mov dword [esp + 0xc], edx
jmp 0x4a4cfa
mov edx, dword [esp + 0xc]
cmp dword [esp + 0x30], 0
mov edi, dword [esp + 8]
mov esi, dword [esp + 0x10]
je 0x4a086a
push dword [edi + 0x68]
push esi
call fcn.0048ae30
mov ecx, dword [esp + 0x38]
add esp, 8
mov edx, dword [esp + 0xc]
mov eax, dword [ecx + 8]
mov eax, dword [eax + 8]
mov dword [edi + 0x68], eax
mov eax, dword [ecx + 8]
mov dword [eax + 8], 0
jmp 0x4a086a
mov eax, dword [esp + 8]
mov edx, dword [esi + edi*4 + 4]
add eax, 0x68
push eax
push dword [esi + edi*4 + 0x10]
mov esi, dword [esp + 0x18]
mov ecx, esi
call fcn.004cea80
mov edi, dword [esp + 0x10]
mov edx, eax
add esp, 8
mov dword [esp + 0xc], edx
jmp 0x4a086a
mov esi, dword [esp + 8]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov dword [esp + 0xc], 0
mov byte [esi + 0x70], 2
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [eax + 8]
add ecx, ecx
mov edx, dword [edx + edi*4 + 0x10]
push dword [eax + ecx*8]
mov ecx, dword [esp + 0x14]
call fcn.004b0730
add esp, 4
mov dword [esp + 0xf0], eax
lea edi, [esi + 0x70]
test eax, eax
je 0x4a4e38
cmp dword [eax + 0x30], 0
lea edi, [esi + 0x70]
je 0x4a4e2c
mov ecx, dword [esp + 0x10]
mov edx, eax
call fcn.004cdb40
mov esi, eax
mov ecx, dword [esi + 4]
push dword [esi + 8]
mov ecx, dword [ecx]
mov ecx, dword [ecx + 0x14]
call ecx
mov dword [esp + 0x10], eax
add esp, 4
mov eax, dword [esp + 8]
mov edx, dword [esp + 0xc]
add eax, 0x70
mov edi, eax
test edx, edx
jne 0x4a4e3a
mov ecx, dword [esp + 0xf0]
mov dword [esi + 8], edx
mov dword [ecx + 0x30], edx
add dword [esi + 0xc], 0xffffffff
mov ecx, dword [esi]
mov dword [esp + 0xf0], ecx
jne 0x4a4e3a
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x4a4e1c
mov eax, dword [ecx]
push ecx
mov eax, dword [eax + 0x10]
call eax
mov edi, dword [esp + 0xc]
add esp, 4
add edi, 0x70
push esi
push dword [esp + 0xf4]
call fcn.0048ae30
add esp, 8
mov edx, dword [esp + 0xc]
mov byte [edi], 0
jmp 0x4a0862
xor edx, edx
mov byte [edi], 0
jmp 0x4a0862
mov dword [esp + 0x30], 0
lea edx, [esp + 0x34]
mov dword [esp + 0x34], 0
mov eax, dword [esi + edi*4 + 0x10]
push edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x3c], ecx
push ecx
mov eax, dword [ecx]
mov dword [esp + 0x44], eax
mov eax, dword [eax + 0x18]
call eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x10]
push dword [eax + 0x68]
push dword [esp + 0x1c]
call fcn.0048ae30
mov ecx, dword [esp + 0x48]
add esp, 0x10
mov edx, dword [esp + 8]
mov eax, dword [ecx + 8]
mov dword [edx + 0x68], eax
mov edx, dword [esp + 0xc]
mov dword [ecx + 8], 0
test edx, edx
jne 0x4a0862
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
mov dword [eax], ecx
mov edx, dword [esi + edi*4 + 4]
xor esi, esi
mov edi, dword [esp + 8]
mov dword [esp + 0xec], edx
mov eax, dword [edi + 0x54]
sub eax, edx
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea eax, [eax + ecx*8]
lea ecx, [edi + 0x34]
mov dword [esp + 0xd8], eax
mov eax, dword [ecx]
mov dword [esp + 0x24], ecx
mov edi, dword [eax + edx*4]
test edi, edi
je 0x4a4f53
mov eax, dword [edi + 0x20]
test eax, eax
je 0x4a4f35
mov ecx, eax
call fcn.00496060
mov eax, dword [esp + 0x24]
mov dword [esp + 0x28], eax
mov edx, dword [esp + 8]
mov ecx, dword [edi + 0x38]
test ecx, ecx
je 0x4a4f1f
mov eax, dword [edi + 0x3c]
mov byte [edx + 0x70], 1
push ecx
mov eax, dword [eax + 0x1c]
call eax
mov eax, dword [esp + 0xc]
add esp, 4
mov byte [eax + 0x70], 0
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xec]
mov edi, dword [esp + 0x28]
mov eax, dword [eax]
mov dword [eax + ecx*4], esi
jmp 0x4a4f55
mov eax, dword [edi]
mov dword [esp + 0x28], ecx
test eax, eax
je 0x4a4efc
mov ecx, eax
call fcn.004968a0
mov edx, dword [esp + 8]
lea eax, [edx + 0x34]
mov dword [esp + 0x28], eax
jmp 0x4a4f00
mov edi, ecx
mov ecx, dword [esp + 0xd8]
mov edx, 0x58
push 0
call fcn.0049a630
add esp, 4
test eax, eax
jne 0x4a4fa2
mov edx, dword [esp + 0xd8]
mov eax, dword [edi]
mov ecx, dword [esp + 0xec]
push 0x58
mov esi, dword [edx + 0x14]
push 0
mov dword [eax + ecx*4], esi
push dword [edx + 0x14]
call fcn.004de6d0
add esp, 0xc
mov dword [esi + 4], 0xffffffff
mov dword [esi + 0x2c], 0
mov dword [esp + 0x30], esi
test esi, esi
je 0x4a4fd2
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 8]
inc edx
mov dword [esi + 0x38], eax
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x10]
mov eax, dword [eax]
mov ecx, dword [eax]
mov eax, dword [esp + 0x30]
mov dword [eax + 0x3c], ecx
jmp 0x49f4bd
mov esi, dword [esp + 0x10]
mov byte [esi + 0x1e], 1
mov eax, dword [esp + 0x3c]
push dword [esp + 0x34]
mov eax, dword [eax + 0x1c]
call eax
mov edx, dword [esp + 0x20]
add esp, 4
mov edi, dword [esp + 8]
inc edx
jmp 0x49f4bd
mov eax, dword [esi + edi*4 + 0xc]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x58]
lea edx, [eax + ecx*8]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x3c], edx
lea esi, [edx + 0x28]
mov dword [esp + 0x40], esi
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x34]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x4c], eax
mov edi, dword [eax + 0x38]
mov dword [esp + 0x44], edi
mov eax, dword [edi]
mov dword [esp + 0x48], eax
mov eax, dword [eax]
mov dword [esp + 0x38], eax
mov dword [esp + 0xd8], eax
mov eax, dword [esi]
mov dword [esp + 0x30], eax
mov ecx, dword [edx]
mov dword [esp + 0xf0], ecx
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 8]
mov dword [esp + 0x50], 0
mov edx, dword [ecx + 0x24]
xor ecx, ecx
mov dword [esp + 0x58], edx
mov dword [esp + 0x54], ecx
test eax, eax
jle 0x4a50e8
lea eax, [ecx + 1]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [edx + ecx*4], eax
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x58]
mov ecx, dword [ecx + eax*4]
movzx eax, word [ecx + 0x1c]
test al, 1
je 0x4a5099
mov byte [ecx + 0x1e], 5
jmp 0x4a50b8
test al, 4
je 0x4a50a3
mov byte [ecx + 0x1e], 1
jmp 0x4a50b8
test al, 8
je 0x4a50ad
mov byte [ecx + 0x1e], 2
jmp 0x4a50b8
and al, 2
neg al
sbb al, al
add al, 4
mov byte [ecx + 0x1e], al
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x30]
inc ecx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x54], ecx
cmp ecx, eax
jge 0x4a50d3
mov esi, dword [esp + 0x40]
jmp 0x4a5074
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x44]
mov esi, dword [esp + 0x34]
mov dword [esp + 0xd8], ecx
jmp 0x4a50ef
mov esi, dword [esp + 0xf0]
mov ecx, dword [esp + 8]
push edx
mov edx, dword [esp + 0x18]
push eax
mov eax, dword [esp + 0x2c]
mov byte [ecx + 0x70], 1
mov ecx, dword [esp + 0xe0]
push dword [edx + eax*4 + 0x10]
mov eax, dword [ecx + 0x20]
push esi
push edi
call eax
mov edi, dword [esp + 0x1c]
add esp, 0x14
mov esi, dword [esp + 0x10]
mov dword [esp + 0xc], eax
push dword [edi + 0x68]
mov byte [edi + 0x70], 0
push esi
call fcn.0048ae30
mov ecx, dword [esp + 0x50]
add esp, 8
cmp dword [esp + 0xc], 0
mov eax, dword [ecx + 8]
mov dword [edi + 0x68], eax
mov dword [ecx + 8], 0
jne 0x4a5160
mov eax, dword [esp + 0x38]
push dword [esp + 0x44]
mov eax, dword [eax + 0x28]
call eax
add esp, 4
mov dword [esp + 0x50], eax
jmp 0x4a5164
mov eax, dword [esp + 0x50]
test eax, eax
je 0x4a5179
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + eax*4 + 8]
dec eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0xc]
mov byte [eax + 0x14], 0
jmp 0x4a086a
mov eax, dword [esp + 8]
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [eax + 0x34]
mov edx, dword [eax + ecx*4]
mov eax, dword [esi + edi*4 + 0xc]
mov edi, dword [esp + 8]
mov dword [esp + 0xf0], edx
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea ecx, [eax + ecx*8]
mov dword [esp + 0x38], ecx
cmp byte [edx + 0x14], 0
je 0x4a51c8
call fcn.0049ac70
mov edx, dword [esp + 0xc]
jmp 0x4a0866
mov eax, dword [edx + 0x38]
push 0x40
push 0
mov eax, dword [eax]
mov dword [esp + 0x38], eax
mov eax, dword [eax]
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x48]
push eax
call fcn.004de6d0
mov edi, dword [esp + 0x44]
lea ecx, [esp + 0x54]
add esp, 0xc
call fcn.0049a930
mov ecx, dword [esp + 0x58]
mov esi, dword [esp + 0x6c]
test ecx, ecx
je 0x4a522f
test esi, esi
je 0x4a529e
cmp esi, dword [ecx + 0xf0]
jb 0x4a522f
cmp esi, dword [ecx + 0xf4]
jae 0x4a522f
mov eax, dword [ecx + 0xec]
mov dword [esi], eax
dec dword [ecx + 0xe4]
mov dword [ecx + 0xec], esi
jmp 0x4a529e
test esi, esi
je 0x4a529e
cmp dword [0x533cd8], 0
je 0x4a5294
mov eax, dword [0x536520]
test eax, eax
je 0x4a524f
push eax
call dword [0x533d20]
add esp, 4
push esi
call dword [0x533cfc]
mov ecx, dword [0x5363a8]
neg eax
add ecx, eax
add esp, 4
mov eax, dword [0x5363cc]
cmp ecx, eax
mov dword [0x5363a8], ecx
cmovg eax, ecx
push esi
mov dword [0x5363cc], eax
call dword [0x533cf4]
mov eax, dword [0x536520]
add esp, 4
test eax, eax
je 0x4a529e
push eax
call dword [0x533d28]
jmp 0x4a529b
push esi
call dword [0x533cf4]
add esp, 4
mov ecx, dword [esp + 0x14]
mov eax, 1
mov dword [esp + 0x5c], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
movups xmm0, xmmword [edi]
movups xmmword [esp + 0x48], xmm0
movups xmm0, xmmword [edi + 0x10]
movups xmmword [esp + 0x58], xmm0
movq xmm0, qword [edi + 0x20]
movq qword [esp + 0x68], xmm0
mov word [edi + 0x1c], ax
mov dword [edi + 0x20], 0
mov dword [edi + 0x24], 0
mov eax, dword [esp + 0x64]
and eax, 0xbf01
or eax, 1
mov word [esp + 0x64], ax
mov eax, dword [esp + 0x24]
push dword [ecx + eax*4 + 8]
lea eax, [esp + 0x44]
push eax
mov eax, dword [esp + 0xf8]
push dword [eax + 0x38]
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 0x2c]
call eax
mov edi, dword [esp + 0x14]
add esp, 0xc
mov dword [esp + 0xc], eax
push dword [edi + 0x68]
push dword [esp + 0x14]
call fcn.0048ae30
mov ecx, dword [esp + 0x38]
add esp, 8
mov eax, dword [ecx + 8]
mov dword [edi + 0x68], eax
mov dword [ecx + 8], 0
mov eax, dword [esp + 0x74]
test eax, eax
mov ecx, dword [esp + 0xc]
cmovne ecx, eax
test byte [esp + 0x64], 2
mov dword [esp + 0xc], ecx
je 0x4a5379
mov al, byte [esp + 0xe8]
cmp byte [esp + 0x67], al
je 0x4a5379
mov dl, al
lea ecx, [esp + 0x48]
call fcn.0048cb90
mov esi, dword [esp + 0x38]
mov ecx, esi
call fcn.0049a930
push dword [esi + 0x24]
push dword [esi + 0x10]
call fcn.0048ae30
mov dword [esi + 0x14], 0
mov eax, 1
mov dword [esi + 0x24], 0
add esp, 8
mov dword [esi + 0x20], 0
movups xmm0, xmmword [esp + 0x48]
movups xmmword [esi], xmm0
movups xmm0, xmmword [esp + 0x58]
movups xmmword [esi + 0x10], xmm0
movq xmm0, qword [esp + 0x68]
movq qword [esi + 0x20], xmm0
mov word [esp + 0x64], ax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
movzx edx, word [eax + 0x1c]
test dl, 0x12
je 0x4a05b1
mov ecx, dword [eax + 0x18]
test edx, 0x4000
je 0x4a53fb
add ecx, dword [eax]
mov eax, dword [eax + 0x10]
mov esi, dword [esp + 0x10]
cmp ecx, dword [eax + 0x48]
jg 0x4a5b6b
mov edx, dword [esp + 0xc]
jmp 0x4a086a
mov edx, dword [esp + 8]
mov dword [esp + 0x38], 0
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [edx + 0x34]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x3c], ecx
cmp byte [ecx + 0x14], 0
jne case.0x49f610.10
mov eax, dword [ecx + 0x38]
mov eax, dword [eax]
mov dword [esp + 0x30], eax
mov eax, dword [eax]
mov dword [esp + 0x34], eax
mov byte [edx + 0x70], 1
push dword [ecx + 0x38]
mov eax, dword [eax + 0x24]
call eax
mov dword [esp + 0x10], eax
add esp, 4
mov eax, dword [esp + 8]
push dword [eax + 0x68]
mov byte [eax + 0x70], 0
push dword [esp + 0x14]
call fcn.0048ae30
mov ecx, dword [esp + 0x38]
add esp, 8
cmp dword [esp + 0xc], 0
mov edx, dword [esp + 8]
mov eax, dword [ecx + 8]
mov dword [edx + 0x68], eax
mov dword [ecx + 8], 0
jne 0x4a54a6
mov eax, dword [esp + 0x3c]
push dword [eax + 0x38]
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x28]
call eax
add esp, 4
mov dword [esp + 0x38], eax
jmp 0x4a54aa
mov eax, dword [esp + 0x38]
test eax, eax
jne case.0x49f610.10
jmp 0x4a0855
mov eax, dword [esi + edi*4 + 0x10]
mov edx, dword [eax + 8]
mov dword [esp + 0x30], edx
mov eax, dword [esi + edi*4 + 4]
mov edi, dword [esp + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea eax, [eax + ecx*8]
mov dword [esp + 0x34], eax
mov ecx, dword [edx]
push dword [eax + 0x14]
push edx
mov eax, dword [ecx + 0x4c]
call eax
mov esi, dword [edi + 0x68]
add esp, 8
mov dword [esp + 0xc], eax
test esi, esi
je 0x4a558b
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0xf0]
jb 0x4a5520
cmp esi, dword [ecx + 0xf4]
jae 0x4a5520
mov eax, dword [ecx + 0xec]
mov dword [esi], eax
mov dword [ecx + 0xec], esi
mov esi, ecx
dec dword [esi + 0xe4]
jmp 0x4a558f
cmp dword [0x533cd8], 0
je 0x4a5581
mov eax, dword [0x536520]
test eax, eax
je 0x4a553c
push eax
call dword [0x533d20]
add esp, 4
push esi
call dword [0x533cfc]
mov ecx, dword [0x5363a8]
neg eax
add ecx, eax
add esp, 4
mov eax, dword [0x5363cc]
cmp ecx, eax
mov dword [0x5363a8], ecx
cmovg eax, ecx
push esi
mov dword [0x5363cc], eax
call dword [0x533cf4]
mov eax, dword [0x536520]
add esp, 4
test eax, eax
je 0x4a558b
push eax
call dword [0x533d28]
jmp 0x4a5588
push esi
call dword [0x533cf4]
add esp, 4
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0xc]
mov eax, dword [ecx + 8]
mov dword [edi + 0x68], eax
mov dword [ecx + 8], 0
jmp 0x4a086a
mov eax, dword [esi + edi*4 + 0x10]
mov ecx, dword [esp + 0x24]
mov esi, dword [eax + 8]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x30], esi
mov edi, dword [esi]
mov dword [esp + 0x34], edi
mov edx, dword [eax + ecx*4 + 8]
mov dword [esp + 0x38], edx
cmp dword [edi + 0x34], 0
je case.0x49f610.10
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x24]
mov dword [esp + 0xf0], eax
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax + ecx*4 + 0xc]
mov dword [esp + 0x3c], 0
lea ecx, [eax + eax*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x58]
lea ecx, [eax + ecx*8]
mov dword [esp + 0x4c], ecx
test edx, edx
jle 0x4a5676
nop dword [eax + eax]
movzx eax, word [ecx + 0x1c]
test al, 1
je 0x4a561e
mov byte [ecx + 0x1e], 5
jmp 0x4a563d
test al, 4
je 0x4a5628
mov byte [ecx + 0x1e], 1
jmp 0x4a563d
test al, 8
je 0x4a5632
mov byte [ecx + 0x1e], 2
jmp 0x4a563d
and al, 2
neg al
sbb al, al
add al, 4
mov byte [ecx + 0x1e], al
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
mov dword [eax + ecx*4], edx
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x4c]
inc eax
mov edx, dword [esp + 0x38]
add ecx, 0x28
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x3c], eax
cmp eax, edx
jl 0x4a5610
mov eax, dword [esp + 0x48]
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
jmp 0x4a567d
mov eax, dword [esp + 0xf0]
lea ecx, [esp + 0x40]
push ecx
push eax
mov eax, dword [edi + 0x34]
push edx
push esi
call eax
mov edi, dword [esp + 0x18]
add esp, 0x10
mov dword [esp + 0xc], eax
mov esi, dword [edi + 0x68]
test esi, esi
je 0x4a5737
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0xf0]
jb 0x4a56cc
cmp esi, dword [ecx + 0xf4]
jae 0x4a56cc
mov eax, dword [ecx + 0xec]
mov dword [esi], eax
mov dword [ecx + 0xec], esi
mov esi, ecx
dec dword [esi + 0xe4]
jmp 0x4a573b
cmp dword [0x533cd8], 0
je 0x4a572d
mov eax, dword [0x536520]
test eax, eax
je 0x4a56e8
push eax
call dword [0x533d20]
add esp, 4
push esi
call dword [0x533cfc]
mov ecx, dword [0x5363a8]
neg eax
add ecx, eax
add esp, 4
mov eax, dword [0x5363cc]
cmp ecx, eax
mov dword [0x5363a8], ecx
cmovg eax, ecx
push esi
mov dword [0x5363cc], eax
call dword [0x533cf4]
mov eax, dword [0x536520]
add esp, 4
test eax, eax
je 0x4a5737
push eax
call dword [0x533d28]
jmp 0x4a5734
push esi
call dword [0x533cf4]
add esp, 4
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0xc]
mov eax, dword [ecx + 8]
mov dword [edi + 0x68], eax
mov dword [ecx + 8], 0
test edx, edx
jne 0x4a5770
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
cmp dword [ecx + eax*4 + 4], edx
je 0x4a5770
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], ecx
inc dword [edi + 0x74]
jmp 0x4a086a
mov ecx, dword [esi + edi*4 + 4]
lea edx, [esp + 0x34]
mov esi, dword [esp + 0x10]
mov dword [esp + 0x30], ecx
add ecx, ecx
mov eax, dword [esi + 8]
mov eax, dword [eax + ecx*8 + 4]
mov eax, dword [eax + 4]
mov ecx, dword [eax]
mov dword [esp + 0x38], ecx
call fcn.00492fa0
mov edi, dword [esp + 8]
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4a086a
mov ecx, dword [esp + 0x18]
mov eax, 4
mov word [ecx + 0x1c], ax
mov eax, dword [esp + 0x34]
cdq
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x1c]
mov dword [ecx], eax
inc edx
jmp 0x49f4bd
xor edx, edx
jmp 0x4a0866
mov eax, dword [esp + 8]
mov ecx, eax
mov dword [eax + 0x64], 9
call fcn.0049d1f0
mov eax, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
mov dword [ecx + 0x64], eax
mov al, byte [esi + edi*4 + 8]
mov byte [ecx + 0x38], al
mov dword [ecx + 0x60], edx
mov eax, dword [esi + edi*4 + 0x10]
test eax, eax
je 0x4a582d
push eax
push 0x5227f8
push dword [esp + 0x18]
lea eax, [ecx + 0x68]
push eax
call fcn.0048b2a0
mov ecx, dword [esp + 0x18]
add esp, 0x10
call fcn.0049d1f0
cmp eax, 5
jne 0x4a584d
mov eax, dword [esp + 8]
mov dword [eax + 0x64], 5
mov eax, 5
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 8]
mov eax, 0x65
cmp dword [ecx + 0x64], 0
mov ecx, 1
cmovne eax, ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
lea ecx, [esp + 0x40]
call fcn.0049a930
mov ecx, dword [esp + 0x50]
mov esi, dword [esp + 0x64]
test ecx, ecx
je 0x4a58ab
test esi, esi
je 0x4a591a
cmp esi, dword [ecx + 0xf0]
jb 0x4a58ab
cmp esi, dword [ecx + 0xf4]
jae 0x4a58ab
mov eax, dword [ecx + 0xec]
mov dword [esi], eax
dec dword [ecx + 0xe4]
mov dword [ecx + 0xec], esi
jmp 0x4a591a
test esi, esi
je 0x4a591a
cmp dword [0x533cd8], 0
je 0x4a5910
mov eax, dword [0x536520]
test eax, eax
je 0x4a58cb
push eax
call dword [0x533d20]
add esp, 4
push esi
call dword [0x533cfc]
mov ecx, dword [0x5363a8]
neg eax
add ecx, eax
add esp, 4
mov eax, dword [0x5363cc]
cmp ecx, eax
mov dword [0x5363a8], ecx
cmovg eax, ecx
push esi
mov dword [0x5363cc], eax
call dword [0x533cf4]
mov eax, dword [0x536520]
add esp, 4
test eax, eax
je 0x4a591a
push eax
call dword [0x533d28]
jmp 0x4a5917
push esi
call dword [0x533cf4]
add esp, 4
mov dword [esp + 0x54], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0
mov edi, dword [esp + 8]
mov esi, dword [esp + 0x10]
push str.out_of_memory
lea eax, [edi + 0x68]
mov byte [esi + 0x1e], 1
push esi
push eax
call fcn.0048b2a0
mov dword [edi + 0x64], 7
add esp, 0xc
mov ecx, edi
call fcn.0049d1f0
mov eax, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edx, 0x14
mov dword [esp + 0xc], edx
jmp 0x4a5adf
mov eax, dword [esp + 8]
mov ecx, eax
mov dword [eax + 0x64], 0xb
call fcn.0049d1f0
mov eax, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push str.cannot_open_savepoint___SQL_statements_in_progress
push esi
mov esi, dword [esp + 0x10]
lea eax, [esi + 0x68]
push eax
call fcn.0048b2a0
add esp, 0xc
mov dword [esi + 0x64], 5
mov ecx, esi
call fcn.0049d1f0
mov eax, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
mov dword [edi + 0x60], edx
mov byte [eax + 0x1c], 0
mov eax, 5
mov dword [edi + 0x64], 5
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 8]
push ecx
push str.no_such_savepoint:__s
push dword [esp + 0x18]
lea eax, [esi + 0x68]
push eax
call fcn.0048b2a0
add esp, 0x10
mov dword [esi + 0x64], 1
mov ecx, esi
call fcn.0049d1f0
mov eax, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test ecx, ecx
je 0x4a5a4e
mov ecx, esi
call fcn.004d9b80
mov byte [esi + 0x1c], 1
mov esi, dword [esp + 8]
mov ecx, dword [esp + 0x10]
call fcn.004d94c0
cmp dword [esi + 0x64], 0
mov eax, 0x65
mov ecx, 1
cmovne eax, ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov al, byte [esp + 0x30]
mov byte [esi + 0x1c], al
mov esi, dword [esp + 8]
mov ecx, esi
call fcn.0049d1f0
cmp eax, 5
jne 0x4a5a2e
mov ecx, dword [esp + 0x10]
mov al, 1
sub al, byte [esp + 0x30]
mov edx, dword [esp + 0x1c]
mov dword [esi + 0x60], edx
mov byte [ecx + 0x1c], al
mov eax, 5
mov dword [esi + 0x64], 5
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x1c]
mov dword [eax + 0x60], edx
mov dword [eax + 0x64], 5
mov eax, 5
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edx, 0xb
mov dword [esp + 0xc], edx
jmp 0x4a5adb
mov ecx, eax
mov dword [eax + 0x64], 4
call fcn.0049d1f0
mov eax, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edx, 0xd
mov dword [esp + 0xc], edx
jmp 0x4a5adf
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 8]
mov esi, dword [esp + 0x10]
cmp byte [esi + 0x1e], 0
je 0x4a5af8
mov dword [esp + 0xc], 7
mov eax, 7
jmp 0x4a5b10
cmp edx, 0xc0a
je 0x4a5caa
movzx eax, dl
mov dword [esp + 0xc], edx
cmp eax, 0x1b
jae 0x4a5b1b
mov eax, dword [eax*4 + 0x51d4d0]
test eax, eax
jne 0x4a5b20
mov eax, str.unknown_error
push eax
push 0x5227f8
lea eax, [edi + 0x68]
push esi
push eax
call fcn.0048b2a0
mov edx, dword [esp + 0x1c]
add esp, 0x10
jmp 0x4a5caa
mov eax, dword [esp + 8]
mov ecx, eax
mov byte [eax + 0x38], 2
mov dword [eax + 0x64], 6
call fcn.0049d1f0
mov eax, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 8]
jmp 0x4a5b6b
mov edi, dword [esp + 8]
mov esi, dword [esp + 0x10]
push str.string_or_blob_too_big
lea eax, [edi + 0x68]
push esi
push eax
call fcn.0048b2a0
mov dword [edi + 0x64], 0x12
jmp 0x4a5954
mov edi, dword [esp + 8]
mov esi, ecx
jmp 0x4a5b6b
mov ecx, dword [esp + 8]
mov edx, 1
call fcn.0049d0e0
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4a5ca6
mov edx, dword [esp + 8]
mov eax, dword [edx + 0x5c]
add eax, 2
or eax, 1
mov dword [edx + 0x5c], eax
mov eax, dword [esi + edi*4 + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x58]
lea eax, [eax + ecx*8]
mov dword [edx + 0x2c], eax
xor edx, edx
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
cmp dword [esi + edi*4 + 8], edx
jle 0x4a5c81
nop
mov eax, dword [esp + 0x30]
lea ecx, [edx + edx*4]
lea esi, [eax + ecx*8]
movzx eax, word [esi + 0x1c]
test eax, 0x200
jne 0x4a5c31
test al, 2
je 0x4a5c31
mov edx, dword [esi + 0x18]
mov ecx, esi
push 1
add edx, 2
call fcn.0049a630
add esp, 4
test eax, eax
jne 0x4a5c2d
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 0x14]
mov byte [ecx + eax], 0
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x14]
mov byte [ecx + eax + 1], 0
mov eax, 0x200
or word [esi + 0x1c], ax
mov edx, dword [esp + 0x34]
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0x30]
movzx eax, word [edx + ecx*8 + 0x1c]
test al, 1
je 0x4a5c48
mov byte [edx + ecx*8 + 0x1e], 5
jmp 0x4a5c6a
test al, 4
je 0x4a5c53
mov byte [edx + ecx*8 + 0x1e], 1
jmp 0x4a5c6a
test al, 8
je 0x4a5c5e
mov byte [edx + ecx*8 + 0x1e], 2
jmp 0x4a5c6a
and al, 2
neg al
sbb al, al
add al, 4
mov byte [edx + ecx*8 + 0x1e], al
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x14]
inc edx
mov dword [esp + 0x34], edx
cmp edx, dword [eax + edi*4 + 8]
jl 0x4a5be0
mov esi, dword [esp + 0x10]
cmp byte [esi + 0x1e], 0
jne 0x4a5d21
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x1c]
inc eax
mov dword [ecx + 0x60], eax
mov eax, 0x64
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 8]
mov ecx, eax
mov dword [eax + 0x64], edx
call fcn.0049d1f0
cmp dword [esp + 0xc], 0xc0a
jne 0x4a595e
mov byte [esi + 0x1e], 1
mov eax, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov esi, ecx
jmp 0x4a5cdb
mov esi, eax
mov edi, dword [esp + 8]
mov eax, dword [str.interrupted]
mov ecx, str.unknown_error
test eax, eax
mov dword [edi + 0x64], 9
cmovne ecx, eax
lea eax, [edi + 0x68]
push ecx
push 0x5227f8
push esi
push eax
call fcn.0048b2a0
add esp, 0x10
mov dword [edi + 0x64], 9
mov ecx, edi
call fcn.0049d1f0
pop edi
mov eax, 1
pop esi
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 8]
jmp 0x4a593a
mov edi, dword [esp + 8]
mov esi, eax
jmp 0x4a593a