Function at 0x4a0190
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 0x4a66ca
mov dword [edi + 0x64], eax
mov dword [edi + 0x2c], eax
mov dword [esi + 0x198], eax
cmp dword [esi + 0xd8], eax
jne 0x4a6a6f
mov edx, dword [edi + 0x60]
xorps xmm0, xmm0
movsd qword [esp + 0x130], xmm0
movsd xmm0, qword [0x525ca8]
movsd qword [esp + 0x148], xmm0
movsd xmm0, qword [0x525c68]
movsd qword [esp + 0x158], xmm0
mov dword [esp + 0x1c], edx
cmp byte [esi + 0x1e], 0
jne 0x4a66ca
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 0x4a02b6
mov edi, dword [esp + 0x104]
cmp dword [ecx + 0x100], edi
mov edi, dword [esp + 0x24]
jne 0x4a02a7
push dword [ecx + 0xfc]
call eax
add esp, 4
test eax, eax
jne 0x4a6569
mov edx, dword [esp + 8]
jmp 0x4a02ae
mov eax, dword [esp + 0x104]
inc eax
mov dword [esp + 0x104], eax
movzx eax, byte [esi + edi*4]
mov cl, byte [eax + 0x5210e0]
test cl, 2
je 0x4a02f6
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.0049b6c0
mov edx, dword [esp + 0x18]
mov eax, 1
mov word [edx + 0x1c], ax
mov dword [edx + 0x18], 0
jmp 0x4a0385
mov dl, cl
and dl, 8
test cl, 4
je 0x4a0365
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 0x4a0344
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 0x4a0385
mov edx, dword [esp + 0x18]
test cl, 0x10
je 0x4a03c7
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 0x4a0389
test dl, dl
je 0x4a03a7
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.0x4a03a0.10
movzx eax, byte [eax + 0x4a6c58]
jmp dword [eax*4 + 0x4a6ac8]
test cl, 0x10
je 0x4a0381
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 0x4a0389
mov esi, dword [esp + 0x14]
jmp 0x4a0385
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 0xd8], 0
jne 0x4a6a65
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 0x4a15fa
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 0x4a15e5
mov eax, dword [esp + 0x20]
mov edx, dword [eax]
jmp 0x4a15ea
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 0x4a15ea
test byte [ecx + 0x1c], 1
je case.0x4a03a0.10
mov eax, dword [esi + edi*4 + 4]
mov ecx, dword [esp + 8]
test eax, eax
jne 0x4a658a
mov edi, dword [ecx + 0xdc]
test edi, edi
je 0x4a6586
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 0x4a0501
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 0x4a15fa
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.0x4a03a0.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.0x4a03a0.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.0x4a03a0.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 0x4a0584
cmp byte [ecx], 0
je 0x4a057d
inc eax
cmp byte [eax], 0
jne 0x4a0577
sub eax, ecx
and eax, 0x3fffffff
cmp byte [esp + 0xe8], 1
mov dword [esi + edi*4 + 4], eax
je 0x4a067f
test ecx, ecx
jne 0x4a05a7
mov ecx, edx
call fcn.0049ba00
mov edx, dword [esp + 0x18]
jmp 0x4a0601
mov edi, dword [edx + 0x10]
xor esi, esi
test edi, edi
je 0x4a05b9
mov edi, dword [edi + 0x48]
test edi, edi
js 0x4a05cb
jmp 0x4a05c0
mov edi, 0x3b9aca00
nop
cmp byte [esi + ecx], 0
je 0x4a05cb
inc esi
cmp esi, edi
jle 0x4a05c0
mov ecx, edx
call fcn.0049b7a0
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 0x4a68f3
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x14]
test byte [edx + 0x1c], 2
mov dword [esp + 0xc], 0
je 0x4a0632
mov al, byte [esp + 0xe8]
cmp byte [edx + 0x1f], al
je 0x4a0632
mov ecx, dword [esp + 0x18]
mov dl, al
call fcn.0048d920
test eax, eax
jne 0x4a66c2
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 0x4a066c
push dword [esi + edi*4 + 0x10]
push dword [esp + 0x14]
call fcn.0048bbc0
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 0x4a6916
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.0x4a03a0.10
mov eax, dword [esp + 0x24]
mov edi, dword [esi + edi*4 + 0x10]
mov esi, dword [esi + eax*4 + 4]
test edi, edi
jne 0x4a06dc
mov edi, dword [esp + 0x18]
mov ecx, edi
call fcn.0049ba00
mov al, byte [esp + 0xe8]
mov byte [edi + 0x1f], al
jmp case.0x4a03a0.10
mov ecx, dword [edx + 0x10]
test ecx, ecx
je 0x4a06e8
mov ecx, dword [ecx + 0x48]
jmp 0x4a06ed
mov ecx, 0x3b9aca00
mov eax, 0x10
mov dword [esp + 0x28], eax
test esi, esi
jns 0x4a0719
xor esi, esi
test ecx, ecx
js 0x4a0710
mov al, byte [esi + edi + 1]
or al, byte [esi + edi]
je 0x4a0710
add esi, 2
cmp esi, ecx
jle 0x4a0700
mov eax, 0x210
mov dword [esp + 0x28], eax
mov ecx, edx
call fcn.0049b7a0
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.0x4a03a0.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 0x4a0835
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 0x4a07b3
mov ecx, dword [eax + 0x18]
test edx, 0x4000
je 0x4a07a7
add ecx, dword [eax]
mov eax, dword [eax + 0x10]
cmp ecx, dword [eax + 0x48]
jg 0x4a68f7
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.0049b6c0
mov eax, 1
mov ecx, edi
mov word [edi + 0x1c], ax
mov esi, dword [esp + 0x3c]
call fcn.0049b6c0
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 0x4a0808
mov eax, dword [esi + 0x14]
cmp eax, dword [esi + 0x24]
jne 0x4a0820
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 0x4a0835
mov esi, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
jmp 0x4a0776
dec eax
mov dword [esp + 0x38], eax
jmp case.0x4a03a0.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 0x4a0911
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.0049b6c0
push dword [edi + 0x24]
push dword [edi + 0x10]
call fcn.0048bbc0
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 0x4a0880
mov dword [esp + 0x18], edi
dec esi
mov dword [esp + 0x34], esi
jmp case.0x4a03a0.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.0049b6c0
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 0x4a0963
mov eax, dword [ecx + 0x14]
cmp eax, dword [ecx + 0x24]
jne 0x4a097b
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.0x4a03a0.10
test eax, 0x4000
je 0x4a0998
mov ecx, edi
call fcn.0049b5b0
test byte [edi + 0x1c], 0x12
je case.0x4a03a0.10
mov eax, dword [edi + 0x14]
cmp eax, dword [edi + 0x24]
je case.0x4a03a0.10
mov edx, dword [edi + 0x18]
mov ecx, edi
push 1
add edx, 2
call fcn.0049b3c0
mov esi, dword [esp + 0x14]
add esp, 4
test eax, eax
jne 0x4a6ab1
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 0x4a15fa
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.0049b6c0
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 0x4a0a43
mov eax, dword [ecx + 0x14]
cmp eax, dword [ecx + 0x24]
jne case.0x4a03a0.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.0x4a03a0.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 0x4a0a84
mov ecx, edx
call fcn.0049ba00
jmp case.0x4a03a0.10
test ecx, 0x4000
je 0x4a0adc
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.0049b3c0
add esp, 4
test eax, eax
je 0x4a0ab1
mov eax, 7
jmp 0x4a0ad4
push dword [edi]
mov eax, dword [edi + 0x14]
add eax, dword [edi + 0x18]
push 0
push eax
call fcn.004df440
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 0x4a66c2
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x4a0af6
mov ecx, esi
call fcn.0049b5b0
test eax, eax
jne 0x4a66c2
test byte [edi + 0x1c], 0x12
movzx esi, byte [esp + 0xe8]
jne 0x4a0b15
mov edx, esi
mov ecx, edi
call fcn.0049b610
test eax, eax
jne 0x4a66c2
mov eax, dword [esp + 0xe4]
test byte [eax + 0x1c], 0x12
jne 0x4a0b3a
mov edx, esi
mov ecx, eax
call fcn.0049b610
test eax, eax
jne 0x4a66c2
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 0x4a68ed
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.0049b3c0
add esp, 4
test eax, eax
jne 0x4a6ab1
mov eax, dword [esp + 0xe4]
cmp edi, eax
je 0x4a0bb2
push dword [eax + 0x18]
push dword [eax + 0x14]
push dword [edi + 0x14]
call fcn.004deec0
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.004deec0
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 0x4a15fa
mov ecx, dword [esp + 0x20]
call fcn.0049ffe0
mov ecx, dword [esp + 0xe4]
call fcn.0049ffe0
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 0x4a0f43
mov eax, dword [esp + 0xe4]
mov al, byte [eax + 0x1c]
and al, byte [edx + 0x1c]
test al, 4
je 0x4a0d4d
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.0x4a0c9f
jmp dword [eax*4 + 0x4a6cec]
add ecx, esi
adc edx, edi
jmp 0x4a0d23
sub ecx, esi
sbb edx, edi
jmp 0x4a0d23
push edx
push ecx
push edi
push esi
call fcn.004ddbd0
jmp 0x4a0d21
mov eax, esi
or eax, edi
je 0x4a0f43
mov eax, esi
and eax, edi
cmp eax, 0xffffffff
jne 0x4a0ceb
test ecx, ecx
jne 0x4a0ceb
cmp edx, 0x80000000
jne 0x4a0ceb
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.00502960
jmp 0x4a0d21
mov eax, esi
or eax, edi
je 0x4a0f43
mov eax, esi
and eax, edi
cmp eax, 0xffffffff
jne 0x4a0d18
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.00502a50
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.0x4a03a0.10
mov ecx, edx
call fcn.0049b8c0
mov ecx, dword [esp + 0xe4]
movsd qword [esp + 0x48], xmm0
call fcn.0049b8c0
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.0x4a0d81
jmp dword [eax*4 + 0x4a6cfc]
addsd xmm0, qword [esp + 0x48]
jmp 0x4a0e29
subsd xmm0, qword [esp + 0x48]
jmp 0x4a0e29
mulsd xmm0, qword [esp + 0x48]
jmp 0x4a0e29
movsd xmm1, qword [esp + 0x48]
ucomisd xmm1, qword [esp + 0x130]
lahf
test ah, 0x44
jnp 0x4a0f43
divsd xmm0, xmm1
jmp 0x4a0e29
movsd xmm0, qword [esp + 0x48]
call fcn.00502f80
movsd xmm0, qword [esp + 0xf0]
mov esi, eax
mov edi, edx
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], edi
call fcn.00502f80
mov ecx, eax
mov dword [esp + 0x44], edx
mov eax, esi
mov dword [esp + 0x40], ecx
or eax, edi
je 0x4a0f43
mov eax, esi
and eax, edi
cmp eax, 0xffffffff
jne 0x4a0e19
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.00502a50
mov ecx, eax
call fcn.00503090
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 0x4a0f43
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.0x4a03a0.10
movsd xmm1, qword [esp + 0x148]
comisd xmm1, xmm0
jbe 0x4a0ec9
xor edi, edi
mov esi, connect
jmp 0x4a0eea
comisd xmm0, xmmword [esp + 0x158]
jbe 0x4a0edd
xor edi, edi
mov esi, connect
jmp 0x4a0eea
call fcn.00502f80
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.00503090
movsd xmm1, qword [esp + 0xf0]
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp case.0x4a03a0.10
add edi, 0xffffffff
adc esi, 0x7fffffff
cmp esi, 0xffffffff
ja case.0x4a03a0.10
jb 0x4a0f2c
cmp edi, 0xfffffffd
ja case.0x4a03a0.10
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0xd8]
or eax, 4
mov word [ecx + 0x1c], ax
jmp case.0x4a03a0.10
mov ecx, dword [esp + 0x18]
call fcn.0049ba00
jmp case.0x4a03a0.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 0x4a0feb
nop word [eax + eax]
mov dword [esi + eax*4], edx
mov ecx, dword [esp + 0x34]
movzx eax, word [ecx + 0x1c]
test al, 1
je 0x4a0fa5
mov byte [ecx + 0x1e], 5
jmp 0x4a0fc4
test al, 4
je 0x4a0faf
mov byte [ecx + 0x1e], 1
jmp 0x4a0fc4
test al, 8
je 0x4a0fb9
mov byte [ecx + 0x1e], 2
jmp 0x4a0fc4
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 0x4a0fe4
mov esi, dword [esp + 0x78]
jmp 0x4a0f90
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 0x4a1008
mov dword [esp + 0x3c], 0
jmp 0x4a100e
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.0049b6c0
push dword [esp + 0x64]
push dword [esp + 0x54]
call fcn.0048bbc0
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 0x4a10d5
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 0x4a65f8
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x4a1119
mov edx, dword [edi + esi*4 + 4]
call fcn.0049e460
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 0x4a1150
mov dl, 1
lea ecx, [esp + 0x40]
call fcn.0049c380
mov esi, dword [esp + 0x10]
push eax
mov eax, dword [esp + 0xc]
push 0x523818
add eax, 0x68
push esi
push eax
call fcn.0048c030
mov eax, dword [esp + 0x7c]
add esp, 0x10
mov dword [esp + 0xc], eax
jmp 0x4a1154
mov esi, dword [esp + 0x10]
test byte [esp + 0x5c], 2
je 0x4a1173
mov al, byte [esp + 0xe8]
cmp byte [esp + 0x5f], al
je 0x4a1173
mov dl, al
lea ecx, [esp + 0x40]
call fcn.0048d920
mov edi, dword [esp + 0x18]
mov ecx, edi
call fcn.0049b6c0
push dword [edi + 0x24]
push dword [edi + 0x10]
call fcn.0048bbc0
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 0x4a0c03
mov ecx, dword [edi + 0x18]
test eax, 0x4000
je 0x4a11ef
add ecx, dword [edi]
mov eax, dword [edi + 0x10]
mov edi, dword [esp + 8]
cmp ecx, dword [eax + 0x48]
jg 0x4a68fb
mov edx, dword [esp + 0xc]
jmp 0x4a15fa
mov ecx, dword [esp + 0xe4]
mov esi, dword [esp + 0x20]
mov al, byte [ecx + 0x1c]
or al, byte [esi + 0x1c]
test al, 1
je 0x4a1229
mov ecx, edx
call fcn.0049ba00
jmp case.0x4a03a0.10
call fcn.0049b7e0
mov ecx, esi
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
call fcn.0049b7e0
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 0x4a129b
sub eax, 1
je 0x4a128d
sub eax, 1
je 0x4a126f
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
call fcn.00502ee0
jmp 0x4a12a7
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 0x4a12af
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
or eax, ecx
or edx, esi
jmp 0x4a12a7
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.0x4a03a0.10
mov ecx, dword [esp + 0x20]
call fcn.0049b7e0
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.0x4a03a0.10
mov ecx, dword [esp + 0x20]
call fcn.0049ffe0
mov ecx, dword [esp + 0x20]
test byte [ecx + 0x1c], 8
je 0x4a1322
call fcn.0049b980
mov ecx, dword [esp + 0x20]
movzx eax, word [ecx + 0x1c]
test al, 4
jne 0x4a134a
mov eax, dword [esi + edi*4 + 8]
mov edi, dword [esp + 8]
test eax, eax
je 0x4a66f9
lea edx, [eax - 1]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0xc]
jmp 0x4a15f6
and eax, 0xbf04
or eax, 4
mov word [ecx + 0x1c], ax
jmp case.0x4a03a0.10
mov ecx, dword [esp + 0x20]
test byte [ecx + 0x1c], 4
je case.0x4a03a0.10
call fcn.0049b8c0
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.0x4a03a0.10
mov eax, dword [esp + 0x20]
movzx ecx, word [eax + 0x1c]
test cl, 1
jne case.0x4a03a0.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 0x4a13cc
test al, 0xc
je 0x4a13cc
movzx edx, byte [esp + 0xe8]
call fcn.0049b610
mov ecx, dword [esp + 0x20]
mov eax, 0xfff3
and word [ecx + 0x1c], ax
mov ax, word [ecx + 0x1c]
test eax, 0x4000
je 0x4a144e
mov edx, dword [ecx]
mov eax, 1
add edx, dword [ecx + 0x18]
test edx, edx
push eax
cmovle edx, eax
call fcn.0049b3c0
mov ecx, dword [esp + 0x24]
add esp, 4
test eax, eax
je 0x4a1422
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 0x4a15f2
push dword [ecx]
mov eax, dword [ecx + 0x14]
add eax, dword [ecx + 0x18]
push 0
push eax
call fcn.004df440
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 0x4a15f2
mov ecx, dword [esp + 0x20]
movzx eax, word [ecx + 0x1c]
test al, 1
jne case.0x4a03a0.10
test al, 0x10
jne 0x4a14ab
test al, 2
jne 0x4a1492
test al, 0xc
je 0x4a1492
movzx edx, byte [esp + 0xe8]
call fcn.0049b610
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.0x4a03a0.10
and eax, 0xff10
mov word [ecx + 0x1c], ax
jmp case.0x4a03a0.10
mov ecx, dword [esp + 0x20]
test byte [ecx + 0x1c], 0xd
jne case.0x4a03a0.10
call fcn.0049b8c0
movsd xmm1, qword [esp + 0x148]
comisd xmm1, xmm0
movsd qword [esp + 0xf0], xmm0
jbe 0x4a14ed
xor eax, eax
mov edx, connect
jmp 0x4a1506
comisd xmm0, xmmword [esp + 0x158]
jbe 0x4a1501
xor eax, eax
mov edx, connect
jmp 0x4a1506
call fcn.00502f80
mov ecx, eax
call fcn.00503090
movsd xmm1, qword [esp + 0xf0]
mov ecx, dword [esp + 0x20]
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x4a1532
call fcn.0049b7e0
mov ecx, dword [esp + 0x20]
jmp 0x4a12b3
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.0x4a03a0.10
mov ecx, dword [esp + 0x20]
test byte [ecx + 0x1c], 1
jne case.0x4a03a0.10
call fcn.0049b7e0
mov ecx, dword [esp + 0x20]
jmp 0x4a12b3
mov ecx, dword [esp + 0x20]
test byte [ecx + 0x1c], 1
jne case.0x4a03a0.10
call fcn.0049b8c0
mov ecx, dword [esp + 0x20]
movsd qword [ecx + 8], xmm0
jmp 0x4a1537
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 0x4a160f
mov al, byte [esi + edi*4 + 3]
test al, al
jns 0x4a15ae
and ecx, edx
not ecx
and ecx, 1
jmp 0x4a16d9
test al, 0x10
je 0x4a15e1
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 0x4a15f6
test al, 8
je case.0x4a03a0.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 0x4a6a36
mov edx, dword [esp + 0x1c]
jmp 0x4a0251
mov dl, byte [esi + edi*4 + 3]
and dl, 0x67
mov byte [esp + 0x34], dl
je 0x4a1654
push dword [esp + 0xe8]
mov ecx, dword [esp + 0x24]
call fcn.004a00c0
mov dl, byte [esp + 0x38]
add esp, 4
mov ecx, dword [esp + 0x2c]
push dword [esp + 0xe8]
call fcn.004a00c0
mov eax, dword [esp + 0x14]
add esp, 4
cmp byte [eax + 0x1e], 0
jne 0x4a6aba
mov ecx, dword [esp + 0x20]
mov edx, 0xe
mov ax, word [ecx + 0x1c]
bt ax, dx
jae 0x4a16ab
mov edx, dword [ecx]
mov eax, 1
add edx, dword [ecx + 0x18]
test edx, edx
push eax
cmovle edx, eax
call fcn.0049b3c0
add esp, 4
test eax, eax
jne 0x4a16ab
mov ecx, dword [esp + 0x20]
push dword [ecx]
push eax
mov eax, dword [ecx + 0x14]
add eax, dword [ecx + 0x18]
push eax
call fcn.004df440
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 0x4a16c5
mov ecx, eax
call fcn.0049b5b0
mov eax, dword [esp + 0x2c]
push dword [esi + edi*4 + 0x10]
mov edx, dword [esp + 0x24]
mov ecx, eax
call fcn.0049bf00
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.0x4a16e9
jmp dword [eax*4 + 0x4a6d0c]
xor eax, eax
test ecx, ecx
sete al
jmp 0x4a171f
xor eax, eax
test ecx, ecx
setne al
jmp 0x4a171f
mov eax, ecx
jmp 0x4a171c
xor eax, eax
test ecx, ecx
setle al
jmp 0x4a171f
xor eax, eax
test ecx, ecx
setg al
jmp 0x4a171f
mov eax, ecx
not eax
shr eax, 0x1f
mov dword [esp + 0x30], eax
test byte [esi + edi*4 + 3], 0x10
je 0x4a1ab4
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 0x4a15f6
mov eax, dword [esi + edi*4 + 0x10]
mov dword [esp + 0x108], eax
jmp case.0x4a03a0.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 0x4a1848
mov eax, dword [esp + 0x108]
test eax, eax
je 0x4a17c4
mov edi, dword [eax + edx*4]
jmp 0x4a17c6
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.0049bf00
add esp, 4
mov dword [esp + 0x10c], eax
test eax, eax
jne 0x4a1838
mov edx, dword [esp + 0x34]
inc edx
mov dword [esp + 0x34], edx
cmp edx, dword [esp + 0x30]
jge 0x4a1848
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 0x4a17b4
cmp dword [esp + 0x4c], 0
je 0x4a1848
neg eax
mov dword [esp + 0x10c], eax
xor eax, eax
mov dword [esp + 0x108], eax
jmp case.0x4a03a0.10
mov ecx, dword [esp + 0x10c]
test ecx, ecx
jns 0x4a186d
mov eax, dword [esi + edi*4 + 4]
lea edx, [eax - 1]
jmp 0x4a15ea
jne 0x4a187b
mov eax, dword [esi + edi*4 + 8]
lea edx, [eax - 1]
jmp 0x4a15ea
mov eax, dword [esi + edi*4 + 0xc]
lea edx, [eax - 1]
jmp 0x4a15ea
mov eax, dword [esp + 0x20]
test byte [eax + 0x1c], 1
je 0x4a1898
mov ecx, 2
jmp 0x4a18ac
mov ecx, eax
call fcn.0049b7e0
or eax, edx
je 0x4a18aa
mov ecx, 1
jmp 0x4a18ac
xor ecx, ecx
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], ecx
test byte [eax + 0x1c], 1
je 0x4a18c4
mov eax, 2
jmp 0x4a18dc
mov ecx, eax
call fcn.0049b7e0
or eax, edx
mov ecx, dword [esp + 0x30]
je 0x4a18da
mov eax, 1
jmp 0x4a18dc
xor eax, eax
mov dword [esp + 0x34], eax
lea eax, [eax + ecx*2]
cmp byte [esi + edi*4], 0x45
jne 0x4a18f3
movzx eax, byte [ecx + eax + 0x51f1dc]
jmp 0x4a18fb
movzx eax, byte [ecx + eax + 0x51e744]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x30], eax
cmp eax, 2
jne 0x4a1924
mov ax, word [edi + 0x1c]
mov ecx, 0xbf01
and ax, cx
or ax, 1
movzx eax, ax
mov word [edi + 0x1c], ax
jmp case.0x4a03a0.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.0x4a03a0.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 0x4a1971
mov ecx, edi
call fcn.0049ba00
jmp case.0x4a03a0.10
mov ecx, eax
call fcn.0049b7e0
or eax, edx
jne 0x4a1983
lea esi, [eax + 1]
xor edi, edi
jmp 0x4a199d
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.0049b6c0
mov eax, dword [esp + 0x18]
push dword [eax + 0x24]
push dword [eax + 0x10]
call fcn.0048bbc0
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.0x4a03a0.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 0x4a1a13
mov ecx, edi
call fcn.0049ba00
jmp case.0x4a03a0.10
mov ecx, eax
call fcn.0049b7e0
mov esi, eax
mov edi, edx
not esi
not edi
mov ecx, dword [esp + 0x18]
call fcn.0049b6c0
mov eax, dword [esp + 0x18]
push dword [eax + 0x24]
push dword [eax + 0x10]
call fcn.0048bbc0
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.0x4a03a0.10
mov ecx, dword [esp + 0x20]
test byte [ecx + 0x1c], 1
je 0x4a1a86
mov eax, dword [esi + edi*4 + 0xc]
test eax, eax
mov dword [esp + 0x30], eax
jmp 0x4a15e3
call fcn.0049b8c0
ucomisd xmm0, qword [esp + 0x130]
lahf
test ah, 0x44
jnp 0x4a1aa1
mov eax, 1
jmp 0x4a1aa3
xor eax, eax
mov dword [esp + 0x30], eax
cmp byte [esi + edi*4], 0x1b
jne 0x4a1ab4
xor eax, 1
mov dword [esp + 0x30], eax
test eax, eax
jmp 0x4a15e3
mov eax, dword [esp + 0x20]
test byte [eax + 0x1c], 1
jmp 0x4a15e3
mov eax, dword [esp + 0x20]
test byte [eax + 0x1c], 1
jne case.0x4a03a0.10
jmp 0x4a15e5
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 0x4a1d24
cmp byte [esi + 0x15], 0
je 0x4a1bcc
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.00497f40
mov edx, eax
add esp, 0x10
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4a686b
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 0x4a1bc6
mov ecx, dword [esi]
lea edx, [esp + 0x128]
call fcn.00498440
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4a686b
mov byte [esi + 0x15], 0
jmp 0x4a1c0e
mov edi, dword [esi]
test edi, edi
je 0x4a1c19
cmp byte [edi + 0x43], 2
jb 0x4a1bf1
mov ecx, edi
call fcn.00496000
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4a686b
mov ecx, dword [esp + 0x48]
cmp byte [edi + 0x43], 1
jne 0x4a1c01
cmp dword [edi + 0x50], 0
jne 0x4a1c01
xor eax, eax
jmp 0x4a1c06
mov eax, 1
test eax, eax
je 0x4a1c19
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 0x4a1c3b
mov dword [esp + 0x30], edi
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 8]
inc edx
mov esi, dword [esp + 0x10]
jmp 0x4a024d
mov esi, dword [esp + 8]
mov eax, dword [ecx + 0x44]
cmp eax, dword [esi + 0x5c]
jne 0x4a1c68
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 0x4a1d6c
cmp byte [ecx + 0x17], 0
je 0x4a1c9a
mov ecx, dword [esp + 0x50]
lea edx, [esp + 0x38]
call fcn.004976c0
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 0x4a1d6c
mov edx, dword [esp + 0x50]
mov dword [esp + 0xec], edx
cmp word [edx + 0x3e], di
jne 0x4a1d09
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.00496140
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 0x4a1d6c
mov eax, dword [esi + 0x24]
test eax, eax
jle 0x4a2336
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 0x4a1d5f
xor eax, eax
jmp 0x4a1d61
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 0x4a0c03
cmp edx, dword [esi + 0x48]
ja 0x4a68ed
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 0x4a1da2
mov eax, dword [ecx + 0x50]
mov dword [esp + 0x58], eax
jmp 0x4a20a4
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 0x4a1dd9
mov dword [esp + 0x68], ecx
jmp 0x4a1e33
mov esi, dword [esp + 0x48]
xor edx, edx
mov ecx, dword [esp + 0x50]
cmp byte [esi + 0x17], dl
je 0x4a1df1
cmp byte [ecx + 0x43], 1
jne 0x4a1e0e
push edx
jmp 0x4a1df9
cmp byte [ecx + 0x43], 1
jne 0x4a1e0e
push 1
lea edx, [esp + 0xb8]
call fcn.00497b30
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 0x4a1e28
mov dword [esp + 0x4c], edx
mov dword [esi + 0x54], edx
jmp 0x4a1e2f
mov dword [esi + 0x54], 0
mov ecx, dword [esp + 0x68]
mov al, byte [ecx]
cmp al, 0x80
jae 0x4a1e47
movzx edx, al
mov al, 1
mov dword [esp + 0xa0], edx
jmp 0x4a1e5e
lea edx, [esp + 0xa0]
call fcn.0048ec40
mov edx, dword [esp + 0xa0]
mov ecx, dword [esp + 0x68]
movzx eax, al
mov dword [esp + 0xb0], eax
cmp edx, 0x18003
ja 0x4a6707
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 0x4a1ef0
cmp dword [esp + 0xb4], esi
jge 0x4a1ef0
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.0049c210
mov edx, eax
add esp, 0xc
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4a15f2
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 0x4a2001
nop word [eax + eax]
cmp esi, eax
mov eax, dword [esp + 0x58]
jae 0x4a1fd1
mov dword [eax + ecx*4], edx
mov ecx, dword [esp + 0x98]
mov al, byte [ecx]
cmp al, 0x80
jae 0x4a1f5e
mov ecx, dword [esp + 0x64]
movzx edx, al
mov eax, dword [esp + 0x54]
mov dword [eax + ecx*4], edx
mov al, 1
jmp 0x4a1f6e
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x54]
lea edx, [eax + edx*4]
call fcn.0048ec40
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 0x4a1fb0
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 0x4a1fea
mov edx, dword [esp + 0xa8]
movzx eax, byte [eax + 0x51e4f4]
add edx, eax
mov dword [esp + 0xa8], edx
adc dword [esp + 0xac], 0
jmp 0x4a1fea
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 0x4a2001
mov eax, dword [esp + 0x9c]
jmp 0x4a1f30
lea ecx, [esp + 0x70]
call fcn.0049b6c0
push dword [esp + 0x94]
push dword [esp + 0x84]
call fcn.0048bbc0
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 0x4a2328
mov edi, dword [esp + 0xac]
mov ecx, dword [esp + 0x30]
test edi, edi
ja 0x4a2328
mov eax, dword [esp + 0xa8]
jb 0x4a2088
cmp eax, ecx
ja 0x4a2328
cmp edx, esi
jne 0x4a209c
cmp eax, ecx
jne 0x4a2328
test edi, edi
jne 0x4a2328
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x44]
cmp dword [eax + ecx*4], 0
je 0x4a2276
cmp dword [esp + 0x4c], 0
je 0x4a20dd
mov ecx, dword [esp + 0x6c]
call fcn.0049b6c0
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 0x4a225a
mov eax, dword [edx + ecx*4]
cmp eax, 0xc
jb 0x4a20ec
add eax, 0xfffffff4
shr eax, 1
jmp 0x4a20f3
movzx eax, byte [eax + 0x51e4f4]
mov edi, dword [esp + 0x6c]
lea ecx, [esp + 0x70]
mov dword [esp + 0x60], eax
call fcn.0049b6c0
mov ecx, dword [esp + 0x80]
mov esi, dword [esp + 0x94]
test ecx, ecx
je 0x4a2144
test esi, esi
je 0x4a21b3
cmp esi, dword [ecx + 0xf0]
jb 0x4a2144
cmp esi, dword [ecx + 0xf4]
jae 0x4a2144
mov eax, dword [ecx + 0xec]
mov dword [esi], eax
dec dword [ecx + 0xe4]
mov dword [ecx + 0xec], esi
jmp 0x4a21b3
test esi, esi
je 0x4a21b3
cmp dword [0x535d00], 0
je 0x4a21a9
mov eax, dword [0x538570]
test eax, eax
je 0x4a2164
push eax
call dword [0x535d48]
add esp, 4
push esi
call dword [0x535d24]
mov ecx, dword [0x5383f8]
neg eax
add ecx, eax
add esp, 4
mov eax, dword [0x53841c]
cmp ecx, eax
mov dword [0x5383f8], ecx
cmovg eax, ecx
push esi
mov dword [0x53841c], eax
call dword [0x535d1c]
mov eax, dword [0x538570]
add esp, 4
test eax, eax
je 0x4a21b3
push eax
call dword [0x535d50]
jmp 0x4a21b0
push esi
call dword [0x535d1c]
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.0049c210
mov edx, eax
add esp, 0xc
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4a15f2
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.0049e640
mov eax, dword [esp + 0x70]
add esp, 4
mov cl, byte [esp + 0xe8]
mov byte [eax + 0x1f], cl
jmp 0x4a22d4
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
cmp byte [ecx + eax*4 + 1], 0xf8
jne 0x4a22d4
mov edi, dword [ecx + eax*4 + 0x10]
mov esi, dword [esp + 0x6c]
mov ecx, esi
call fcn.0049b6c0
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 0x4a22bc
mov eax, dword [edi + 0x14]
cmp eax, dword [edi + 0x24]
jne 0x4a22d4
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 0x4a2314
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.0049b550
mov edx, eax
mov dword [esp + 0xc], edx
jmp 0x4a15f2
mov edx, 0xb
mov dword [esp + 0xc], edx
jmp 0x4a15f2
mov dword [esp + 0x30], 0
jmp case.0x4a03a0.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.0x4a03a0.10
mov dword [esp + 0x3c], esi
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x4a239b
mov ecx, esi
call fcn.0049b5b0
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.004a00c0
mov esi, dword [esp + 0x40]
add esp, 4
add esi, 0x28
mov dword [esp + 0x3c], esi
cmp esi, dword [esp + 0x38]
jbe 0x4a2385
jmp case.0x4a03a0.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 0x4a2565
mov dword [esp + 0x34], edi
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x4a24a8
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.004a00c0
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 0x4a24d4
cmp dword [edi + 0x18], 0
jle 0x4a24d4
mov ecx, edi
call fcn.0049b5b0
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.0049e560
mov edx, eax
mov dword [esp + 0x58], edx
cmp edx, 0xc
jb 0x4a24f1
lea eax, [edx - 0xc]
shr eax, 1
jmp 0x4a24f8
movzx eax, byte [edx + 0x51e4f4]
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 0x4a2523
cmp esi, 9
jl 0x4a2510
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 0x4a2540
add esi, dword [edi]
jmp 0x4a254c
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 0x4a2461
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 0x4a2583
cmp edi, 9
jl 0x4a2570
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 0x4a25b3
cmp edi, 9
jl 0x4a25a0
mov eax, dword [esp + 0x40]
cmp dword [esp + 0xd8], edi
jge 0x4a25c5
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 0x4a68ed
jl 0x4a25fb
cmp edi, eax
ja 0x4a68ed
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.0049b3c0
add esp, 4
test eax, eax
jne 0x4a66c2
mov ecx, dword [esp + 0x40]
mov edx, dword [esi + 0x14]
mov dword [esp + 0x30], edx
cmp ecx, 0x80
jae 0x4a264c
mov al, cl
mov byte [edx], al
mov eax, 1
jmp 0x4a2677
test ecx, 0xffffc000
jne 0x4a266a
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 0x4a2677
push 0
push ecx
mov ecx, edx
call fcn.0048e9c0
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 0x4a270c
mov edx, dword [esp + 0x6c]
mov ecx, esi
call fcn.0049e560
mov ecx, eax
mov dword [esp + 0x58], ecx
cmp ecx, 0x80
jae 0x4a26b9
mov cl, al
mov eax, dword [esp + 0x30]
mov byte [edi + eax], cl
mov eax, 1
jmp 0x4a26ea
mov edx, dword [esp + 0x30]
add edx, edi
test ecx, 0xffffc000
jne 0x4a26dd
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 0x4a26ea
push 0
push ecx
mov ecx, edx
call fcn.0048e9c0
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 0x4a2690
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x34], esi
cmp esi, dword [esp + 0x60]
ja 0x4a281a
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.0049e560
mov dword [esp + 0xf8], eax
lea ecx, [eax - 1]
cmp ecx, 6
ja 0x4a279f
mov ecx, eax
cmp eax, 7
jne 0x4a278e
mov edx, dword [esi + 8]
mov eax, dword [esi + 0xc]
movzx ecx, byte [ecx + 0x51e4f4]
mov dword [esp + 0x24], ecx
test ecx, ecx
je 0x4a2788
mov esi, dword [esp + 0x28]
dec ecx
mov byte [ecx + esi], dl
shrd edx, eax, 8
shr eax, 8
test ecx, ecx
jne 0x4a2771
mov edi, dword [esp + 0x70]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x24]
jmp 0x4a2803
mov edx, dword [esi]
mov eax, dword [esi + 4]
cmp ecx, 0xc
jb 0x4a275e
add ecx, 0xfffffff4
shr ecx, 1
jmp 0x4a2765
cmp eax, 0xc
jb 0x4a2801
mov edi, dword [esi + 0x18]
push edi
push dword [esi + 0x14]
mov dword [esp + 0x2c], edi
push dword [esp + 0x30]
call fcn.004deec0
mov eax, 0x4000
add esp, 0xc
test word [esi + 0x1c], ax
je 0x4a27f3
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.004df440
add esp, 0xc
mov edi, dword [esp + 0x70]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x24]
jmp 0x4a2803
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 0x4a2720
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 0x4a2848
mov dword [edi], eax
mov eax, 0x4410
mov word [edi + 0x1c], ax
mov byte [edi + 0x1f], 1
jmp case.0x4a03a0.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 0x4a2878
lea edx, [esp + 0x30]
call fcn.0049b070
mov dword [esp + 0xc], eax
jmp 0x4a2881
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 0x4a15f6
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 0x4a29eb
cmp dword [esi + 0x90], edx
jg 0x4a6724
test eax, eax
je 0x4a28f3
mov ecx, dword [esp + 0x28]
cmp byte [ecx], 0
je 0x4a28ec
mov eax, ecx
inc eax
cmp byte [eax], 0
jne 0x4a28e6
sub eax, ecx
and eax, 0x3fffffff
mov dword [esp + 0x38], eax
lea edx, [eax + 0x19]
cmp byte [esi + 0x1e], 0
je 0x4a2915
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 8]
mov dword [esp + 0x3c], 0
jmp 0x4a15fa
cmp byte [esi + 0xe2], 0
je 0x4a295c
movzx eax, word [esi + 0xe0]
cmp edx, eax
ja 0x4a295c
mov ecx, dword [esi + 0xec]
test ecx, ecx
je 0x4a295c
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 0x4a2956
mov dword [esi + 0xe8], eax
mov dword [esp + 0x3c], ecx
jmp 0x4a297b
push edx
call fcn.0048bad0
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x4a296f
mov byte [esi + 0x1e], 1
mov dword [esp + 0x3c], ecx
test ecx, ecx
je 0x4a0c03
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.004deec0
add esp, 0xc
cmp byte [esi + 0x1c], 0
je 0x4a29ab
mov byte [esi + 0x1c], 0
mov byte [esi + 0x1cc], 1
jmp 0x4a29b1
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 0x4a15fa
xor ecx, ecx
mov dword [esp + 0x48], ecx
mov edi, dword [esi + 0x1c0]
mov dword [esp + 0x40], edi
test edi, edi
je 0x4a6774
mov esi, dword [edi]
mov edx, eax
mov cl, byte [esi]
test cl, cl
je 0x4a2a40
mov al, cl
sub esi, edx
movzx ecx, byte [edx]
mov byte [esp + 0x103], al
movzx eax, al
mov al, byte [eax + 0x51f7b8]
cmp al, byte [ecx + 0x51f7b8]
jne 0x4a2a39
mov al, byte [edx + esi + 1]
inc edx
mov cl, al
test al, al
jne 0x4a2a11
jmp 0x4a2a40
mov cl, byte [esp + 0x103]
movzx eax, cl
movzx ecx, byte [eax + 0x51f7b8]
movzx eax, byte [edx]
movzx eax, byte [eax + 0x51f7b8]
sub ecx, eax
je 0x4a2a73
inc dword [esp + 0x48]
mov eax, dword [edi + 0x10]
mov edi, eax
mov dword [esp + 0x40], edi
test eax, eax
je 0x4a6774
mov eax, dword [esp + 0x28]
jmp 0x4a2a03
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0xd8]
mov esi, dword [esp + 0x10]
test edi, edi
je 0x4a6774
cmp dword [esi + 0x90], 0
jg 0x4a2c73
cmp edx, 2
jne 0x4a2aa9
cmp dword [esi + 0x8c], 1
jg 0x4a2c73
cmp dword [edi + 0x10], 0
jne 0x4a2b00
cmp byte [esi + 0x1cc], 0
je 0x4a2b00
mov esi, 1
mov dword [esp + 0x24], esi
cmp edx, esi
jne 0x4a2b0a
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 8]
mov ecx, edi
mov byte [eax + 0x1c], 1
call fcn.0049df80
cmp eax, 5
je 0x4a6753
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 0x4a2bd2
mov dword [esp + 0x24], 0
jmp 0x4a2b0e
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 0x4a2b9b
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 0x4a2b81
cmp byte [eax + 8], 2
jne 0x4a2b81
mov esi, dword [eax + 4]
push dword [esp + 0x48]
mov ecx, dword [esi]
call fcn.00495c50
mov edx, eax
add esp, 4
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4a2b75
mov ecx, esi
call fcn.00497290
mov dword [esp + 0xc], eax
mov edi, dword [esp + 0xc]
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x4c]
test edi, edi
jne 0x4a6867
mov ecx, dword [esp + 0x10]
inc esi
mov dword [esp + 0x4c], esi
cmp esi, dword [ecx + 4]
jl 0x4a2b30
mov edi, dword [esp + 0x40]
cmp edx, 2
jne 0x4a2bce
test byte [ecx + 0xc], 0x10
je 0x4a2bce
mov eax, dword [ecx + 0x88]
test eax, eax
je 0x4a2bbb
mov byte [eax + 0x6e], 1
mov eax, dword [eax + 8]
test eax, eax
jne 0x4a2bb0
xor edx, edx
call fcn.004b16c0
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 0x4a2c16
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.0048bbc0
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 0x4a2be0
mov edx, dword [esp + 0x30]
cmp edx, 1
jne 0x4a2c50
mov eax, dword [edi + 0x10]
mov dword [ecx + 0x1c0], eax
push dword [esp + 0x40]
push ecx
call fcn.0048bbc0
mov edx, dword [esp + 0x14]
add esp, 8
mov edi, dword [esp + 8]
test esi, esi
mov esi, dword [esp + 0x10]
jne 0x4a15fa
dec dword [esi + 0x1c4]
jmp 0x4a15fa
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 0x4a15fa
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.0048c030
mov edx, 5
add esp, 0x10
mov dword [esp + 0xc], edx
jmp 0x4a15fa
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 0x4a2d02
cmp byte [esi + 0x1c], 0
jne 0x4a2d02
mov dword [esp + 0x38], 1
test ecx, ecx
je 0x4a2cea
cmp dword [esi + 0x8c], 1
jle 0x4a2d0a
mov dword [esp + 0xc], 5
mov eax, str.cannot_rollback_transaction___SQL_statements_in_progress
jmp 0x4a2d38
cmp dword [esi + 0x90], 0
jle 0x4a2d0a
mov dword [esp + 0xc], 5
mov eax, str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x4a2d38
mov dword [esp + 0x38], 0
movzx eax, byte [esi + 0x1c]
cmp edx, eax
jne 0x4a67ab
test edx, edx
jne 0x4a2d21
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x4a2d30
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.0048c030
mov edx, dword [esp + 0x18]
add esp, 0xc
jmp 0x4a15fa
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.0x4a03a0.10
mov edx, dword [esi + edi*4 + 8]
call fcn.00497320
mov edx, eax
mov dword [esp + 0xc], edx
cmp edx, 5
je 0x4a681b
test edx, edx
jne 0x4a686b
cmp dword [esi + edi*4 + 8], eax
mov edi, dword [esp + 8]
je 0x4a15f6
cmp byte [edi + 0x71], al
je 0x4a15f6
mov esi, dword [esp + 0x10]
cmp byte [esi + 0x1c], al
je 0x4a2dbf
cmp dword [esi + 0x8c], 1
jle 0x4a15fa
mov edx, dword [edi + 0xd8]
test edx, edx
jne 0x4a2de1
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 0x4a2e01
mov ecx, dword [eax + 4]
cmp byte [ecx + 0x10], 0
jne 0x4a2e01
mov ecx, dword [ecx]
call fcn.00495b00
mov dword [esp + 0xc], eax
jmp 0x4a2e09
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 0x4a15fa
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 0x4a2e88
test esi, esi
je 0x4a2e88
mov byte [edi + 0x10], 1
mov esi, dword [esp + 0x30]
mov eax, esi
cdq
jmp 0x4a12af
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.0049b7e0
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.004956f0
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4a2f1b
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 0x4a2f45
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 0x4a2f5a
cmp eax, 2
jne 0x4a2f5a
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 0x4a0c03
mov eax, dword [esi + 0x88]
test eax, eax
je 0x4a2f7e
mov byte [eax + 0x6e], 1
mov eax, dword [eax + 8]
test eax, eax
jne 0x4a2f73
mov edi, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov byte [edi + 0x6e], 0
jmp 0x4a15fa
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 0x4a2fd2
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 0x4a2fd4
xor edx, edx
mov dword [esp + 0x30], edx
cmp edx, dword [esi + edi*4 + 8]
je case.0x4a03a0.10
mov eax, dword [esp + 8]
push dword [eax + 0x68]
push dword [esp + 0x14]
call fcn.0048bbc0
add esp, 8
mov eax, str.database_schema_has_changed
nop word [eax + eax]
inc eax
cmp byte [eax], 0
jne 0x4a3000
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 0x4a3021
xor esi, esi
jmp 0x4a307d
cmp byte [ecx + 0xe2], 0
je 0x4a30d9
movzx eax, word [ecx + 0xe0]
cmp edi, eax
ja 0x4a30d9
mov esi, dword [ecx + 0xec]
test esi, esi
je 0x4a30d9
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 0x4a306e
mov dword [ecx + 0xe8], eax
push edi
push str.database_schema_has_changed
push esi
call fcn.004deec0
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 0x4a30ae
mov ecx, esi
call fcn.004b16c0
mov eax, dword [esi + 0x88]
test eax, eax
je 0x4a30cb
nop dword [eax + eax]
mov byte [eax + 0x6e], 1
mov eax, dword [eax + 8]
test eax, eax
jne 0x4a30c0
mov edx, 0x11
mov dword [esp + 0xc], edx
jmp 0x4a15fa
push edi
call fcn.0048bad0
mov esi, eax
add esp, 4
test esi, esi
jne 0x4a306e
mov eax, dword [esp + 0x10]
mov byte [eax + 0x1e], 1
jmp 0x4a307d
mov eax, dword [esp + 8]
cmp byte [eax + 0x6e], 0
jne 0x4a6843
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 0x4a3159
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 0x4a315d
mov byte [ecx + 0x6f], al
jmp 0x4a315d
mov dword [esp + 0x40], edx
mov ecx, dword [esp + 0x14]
cmp byte [ecx + edi*4 + 3], dl
je 0x4a31ae
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.0049b7e0
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 0x4a6838
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x14]
mov al, byte [esi + edi*4 + 1]
cmp al, 0xfa
jne 0x4a31df
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 0x4a31e7
cmp al, 0xf2
jne 0x4a31eb
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.0049fee0
add esp, 0xc
mov dword [esp + 0x48], eax
test eax, eax
je 0x4a66c6
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 0x4a3266
cmp byte [edi + 0x10], 0
je 0x4a3266
mov dword [eax + 0x28], edx
mov dword [esp + 0xc], 8
jmp 0x4a3308
cmp ecx, 1
jne 0x4a32b3
mov ecx, dword [edi]
lea edx, [esp + 0x124]
mov dword [esp + 0x124], 0xffffffff
call fcn.00493d30
cmp dword [esp + 0x124], 0
jne 0x4a32a5
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 0x4a3300
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 0x4a32e0
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.0x4a03a0.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.0049fee0
add esp, 0xc
mov dword [esp + 0x30], eax
test eax, eax
je 0x4a66c2
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.00496b90
mov ecx, eax
add esp, 0xc
mov dword [esp + 0xc], ecx
test ecx, ecx
jne 0x4a3602
mov eax, dword [esi]
mov eax, dword [eax + 4]
cmp dword [eax + 0x24], ecx
jne 0x4a33c7
mov eax, dword [eax]
mov eax, dword [eax + 0xa8]
mov dword [eax + 0x10], 0x1f4
mov eax, dword [eax + 0x28]
test eax, eax
je 0x4a33c7
push 0x1f4
push eax
call dword [0x535d6c]
add esp, 8
jmp 0x4a33cf
test ecx, ecx
jne 0x4a3602
mov ecx, dword [esp + 0x30]
mov edx, 1
mov ecx, dword [ecx + 0x20]
call fcn.00497320
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4a3602
mov eax, dword [esp + 0x14]
cmp dword [eax + edi*4 + 0x10], 0
mov eax, dword [esp + 0x30]
je 0x4a355c
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.00498740
add esp, 0xc
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4a3541
mov esi, dword [esp + 0x138]
lea edx, [eax + 0xa]
mov ecx, esi
call fcn.004969e0
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x4a3452
mov esi, dword [ecx + 0x10]
call fcn.00490c20
mov ecx, esi
call fcn.00494f90
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 0x4a3487
mov dword [esp + 0xc], 8
jmp 0x4a3519
mov eax, dword [esp + 0x110]
cmp eax, 1
jne 0x4a34c7
mov ecx, dword [edi]
lea edx, [esp + 0x12c]
mov dword [esp + 0x12c], 0xffffffff
call fcn.00493d30
cmp dword [esp + 0x12c], 0
jne 0x4a34c0
mov dword [esp + 0xc], 0x10
jmp 0x4a3515
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 0x4a34f8
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.0x4a03a0.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 0x4a357e
mov dword [esp + 0xc], 8
jmp 0x4a35fe
mov ecx, dword [edi]
lea edx, [esp + 0x114]
mov dword [esp + 0x114], 0xffffffff
call fcn.00493d30
cmp dword [esp + 0x114], 0
jne 0x4a35ab
mov dword [esp + 0xc], 0x10
jmp 0x4a35fa
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 0x4a35dd
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.0x4a03a0.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.0049fee0
add esp, 0xc
mov dword [esp + 0x30], eax
test eax, eax
je 0x4a66c2
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.0x4a03a0.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 0x4a36ab
mov ecx, dword [esi + 0x20]
test ecx, ecx
je 0x4a367d
call fcn.00496df0
jmp 0x4a3688
mov ecx, dword [esi]
test ecx, ecx
je 0x4a368c
call fcn.00497630
mov edx, dword [esp + 8]
mov ecx, dword [esi + 0x38]
test ecx, ecx
je 0x4a36ab
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 0x4a15f6
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 0x4a15e5
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 0x4a3939
mov ecx, dword [esp + 0x2c]
call fcn.0049ffe0
mov ecx, dword [esp + 0x2c]
call fcn.0049b7e0
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 0x4a38dc
test al, 8
je 0x4a15e5
mov edi, dword [esp + 0x60]
mov esi, dword [esp + 0x64]
test edi, edi
jne 0x4a3882
cmp esi, 0x80000000
jne 0x4a3882
movsd xmm0, qword [ecx + 8]
movsd xmm1, qword [esp + 0x148]
comisd xmm1, xmm0
ja 0x4a3778
comisd xmm0, xmmword [esp + 0x130]
jbe 0x4a3882
movsd xmm0, qword [esp + 0x130]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x30], 1
comisd xmm0, xmmword [ecx + 8]
jbe 0x4a37e8
cmp eax, 0x2e
je 0x4a37a2
cmp eax, 0x2d
jne 0x4a3871
mov eax, dword [esp + 0x38]
mov esi, dword [eax]
mov ecx, esi
call fcn.00497c40
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4a686b
cmp byte [esi + 0x43], al
jne 0x4a37d3
mov dword [esp + 0x30], 1
mov dword [esp + 0xc], edx
jmp 0x4a3866
mov ecx, esi
mov dword [esp + 0x30], 0
call fcn.00497d80
mov edx, eax
test edx, edx
jmp 0x4a385c
cmp eax, 0x2b
je 0x4a37f2
cmp eax, 0x2c
jne 0x4a3871
mov eax, dword [esp + 0x38]
mov esi, dword [eax]
cmp byte [esi + 0x43], 1
jne 0x4a381d
cmp byte [esi + 0x41], 0
je 0x4a381d
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xc], 0
mov edx, dword [ecx + eax*4 + 8]
jmp 0x4a15e9
mov ecx, esi
call fcn.00497c40
mov ecx, eax
mov edx, ecx
mov dword [esp + 0xc], edx
test ecx, ecx
jne 0x4a3858
cmp byte [esi + 0x43], al
jne 0x4a383f
mov dword [esp + 0x30], 1
jmp 0x4a3866
mov ecx, esi
mov dword [esp + 0x30], 0
call fcn.00497e60
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 0x4a686b
cmp dword [esp + 0x30], 0
je 0x4a15f2
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + eax*4 + 8]
jmp 0x4a15e9
mov eax, dword [esp + 0x34]
cmp eax, 0x2b
je 0x4a38b4
cmp eax, 0x2d
je 0x4a38b4
mov edx, esi
mov ecx, edi
call fcn.00503090
mov eax, dword [esp + 0x2c]
comisd xmm0, xmmword [eax + 8]
jbe 0x4a38e4
add edi, 0xffffffff
mov dword [esp + 0x60], edi
adc esi, 0xffffffff
mov dword [esp + 0x64], esi
jmp 0x4a38e4
mov edx, esi
mov ecx, edi
call fcn.00503090
mov eax, dword [esp + 0x2c]
movsd xmm1, qword [eax + 8]
comisd xmm1, xmm0
jbe 0x4a38e4
add edi, 1
mov dword [esp + 0x60], edi
adc esi, 0
mov dword [esp + 0x64], esi
jmp 0x4a38e4
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.00497f40
mov edx, eax
add esp, 0x10
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4a686b
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x14]
cmp dword [esp + 0x30], eax
jne 0x4a39b1
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 0x4a39b1
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 0x4a3964
cmp eax, 0x2c
je 0x4a3964
xor eax, eax
jmp 0x4a3969
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.00497f40
mov edx, eax
add esp, 0x10
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4a686b
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 0x4a3a07
cmp eax, 0x2e
je 0x4a3a07
mov ecx, dword [esp + 0x30]
test ecx, ecx
jg 0x4a39f6
jne 0x4a39e1
cmp eax, 0x2b
je 0x4a39f6
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 0x4a3a55
mov ecx, dword [esp + 0x38]
lea edx, [esp + 0x30]
mov ecx, dword [ecx]
call fcn.004985b0
jmp 0x4a3a3f
mov ecx, dword [esp + 0x30]
test ecx, ecx
js 0x4a3a30
jne 0x4a3a16
cmp eax, 0x2e
je 0x4a3a30
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 8]
inc edx
mov esi, dword [esp + 0x10]
mov dword [esp + 0x30], 0
jmp 0x4a024d
mov ecx, dword [esp + 0x38]
lea edx, [esp + 0x30]
mov ecx, dword [ecx]
call fcn.00498440
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4a686b
mov eax, dword [esp + 0x38]
mov byte [eax + 0x11], 0
cmp dword [esp + 0x30], 0
je 0x4a1c29
mov edx, dword [esi + edi*4 + 8]
mov edi, dword [esp + 8]
dec edx
mov esi, dword [esp + 0x10]
inc edx
jmp 0x4a024d
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 0x4a1341
mov ecx, dword [esp + 0xe4]
mov byte [eax + 0x14], 0
call fcn.0049b7e0
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 0x4a15f6
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 0x4a3b88
mov eax, dword [esp + 0x2c]
mov edx, 0x4000
test word [eax + 0x1c], dx
je 0x4a3aff
mov ecx, eax
call fcn.0049b5b0
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.0049e8f0
add esp, 0xc
mov dword [esp + 0x3c], eax
test eax, eax
je 0x4a66c2
cmp byte [esi + edi*4], 0x31
jne 0x4a3b35
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.00497f40
mov ecx, dword [esp + 0x4c]
add esp, 0x10
mov dword [esp + 0xc], eax
call fcn.0049ead0
mov edx, dword [esp + 0xc]
test edx, edx
jne 0x4a15f2
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 0x4a3b95
test edx, edx
jmp 0x4a15e3
test edx, edx
jne case.0x4a03a0.10
jmp 0x4a15e5
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 0x4a3c1e
movzx eax, cx
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x1c], 1
jne 0x4a3cc8
inc cx
mov word [esp + 0x30], cx
cmp cx, dx
jb 0x4a3c01
test edi, edi
je case.0x4a03a0.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.0049b7e0
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.00497f40
add esp, 0x10
mov dword [esp + 0xc], eax
test byte [esp + 0x4e], 0x20
jne 0x4a3871
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x54]
cmp ecx, dword [esp + 0x60]
jne 0x4a3cbe
cmp eax, dword [esp + 0x64]
je 0x4a3871
mov dword [esi], ecx
mov dword [esi + 4], eax
jmp case.0x4a03a0.10
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + eax*4 + 8]
mov dword [esp + 0x38], 0
jmp 0x4a15e9
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 0x4a3d8f
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.00497f40
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 0x4a3d83
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.0x4a03a0.10
mov edx, dword [esi + edi*4 + 8]
mov dword [eax + 0x40], 0
jmp 0x4a15e9
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 0x4a15f6
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 0x4a403d
mov dword [esp + 0x40], 0
cmp byte [ecx + 0x13], 0
jne 0x4a3f59
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 0x4a3efd
mov esi, dword [ecx]
cmp byte [esi + 0x43], 1
jne 0x4a3e50
cmp byte [esi + 0x41], al
jne 0x4a3eb5
mov ecx, esi
call fcn.00497c40
mov ecx, eax
mov dword [esp + 0xc], ecx
test ecx, ecx
jne 0x4a3e8a
cmp byte [esi + 0x43], al
jne 0x4a3e71
mov eax, 1
mov dword [esp + 0x3c], eax
jmp 0x4a3e9c
mov ecx, esi
mov dword [esp + 0x3c], 0
call fcn.00497e60
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 0x4a686f
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x4a3eb5
mov esi, 1
xor edx, edx
mov dword [esp + 0x30], esi
add esi, esi
mov dword [esp + 0x34], edx
adc edx, edx
jmp 0x4a3f2e
mov ecx, dword [esp + 0x38]
lea edx, [esp + 0x30]
mov ecx, dword [ecx]
call fcn.004976c0
mov esi, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov dword [esp + 0xc], eax
cmp esi, 0xffffffff
jne 0x4a3eef
cmp edx, 0x7fffffff
jne 0x4a3eef
mov eax, dword [esp + 0x38]
mov byte [eax + 0x13], 1
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
jmp 0x4a3efd
add esi, 1
mov dword [esp + 0x30], esi
adc edx, 0
mov dword [esp + 0x34], edx
cmp edx, 0x7fffffff
jg 0x4a3f14
jl 0x4a3f0c
cmp esi, 0xffffffff
jae 0x4a3f14
add esi, 1
adc edx, 0
jmp 0x4a3f2e
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 0x4a3f55
nop
mov eax, dword [ecx + 0x14]
cmp eax, dword [edi + 0x14]
jne 0x4a3f4e
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x1c], edx
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x4a3f40
mov edi, dword [esp + 8]
mov eax, dword [esp + 0x38]
cmp byte [eax + 0x13], 0
je 0x4a4022
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 0x4a3fa4
mov eax, ecx
xor esi, esi
and eax, 0xffffff
cmp eax, ecx
jne 0x4a3fa4
cmp esi, edx
jne 0x4a3fa4
add ecx, 1
mov dword [esp + 0x30], ecx
adc edx, esi
mov dword [esp + 0x34], edx
jmp 0x4a3fd3
lea edx, [esp + 0x30]
mov ecx, 8
call fcn.0048d760
cmp dword [esp + 0x40], 5
mov ecx, dword [esp + 0x30]
jge 0x4a3fcf
and ecx, 0xffffff
xor edx, edx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], edx
jmp 0x4a3fd3
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.00497f40
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 0x4a4022
cmp eax, 0x64
jge 0x4a4017
cmp dword [esp + 0x3c], ecx
jne 0x4a4022
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
jmp 0x4a3f80
cmp dword [esp + 0x3c], 0
je 0x4a685c
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 0x4a288a
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 0x4a40be
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 0x4a40c3
cdq
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x38], eax
test byte [edx + edi*4 + 3], 1
je 0x4a40d9
mov eax, dword [esp + 8]
inc dword [eax + 0x74]
test byte [edx + edi*4 + 3], 2
je 0x4a40fe
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 0x4a4122
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 0x4a412e
mov eax, dword [ecx + 0x40]
jmp 0x4a4130
xor eax, eax
mov dword [esp + 0x48], eax
mov dword [esp + 0xf8], eax
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x4a414a
mov edi, dword [esi]
jmp 0x4a414c
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 0x4a418f
nop dword [eax]
mov eax, dword [ecx + 0x14]
cmp eax, dword [edx + 0x14]
jne 0x4a4176
mov dword [ecx + 0x18], 0
mov dword [ecx + 0x1c], 0
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x4a4160
mov eax, dword [esp + 0x48]
mov edi, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x30]
jmp 0x4a419a
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.0049a8b0
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 0x4a0c07
cmp dword [esi + 0xb8], edx
je 0x4a0c07
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x14]
cmp dword [edi + esi*4 + 0x10], edx
je 0x4a15f2
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 0x4a024d
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 0x4a42b8
mov eax, dword [esp + 0x14]
cmp dword [eax + edi*4 + 0x10], 0
je 0x4a42b8
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 0x4a4330
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.00497f40
mov edx, eax
add esp, 0x10
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4a686b
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 0x4a4323
mov ecx, dword [esi]
lea edx, [esp + 0x118]
call fcn.00498440
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4a686b
mov byte [esi + 0x15], 0
mov dword [esi + 0x44], 0
jmp 0x4a437f
mov edi, dword [esi]
test edi, edi
je 0x4a437b
cmp byte [edi + 0x43], 2
jb 0x4a4351
mov ecx, edi
call fcn.00496000
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4a686b
cmp byte [edi + 0x43], 1
jne 0x4a4361
cmp dword [edi + 0x50], 0
jne 0x4a4361
xor eax, eax
jmp 0x4a4366
mov eax, 1
mov edi, dword [esp + 0x24]
test eax, eax
je 0x4a437f
mov dword [esi + 0x44], 0
mov byte [esi + 0x14], 1
jmp 0x4a437f
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 0x4a43ad
nop
mov eax, dword [ecx + 0x14]
cmp eax, dword [edx + 0x14]
jne 0x4a43a6
mov dword [ecx + 0x18], 0
mov dword [ecx + 0x1c], 0
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x4a4390
mov ecx, dword [esp + 0x38]
mov ecx, dword [ecx]
call fcn.0049ab70
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 0x4a440d
mov edx, dword [esi + 0xb8]
test edx, edx
je 0x4a440d
mov eax, dword [esp + 0x14]
mov eax, dword [eax + edi*4 + 0x10]
test eax, eax
je 0x4a440d
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 0x4a15fa
inc dword [edi + 0x74]
jmp 0x4a15fa
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 0x4a15fa
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 0x4a44f2
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.00497f40
mov edx, eax
add esp, 0x10
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4a686f
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 0x4a44e5
mov ecx, dword [esi]
lea edx, [esp + 0x11c]
call fcn.00498440
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4a686f
mov byte [esi + 0x15], 0
mov dword [esi + 0x44], 0
jmp 0x4a4541
mov edi, dword [esi]
test edi, edi
je 0x4a453d
cmp byte [edi + 0x43], 2
jb 0x4a4513
mov ecx, edi
call fcn.00496000
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4a686b
cmp byte [edi + 0x43], 1
jne 0x4a4523
cmp dword [edi + 0x50], 0
jne 0x4a4523
xor eax, eax
jmp 0x4a4528
mov eax, 1
mov edi, dword [esp + 8]
test eax, eax
je 0x4a4541
mov dword [esi + 0x44], 0
mov byte [esi + 0x14], 1
jmp 0x4a4541
mov edi, dword [esp + 8]
mov eax, dword [esp + 0x30]
cmp byte [eax + 0x17], 0
je 0x4a457e
mov ecx, dword [esp + 0x34]
lea edx, [esp + 0x40]
call fcn.004976c0
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0x48]
cdq
cmp dword [esp + 0x44], edx
jg 0x4a68fb
mov edx, dword [esp + 0x40]
jl 0x4a4578
cmp edx, eax
ja 0x4a68fb
mov dword [esp + 0x38], edx
jmp 0x4a45fa
mov edx, dword [esp + 0x34]
mov dword [esp + 0xec], edx
cmp word [edx + 0x3e], 0
jne 0x4a45e6
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.00496140
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 0x4a68ed
mov esi, dword [esp + 0x18]
mov ecx, esi
push 0
call fcn.0049b3c0
add esp, 4
test eax, eax
jne 0x4a66c2
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 0x4a465e
mov ecx, dword [esp + 0x34]
xor edx, edx
push 0
push edi
push dword [esp + 0x40]
call fcn.00497760
mov edx, eax
mov byte [esi + 0x1f], 1
add esp, 0xc
mov dword [esp + 0xc], edx
jmp 0x4a15f2
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
mov dword [esp + 0xd8], eax
mov al, byte [esi + 0x43]
test al, al
jne 0x4a468a
mov esi, dword [esp + 0x18]
mov edx, 4
mov dword [esp + 0xc], edx
mov byte [esi + 0x1f], 1
jmp 0x4a15f2
cmp al, 2
jb 0x4a469f
mov ecx, esi
call fcn.00496000
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4a46bb
push 0
push edi
push dword [esp + 0xe0]
xor edx, edx
mov ecx, esi
call fcn.00497760
mov edx, eax
add esp, 0xc
mov dword [esp + 0xc], edx
mov esi, dword [esp + 0x18]
mov byte [esi + 0x1f], 1
jmp 0x4a15f2
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 0x4a1341
cmp byte [esi + 0x15], 0
je 0x4a46ff
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x1c]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
jmp 0x4a47b9
cmp dword [esi + 0x38], 0
je 0x4a4748
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.0048bbc0
mov ecx, dword [esp + 0x50]
add esp, 0x10
mov eax, dword [ecx + 8]
mov dword [edi + 0x68], eax
mov dword [ecx + 8], 0
jmp 0x4a47bd
mov edi, dword [esi]
test edi, edi
je 0x4a4788
cmp byte [edi + 0x43], 2
jb 0x4a476d
mov ecx, edi
call fcn.00496000
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4a686b
mov ecx, dword [esp + 0x30]
cmp byte [edi + 0x43], 1
jne 0x4a4779
cmp dword [edi + 0x50], 0
je 0x4a4788
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 0x4a47a6
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
jmp 0x4a47b5
mov ecx, dword [ecx]
lea edx, [esp + 0x38]
call fcn.004976c0
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 0x4a15fa
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 0x4a1341
call fcn.00495f70
mov edx, dword [esp + 0xc]
jmp 0x4a15f6
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 0x4a484b
mov dword [esp + 0x38], 1
jmp 0x4a489e
cmp byte [esi + 0x43], 1
jne 0x4a4861
cmp byte [esi + 0x41], 0
je 0x4a4861
mov dword [esp + 0xc], 0
jmp 0x4a489e
mov ecx, esi
call fcn.00497c40
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4a489a
cmp byte [esi + 0x43], al
jne 0x4a487f
mov dword [esp + 0x38], 1
jmp 0x4a489a
mov ecx, esi
mov dword [esp + 0x38], 0
call fcn.00497e60
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.0x4a03a0.10
cmp dword [esp + 0x38], 0
mov edi, dword [esp + 8]
mov esi, dword [esp + 0x10]
je 0x4a0501
lea edx, [eax - 1]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0xc]
jmp 0x4a15fa
mov eax, dword [esp + 8]
inc dword [eax + 0xbc]
jmp 0x4a4903
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 0x4a4982
mov ecx, esi
call fcn.00497c40
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4a4952
cmp byte [esi + 0x43], al
jne 0x4a493f
mov dword [esp + 0x38], 1
mov dword [esp + 0xc], eax
jmp 0x4a4952
mov ecx, esi
mov dword [esp + 0x38], 0
call fcn.00497d80
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 0x4a498a
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 0x4a0c03
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 0x4a15fa
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xd8], 0
jne 0x4a6a69
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.0x4a03a0.10
mov ecx, dword [eax]
mov dword [esp + 0x34], ecx
test ecx, ecx
jne 0x4a49f8
mov byte [eax + 0x14], 1
jmp case.0x4a03a0.10
mov dword [esp + 0x38], 1
lea edx, [esp + 0x38]
cmp byte [esi + edi*4], 0x42
jne 0x4a4a11
call fcn.00498440
jmp 0x4a4a16
call fcn.004985b0
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 0x4a4a67
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 0x4a4a6b
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 0x4a15f6
mov edi, dword [esp + 8]
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0xc]
mov byte [eax + 0x11], 0
jmp 0x4a15f6
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.0x4a03a0.10
mov esi, dword [esp + 0xe4]
mov edx, 0x4000
test word [esi + 0x1c], dx
je 0x4a4acb
mov ecx, esi
call fcn.0049b5b0
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4a15f2
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 0x4a4af7
mov eax, dword [eax + 0x40]
jmp 0x4a4af9
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 0x5214f8
push edx
push eax
mov edx, esi
call fcn.0049a8b0
mov dword [esp + 0x28], eax
add esp, 0x1c
mov eax, dword [esp + 0x30]
mov dword [eax + 0x44], 0
jmp case.0x4a03a0.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.0x4a03a0.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.00497f40
add esp, 0x10
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4a4bad
cmp dword [esp + 0x38], eax
jne 0x4a4bad
mov ecx, dword [esp + 0x34]
call fcn.0049ab70
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0xc]
mov dword [eax + 0x44], 0
jmp 0x4a15f6
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 0x4a1341
cmp byte [esi + 0x15], 0
je 0x4a4c59
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.00497f40
mov edx, eax
add esp, 0x10
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4a686f
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 0x4a4c4c
mov ecx, dword [esi]
lea edx, [esp + 0x120]
call fcn.00498440
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4a686f
mov byte [esi + 0x15], 0
mov dword [esi + 0x44], 0
jmp 0x4a4ca8
mov edi, dword [esi]
test edi, edi
je 0x4a4ca4
cmp byte [edi + 0x43], 2
jb 0x4a4c7a
mov ecx, edi
call fcn.00496000
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4a686b
cmp byte [edi + 0x43], 1
jne 0x4a4c8a
cmp dword [edi + 0x50], 0
jne 0x4a4c8a
xor eax, eax
jmp 0x4a4c8f
mov eax, 1
mov edi, dword [esp + 8]
test eax, eax
je 0x4a4ca8
mov dword [esi + 0x44], 0
mov byte [esi + 0x14], 1
jmp 0x4a4ca8
mov edi, dword [esp + 8]
mov eax, dword [esp + 0x34]
mov dword [esp + 0xc], 0
cmp byte [eax + 0x14], 0
jne 0x4a6562
mov edx, dword [esp + 0x30]
lea eax, [esp + 0x38]
push eax
call fcn.0049f090
mov edx, eax
add esp, 4
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4a686f
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 0x4a024d
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.0x4a03a0.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 0x4a4d51
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.004976c0
mov edx, dword [esp + 0x150]
mov ecx, edx
mov eax, dword [esp + 0x154]
add ecx, 0xffffffff
adc eax, 0xffffffff
test eax, eax
ja 0x4a4e5e
jb 0x4a4dad
cmp ecx, 0x7ffffffe
ja 0x4a4e5e
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.0049c210
add esp, 0xc
mov dword [esp + 0xc], eax
test eax, eax
je 0x4a4dee
mov eax, dword [esp + 0x34]
jmp 0x4a4e6c
mov edx, dword [esp + 0x174]
lea eax, [esp + 0x38]
mov ecx, dword [esp + 0x178]
push eax
call fcn.0049ebe0
add esp, 4
mov dword [esp + 0x34], eax
lea ecx, [esp + 0x160]
call fcn.0049b6c0
push dword [esp + 0x184]
push dword [esp + 0x174]
call fcn.0048bbc0
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 0x4a4e6c
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 0x4a4e7a
neg eax
jmp 0x4a4e7b
inc eax
mov esi, dword [esp + 0x10]
mov dword [esp + 0x34], eax
test eax, eax
jle 0x4a0c03
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 0x4a15fa
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 0x4a4ef0
nop dword [eax]
cmp dword [ecx + 0x50], 0xbdf20da3
jne 0x4a4eda
cmp byte [ecx + 0x70], 2
jae 0x4a4eda
cmp dword [ecx + 0x60], 0
jl 0x4a4eda
inc edx
mov dword [esp + 0x34], edx
mov eax, dword [ecx + 8]
mov ecx, eax
mov dword [esp + 0x38], ecx
test eax, eax
jne 0x4a4ec0
cmp edx, 1
jg 0x4a68cc
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 0x4a4f2d
mov dword [esp + 0xc], 0x106
jmp 0x4a5007
lea ecx, [esp + 0x13c]
mov edx, edi
push 0
push ecx
mov ecx, dword [eax]
call fcn.00494ff0
add esp, 8
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4a5007
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.0049b000
add esp, 4
mov dword [esp + 0xc], eax
test eax, eax
je 0x4a4fb2
test esi, esi
je 0x4a5003
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x4a5003
mov esi, dword [ecx + 0x10]
call fcn.00490c20
mov ecx, esi
call fcn.00494f90
jmp 0x4a5003
mov dword [esp + 0x30], 0
cmp edi, 1
jbe 0x4a4fd5
push dword [esi + 0x48]
mov ecx, dword [esi + 0x3c]
mov edx, esi
call fcn.00498bd0
add esp, 4
mov dword [esp + 0xc], eax
jmp 0x4a4fe5
mov edx, 9
mov ecx, esi
call fcn.004969e0
test esi, esi
je 0x4a4ffb
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x4a4ffb
mov esi, dword [ecx + 0x10]
call fcn.00490c20
mov ecx, esi
call fcn.00494f90
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 0x4a15fa
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 0x4a5091
nop dword [eax]
cmp byte [eax + 0x54], 0
je 0x4a508a
mov byte [eax + 0x43], 0
mov eax, dword [eax + 8]
test eax, eax
jne 0x4a5080
mov esi, dword [ecx + 8]
test esi, esi
je 0x4a50c6
test edi, edi
je 0x4a50a1
cmp dword [esi + 0x14], edi
jne 0x4a50b8
cmp byte [esi + 0x43], 1
jne 0x4a50b8
mov ecx, esi
call fcn.00495db0
mov ecx, eax
mov dword [esp + 0xc], ecx
test ecx, ecx
jne 0x4a50dd
mov esi, dword [esi + 8]
test esi, esi
jne 0x4a5098
mov ecx, dword [esp + 0xd8]
push dword [esp + 0xec]
mov edx, edi
push 0
call fcn.0049ae60
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 0x4a1341
mov eax, dword [esp + 0x30]
add dword [edi + 0x74], eax
mov ecx, dword [edx + ecx*4 + 0xc]
test ecx, ecx
jle 0x4a1341
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 0x4a15f6
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.00498740
add esp, 0xc
mov dword [esp + 0xc], eax
test eax, eax
je 0x4a5185
mov eax, dword [esp + 0x30]
cdq
jmp 0x4a12af
or esi, 8
mov edx, esi
mov esi, dword [esp + 0x140]
mov ecx, esi
call fcn.004969e0
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x4a51ae
mov esi, dword [ecx + 0x10]
call fcn.00490c20
mov ecx, esi
call fcn.00494f90
mov eax, dword [esp + 0x144]
mov dword [esp + 0x30], eax
mov dword [esp + 0xc], 0
cdq
jmp 0x4a12af
mov edx, dword [esi + edi*4 + 4]
mov dword [esp + 0x30], edx
cmp dword [esi + edi*4 + 8], 0
jne 0x4a51ef
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 0x4a5285
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.0048d420
add esp, 0x14
mov dword [esp + 0x38], eax
test eax, eax
je 0x4a6ab1
push 0
lea eax, [esp + 0x40]
mov byte [esi + 0x7c], 1
mov edx, dword [esp + 0x3c]
mov ecx, esi
push eax
push fcn.004c1d80
mov dword [esp + 0x54], 0
call fcn.004be770
add esp, 0xc
test eax, eax
cmove eax, dword [esp + 0x48]
mov dword [esp + 0xc], eax
push dword [esp + 0x38]
push esi
call fcn.0048bbc0
add esp, 8
mov byte [esi + 0x7c], 0
jmp 0x4a5289
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 8]
cmp edx, 7
je 0x4a66ca
jmp 0x4a15fa
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 0x4a52cd
cmp byte [edx], 0
je 0x4a52c6
nop dword [eax]
inc eax
cmp byte [eax], 0
jne 0x4a52c0
sub eax, edx
and eax, 0x3fffffff
mov ecx, dword [ecx + 0xc]
push 0
push eax
add ecx, 4
call fcn.0048f1d0
add esp, 8
mov ecx, eax
call fcn.004b1d10
or dword [esi + 0xc], 0x10
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 8]
jmp 0x4a15fa
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 0x4a532d
cmp byte [edx], 0
je 0x4a5326
nop dword [eax]
inc eax
cmp byte [eax], 0
jne 0x4a5320
sub eax, edx
and eax, 0x3fffffff
push 0
push eax
call fcn.0048f1d0
mov edi, eax
add esp, 8
test edi, edi
je 0x4a5384
mov edx, dword [edi + 0x10]
mov ecx, dword [edx + 0x14]
cmp ecx, edi
jne 0x4a5350
mov eax, dword [edi + 0x20]
mov dword [edx + 0x14], eax
jmp 0x4a5368
test ecx, ecx
je 0x4a5368
lea edx, [ecx + 0x20]
mov ecx, dword [edx]
cmp ecx, edi
je 0x4a5363
test ecx, ecx
jne 0x4a5354
jmp 0x4a5368
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.0048bbc0
push edi
push esi
call fcn.0048bbc0
mov esi, dword [esp + 0x20]
add esp, 0x10
or dword [esi + 0xc], 0x10
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 8]
jmp 0x4a15fa
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 0x4a53d5
call fcn.0049bb60
mov ecx, dword [esp + 0x30]
test byte [ecx + 0x1c], 0x20
je 0x4a66c2
mov eax, dword [esp + 0x34]
push dword [eax + 4]
mov ecx, dword [ecx]
push dword [eax]
call fcn.00491bc0
add esp, 8
jmp case.0x4a03a0.10
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xd8], 0
jne 0x4a6a69
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 0x4a5469
mov esi, dword [edx]
mov ecx, esi
call fcn.00491d50
mov edx, dword [esi + 8]
test edx, edx
je 0x4a5461
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 0x4a5454
mov ecx, esi
call fcn.00491af0
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
jmp 0x4a1a22
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x14]
mov ecx, edx
call fcn.0049ba00
jmp 0x4a15e5
mov edi, dword [esi + edi*4 + 0x10]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x30], edi
test byte [esi + 0x1c], 0x20
jne 0x4a549c
mov ecx, esi
call fcn.0049bb60
test byte [esi + 0x1c], 0x20
je 0x4a66c2
mov edi, dword [esp + 0x30]
test edi, edi
je 0x4a563f
js 0x4a54ad
mov eax, edi
and eax, 0xf
jmp 0x4a54b2
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 0x4a55ed
cmp dword [esi + 8], 0
je 0x4a55e6
mov ecx, esi
call fcn.00491d50
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 0x4a55ce
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 0x4a55b0
cmp edx, 1
jne 0x4a556b
mov eax, dword [ecx + 8]
mov dword [esp + 0xfc], eax
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
jmp 0x4a55b0
lea edx, [edx - 1]
lea ecx, [esp + 0xfc]
call fcn.00491cf0
mov esi, dword [esp + 0xfc]
mov ecx, eax
mov edx, dword [esp + 0x28]
test esi, esi
je 0x4a55b0
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.00491cf0
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 0x4a5530
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 0x4a5631
mov ecx, dword [eax + 4]
mov edx, dword [eax]
cmp ecx, dword [esp + 0xd8]
jg 0x4a5614
jl 0x4a560f
mov esi, dword [esp + 0xec]
cmp edx, esi
jae 0x4a561b
mov eax, dword [eax + 8]
jmp 0x4a562d
mov esi, dword [esp + 0xec]
cmp ecx, dword [esp + 0xd8]
jl 0x4a565d
jg 0x4a562a
cmp edx, esi
jbe 0x4a565d
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x4a55f4
mov esi, dword [esp + 0x20]
test edi, edi
mov dword [esp + 0x34], 0
js case.0x4a03a0.10
mov eax, dword [esp + 0x2c]
mov ecx, dword [esi]
push dword [eax + 4]
push dword [eax]
call fcn.00491bc0
add esp, 8
jmp case.0x4a03a0.10
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x34], 1
mov edx, dword [ecx + eax*4 + 8]
jmp 0x4a15e9
mov ecx, dword [esp + 0x20]
cmp dword [ecx + 4], 0
jl case.0x4a03a0.10
jg 0x4a15e5
cmp dword [ecx], 0
jbe case.0x4a03a0.10
jmp 0x4a15e5
mov ecx, dword [esp + 0x20]
cmp dword [ecx + 4], 0
jg case.0x4a03a0.10
jl 0x4a15e5
cmp dword [ecx], 0
jae case.0x4a03a0.10
jmp 0x4a15e5
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx]
or eax, dword [ecx + 4]
jne case.0x4a03a0.10
jmp 0x4a15e5
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 0x4a5759
mov dword [esi + eax*4], ecx
mov ecx, dword [esp + 0x3c]
movzx eax, word [ecx + 0x1c]
test al, 1
je 0x4a5717
mov byte [ecx + 0x1e], 5
jmp 0x4a5736
test al, 4
je 0x4a5721
mov byte [ecx + 0x1e], 1
jmp 0x4a5736
test al, 8
je 0x4a572b
mov byte [ecx + 0x1e], 2
jmp 0x4a5736
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 0x4a5759
mov esi, dword [esp + 0x80]
jmp 0x4a5702
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 0x4a57cd
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 0x4a581b
mov dl, 1
lea ecx, [esp + 0x48]
call fcn.0049c380
mov edi, dword [esp + 8]
push eax
push 0x523818
push esi
lea eax, [edi + 0x68]
push eax
call fcn.0048c030
mov eax, dword [esp + 0x84]
add esp, 0x10
mov dword [esp + 0xc], eax
jmp 0x4a581f
mov edi, dword [esp + 8]
lea ecx, [esp + 0x48]
call fcn.0049b6c0
push dword [esp + 0x6c]
push dword [esp + 0x5c]
call fcn.0048bbc0
mov edx, dword [esp + 0x14]
add esp, 8
mov dword [esp + 0x5c], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
jmp 0x4a15fa
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 0x4a5922
mov eax, dword [edi + 0x14]
mov dword [esp + 0xf0], eax
test eax, eax
je 0x4a5922
push 0x40
push ecx
lea eax, [esp + 0x198]
push eax
call fcn.004df440
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.0048bbc0
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 0x4a594f
mov dl, 1
mov ecx, esi
call fcn.0049c380
mov edi, dword [esp + 8]
push eax
push 0x523818
push dword [esp + 0x18]
lea eax, [edi + 0x68]
push eax
call fcn.0048c030
mov esi, dword [esp + 0x40]
add esp, 0x10
jmp 0x4a5953
mov edi, dword [esp + 8]
test byte [esi + 0x1c], 2
je 0x4a5972
mov al, byte [esp + 0xe8]
cmp byte [esi + 0x1f], al
je 0x4a5972
mov dl, al
mov ecx, esi
call fcn.0048d920
mov esi, dword [esp + 0x30]
movzx eax, word [esi + 0x1c]
test al, 0x12
je 0x4a1341
mov ecx, dword [esi + 0x18]
test eax, 0x4000
je 0x4a598a
add ecx, dword [esi]
mov eax, dword [esi + 0x10]
mov esi, dword [esp + 0x10]
cmp ecx, dword [eax + 0x48]
jg 0x4a68fb
mov edx, dword [esp + 0xc]
jmp 0x4a15fa
cmp dword [esi + edi*4 + 4], 0
mov esi, dword [esp + 0x10]
jne 0x4a59d8
mov eax, dword [esi + 0x88]
test eax, eax
je 0x4a0c03
nop dword [eax]
mov byte [eax + 0x6e], 1
mov eax, dword [eax + 8]
test eax, eax
jne 0x4a59c0
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 8]
jmp 0x4a15fa
mov edi, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov byte [edi + 0x6e], 1
jmp 0x4a15fa
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 0x4a5a1b
cmp dword [eax + 0x118], 0
jne 0x4a5a1b
mov edx, 6
mov dword [esp + 0xc], edx
jmp 0x4a5a8a
test esi, esi
jne 0x4a5a27
xor edx, edx
mov dword [esp + 0xc], edx
jmp 0x4a5a8a
mov edi, dword [esi + 8]
mov eax, dword [edi]
mov eax, dword [eax + 0x38]
mov dword [esp + 0xf0], eax
test eax, eax
je 0x4a5a86
xor ecx, ecx
test edx, edx
jle 0x4a5a63
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x118]
nop word [eax + eax]
cmp dword [eax], esi
je 0x4a5a1f
inc ecx
add eax, 4
cmp ecx, edx
jl 0x4a5a50
mov eax, dword [esp + 0xf0]
push edi
call eax
mov ecx, eax
add esp, 4
mov dword [esp + 0xc], ecx
test ecx, ecx
jne 0x4a5a86
mov ecx, dword [esp + 0x10]
mov edx, esi
call fcn.004cf760
mov edx, eax
mov dword [esp + 0xc], edx
jmp 0x4a5a8a
mov edx, dword [esp + 0xc]
cmp dword [esp + 0x30], 0
mov edi, dword [esp + 8]
mov esi, dword [esp + 0x10]
je 0x4a15fa
push dword [edi + 0x68]
push esi
call fcn.0048bbc0
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 0x4a15fa
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.004cf7f0
mov edi, dword [esp + 0x10]
mov edx, eax
add esp, 8
mov dword [esp + 0xc], edx
jmp 0x4a15fa
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.004b14c0
add esp, 4
mov dword [esp + 0xf0], eax
lea edi, [esi + 0x70]
test eax, eax
je 0x4a5bc8
cmp dword [eax + 0x30], 0
lea edi, [esi + 0x70]
je 0x4a5bbc
mov ecx, dword [esp + 0x10]
mov edx, eax
call fcn.004ce8d0
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 0x4a5bca
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 0x4a5bca
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x4a5bac
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.0048bbc0
add esp, 8
mov edx, dword [esp + 0xc]
mov byte [edi], 0
jmp 0x4a15f2
xor edx, edx
mov byte [edi], 0
jmp 0x4a15f2
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.0048bbc0
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 0x4a15f2
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 0x4a5ce3
mov eax, dword [edi + 0x20]
test eax, eax
je 0x4a5cc5
mov ecx, eax
call fcn.00496df0
mov eax, dword [esp + 0x24]
mov dword [esp + 0x28], eax
mov edx, dword [esp + 8]
mov ecx, dword [edi + 0x38]
test ecx, ecx
je 0x4a5caf
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 0x4a5ce5
mov eax, dword [edi]
mov dword [esp + 0x28], ecx
test eax, eax
je 0x4a5c8c
mov ecx, eax
call fcn.00497630
mov edx, dword [esp + 8]
lea eax, [edx + 0x34]
mov dword [esp + 0x28], eax
jmp 0x4a5c90
mov edi, ecx
mov ecx, dword [esp + 0xd8]
mov edx, 0x58
push 0
call fcn.0049b3c0
add esp, 4
test eax, eax
jne 0x4a5d32
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.004df440
add esp, 0xc
mov dword [esi + 4], 0xffffffff
mov dword [esi + 0x2c], 0
mov dword [esp + 0x30], esi
test esi, esi
je 0x4a5d62
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 0x4a024d
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 0x4a024d
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 0x4a5e78
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 0x4a5e29
mov byte [ecx + 0x1e], 5
jmp 0x4a5e48
test al, 4
je 0x4a5e33
mov byte [ecx + 0x1e], 1
jmp 0x4a5e48
test al, 8
je 0x4a5e3d
mov byte [ecx + 0x1e], 2
jmp 0x4a5e48
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 0x4a5e63
mov esi, dword [esp + 0x40]
jmp 0x4a5e04
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x44]
mov esi, dword [esp + 0x34]
mov dword [esp + 0xd8], ecx
jmp 0x4a5e7f
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.0048bbc0
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 0x4a5ef0
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 0x4a5ef4
mov eax, dword [esp + 0x50]
test eax, eax
je 0x4a5f09
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 0x4a15fa
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 0x4a5f58
call fcn.0049ba00
mov edx, dword [esp + 0xc]
jmp 0x4a15f6
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.004df440
mov edi, dword [esp + 0x44]
lea ecx, [esp + 0x54]
add esp, 0xc
call fcn.0049b6c0
mov ecx, dword [esp + 0x58]
mov esi, dword [esp + 0x6c]
test ecx, ecx
je 0x4a5fbf
test esi, esi
je 0x4a602e
cmp esi, dword [ecx + 0xf0]
jb 0x4a5fbf
cmp esi, dword [ecx + 0xf4]
jae 0x4a5fbf
mov eax, dword [ecx + 0xec]
mov dword [esi], eax
dec dword [ecx + 0xe4]
mov dword [ecx + 0xec], esi
jmp 0x4a602e
test esi, esi
je 0x4a602e
cmp dword [0x535d00], 0
je 0x4a6024
mov eax, dword [0x538570]
test eax, eax
je 0x4a5fdf
push eax
call dword [0x535d48]
add esp, 4
push esi
call dword [0x535d24]
mov ecx, dword [0x5383f8]
neg eax
add ecx, eax
add esp, 4
mov eax, dword [0x53841c]
cmp ecx, eax
mov dword [0x5383f8], ecx
cmovg eax, ecx
push esi
mov dword [0x53841c], eax
call dword [0x535d1c]
mov eax, dword [0x538570]
add esp, 4
test eax, eax
je 0x4a602e
push eax
call dword [0x535d50]
jmp 0x4a602b
push esi
call dword [0x535d1c]
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.0048bbc0
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 0x4a6109
mov al, byte [esp + 0xe8]
cmp byte [esp + 0x67], al
je 0x4a6109
mov dl, al
lea ecx, [esp + 0x48]
call fcn.0048d920
mov esi, dword [esp + 0x38]
mov ecx, esi
call fcn.0049b6c0
push dword [esi + 0x24]
push dword [esi + 0x10]
call fcn.0048bbc0
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 0x4a1341
mov ecx, dword [eax + 0x18]
test edx, 0x4000
je 0x4a618b
add ecx, dword [eax]
mov eax, dword [eax + 0x10]
mov esi, dword [esp + 0x10]
cmp ecx, dword [eax + 0x48]
jg 0x4a68fb
mov edx, dword [esp + 0xc]
jmp 0x4a15fa
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.0x4a03a0.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.0048bbc0
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 0x4a6236
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 0x4a623a
mov eax, dword [esp + 0x38]
test eax, eax
jne case.0x4a03a0.10
jmp 0x4a15e5
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 0x4a631b
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0xf0]
jb 0x4a62b0
cmp esi, dword [ecx + 0xf4]
jae 0x4a62b0
mov eax, dword [ecx + 0xec]
mov dword [esi], eax
mov dword [ecx + 0xec], esi
mov esi, ecx
dec dword [esi + 0xe4]
jmp 0x4a631f
cmp dword [0x535d00], 0
je 0x4a6311
mov eax, dword [0x538570]
test eax, eax
je 0x4a62cc
push eax
call dword [0x535d48]
add esp, 4
push esi
call dword [0x535d24]
mov ecx, dword [0x5383f8]
neg eax
add ecx, eax
add esp, 4
mov eax, dword [0x53841c]
cmp ecx, eax
mov dword [0x5383f8], ecx
cmovg eax, ecx
push esi
mov dword [0x53841c], eax
call dword [0x535d1c]
mov eax, dword [0x538570]
add esp, 4
test eax, eax
je 0x4a631b
push eax
call dword [0x535d50]
jmp 0x4a6318
push esi
call dword [0x535d1c]
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 0x4a15fa
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.0x4a03a0.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 0x4a6406
nop dword [eax + eax]
movzx eax, word [ecx + 0x1c]
test al, 1
je 0x4a63ae
mov byte [ecx + 0x1e], 5
jmp 0x4a63cd
test al, 4
je 0x4a63b8
mov byte [ecx + 0x1e], 1
jmp 0x4a63cd
test al, 8
je 0x4a63c2
mov byte [ecx + 0x1e], 2
jmp 0x4a63cd
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 0x4a63a0
mov eax, dword [esp + 0x48]
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
jmp 0x4a640d
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 0x4a64c7
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0xf0]
jb 0x4a645c
cmp esi, dword [ecx + 0xf4]
jae 0x4a645c
mov eax, dword [ecx + 0xec]
mov dword [esi], eax
mov dword [ecx + 0xec], esi
mov esi, ecx
dec dword [esi + 0xe4]
jmp 0x4a64cb
cmp dword [0x535d00], 0
je 0x4a64bd
mov eax, dword [0x538570]
test eax, eax
je 0x4a6478
push eax
call dword [0x535d48]
add esp, 4
push esi
call dword [0x535d24]
mov ecx, dword [0x5383f8]
neg eax
add ecx, eax
add esp, 4
mov eax, dword [0x53841c]
cmp ecx, eax
mov dword [0x5383f8], ecx
cmovg eax, ecx
push esi
mov dword [0x53841c], eax
call dword [0x535d1c]
mov eax, dword [0x538570]
add esp, 4
test eax, eax
je 0x4a64c7
push eax
call dword [0x535d50]
jmp 0x4a64c4
push esi
call dword [0x535d1c]
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 0x4a6500
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
cmp dword [ecx + eax*4 + 4], edx
je 0x4a6500
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 0x4a15fa
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.00493d30
mov edi, dword [esp + 8]
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4a15fa
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 0x4a024d
xor edx, edx
jmp 0x4a15f6
mov eax, dword [esp + 8]
mov ecx, eax
mov dword [eax + 0x64], 9
call fcn.0049df80
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 0x4a65bd
push eax
push 0x523818
push dword [esp + 0x18]
lea eax, [ecx + 0x68]
push eax
call fcn.0048c030
mov ecx, dword [esp + 0x18]
add esp, 0x10
call fcn.0049df80
cmp eax, 5
jne 0x4a65dd
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.0049b6c0
mov ecx, dword [esp + 0x50]
mov esi, dword [esp + 0x64]
test ecx, ecx
je 0x4a663b
test esi, esi
je 0x4a66aa
cmp esi, dword [ecx + 0xf0]
jb 0x4a663b
cmp esi, dword [ecx + 0xf4]
jae 0x4a663b
mov eax, dword [ecx + 0xec]
mov dword [esi], eax
dec dword [ecx + 0xe4]
mov dword [ecx + 0xec], esi
jmp 0x4a66aa
test esi, esi
je 0x4a66aa
cmp dword [0x535d00], 0
je 0x4a66a0
mov eax, dword [0x538570]
test eax, eax
je 0x4a665b
push eax
call dword [0x535d48]
add esp, 4
push esi
call dword [0x535d24]
mov ecx, dword [0x5383f8]
neg eax
add ecx, eax
add esp, 4
mov eax, dword [0x53841c]
cmp ecx, eax
mov dword [0x5383f8], ecx
cmovg eax, ecx
push esi
mov dword [0x53841c], eax
call dword [0x535d1c]
mov eax, dword [0x538570]
add esp, 4
test eax, eax
je 0x4a66aa
push eax
call dword [0x535d50]
jmp 0x4a66a7
push esi
call dword [0x535d1c]
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.0048c030
mov dword [edi + 0x64], 7
add esp, 0xc
mov ecx, edi
call fcn.0049df80
mov eax, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edx, 0x14
mov dword [esp + 0xc], edx
jmp 0x4a686f
mov eax, dword [esp + 8]
mov ecx, eax
mov dword [eax + 0x64], 0xb
call fcn.0049df80
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.0048c030
add esp, 0xc
mov dword [esi + 0x64], 5
mov ecx, esi
call fcn.0049df80
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.0048c030
add esp, 0x10
mov dword [esi + 0x64], 1
mov ecx, esi
call fcn.0049df80
mov eax, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test ecx, ecx
je 0x4a67de
mov ecx, esi
call fcn.004da8f0
mov byte [esi + 0x1c], 1
mov esi, dword [esp + 8]
mov ecx, dword [esp + 0x10]
call fcn.004da230
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.0049df80
cmp eax, 5
jne 0x4a67be
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 0x4a686b
mov ecx, eax
mov dword [eax + 0x64], 4
call fcn.0049df80
mov eax, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edx, 0xd
mov dword [esp + 0xc], edx
jmp 0x4a686f
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 8]
mov esi, dword [esp + 0x10]
cmp byte [esi + 0x1e], 0
je 0x4a6888
mov dword [esp + 0xc], 7
mov eax, 7
jmp 0x4a68a0
cmp edx, 0xc0a
je 0x4a6a3a
movzx eax, dl
mov dword [esp + 0xc], edx
cmp eax, 0x1b
jae 0x4a68ab
mov eax, dword [eax*4 + 0x51e510]
test eax, eax
jne 0x4a68b0
mov eax, str.unknown_error
push eax
push 0x523818
lea eax, [edi + 0x68]
push esi
push eax
call fcn.0048c030
mov edx, dword [esp + 0x1c]
add esp, 0x10
jmp 0x4a6a3a
mov eax, dword [esp + 8]
mov ecx, eax
mov byte [eax + 0x38], 2
mov dword [eax + 0x64], 6
call fcn.0049df80
mov eax, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 8]
jmp 0x4a68fb
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.0048c030
mov dword [edi + 0x64], 0x12
jmp 0x4a66e4
mov edi, dword [esp + 8]
mov esi, ecx
jmp 0x4a68fb
mov ecx, dword [esp + 8]
mov edx, 1
call fcn.0049de70
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4a6a36
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 0x4a6a11
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 0x4a69c1
test al, 2
je 0x4a69c1
mov edx, dword [esi + 0x18]
mov ecx, esi
push 1
add edx, 2
call fcn.0049b3c0
add esp, 4
test eax, eax
jne 0x4a69bd
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 0x4a69d8
mov byte [edx + ecx*8 + 0x1e], 5
jmp 0x4a69fa
test al, 4
je 0x4a69e3
mov byte [edx + ecx*8 + 0x1e], 1
jmp 0x4a69fa
test al, 8
je 0x4a69ee
mov byte [edx + ecx*8 + 0x1e], 2
jmp 0x4a69fa
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 0x4a6970
mov esi, dword [esp + 0x10]
cmp byte [esi + 0x1e], 0
jne 0x4a6ab1
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.0049df80
cmp dword [esp + 0xc], 0xc0a
jne 0x4a66ee
mov byte [esi + 0x1e], 1
mov eax, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov esi, ecx
jmp 0x4a6a6b
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 0x523818
push esi
push eax
call fcn.0048c030
add esp, 0x10
mov dword [edi + 0x64], 9
mov ecx, edi
call fcn.0049df80
pop edi
mov eax, 1
pop esi
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 8]
jmp 0x4a66ca
mov edi, dword [esp + 8]
mov esi, eax
jmp 0x4a66ca