Function at 0x4a4680
Capabilities:
Parse credit card information
Reference sql statements
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x328
mov eax, dword [0x64a070]
xor eax, esp
mov dword [esp + 0x324], eax
mov edx, ecx
mov dword [esp + 8], 0
push esi
xor esi, esi
mov dword [esp + 0x14], edx
push edi
mov ecx, dword [edx]
mov eax, dword [edx + 4]
mov dword [esp + 0xc], eax
mov dword [esp + 8], ecx
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x14], 0
mov byte [esp + 0x5b], 0
mov dword [esp + 0x98], 0
mov eax, dword [eax + 0xc]
mov dword [esp + 0x68], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x1c], esi
mov al, byte [eax + 0x4d]
mov byte [esp + 0x4c], al
mov eax, dword [edx + 8]
mov dword [esp + 0x28], eax
mov eax, dword [ecx + 0x20]
mov dword [esp + 0x60], eax
mov eax, dword [ecx + 0x24]
mov ecx, edx
mov dword [esp + 0x6c], esi
mov dword [esp + 0x64], eax
call fcn.0049f120
mov ecx, dword [esp + 0x18]
cmp dword [ecx + 0x50], 7
je 0x4aab79
mov dword [ecx + 0x50], esi
mov dword [ecx + 0x88], esi
mov dword [ecx + 0x8c], esi
mov dword [ecx + 0x14], esi
mov ecx, dword [esp + 8]
mov dword [ecx + 0x1bc], esi
cmp dword [ecx + 0xe8], esi
jne 0x4aab40
cmp dword [ecx + 0x11c], esi
je 0x4a476f
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x7c]
test eax, eax
jne 0x4a4763
mov edx, dword [ecx + 0x124]
jmp 0x4a476b
xor edx, edx
div dword [ecx + 0x124]
mov dword [esp + 0x74], edx
mov eax, dword [esp + 0x18]
mov edi, dword [eax + 0x4c]
mov edx, dword [esp + 0xc]
mov dword [esp + 0x10], edi
nop
cmp byte [ecx + 0x40], 0
jne 0x4aab7d
inc dword [esp + 0x68]
lea edi, [edi + edi*4]
test byte [edx + edi*4 + 2], 2
mov dword [esp + 0x48], edi
je 0x4a47d1
mov eax, dword [edx + edi*4 + 8]
mov esi, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, 0x2460
mov dword [esp + 0x1c], esi
test word [esi + 0x1c], ax
je 0x4a47c8
mov ecx, esi
call fcn.0049d6e0
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov eax, 4
mov word [esi + 0x1c], ax
mov dl, byte [edx + edi*4]
movzx eax, dl
dec eax
cmp eax, 0x9a
ja case.default.0x4a47e3
jmp dword [eax*4 + 0x4aac58]
mov eax, dword [esp + 0xc]
mov edx, 4
mov esi, dword [esp + 0x28]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x28]
lea ecx, [ecx + ecx*4]
mov word [eax + ecx*8 + 0x1c], dx
mov eax, dword [esp + 0x10]
cdq
mov dword [esi + ecx*8 + 0x10], eax
mov eax, esi
mov dword [eax + ecx*8 + 0x14], edx
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x1c]
mov ecx, dword [edx + edi*4 + 8]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 8]
mov edi, dword [esp + 0x10]
jmp 0x4a4780
mov edx, dword [esp + 0xc]
mov esi, 0x80
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 4]
mov edi, dword [esp + 0x28]
lea eax, [eax + eax*4]
mov edi, dword [edi + eax*8 + 0x10]
mov word [ecx + eax*8 + 0x1c], si
inc edi
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 8]
jmp 0x4a477a
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 4]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, dword [edx + edi*4 + 0xc]
dec eax
mov dword [esp + 0x1c], esi
cdq
mov dword [esi + 0x14], edx
mov edx, dword [esp + 0xc]
mov dword [esi + 0x10], eax
mov eax, 4
mov word [esi + 0x1c], ax
mov eax, dword [edx + edi*4 + 8]
test eax, eax
je 0x4a49cb
lea edi, [eax - 1]
inc edi
jmp 0x4a477a
mov edx, dword [esp + 0xc]
mov esi, 0x80
mov eax, dword [edx + edi*4 + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x28]
mov eax, dword [eax + ecx*8 + 0x10]
lea eax, [eax + eax*4]
mov edi, dword [edx + eax*4 + 8]
mov eax, dword [esp + 0x28]
mov word [eax + ecx*8 + 0x1c], si
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 8]
jmp 0x4a477a
mov eax, dword [esp + 0xc]
mov eax, dword [eax + edi*4 + 4]
mov edi, dword [esp + 0x28]
lea esi, [eax + eax*4]
mov eax, 4
mov ecx, dword [edi + esi*8 + 0x10]
mov word [edi + esi*8 + 0x1c], ax
inc ecx
mov eax, dword [esp + 0x10]
cdq
mov dword [edi + esi*8 + 0x14], edx
mov edx, dword [esp + 0xc]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 8]
mov dword [edi + esi*8 + 0x10], eax
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x10]
jmp 0x4a4780
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 0xc]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x1c], 1
mov esi, dword [esp + 0x1c]
je case.default.0x4a47e3
jmp 0x4a4943
mov edx, dword [esp + 0xc]
cmp dword [edx + edi*4 + 4], 0
jne 0x4aa7b4
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0xb0]
test ecx, ecx
je 0x4aa7b4
mov edx, dword [esp + 0x18]
mov eax, dword [ecx + 4]
dec dword [edx + 0xb8]
mov dword [edx + 0xb0], eax
mov eax, dword [edx + 0x5c]
mov edx, dword [esp + 8]
add dword [edx + 0x54], eax
mov dword [edx + 0x50], eax
call fcn.0049fac0
mov ecx, dword [esp + 8]
mov dword [esp + 0x10], eax
mov edx, dword [ecx + 0x20]
mov dword [esp + 0x60], edx
mov edx, dword [ecx + 0x24]
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0xc]
cmp dword [edx + edi*4 + 8], 4
mov edi, dword [esp + 0x18]
jne 0x4a49bd
lea ecx, [eax + eax*4]
mov eax, dword [edi + 4]
mov ecx, dword [eax + ecx*4 + 8]
dec ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 8]
mov edx, dword [edi + 4]
mov eax, dword [edi + 8]
mov dword [esp + 0xc], edx
mov dword [esp + 0x28], eax
mov edi, dword [esp + 0x10]
inc edi
jmp 0x4a477a
mov eax, dword [esp + 0xc]
mov eax, dword [eax + edi*4 + 4]
mov edi, dword [esp + 0x10]
cdq
inc edi
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], edx
jmp 0x4a4776
mov edx, dword [esp + 0xc]
mov ecx, dword [edx + edi*4 + 0x10]
mov edi, dword [esp + 0x10]
inc edi
mov eax, dword [ecx]
mov dword [esi + 0x10], eax
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 8]
mov dword [esi + 0x14], eax
jmp 0x4a477a
mov edx, dword [esp + 0xc]
mov eax, 8
mov word [esi + 0x1c], ax
mov eax, dword [edx + edi*4 + 0x10]
mov edi, dword [esp + 0x10]
inc edi
movsd xmm0, qword [eax]
movsd qword [esi + 8], xmm0
jmp 0x4a477a
mov edx, dword [esp + 0xc]
mov ecx, dword [edx + edi*4 + 0x10]
mov byte [edx + edi*4], 0x1b
call fcn.00485410
cmp byte [esp + 0x4c], 1
mov dword [edx + edi*4 + 4], eax
je 0x4a4abd
push 0
push 1
mov edx, ecx
mov ecx, esi
push 0xffffffffffffffff
call fcn.0049dcd0
add esp, 0xc
mov dword [esp + 0x14], eax
cmp eax, 0x12
je 0x4a83be
movzx edx, byte [esp + 0x4c]
mov ecx, esi
call fcn.0049d340
test eax, eax
jne 0x4aab79
mov edx, dword [esp + 0xc]
mov dword [esi + 0x24], eax
mov eax, 0x800
or word [esi + 0x1c], ax
cmp byte [edx + edi*4 + 1], 0xff
jne 0x4a4aaa
mov edx, dword [edx + edi*4 + 0x10]
mov ecx, dword [esp + 8]
call fcn.00482e40
mov edx, dword [esp + 0xc]
mov byte [edx + edi*4 + 1], 0xff
mov eax, dword [esi + 4]
mov dword [edx + edi*4 + 0x10], eax
mov eax, dword [esi + 0x18]
mov dword [edx + edi*4 + 4], eax
mov ecx, dword [esp + 8]
mov eax, dword [edx + edi*4 + 4]
cmp eax, dword [ecx + 0x58]
jg 0x4a83c2
jmp 0x4a4ad4
mov edx, dword [esp + 0xc]
mov eax, 0xa02
mov word [esi + 0x1c], ax
mov eax, dword [edx + edi*4 + 0x10]
mov dword [esi + 4], eax
mov eax, dword [edx + edi*4 + 4]
mov dword [esi + 0x18], eax
mov al, byte [esp + 0x4c]
mov byte [esi + 0x1e], al
jmp case.default.0x4a47e3
mov ecx, dword [esp + 0xc]
mov eax, 1
mov edx, dword [esp + 0x1c]
mov esi, dword [ecx + edi*4 + 0xc]
sub esi, dword [ecx + edi*4 + 8]
cmp dword [ecx + edi*4 + 4], 0
mov ecx, 0x101
cmovne eax, ecx
movzx edi, ax
mov word [edx + 0x1c], di
test esi, esi
jle 0x4a4b56
mov eax, 0x2460
nop dword [eax]
add edx, 0x28
mov dword [esp + 0x1c], edx
test word [edx + 0x1c], ax
je 0x4a4b4d
mov ecx, edx
call fcn.0049d6e0
mov edx, dword [esp + 0x1c]
mov eax, 0x2460
dec esi
mov word [edx + 0x1c], di
test esi, esi
jg 0x4a4b30
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
inc edi
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov dword [esp + 0x10], edi
jmp 0x4a4780
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 4]
mov edi, 0xff7f
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov ax, word [esi + 0x1c]
and ax, di
mov dword [esp + 0x1c], esi
mov edi, dword [esp + 0x10]
or ax, 1
mov word [esi + 0x1c], ax
inc edi
jmp 0x4a477a
mov eax, dword [esp + 0xc]
mov ecx, esi
push 0
push 0
push dword [eax + edi*4 + 4]
mov edx, dword [eax + edi*4 + 0x10]
call fcn.0049dcd0
mov al, byte [esp + 0x58]
add esp, 0xc
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 8]
inc edi
mov byte [esi + 0x1e], al
jmp 0x4a4776
mov eax, dword [esp + 0xc]
mov eax, dword [eax + edi*4 + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x18]
lea edx, [edx - 5]
mov eax, dword [eax + 0x3c]
lea edx, [eax + edx*8]
movzx eax, word [edx + 0x1c]
test al, 0x12
je 0x4a4c16
mov esi, dword [edx + 0x18]
test eax, 0x4000
je 0x4a4c00
add esi, dword [edx + 0x10]
mov eax, dword [edx]
xor ecx, ecx
cmp esi, dword [eax + 0x58]
setg cl
test ecx, ecx
jne 0x4a83be
mov esi, dword [esp + 0x1c]
push 0x800
mov ecx, esi
call fcn.0049db70
mov edi, dword [esp + 0x14]
add esp, 4
mov ecx, dword [esp + 8]
inc edi
jmp 0x4a4776
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 4]
mov ecx, dword [edx + edi*4 + 0xc]
mov dword [esp + 0x20], ecx
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, dword [edx + edi*4 + 8]
mov edx, dword [esp + 0x28]
mov edi, 0x80
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov dword [esp + 0x1c], edx
mov eax, 0x2460
test word [edx + 0x1c], ax
je 0x4a4c7e
mov ecx, edx
call fcn.0049d6e0
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
movups xmm0, xmmword [esi]
mov eax, dword [edx + 0x24]
movups xmmword [edx], xmm0
movups xmm0, xmmword [esi + 0x10]
movups xmmword [edx + 0x10], xmm0
movq xmm0, qword [esi + 0x20]
movq qword [edx + 0x20], xmm0
add edx, 0x28
mov word [esi + 0x1c], di
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], eax
add esi, 0x28
sub ecx, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], ecx
jne 0x4a4c64
jmp 0x4a4b56
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x48]
mov esi, dword [esp + 0x28]
mov edi, dword [edx + edi*4 + 0xc]
mov eax, dword [edx + ecx*4 + 4]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, dword [edx + ecx*4 + 8]
mov ecx, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x1c], eax
nop dword [eax + eax]
push 0x1000
mov edx, esi
mov ecx, eax
call fcn.0049db70
mov edx, dword [esp + 0x20]
mov eax, 0x1000
add esp, 4
test word [edx + 0x1c], ax
je 0x4a4d23
mov ecx, edx
call fcn.0049d490
test eax, eax
jne 0x4aab79
mov edx, dword [esp + 0x1c]
mov eax, edi
dec edi
test eax, eax
je 0x4a4b56
add edx, 0x28
add esi, 0x28
mov dword [esp + 0x1c], edx
mov eax, edx
jmp 0x4a4cf0
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x28]
push 0x1000
mov eax, dword [ecx + edi*4 + 8]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [ecx + edi*4 + 4]
mov ecx, esi
mov dword [esp + 0x20], esi
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
call fcn.0049db70
mov edi, dword [esp + 0x14]
add esp, 4
mov ecx, dword [esp + 8]
inc edi
mov edx, dword [esp + 0xc]
mov dword [esp + 0x10], edi
jmp 0x4a4780
mov eax, dword [ecx + 0x11c]
test eax, eax
je 0x4a4da8
mov edx, dword [esp + 0x68]
cmp edx, dword [esp + 0x74]
jb 0x4a4da8
push dword [ecx + 0x120]
call eax
add esp, 4
test eax, eax
jne 0x4aa3e0
mov ecx, dword [esp + 0x18]
xor edx, edx
call fcn.004a0540
mov ecx, eax
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x4a6467
mov ecx, dword [esp + 0x18]
lea edx, [eax + 1]
call fcn.004a0420
mov ecx, eax
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x4a6467
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
mov esi, dword [esp + 0x28]
mov eax, dword [edx + 0x48]
add eax, 2
or eax, 1
mov dword [edx + 0x48], eax
mov eax, dword [ecx + edi*4 + 4]
xor edi, edi
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, dword [esp + 0x48]
mov dword [edx + 0x14], esi
cmp dword [ecx + eax*4 + 8], edi
jle 0x4a4e47
nop dword [eax]
mov eax, 0x1000
test word [esi + 0x1c], ax
je 0x4a4e2a
mov ecx, esi
call fcn.0049d490
test eax, eax
jne 0x4aab79
mov ecx, esi
call fcn.0049d550
mov eax, dword [esp + 0x48]
inc edi
mov ecx, dword [esp + 0xc]
add esi, 0x28
cmp edi, dword [ecx + eax*4 + 8]
jl 0x4a4e10
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 8]
cmp byte [ecx + 0x40], 0
jne 0x4aab7d
mov eax, dword [esp + 0x10]
mov edi, 0x64
inc eax
mov dword [edx + 0x4c], eax
jmp 0x4aac23
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x28]
mov eax, dword [ecx + edi*4 + 4]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x20], eax
mov eax, dword [ecx + edi*4 + 8]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [ecx + edi*4 + 0xc]
mov edi, dword [esp + 0x20]
lea eax, [eax + eax*4]
movzx ecx, word [edi + 0x1c]
lea eax, [edx + eax*8]
mov dword [esp + 0x1c], eax
mov al, byte [esi + 0x1c]
or al, cl
test al, 1
je 0x4a4ec7
mov esi, dword [esp + 0x1c]
mov ecx, esi
call fcn.0049da40
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 8]
inc edi
mov edx, dword [esp + 0xc]
mov dword [esp + 0x10], edi
jmp 0x4a4780
test ecx, 0x4000
je 0x4a4ede
mov ecx, edi
call fcn.0049d4f0
test eax, eax
jne 0x4aab79
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x4a4ef8
mov ecx, esi
call fcn.0049d4f0
test eax, eax
jne 0x4aab79
test byte [edi + 0x1c], 0x12
jne 0x4a4f12
movzx edx, byte [esp + 0x4c]
mov ecx, edi
call fcn.0049d5a0
test eax, eax
jne 0x4aab79
test byte [esi + 0x1c], 0x12
jne 0x4a4f2c
movzx edx, byte [esp + 0x4c]
mov ecx, esi
call fcn.0049d5a0
test eax, eax
jne 0x4aab79
mov eax, dword [edi + 0x18]
add eax, dword [esi + 0x18]
cdq
mov edi, eax
mov ecx, edx
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x58]
cdq
cmp ecx, edx
jg 0x4a83be
jl 0x4a4f51
cmp edi, eax
ja 0x4a83be
mov ecx, dword [esp + 0x1c]
lea edx, [edi + 2]
xor eax, eax
cmp ecx, esi
sete al
push eax
call fcn.0049d360
add esp, 4
test eax, eax
jne 0x4aab79
mov ecx, dword [esp + 0x1c]
mov edx, 0xbe02
mov ax, word [ecx + 0x1c]
and ax, dx
or ax, 2
mov word [ecx + 0x1c], ax
cmp ecx, esi
je 0x4a4fa1
push dword [esi + 0x18]
push dword [esi + 4]
push dword [ecx + 4]
call fcn.0058fe30
mov ecx, dword [esp + 0x28]
add esp, 0xc
mov eax, dword [esp + 0x20]
push dword [eax + 0x18]
push dword [eax + 4]
mov eax, dword [ecx + 4]
add eax, dword [esi + 0x18]
push eax
call fcn.0058fe30
mov esi, dword [esp + 0x28]
add esp, 0xc
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov eax, dword [esi + 4]
mov byte [edi + eax], 0
mov eax, dword [esi + 4]
mov byte [edi + eax + 1], 0
mov eax, 0x200
or word [esi + 0x1c], ax
mov al, byte [esp + 0x4c]
mov dword [esi + 0x18], edi
mov edi, dword [esp + 0x10]
inc edi
mov byte [esi + 0x1e], al
mov dword [esp + 0x10], edi
jmp 0x4a4780
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + edi*4 + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx ecx, word [esi + 0x1c]
mov eax, ecx
mov dword [esp + 0x44], esi
and eax, 0xc
je 0x4a501f
mov edx, eax
mov dword [esp + 0x3c], edx
jmp 0x4a506e
test cl, 0x12
je 0x4a5066
movzx eax, byte [esi + 0x1e]
lea edx, [esi + 8]
mov ecx, dword [esi + 4]
push eax
push dword [esi + 0x18]
call fcn.00485720
add esp, 8
test eax, eax
je 0x4a5066
movzx eax, byte [esi + 0x1e]
lea edx, [esi + 0x10]
mov ecx, dword [esi + 4]
push eax
push dword [esi + 0x18]
call fcn.00485d70
add esp, 8
mov edx, eax
neg edx
sbb edx, edx
and edx, 4
add edx, 4
mov dword [esp + 0x3c], edx
jmp 0x4a506e
mov dword [esp + 0x3c], 0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + edi*4 + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx ecx, word [esi + 0x1c]
mov eax, ecx
mov dword [esp + 0x34], esi
and eax, 0xc
je 0x4a5093
mov ecx, eax
jmp 0x4a50d8
test cl, 0x12
je 0x4a50d6
movzx eax, byte [esi + 0x1e]
lea edx, [esi + 8]
mov ecx, dword [esi + 4]
push eax
push dword [esi + 0x18]
call fcn.00485720
add esp, 8
test eax, eax
je 0x4a50d6
movzx eax, byte [esi + 0x1e]
lea edx, [esi + 0x10]
mov ecx, dword [esi + 4]
push eax
push dword [esi + 0x18]
call fcn.00485d70
add esp, 8
mov ecx, eax
neg ecx
sbb ecx, ecx
and ecx, 4
add ecx, 4
jmp 0x4a50d8
xor ecx, ecx
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x30], ecx
mov eax, dword [eax + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov edx, dword [esp + 0x44]
mov dword [esp + 0x1c], eax
mov al, byte [edx + 0x1c]
or al, byte [esi + 0x1c]
test al, 1
jne 0x4a4ea6
mov al, cl
and al, byte [esp + 0x3c]
test al, 4
je 0x4a5246
mov esi, dword [esi + 0x10]
mov eax, edx
mov dword [esp + 0x78], esi
mov byte [esp + 0x43], 1
mov edx, dword [eax + 0x10]
mov ecx, dword [eax + 0x14]
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0x14]
mov dword [esp + 0x38], eax
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0xc]
movzx eax, byte [eax + edi*4]
add eax, 0xffffffa7
cmp eax, 3
ja case.default.0x4a5149
jmp dword [eax*4 + 0x4aaec4]
push ecx
push edx
lea ecx, [esp + 0x80]
call fcn.004864c0
add esp, 8
test eax, eax
jne 0x4a524d
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x78]
mov eax, dword [esp + 0x7c]
mov dword [ecx + 0x10], esi
mov esi, ecx
jmp 0x4a5721
test edx, edx
jne 0x4a51b7
cmp ecx, 0x80000000
jne 0x4a51b7
mov eax, dword [esp + 0x38]
test eax, eax
jg 0x4a524d
jl 0x4a51a1
test esi, esi
jae 0x4a524d
mov ecx, dword [esp + 0x1c]
add esi, 0
adc eax, 0x80000000
mov dword [ecx + 0x10], esi
mov esi, ecx
jmp 0x4a5721
neg edx
adc ecx, 0
neg ecx
jmp case.0x4a5149.89
push ecx
push edx
lea ecx, [esp + 0x80]
call fcn.00486560
jmp 0x4a515e
mov eax, edx
or eax, ecx
je 0x4a4ea6
mov eax, edx
and eax, ecx
cmp eax, 0xffffffff
mov eax, dword [esp + 0x38]
jne 0x4a51f2
test esi, esi
jne 0x4a51f2
cmp eax, 0x80000000
je 0x4a524d
push ecx
push edx
push eax
push esi
call fcn.00577480
mov ecx, dword [esp + 0x1c]
mov esi, eax
mov eax, edx
mov dword [ecx + 0x10], esi
mov esi, ecx
jmp 0x4a5721
mov eax, edx
or eax, ecx
je 0x4a4ea6
mov eax, edx
and eax, ecx
cmp eax, 0xffffffff
jne 0x4a5227
mov edx, 1
xor ecx, ecx
mov eax, dword [esp + 0x38]
push ecx
push edx
push eax
push esi
call fcn.005bd7f0
mov ecx, dword [esp + 0x1c]
mov esi, eax
mov eax, edx
mov dword [ecx + 0x10], esi
mov esi, ecx
jmp 0x4a5721
mov byte [esp + 0x43], 0
jmp 0x4a5255
mov edx, dword [esp + 0x44]
mov esi, dword [esp + 0x34]
mov ecx, edx
call fcn.0049d860
mov ecx, esi
movsd qword [esp + 0x50], xmm0
call fcn.0049d860
mov eax, dword [esp + 0xc]
movaps xmm1, xmm0
movsd qword [esp + 0x80], xmm1
movzx eax, byte [eax + edi*4]
add eax, 0xffffffa7
cmp eax, 3
ja case.default.0x4a5285
jmp dword [eax*4 + 0x4aaed4]
addsd xmm1, qword [esp + 0x50]
jmp 0x4a530c
subsd xmm1, qword [esp + 0x50]
jmp 0x4a530c
mulsd xmm1, qword [esp + 0x50]
jmp 0x4a530c
movsd xmm0, qword [esp + 0x50]
ucomisd xmm0, qword [0x6248b8]
lahf
test ah, 0x44
jnp 0x4a4ea6
divsd xmm1, xmm0
jmp 0x4a530c
movsd xmm0, qword [esp + 0x50]
call fcn.005772ff
movsd xmm0, qword [esp + 0x80]
mov esi, eax
mov edi, edx
call fcn.005772ff
mov ecx, esi
or ecx, edi
je 0x4a4ea6
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x4a52f9
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push eax
call fcn.005bd7f0
mov ecx, eax
call fcn.00577450
movaps xmm1, xmm0
movaps xmm0, xmm1
call fcn.004853d0
test eax, eax
jne 0x4a4ea6
mov edx, dword [esp + 0x1c]
mov ecx, 0xbe08
mov ax, word [edx + 0x1c]
and ax, cx
movsd qword [edx + 8], xmm1
or ax, 8
mov word [edx + 0x1c], ax
mov eax, dword [esp + 0x30]
or al, byte [esp + 0x3c]
test al, 8
jne 0x4a4b56
cmp byte [esp + 0x43], 0
jne 0x4a4b56
mov ecx, edx
call fcn.0049d8c0
jmp 0x4a4b56
mov edx, dword [esp + 0xc]
mov eax, dword [edx + edi*4 + 4]
test eax, eax
je 0x4a5386
mov ecx, dword [esp + 0x28]
lea eax, [eax + eax*4]
push 0
push 0
lea ecx, [ecx + eax*8]
call fcn.0049da90
mov edx, dword [esp + 0x14]
add esp, 8
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 8]
inc edi
jmp 0x4a477a
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
movzx ecx, byte [esi + edi*4 + 3]
mov edx, dword [eax + 0xc]
mov eax, dword [esi + edi*4 + 0xc]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x24], ecx
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x1c], eax
mov eax, dword [esi + edi*4 + 8]
mov esi, edx
mov edx, dword [esp + 0x20]
xor edi, edi
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
test ecx, ecx
jle 0x4a540d
mov eax, 0x1000
nop dword [eax]
mov dword [edx + edi*4], esi
test word [esi + 0x1c], ax
je 0x4a5405
mov ecx, esi
call fcn.0049d490
test eax, eax
jne 0x4aab79
mov ecx, dword [esp + 0x24]
mov eax, 0x1000
mov edx, dword [esp + 0x20]
inc edi
add esi, 0x28
cmp edi, ecx
jl 0x4a53e0
mov esi, dword [esp + 0x48]
mov edi, 1
mov eax, dword [esp + 0xc]
mov eax, dword [eax + esi*4 + 0x10]
mov dword [esp + 0x140], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x17c], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x178], eax
mov eax, dword [esp + 0x1c]
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x148], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [esp + 0x158], xmm0
movq xmm0, qword [eax + 0x20]
movq qword [esp + 0x168], xmm0
mov word [eax + 0x1c], di
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0
mov eax, dword [esp + 0x164]
and eax, 0xbe01
mov byte [esp + 0x185], 0
or eax, edi
mov edi, dword [esp + 0x140]
mov word [esp + 0x164], ax
test byte [edi + 2], 0x20
je 0x4a54b0
mov eax, dword [esp + 0xc]
mov eax, dword [eax + esi*4 - 4]
mov dword [esp + 0x174], eax
mov eax, dword [esp + 8]
mov esi, dword [esp + 0x60]
push edx
push ecx
mov dword [eax + 0x20], esi
mov esi, dword [esp + 0x6c]
mov dword [eax + 0x24], esi
lea eax, [esp + 0x148]
push eax
mov eax, dword [edi + 0xc]
call eax
mov edi, dword [esp + 0x14]
add esp, 0xc
mov esi, dword [esp + 0x48]
cmp byte [edi + 0x40], 0
mov eax, dword [edi + 0x20]
mov dword [esp + 0x60], eax
mov eax, dword [edi + 0x24]
mov dword [esp + 0x64], eax
jne 0x4aa889
cmp byte [esp + 0x185], 0
je 0x4a5550
cmp dword [esp + 0x180], 0
je 0x4a5538
mov dl, 1
lea ecx, [esp + 0x148]
call fcn.0049df70
push eax
mov eax, dword [esp + 0x1c]
push 0x60eb3c
add eax, 0x2c
push edi
push eax
call fcn.00483210
mov eax, dword [esp + 0x190]
add esp, 0x10
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
push dword [eax + esi*4 + 4]
call fcn.004a0a50
add esp, 4
movzx edx, byte [esp + 0x4c]
lea ecx, [esp + 0x148]
call fcn.0049d340
mov edx, dword [esp + 0x1c]
mov esi, edx
movups xmm0, xmmword [esp + 0x148]
movups xmmword [edx], xmm0
movups xmm0, xmmword [esp + 0x158]
movups xmmword [edx + 0x10], xmm0
movq xmm0, qword [esp + 0x168]
movq qword [edx + 0x20], xmm0
movzx eax, word [edx + 0x1c]
test al, 0x12
je 0x4aa795
mov edx, dword [edx + 0x18]
test eax, 0x4000
je 0x4a55a5
add edx, dword [esi + 0x10]
mov eax, dword [esi]
xor ecx, ecx
cmp edx, dword [eax + 0x58]
setg cl
test ecx, ecx
mov ecx, edi
jne 0x4a83c2
jmp case.default.0x4a47e3
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, dword [edx + edi*4 + 8]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [edx + edi*4 + 0xc]
mov edx, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x1c], eax
mov al, byte [ecx + 0x1c]
or al, byte [esi + 0x1c]
test al, 1
jne 0x4a4ea6
call fcn.0049d7b0
mov dword [esp + 0x3c], eax
mov ecx, esi
mov dword [esp + 0xc8], eax
mov eax, edx
mov dword [esp + 0x38], eax
mov dword [esp + 0xcc], eax
call fcn.0049d7b0
mov esi, eax
mov eax, dword [esp + 0xc]
mov cl, byte [eax + edi*4]
cmp cl, 0x55
jne 0x4a563d
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
and ecx, esi
and eax, edx
jmp 0x4a571a
cmp cl, 0x56
jne 0x4a5653
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
or ecx, esi
or eax, edx
jmp 0x4a571a
mov eax, esi
or eax, edx
je 0x4a5712
test edx, edx
jg 0x4a568b
jl 0x4a5667
test esi, esi
jae 0x4a5680
mov al, 0xaf
sub al, cl
mov cl, al
cmp edx, 0xffffffff
jl 0x4a568b
jg 0x4a5679
cmp esi, 0xffffffc0
jbe 0x4a568b
neg esi
adc edx, 0
neg edx
test edx, edx
jl 0x4a56b3
jg 0x4a568b
cmp esi, 0x40
jb 0x4a56b3
cmp dword [esp + 0x38], 0
jg 0x4a56aa
jl 0x4a569b
cmp dword [esp + 0x3c], 0
jae 0x4a56aa
cmp cl, 0x57
je 0x4a56aa
or eax, 0xffffffff
cdq
mov ecx, eax
mov eax, edx
jmp 0x4a571a
xor eax, eax
cdq
mov ecx, eax
mov eax, edx
jmp 0x4a571a
movq xmm1, qword [esp + 0xc8]
movd xmm0, esi
cmp cl, 0x57
jne 0x4a56d9
psllq xmm1, xmm0
movq qword [esp + 0x50], xmm1
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
jmp 0x4a571a
cmp dword [esp + 0x38], 0
psrlq xmm1, xmm0
movq qword [esp + 0x50], xmm1
jg 0x4a56cf
jl 0x4a56f3
cmp dword [esp + 0x3c], 0
jae 0x4a56cf
or edx, 0xffffffff
mov ecx, 0x40
sub ecx, esi
mov eax, edx
call fcn.005bd7b0
mov ecx, dword [esp + 0x50]
or ecx, eax
mov eax, dword [esp + 0x54]
or eax, edx
jmp 0x4a571a
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0x1c]
mov dword [esi + 0x10], ecx
mov edi, dword [esp + 0x10]
mov ecx, 0xbe04
mov edx, dword [esp + 0xc]
mov dword [esi + 0x14], eax
mov ax, word [esi + 0x1c]
and ax, cx
mov ecx, dword [esp + 8]
or ax, 4
inc edi
mov word [esi + 0x1c], ax
mov dword [esp + 0x10], edi
jmp 0x4a4780
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + edi*4 + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.0049d7b0
mov dword [esi + 0x10], eax
mov ecx, 0xbe04
mov ax, word [esi + 0x1c]
and ax, cx
mov dword [esi + 0x14], edx
or ax, 4
mov word [esi + 0x1c], ax
mov eax, dword [esp + 0xc]
mov eax, dword [eax + edi*4 + 8]
cdq
add dword [esi + 0x10], eax
adc dword [esi + 0x14], edx
jmp 0x4a4b56
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx eax, word [esi + 0x1c]
test al, 4
jne 0x4a57ee
mov ecx, esi
call fcn.004a4560
test byte [esi + 0x1c], 8
je 0x4a57c3
mov ecx, esi
call fcn.0049d8c0
movzx eax, word [esi + 0x1c]
mov edx, dword [esp + 0xc]
test al, 4
jne 0x4a57ee
mov eax, dword [edx + edi*4 + 8]
mov ecx, dword [esp + 8]
test eax, eax
je 0x4aa89c
mov esi, dword [esp + 0x1c]
mov edi, eax
mov dword [esp + 0x10], eax
jmp 0x4a4780
and eax, 0xbe04
or eax, 4
mov word [esi + 0x1c], ax
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
inc edi
mov ecx, dword [esp + 8]
jmp 0x4a477a
mov edx, dword [esp + 0xc]
mov eax, dword [edx + edi*4 + 4]
mov edi, dword [esp + 0x28]
lea esi, [eax + eax*4]
movzx eax, word [edi + esi*8 + 0x1c]
mov dword [esp + 0x24], eax
test al, 4
je 0x4a585c
test al, 8
je 0x4a5834
movsd xmm0, qword [edi + esi*8 + 8]
jmp 0x4a5849
mov edx, dword [edi + esi*8 + 0x14]
mov ecx, dword [edi + esi*8 + 0x10]
call fcn.00577450
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
and eax, 0xbe08
movsd qword [edi + esi*8 + 8], xmm0
or eax, 8
mov word [edi + esi*8 + 0x1c], ax
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
inc edi
mov ecx, dword [esp + 8]
jmp 0x4a477a
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x28]
mov eax, dword [eax + edi*4 + 4]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
movzx eax, word [esi + 0x1c]
test al, 1
jne 0x4a6673
shr eax, 3
and eax, 2
or word [esi + 0x1c], ax
mov ax, word [esi + 0x1c]
test al, 2
jne 0x4a58ae
test al, 0xc
je 0x4a58ae
movzx edx, byte [esp + 0x4c]
mov ecx, esi
call fcn.0049d5a0
mov eax, 0xfff3
and word [esi + 0x1c], ax
movzx eax, word [esi + 0x1c]
test eax, 0x4000
je 0x4a58db
mov ecx, esi
call fcn.0049d4f0
mov dword [esp + 0x14], eax
mov eax, 0xbfe3
and word [esi + 0x1c], ax
jmp 0x4a6463
mov eax, 0xbfe3
mov dword [esp + 0x14], 0
and word [esi + 0x1c], ax
jmp 0x4a6463
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 4]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
movzx eax, word [esi + 0x1c]
test al, 1
jne 0x4a6673
test al, 0x10
jne 0x4a5951
test al, 2
jne 0x4a592b
test al, 0xc
je 0x4a592b
movzx edx, byte [esp + 0x4c]
mov ecx, esi
call fcn.0049d5a0
mov edx, dword [esp + 0xc]
mov ax, word [esi + 0x1c]
mov ecx, 0xbe10
mov edi, dword [esp + 0x10]
and ax, cx
mov ecx, dword [esp + 8]
or ax, 0x10
mov word [esi + 0x1c], ax
inc edi
mov esi, dword [esp + 0x1c]
jmp 0x4a477a
mov edi, dword [esp + 0x10]
and eax, 0xfe10
mov word [esi + 0x1c], ax
inc edi
mov esi, dword [esp + 0x1c]
jmp 0x4a477a
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + edi*4 + 4]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.0049d960
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 8]
inc edi
mov edx, dword [esp + 0xc]
mov dword [esp + 0x10], edi
jmp 0x4a4780
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x1c], 1
lea esi, [ecx + eax*8]
jne 0x4a57fa
mov ecx, esi
call fcn.0049d7b0
mov edi, dword [esp + 0x10]
mov ecx, 0xbe04
mov dword [esi + 0x10], eax
mov ax, word [esi + 0x1c]
and ax, cx
mov dword [esi + 0x14], edx
mov edx, dword [esp + 0xc]
or ax, 4
mov ecx, dword [esp + 8]
inc edi
mov word [esi + 0x1c], ax
mov esi, dword [esp + 0x1c]
jmp 0x4a477a
mov edx, dword [esp + 0xc]
mov eax, dword [edx + edi*4 + 4]
mov edi, dword [esp + 0x28]
lea esi, [eax + eax*4]
movzx eax, word [edi + esi*8 + 0x1c]
test al, 1
jne 0x4a57fa
test al, 8
je 0x4a5a11
movsd xmm0, qword [edi + esi*8 + 8]
jmp 0x4a5a5e
test al, 4
je 0x4a5a24
mov edx, dword [edi + esi*8 + 0x14]
mov ecx, dword [edi + esi*8 + 0x10]
call fcn.00577450
jmp 0x4a5a5a
xorps xmm0, xmm0
test al, 0x12
je 0x4a5a5e
movzx eax, byte [edi + esi*8 + 0x1e]
lea edx, [esp + 0x80]
mov ecx, dword [edi + esi*8 + 4]
push eax
push dword [edi + esi*8 + 0x18]
movsd qword [esp + 0x88], xmm0
call fcn.00485720
movsd xmm0, qword [esp + 0x88]
add esp, 8
mov edx, dword [esp + 0xc]
mov ax, word [edi + esi*8 + 0x1c]
mov ecx, 0xbe08
and ax, cx
movsd qword [edi + esi*8 + 8], xmm0
mov ecx, dword [esp + 8]
or ax, 8
mov word [edi + esi*8 + 0x1c], ax
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
inc edi
jmp 0x4a477a
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x28]
mov eax, dword [ecx + edi*4 + 4]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [ecx + edi*4 + 0xc]
lea eax, [eax + eax*4]
movzx ecx, word [edx + eax*8 + 0x1c]
lea eax, [edx + eax*8]
movzx edx, word [esi + 0x1c]
mov dword [esp + 0x30], eax
mov al, cl
or al, dl
mov dword [esp + 0x24], edx
test al, 1
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0xc]
mov al, byte [eax + edi*4 + 3]
je 0x4a5b5a
test al, al
jns 0x4a5af7
mov eax, ecx
and eax, edx
xor edx, edx
bt ax, dx
jae 0x4a5aed
test ecx, 0x100
je 0x4a5bd6
mov edx, 1
jmp 0x4a5bd6
test al, 0x10
je 0x4a5b33
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 8]
mov edi, dword [esp + 0x10]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, 0xbe01
mov ax, word [esi + 0x1c]
and ax, cx
mov dword [esp + 0x1c], esi
mov ecx, dword [esp + 8]
or ax, 1
mov word [esi + 0x1c], ax
inc edi
jmp 0x4a477a
test al, 8
je 0x4a78d6
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x1c]
mov ecx, dword [edx + edi*4 + 8]
dec ecx
inc ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 8]
mov edi, dword [esp + 0x10]
jmp 0x4a4780
and al, 0x67
mov byte [esp + 0x43], al
je 0x4a5b94
push dword [esp + 0x4c]
mov dl, al
mov ecx, esi
call fcn.004a45f0
mov dl, byte [esp + 0x47]
add esp, 4
mov ecx, dword [esp + 0x30]
push dword [esp + 0x4c]
call fcn.004a45f0
mov ecx, dword [esp + 0xc]
add esp, 4
cmp byte [ecx + 0x40], 0
jne 0x4aab7d
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x4a5ba6
mov ecx, esi
call fcn.0049d4f0
mov eax, dword [esp + 0x30]
mov ecx, 0x4000
test word [eax + 0x1c], cx
je 0x4a5bc0
mov ecx, eax
call fcn.0049d4f0
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0xc]
mov ecx, eax
push dword [edx + edi*4 + 0x10]
mov edx, esi
call fcn.004a1570
add esp, 4
mov edx, eax
mov eax, dword [esp + 0xc]
movzx ecx, byte [eax + edi*4]
add ecx, 0xffffffb2
cmp ecx, 4
ja case.default.0x4a5be6
jmp dword [ecx*4 + 0x4aaee4]
xor eax, eax
test edx, edx
sete al
jmp 0x4a5c21
xor eax, eax
test edx, edx
setne al
jmp 0x4a5c21
xor eax, eax
test edx, edx
sets al
jmp 0x4a5c21
xor eax, eax
test edx, edx
setle al
jmp 0x4a5c21
xor eax, eax
test edx, edx
setg al
jmp 0x4a5c21
xor eax, eax
test edx, edx
setns al
mov edx, dword [esp + 0xc]
test byte [edx + edi*4 + 3], 0x10
je 0x4a5c5f
mov ecx, dword [edx + edi*4 + 8]
mov edx, dword [esp + 0x28]
lea ecx, [ecx + ecx*4]
lea edi, [edx + ecx*8]
mov edx, 0xbe04
mov cx, word [edi + 0x1c]
and cx, dx
mov dword [esp + 0x1c], edi
cdq
or cx, 4
mov dword [edi + 0x14], edx
mov edx, dword [esp + 0xc]
mov word [edi + 0x1c], cx
mov dword [edi + 0x10], eax
jmp 0x4a5c6c
test eax, eax
je 0x4a5c6c
mov eax, dword [edx + edi*4 + 8]
dec eax
mov dword [esp + 0x10], eax
movzx eax, word [esi + 0x1c]
mov edi, 0x1ff
xor ax, word [esp + 0x24]
mov ecx, dword [esp + 0x30]
and ax, di
xor word [esi + 0x1c], ax
mov esi, dword [esp + 0x1c]
movzx eax, word [ecx + 0x1c]
xor ax, word [esp + 0x20]
and ax, di
mov edi, dword [esp + 0x10]
xor word [ecx + 0x1c], ax
inc edi
mov ecx, dword [esp + 8]
jmp 0x4a477a
mov edx, dword [esp + 0xc]
mov eax, dword [edx + edi*4 + 0x10]
mov edi, dword [esp + 0x10]
mov dword [esp + 0x6c], eax
inc edi
jmp 0x4a477a
mov esi, dword [esp + 0xc]
mov ecx, 0
mov eax, dword [esp + 0x6c]
test byte [esi + edi*4 + 3], 1
mov edx, dword [esi + edi*4 + 0x10]
cmove eax, ecx
mov dword [esp + 0x30], edx
mov ecx, dword [esi + edi*4 + 4]
mov dword [esp + 0x6c], eax
mov eax, dword [esi + edi*4 + 0xc]
mov dword [esp + 0x20], ecx
mov ecx, dword [esi + edi*4 + 8]
xor esi, esi
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], ecx
test eax, eax
jle 0x4a5d76
lea edi, [edx + 0x14]
nop
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x4a5d0d
mov ecx, dword [eax + esi*4]
jmp 0x4a5d0f
mov ecx, esi
mov eax, dword [edx + 0x10]
mov edx, dword [esp + 0x28]
push dword [edi]
movzx eax, byte [esi + eax]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x28]
add eax, ecx
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov eax, dword [esp + 0x24]
add eax, ecx
mov ecx, dword [esp + 0x2c]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.004a1570
add esp, 4
mov dword [esp + 0x98], eax
test eax, eax
jne 0x4a5d66
mov edx, dword [esp + 0x30]
inc esi
add edi, 4
cmp esi, dword [esp + 0x2c]
jl 0x4a5d00
mov dword [esp + 0x6c], eax
jmp 0x4a4b56
cmp dword [esp + 0x38], 0
je 0x4a5d76
neg eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x6c], 0
jmp 0x4a4b56
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0xc]
test eax, eax
jns 0x4a5d9b
mov edi, dword [edx + edi*4 + 4]
jmp 0x4a477a
jne 0x4a5da6
mov edi, dword [edx + edi*4 + 8]
jmp 0x4a477a
mov edi, dword [edx + edi*4 + 0xc]
jmp 0x4a477a
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + edi*4 + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x1c], 1
lea ecx, [ecx + eax*8]
je 0x4a5dcf
mov esi, 2
jmp 0x4a5de1
call fcn.0049d7b0
or eax, edx
je 0x4a5ddf
mov esi, 1
jmp 0x4a5de1
xor esi, esi
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + edi*4 + 8]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x1c], 1
lea ecx, [ecx + eax*8]
je 0x4a5e01
mov eax, 2
jmp 0x4a5e13
call fcn.0049d7b0
or eax, edx
je 0x4a5e11
mov eax, 1
jmp 0x4a5e13
xor eax, eax
mov edx, dword [esp + 0xc]
lea eax, [eax + esi*2]
cmp byte [edx + edi*4], 0x48
jne 0x4a5e2a
movzx ecx, byte [esi + eax + 0x5f24ec]
jmp 0x4a5e32
movzx ecx, byte [esi + eax + 0x5f312c]
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x28]
mov eax, dword [eax + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov dword [esp + 0x1c], edx
cmp ecx, 2
jne 0x4a5e66
mov ax, word [edx + 0x1c]
mov ecx, 0xbe01
and ax, cx
or ax, 1
mov word [edx + 0x1c], ax
jmp 0x4a4b56
mov esi, dword [esp + 0x1c]
mov eax, ecx
mov edi, dword [esp + 0x10]
mov ecx, 0xbe04
cdq
mov dword [esi + 0x10], eax
mov ax, word [esi + 0x1c]
and ax, cx
mov dword [esi + 0x14], edx
mov ecx, dword [esp + 8]
or ax, 4
mov edx, dword [esp + 0xc]
inc edi
mov word [esi + 0x1c], ax
mov dword [esp + 0x10], edi
jmp 0x4a4780
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x1c], 1
lea ecx, [esi + eax*8]
mov eax, dword [edx + edi*4 + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov dword [esp + 0x1c], esi
jne 0x4a4eaa
call fcn.0049d7b0
or eax, edx
jne 0x4a5ef9
mov eax, 1
mov ecx, esi
cdq
push edx
push eax
call fcn.0049da90
mov edi, dword [esp + 0x18]
add esp, 8
mov ecx, dword [esp + 8]
inc edi
mov edx, dword [esp + 0xc]
mov dword [esp + 0x10], edi
jmp 0x4a4780
xor eax, eax
mov ecx, esi
cdq
push edx
push eax
call fcn.0049da90
mov edi, dword [esp + 0x18]
add esp, 8
mov ecx, dword [esp + 8]
inc edi
mov edx, dword [esp + 0xc]
mov dword [esp + 0x10], edi
jmp 0x4a4780
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x1c], 1
lea ecx, [esi + eax*8]
mov eax, dword [edx + edi*4 + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov dword [esp + 0x1c], esi
jne 0x4a4eaa
call fcn.0049d7b0
not edx
not eax
push edx
push eax
mov ecx, esi
call fcn.0049da90
mov edi, dword [esp + 0x18]
add esp, 8
mov ecx, dword [esp + 8]
inc edi
mov edx, dword [esp + 0xc]
mov dword [esp + 0x10], edi
jmp 0x4a4780
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0xc]
mov eax, dword [eax + 0xc8]
mov ecx, dword [edx + edi*4 + 4]
cmp byte [eax + ecx], 0
je 0x4a5fa1
mov ecx, dword [edx + edi*4 + 8]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 8]
mov edi, dword [esp + 0x10]
jmp 0x4a4780
mov edi, dword [esp + 0x10]
mov byte [eax + ecx], 1
inc edi
mov ecx, dword [esp + 8]
jmp 0x4a477a
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x1c], 1
lea ecx, [ecx + eax*8]
je 0x4a5fd2
mov ecx, dword [edx + edi*4 + 0xc]
jmp 0x4a6001
call fcn.0049d860
ucomisd xmm0, qword [0x6248b8]
lahf
test ah, 0x44
jnp 0x4a5fec
mov ecx, 1
jmp 0x4a5fee
xor ecx, ecx
mov edx, dword [esp + 0xc]
cmp byte [edx + edi*4], 0x2d
jne 0x4a6001
xor eax, eax
test ecx, ecx
sete al
mov ecx, eax
test ecx, ecx
je 0x4a601c
mov ecx, dword [edx + edi*4 + 8]
dec ecx
inc ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 8]
mov edi, dword [esp + 0x10]
jmp 0x4a4780
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 8]
mov edi, dword [esp + 0x10]
jmp 0x4a4780
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x1c], 1
mov esi, dword [esp + 0x1c]
je 0x4a49cb
mov edi, dword [edx + edi*4 + 8]
dec edi
inc edi
jmp 0x4a477a
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x1c], 1
mov ecx, dword [esp + 8]
jne 0x4a49cb
mov edi, dword [edx + edi*4 + 8]
dec edi
inc edi
jmp 0x4a477a
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x28]
mov eax, dword [ecx + edi*4 + 0xc]
mov esi, dword [ecx + edi*4 + 8]
mov ecx, dword [ecx + edi*4 + 4]
mov dword [esp + 0x30], esi
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x34], ecx
movsx eax, word [ecx + 0x14]
add eax, 0x16
lea eax, [ecx + eax*4]
mov dword [esp + 0x3c], eax
mov eax, dword [ecx]
mov dword [esp + 0x44], eax
call fcn.004a0e20
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4aa97a
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x18]
mov eax, dword [edx + 0x44]
cmp eax, dword [ecx + 0x48]
jne 0x4a60f8
mov eax, dword [esp + 0xc]
test byte [eax + edi*4 + 3], 0x20
je 0x4a62e4
cmp byte [edx + 0x19], 0
je 0x4a6143
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x4a6126
mov eax, dword [edx + 0x10]
mov ecx, dword [esp + 0x28]
lea eax, [eax + eax*4]
mov esi, dword [ecx + eax*8 + 0x18]
mov dword [edx + 0x4c], esi
mov dword [edx + 0x48], esi
mov eax, dword [ecx + eax*8 + 4]
mov dword [edx + 0x54], eax
jmp 0x4a6269
mov edi, dword [esp + 0x38]
mov ecx, 0xbe01
mov ax, word [edi + 0x1c]
and ax, cx
or ax, 1
mov word [edi + 0x1c], ax
jmp 0x4a6651
test byte [edx + 0x1c], 4
mov ecx, dword [esp + 0x44]
jne 0x4a61e6
cmp byte [ecx + 0x51], 1
je 0x4a6165
xorps xmm0, xmm0
movlpd qword [esp + 0xa8], xmm0
jmp 0x4a61cc
cmp word [ecx + 0x32], 0
jne 0x4a61b8
movsx eax, word [ecx + 0x54]
mov edi, dword [ecx + eax*4 + 0x80]
movzx esi, word [ecx + eax*2 + 0x56]
mov eax, dword [esp + 0x44]
add eax, 0x18
mov ecx, dword [edi + 0x40]
push eax
movzx eax, byte [ecx + esi*2]
movzx edx, byte [ecx + esi*2 + 1]
mov ecx, edi
shl eax, 8
or edx, eax
movzx eax, word [edi + 0x12]
and edx, eax
add edx, dword [edi + 0x38]
call fcn.00493b70
mov ecx, dword [esp + 0x48]
add esp, 4
mov edi, dword [esp + 0x48]
mov edx, dword [esp + 0x34]
or byte [ecx + 0x50], 2
mov eax, dword [ecx + 0x18]
mov dword [esp + 0xa8], eax
mov eax, dword [ecx + 0x1c]
mov dword [esp + 0xac], eax
movzx eax, word [ecx + 0x2c]
add eax, dword [ecx + 0x20]
movzx esi, word [ecx + 0x2e]
mov dword [edx + 0x54], eax
mov eax, dword [esp + 0xa8]
mov dword [edx + 0x48], eax
jmp 0x4a624d
cmp word [ecx + 0x32], 0
jne 0x4a6239
movsx eax, word [ecx + 0x54]
mov edi, dword [ecx + eax*4 + 0x80]
movzx esi, word [ecx + eax*2 + 0x56]
mov eax, dword [esp + 0x44]
add eax, 0x18
mov ecx, dword [edi + 0x40]
push eax
movzx eax, byte [ecx + esi*2]
movzx edx, byte [ecx + esi*2 + 1]
mov ecx, edi
shl eax, 8
or edx, eax
movzx eax, word [edi + 0x12]
and edx, eax
add edx, dword [edi + 0x38]
call fcn.00493b70
mov ecx, dword [esp + 0x48]
add esp, 4
mov edi, dword [esp + 0x48]
mov edx, dword [esp + 0x34]
or byte [ecx + 0x50], 2
mov eax, dword [ecx + 0x24]
mov dword [edx + 0x48], eax
movzx eax, word [ecx + 0x2c]
add eax, dword [ecx + 0x20]
movzx esi, word [ecx + 0x2e]
mov dword [edx + 0x54], eax
mov eax, dword [edx + 0x48]
cmp eax, esi
ja 0x4a6259
mov dword [edx + 0x4c], eax
jmp 0x4a625c
mov dword [edx + 0x4c], esi
mov ecx, dword [esp + 8]
cmp eax, dword [ecx + 0x58]
ja 0x4a83c2
mov eax, dword [esp + 0x18]
mov ecx, dword [edx + 0x54]
mov eax, dword [eax + 0x48]
mov dword [edx + 0x44], eax
mov al, byte [ecx]
cmp al, 0x80
jae 0x4a628d
movzx ecx, al
mov eax, 1
mov dword [esp + 0x9c], ecx
jmp 0x4a62a7
lea edx, [esp + 0x9c]
call fcn.00486320
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0x34]
movzx eax, al
movzx eax, al
mov dword [edx + 0x50], eax
xor eax, eax
mov word [edx + 0x16], ax
mov eax, dword [esp + 0x3c]
mov dword [eax], ecx
cmp esi, ecx
jae 0x4a62cb
mov dword [edx + 0x54], 0
mov dword [edx + 0x4c], 0
cmp ecx, 0x18003
ja 0x4a667c
cmp ecx, dword [edx + 0x48]
ja 0x4a667c
mov esi, dword [esp + 0x30]
movzx eax, word [edx + 0x16]
cmp eax, esi
jg 0x4a64c0
mov ecx, dword [esp + 0x3c]
mov eax, dword [edx + 0x50]
cmp eax, dword [ecx]
jae 0x4a648d
mov eax, dword [edx + 0x54]
mov dword [esp + 0x48], eax
test eax, eax
jne 0x4a636b
xorps xmm0, xmm0
lea eax, [esp + 0xe0]
push eax
movaps xmmword [esp + 0xe4], xmm0
movaps xmmword [esp + 0xf4], xmm0
movq qword [esp + 0x104], xmm0
mov eax, dword [edx + 0x1c]
xor edx, edx
shr eax, 2
not eax
and eax, 1
push eax
push dword [ecx]
mov ecx, dword [esp + 0x50]
call fcn.0049de80
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x4a6463
mov eax, dword [esp + 0xe4]
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x48], eax
movzx edx, word [edx + 0x16]
mov esi, dword [esp + 0x34]
mov dword [esp + 0x24], edx
mov eax, dword [ecx + edx*4]
mov esi, dword [esi + 0x50]
add esi, dword [esp + 0x48]
mov dword [esp + 0x20], eax
mov eax, dword [ecx]
add eax, dword [esp + 0x48]
mov dword [esp + 0x2c], eax
nop
mov al, byte [esi]
cmp al, 0x80
jae 0x4a63a3
movzx ecx, al
inc esi
mov dword [esp + 0xa0], ecx
jmp 0x4a63c1
lea edx, [esp + 0xa0]
mov ecx, esi
call fcn.00486320
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0x24]
movzx eax, al
add esi, eax
mov eax, dword [esp + 0x34]
mov dword [eax + edx*4 + 0x58], ecx
call fcn.004a1000
mov ecx, dword [esp + 0x20]
add ecx, eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x9c], ecx
cmp ecx, eax
jb 0x4a63fd
mov eax, dword [esp + 0x3c]
inc edx
mov dword [esp + 0x24], edx
mov dword [eax + edx*4], ecx
cmp edx, dword [esp + 0x30]
jg 0x4a6402
cmp esi, dword [esp + 0x2c]
jb 0x4a6390
jmp 0x4a6402
mov esi, dword [esp + 0x2c]
inc esi
mov eax, dword [esp + 0x34]
mov word [eax + 0x16], dx
mov eax, esi
mov edx, dword [esp + 0x34]
sub eax, dword [esp + 0x48]
cmp dword [edx + 0x54], 0
mov dword [edx + 0x50], eax
jne 0x4a643e
lea ecx, [esp + 0xe0]
call fcn.0049d730
mov ecx, dword [esp + 0x20]
mov eax, 1
mov edx, dword [esp + 0x34]
mov word [esp + 0xfc], ax
cmp esi, dword [esp + 0x2c]
ja 0x4a6455
mov eax, dword [edx + 0x48]
cmp ecx, eax
ja 0x4a6455
cmp esi, dword [esp + 0x2c]
jne 0x4a6489
cmp ecx, eax
je 0x4a6489
mov ecx, 0x11148
call fcn.004e9c30
mov dword [esp + 0x14], eax
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
inc edi
mov dword [esp + 0x10], edi
test edx, edx
jne 0x4aab9f
mov edx, dword [esp + 0xc]
jmp 0x4a4780
mov esi, dword [esp + 0x30]
movzx eax, word [edx + 0x16]
cmp eax, esi
jg 0x4a64c0
mov eax, dword [esp + 0xc]
cmp byte [eax + edi*4 + 1], 0xf8
jne 0x4a6126
mov edx, dword [eax + edi*4 + 0x10]
mov edi, dword [esp + 0x38]
mov ecx, edi
push 0x800
call fcn.0049db70
add esp, 4
jmp 0x4a6651
mov ecx, dword [esp + 0x3c]
mov eax, dword [edx + 0x4c]
cmp eax, dword [ecx + esi*4 + 4]
jb 0x4a6503
mov edi, dword [esp + 0x38]
mov eax, 0x2460
test word [edi + 0x1c], ax
je 0x4a64e7
mov ecx, edi
call fcn.0049d6e0
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x3c]
mov ecx, dword [edx + 0x54]
mov edx, dword [edx + esi*4 + 0x58]
push edi
add ecx, dword [eax + esi*4]
call fcn.004a10a0
add esp, 4
jmp 0x4a664a
mov eax, dword [esp + 0xc]
mov ecx, dword [edx + esi*4 + 0x58]
mov dword [esp + 0x24], ecx
mov dword [esp + 0xa0], ecx
mov al, byte [eax + edi*4 + 3]
test al, 0xc0
je 0x4a652c
cmp ecx, 0xc
jb 0x4a6528
test cl, 1
je 0x4a6537
test al, al
js 0x4a6537
call fcn.004a1000
mov esi, eax
test esi, esi
jne 0x4a6556
mov edi, dword [esp + 0x38]
lea eax, [esp + 0xa8]
xor edx, edx
cmp ecx, 0xd
mov dword [esp + 0x104], edx
cmova eax, edx
jmp 0x4a6607
xorps xmm0, xmm0
lea ecx, [esp + 0xe0]
movaps xmmword [esp + 0xe0], xmm0
movaps xmmword [esp + 0xf0], xmm0
movq qword [esp + 0x100], xmm0
call fcn.0049d730
mov edi, dword [esp + 0x38]
mov eax, 1
mov ecx, dword [esp + 0x3c]
movups xmm0, xmmword [edi]
movups xmmword [esp + 0xe0], xmm0
movups xmm0, xmmword [edi + 0x10]
movups xmmword [esp + 0xf0], xmm0
movq xmm0, qword [edi + 0x20]
movq qword [esp + 0x100], xmm0
mov word [edi + 0x1c], ax
lea eax, [esp + 0xe0]
push eax
mov eax, dword [esp + 0x38]
mov dword [edi + 0x20], 0
mov dword [edi + 0x24], 0
mov eax, dword [eax + 0x1c]
shr eax, 2
not eax
and eax, 1
push eax
mov eax, dword [esp + 0x38]
push esi
mov edx, dword [ecx + eax*4]
mov ecx, dword [esp + 0x50]
call fcn.0049de80
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x4a6463
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0x24]
mov edx, ecx
mov ecx, eax
push edi
call fcn.004a10a0
add esp, 4
cmp dword [esp + 0x104], 0
je 0x4a664a
mov ax, word [edi + 0x1c]
mov ecx, 0xe7ff
and ax, cx
mov ecx, 0x200
or ax, cx
mov word [edi + 0x1c], ax
mov eax, dword [esp + 0xe4]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x104]
mov dword [edi + 0x24], eax
mov al, byte [esp + 0x4c]
mov byte [edi + 0x1e], al
mov eax, 0x1000
test word [edi + 0x1c], ax
je 0x4a6463
mov ecx, edi
call fcn.0049d490
mov ecx, dword [esp + 8]
test eax, eax
jne 0x4aab7d
mov esi, dword [esp + 0x1c]
jmp case.default.0x4a47e3
mov ecx, 0x11106
jmp 0x4a645a
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 4]
mov esi, dword [edx + edi*4 + 0x10]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov al, byte [esi]
test al, al
je 0x4a57fa
push dword [esp + 0x4c]
mov dl, al
lea esi, [esi + 1]
mov ecx, edi
call fcn.004a45f0
mov al, byte [esi]
add esp, 4
add edi, 0x28
test al, al
jne 0x4a66a6
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
inc edi
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 8]
jmp 0x4a477a
mov edx, dword [esp + 0xc]
xor eax, eax
mov ecx, dword [esp + 0x28]
xorps xmm0, xmm0
mov dword [esp + 0x34], eax
mov dword [esp + 0x44], eax
mov eax, dword [edx + edi*4 + 4]
mov esi, dword [edx + edi*4 + 0x10]
movlpd qword [esp + 0x80], xmm0
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [edx + edi*4 + 8]
mov dword [esp + 0x30], ecx
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [ecx + eax*8]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x18]
movzx edx, byte [eax + 0x57]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x3c], edx
mov eax, dword [eax + edi*4 + 0xc]
mov edi, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [esp + 0x1c], eax
test esi, esi
je 0x4a6764
mov al, byte [esi]
mov edi, ecx
push dword [esp + 0x4c]
mov dl, al
mov ecx, edi
call fcn.004a45f0
mov al, byte [esi + 1]
lea esi, [esi + 1]
add esp, 4
add edi, 0x28
test al, al
jne 0x4a6743
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x84]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x20], eax
mov dword [esp + 0x2c], ecx
mov ecx, eax
call fcn.004a0ef0
mov esi, eax
mov ecx, esi
call fcn.004a1000
mov edi, eax
mov ecx, 0x4000
mov eax, dword [esp + 0x20]
test word [eax + 0x1c], cx
je 0x4a67bf
mov ecx, dword [esp + 0x2c]
or ecx, dword [esp + 0x38]
je 0x4a67b6
mov ecx, eax
call fcn.0049d4f0
jmp 0x4a67bf
mov eax, dword [eax + 0x10]
add dword [esp + 0x44], eax
sub edi, eax
mov eax, edi
cdq
add dword [esp + 0x2c], eax
adc dword [esp + 0x38], edx
cmp esi, 0x7f
ja 0x4a67d6
mov edx, 1
jmp 0x4a67f3
xor ecx, ecx
xor edx, edx
nop word [eax + eax]
shrd esi, ecx, 7
inc edx
shr ecx, 7
mov eax, esi
or eax, ecx
je 0x4a67f3
cmp edx, 9
jl 0x4a67e0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x34]
sub eax, 0x28
add ecx, edx
mov dword [esp + 0x20], eax
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x34], ecx
cmp eax, dword [esp + 0x30]
jae 0x4a6782
cmp ecx, 0x7e
jle 0x4a685f
mov eax, ecx
xor edi, edi
cdq
mov ecx, eax
shrd ecx, edx, 7
inc edi
shr edx, 7
mov eax, ecx
or eax, edx
je 0x4a6835
cmp edi, 9
jl 0x4a6822
mov eax, dword [esp + 0x34]
add eax, edi
xor esi, esi
mov dword [esp + 0x34], eax
cdq
mov ecx, eax
shrd ecx, edx, 7
inc esi
shr edx, 7
mov eax, ecx
or eax, edx
je 0x4a6857
cmp esi, 9
jl 0x4a6844
mov ecx, dword [esp + 0x34]
cmp edi, esi
jge 0x4a6864
inc ecx
mov dword [esp + 0x34], ecx
mov eax, ecx
cdq
mov esi, eax
mov ecx, edx
mov eax, dword [esp + 8]
add esi, dword [esp + 0x2c]
mov dword [esp + 0x2c], esi
adc ecx, dword [esp + 0x38]
mov eax, dword [eax + 0x58]
cdq
cmp ecx, edx
jg 0x4a83be
jl 0x4a6891
cmp esi, eax
ja 0x4a83be
mov edx, esi
mov esi, dword [esp + 0x1c]
push 0
mov ecx, esi
call fcn.0049d360
add esp, 4
test eax, eax
jne 0x4aab79
mov ecx, dword [esp + 0x34]
mov edi, dword [esi + 4]
cmp ecx, 0x80
jae 0x4a68c3
mov byte [edi], cl
mov eax, 1
jmp 0x4a68ef
test ecx, 0xffffc000
jne 0x4a68e2
mov eax, ecx
shr eax, 7
or al, 0x80
mov byte [edi], al
mov al, cl
and al, 0x7f
mov byte [edi + 1], al
mov eax, 2
jmp 0x4a68ef
push 0
push ecx
mov ecx, edi
call fcn.00486090
add esp, 8
movzx esi, al
mov eax, dword [esp + 0x30]
nop word [eax + eax]
mov edx, dword [esp + 0x3c]
mov ecx, eax
call fcn.004a0ef0
mov ecx, eax
mov dword [esp + 0x20], ecx
cmp ecx, 0x80
jae 0x4a6923
mov byte [esi + edi], cl
mov eax, 1
jmp 0x4a6956
lea edx, [esi + edi]
test ecx, 0xffffc000
jne 0x4a6945
mov eax, ecx
shr eax, 7
or al, 0x80
mov byte [edx], al
mov al, cl
and al, 0x7f
mov byte [edx + 1], al
mov eax, 2
jmp 0x4a6956
push 0
push ecx
mov ecx, edx
call fcn.00486090
mov ecx, dword [esp + 0x28]
add esp, 8
mov edx, dword [esp + 0x30]
push ecx
mov ecx, dword [esp + 0x38]
movzx eax, al
add esi, eax
lea ecx, [ecx + edi]
call fcn.004a1020
add dword [esp + 0x38], eax
add esp, 4
mov eax, dword [esp + 0x30]
add eax, 0x28
mov dword [esp + 0x30], eax
cmp eax, dword [esp + 0x24]
jbe 0x4a6900
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x2c]
mov dword [edx + 0x18], eax
mov eax, 0x10
mov word [edx + 0x1c], ax
mov eax, dword [esp + 0x44]
mov dword [edx + 0x20], 0
test eax, eax
je 0x4a69b7
mov dword [edx + 0x10], eax
mov eax, 0x4010
mov word [edx + 0x1c], ax
mov byte [edx + 0x1e], 1
jmp 0x4a4b56
mov eax, dword [esp + 0xc]
lea edx, [esp + 0xd0]
xorps xmm0, xmm0
movlpd qword [esp + 0xd0], xmm0
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax]
call fcn.0049b0c0
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xd0]
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0xd4]
mov dword [esi + 0x14], eax
jmp 0x4a6467
mov edx, dword [esp + 0xc]
mov eax, dword [edx + edi*4 + 4]
mov edi, dword [edx + edi*4 + 0x10]
mov dword [esp + 0x38], eax
test eax, eax
jne 0x4a6af7
cmp dword [ecx + 0x94], eax
jg 0x4aa8aa
mov ecx, edi
call fcn.00485410
mov esi, eax
xor edx, edx
mov eax, dword [esp + 8]
mov dword [esp + 0x24], esi
mov ecx, dword [eax + 0x1ec]
add ecx, dword [eax + 0x1e8]
push ecx
mov ecx, eax
call fcn.004da4a0
mov ecx, dword [esp + 0xc]
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4aa97e
lea edx, [esi + 0x21]
call fcn.00483070
mov esi, eax
test esi, esi
je 0x4a6ae5
mov ecx, dword [esp + 0x24]
lea edx, [esi + 0x20]
inc ecx
mov dword [esi], edx
push ecx
push edi
push edx
call fcn.0058fe30
mov ecx, dword [esp + 0x14]
add esp, 0xc
cmp byte [ecx + 0x3e], 0
je 0x4a6a9e
mov byte [ecx + 0x3e], 0
mov byte [ecx + 0x45], 1
jmp 0x4a6aa4
inc dword [ecx + 0x1e8]
mov eax, dword [ecx + 0x1e0]
mov edi, dword [esp + 0x10]
mov dword [esi + 0x18], eax
inc edi
mov eax, dword [ecx + 0x1f0]
mov dword [ecx + 0x1e0], esi
mov dword [esi + 8], eax
mov eax, dword [ecx + 0x1f4]
mov dword [esi + 0xc], eax
mov eax, dword [ecx + 0x1f8]
mov dword [esi + 0x10], eax
mov eax, dword [ecx + 0x1fc]
mov dword [esi + 0x14], eax
mov esi, dword [esp + 0x1c]
jmp 0x4a4776
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 8]
inc edi
mov esi, dword [esp + 0x1c]
jmp 0x4a4776
mov eax, dword [esp + 8]
xor ecx, ecx
mov dword [esp + 0x3c], ecx
mov esi, dword [eax + 0x1e0]
mov dword [esp + 0x24], esi
test esi, esi
je 0x4a6b32
nop
push edi
push dword [esi]
call fcn.00485670
add esp, 8
test eax, eax
je 0x4a6b5b
mov esi, dword [esi + 0x18]
inc dword [esp + 0x3c]
mov dword [esp + 0x24], esi
test esi, esi
jne 0x4a6b10
mov eax, dword [esp + 8]
push edi
push str.no_such_savepoint:__s
push eax
mov eax, dword [esp + 0x24]
add eax, 0x2c
push eax
call fcn.00483210
mov eax, dword [esp + 0x20]
add esp, 0x10
mov dword [esp + 0x14], 1
inc eax
jmp 0x4aaba3
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x38]
cmp dword [eax + 0x94], 0
jle 0x4a6b75
cmp edx, 1
je 0x4aa8d2
cmp dword [esi + 0x18], 0
jne 0x4a6bd5
cmp byte [eax + 0x45], 0
je 0x4a6bd5
mov dword [esp + 0x20], 1
cmp edx, 1
jne 0x4a6bdd
mov ecx, dword [esp + 0x18]
call fcn.004a0540
mov edi, eax
test edi, edi
jne 0x4aac1f
mov eax, dword [esp + 8]
mov edi, dword [esp + 0x18]
mov ecx, edi
mov byte [eax + 0x3e], 1
call fcn.004a05b0
mov ecx, dword [esp + 8]
cmp eax, 5
je 0x4aa8da
mov byte [ecx + 0x45], 0
mov eax, dword [edi + 0x50]
mov edi, dword [esp + 0x38]
mov dword [esp + 0x14], eax
jmp 0x4a6c9b
mov dword [esp + 0x20], 0
mov eax, dword [eax + 0x1e8]
sub eax, dword [esp + 0x3c]
mov ecx, dword [esp + 8]
dec eax
mov dword [esp + 0x3c], eax
cmp edx, 2
jne 0x4a6c2a
cmp dword [ecx + 0x14], 0
jle 0x4a6c2a
xor edi, edi
mov esi, edi
nop
mov ecx, dword [ecx + 0x10]
mov edx, 4
mov ecx, dword [edi + ecx + 4]
call fcn.00496800
mov ecx, dword [esp + 8]
lea edi, [edi + 0x10]
inc esi
cmp esi, dword [ecx + 0x14]
jl 0x4a6c00
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
cmp dword [ecx + 0x14], 0
mov dword [esp + 0x24], 0
jle 0x4a6c7b
xor edi, edi
nop word [eax + eax]
mov ecx, dword [ecx + 0x10]
push eax
mov ecx, dword [edi + ecx + 4]
call fcn.00496a20
mov ecx, eax
add esp, 4
mov dword [esp + 0x14], ecx
test ecx, ecx
mov ecx, dword [esp + 8]
jne 0x4aa958
mov eax, dword [esp + 0x24]
add edi, 0x10
mov edx, dword [esp + 0x38]
inc eax
cmp eax, dword [ecx + 0x14]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x3c]
jl 0x4a6c40
mov edi, dword [esp + 0x38]
cmp edi, 2
jne 0x4a6c9b
test byte [ecx + 0x18], 2
je 0x4a6c9b
call fcn.004a23b0
call fcn.004b83f0
mov ecx, dword [esp + 8]
or dword [ecx + 0x18], edi
cmp dword [ecx + 0x1e0], esi
je 0x4a6cd6
nop dword [eax]
nop word [eax + eax]
mov edx, dword [ecx + 0x1e0]
mov eax, dword [edx + 0x18]
mov dword [ecx + 0x1e0], eax
call fcn.00482e40
mov ecx, dword [esp + 8]
dec dword [ecx + 0x1e8]
cmp dword [ecx + 0x1e0], esi
jne 0x4a6cb0
cmp edi, 1
jne 0x4a6d02
mov eax, dword [esi + 0x18]
mov edx, esi
mov dword [ecx + 0x1e0], eax
call fcn.00482e40
cmp dword [esp + 0x20], 0
jne 0x4a6463
mov eax, dword [esp + 8]
dec dword [eax + 0x1e8]
jmp 0x4a6d35
cmp dword [esp + 0x20], 0
mov eax, dword [esi + 8]
mov dword [ecx + 0x1f0], eax
mov eax, dword [esi + 0xc]
mov dword [ecx + 0x1f4], eax
mov eax, dword [esi + 0x10]
mov dword [ecx + 0x1f8], eax
mov eax, dword [esi + 0x14]
mov dword [ecx + 0x1fc], eax
jne 0x4a6673
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x3c]
mov edx, edi
push ecx
mov ecx, eax
call fcn.004da4a0
mov ecx, eax
add esp, 4
mov dword [esp + 0x14], ecx
test ecx, ecx
mov ecx, dword [esp + 8]
jne 0x4aa958
mov esi, dword [esp + 0x1c]
jmp case.default.0x4a47e3
mov eax, dword [esp + 0xc]
mov edx, dword [eax + edi*4 + 8]
test edx, edx
je 0x4a6d7a
test dword [ecx + 0x18], 0x2000000
jne 0x4aa8f6
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 8]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov esi, dword [eax + ecx*8 + 4]
mov dword [esp + 0x24], esi
test esi, esi
je 0x4a6ed8
mov ecx, esi
call fcn.00495840
mov ecx, eax
mov dword [esp + 0x14], ecx
cmp ecx, 5
je 0x4aa901
test ecx, ecx
jne 0x4aa976
mov eax, dword [esp + 0xc]
cmp dword [eax + edi*4 + 8], ecx
je 0x4a6ea0
mov edx, dword [esp + 0x18]
test byte [edx + 0x58], 0x80
je 0x4a6ea0
mov ecx, dword [esp + 8]
cmp byte [ecx + 0x3e], 0
je 0x4a6de8
cmp dword [ecx + 0x90], 1
jle 0x4a6ea0
cmp dword [edx + 0x68], 0
jne 0x4a6e03
mov eax, dword [ecx + 0x1e8]
inc dword [ecx + 0x1ec]
add eax, dword [ecx + 0x1ec]
mov dword [edx + 0x68], eax
mov eax, dword [edx + 0x68]
xor edx, edx
dec eax
push eax
call fcn.004da4a0
mov edx, eax
add esp, 4
mov dword [esp + 0x14], edx
test edx, edx
jne 0x4a6e68
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov esi, dword [esi + 4]
mov edi, dword [eax + 0x68]
call fcn.004931f0
mov ecx, dword [esi]
mov edx, edi
call fcn.00490420
mov esi, dword [esp + 0x24]
mov dword [esp + 0x14], eax
cmp byte [esi + 9], 0
je 0x4a6e64
add dword [esi + 0xc], 0xffffffff
jne 0x4a6e64
mov eax, dword [esi + 4]
mov eax, dword [eax + 0x38]
test eax, eax
je 0x4a6e60
push eax
call dword [0x64bb9c]
add esp, 4
mov byte [esi + 0xa], 0
mov edi, dword [esp + 0x48]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x18]
mov eax, dword [ecx + 0x1f0]
mov dword [edx + 0x98], eax
mov eax, dword [ecx + 0x1f4]
mov dword [edx + 0x9c], eax
mov eax, dword [ecx + 0x1f8]
mov dword [edx + 0xa0], eax
mov eax, dword [ecx + 0x1fc]
mov dword [edx + 0xa4], eax
lea eax, [esp + 0xa4]
mov edx, 1
push eax
mov ecx, esi
call fcn.0049afb0
mov eax, dword [esp + 0x10]
add esp, 4
mov esi, dword [esp + 0xa4]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 8]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax + 4]
jmp 0x4a6ee3
xor esi, esi
xor eax, eax
mov dword [esp + 0xa4], esi
mov ecx, dword [esp + 0xc]
cmp byte [ecx + edi*4 + 3], 0
je 0x4a6463
cmp esi, dword [ecx + edi*4 + 0xc]
jne 0x4a6f02
cmp eax, dword [ecx + edi*4 + 0x10]
je 0x4a6463
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 8]
mov edx, dword [eax + 0x2c]
call fcn.00482e40
mov ecx, dword [esp + 8]
mov edx, str.database_schema_has_changed
call fcn.00483180
mov ecx, dword [esp + 0x18]
mov dword [ecx + 0x2c], eax
mov eax, dword [esp + 0xc]
mov edx, dword [eax + edi*4 + 4]
mov ecx, edx
mov edi, dword [esp + 8]
add ecx, ecx
mov eax, dword [edi + 0x10]
mov eax, dword [eax + ecx*8 + 0xc]
cmp dword [eax], esi
je 0x4a6f49
mov ecx, edi
call fcn.004b83b0
mov ecx, dword [esp + 0x18]
mov edx, 0x11
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x14], 0x11
or dword [ecx + 0x58], 0x20
mov ecx, edi
jmp 0x4a646f
mov edx, dword [esp + 0xc]
lea eax, [esp + 0xb0]
mov ecx, dword [ecx + 0x10]
push eax
mov eax, dword [edx + edi*4 + 4]
mov edx, dword [edx + edi*4 + 0xc]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.0049afb0
mov eax, dword [esp + 0xb4]
add esp, 4
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 8]
inc edi
cdq
mov dword [esi + 0x14], edx
mov edx, dword [esp + 0xc]
mov dword [esi + 0x10], eax
mov dword [esp + 0x10], edi
jmp 0x4a4780
mov edx, dword [esp + 0xc]
mov eax, dword [edx + edi*4 + 4]
shl eax, 4
add eax, dword [ecx + 0x10]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x20], eax
mov eax, dword [edx + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.0049d7b0
mov dword [esi + 0x10], eax
mov ecx, 0xbe04
mov ax, word [esi + 0x1c]
and ax, cx
mov dword [esi + 0x14], edx
mov ecx, dword [esp + 0x20]
or ax, 4
push dword [esi + 0x10]
mov word [esi + 0x1c], ax
mov eax, dword [esp + 0x10]
mov ecx, dword [ecx + 4]
mov edx, dword [eax + edi*4 + 8]
call fcn.0049b020
mov edx, dword [esp + 0x10]
add esp, 4
mov dword [esp + 0x14], eax
mov eax, dword [edx + edi*4 + 8]
cmp eax, 1
jne 0x4a7034
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0xc]
mov eax, dword [esi + 0x10]
mov dword [ecx], eax
mov ecx, dword [esp + 8]
or dword [ecx + 0x18], 2
jmp 0x4a704a
cmp eax, 2
jne 0x4a7046
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0xc]
mov al, byte [esi + 0x10]
mov byte [ecx + 0x4c], al
mov ecx, dword [esp + 8]
cmp dword [edx + edi*4 + 4], 1
jne 0x4a6673
call fcn.004a23b0
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
and dword [edx + 0x58], 0xffffffdf
jmp case.default.0x4a47e3
mov eax, dword [esp + 0x18]
test byte [eax + 0x58], 0x20
jne 0x4aa929
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 8]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x20], 0
mov ecx, dword [eax + edi*4 + 8]
mov eax, dword [eax + edi*4 + 0xc]
mov dword [esp + 0x34], eax
shl eax, 4
add eax, dword [esi + 0x10]
mov dword [esp + 0x38], ecx
mov esi, dword [eax + 4]
mov dword [esp + 0x48], esi
cmp dl, 0x35
jne 0x4a70cf
mov eax, dword [eax + 0xc]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x30], 1
mov al, byte [eax + 0x4c]
cmp al, byte [edx + 0x57]
jae 0x4a70d7
mov byte [edx + 0x57], al
jmp 0x4a70d7
mov dword [esp + 0x30], 0
mov edx, dword [esp + 0xc]
test byte [edx + edi*4 + 3], 2
je 0x4a7121
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0x28]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.0049d7b0
mov dword [esi + 0x10], eax
mov ecx, 0xbe04
mov ax, word [esi + 0x1c]
and ax, cx
mov dword [esi + 0x14], edx
or ax, 4
mov word [esi + 0x1c], ax
mov eax, dword [esi + 0x10]
mov dword [esp + 0x38], eax
cmp eax, 2
jl 0x4aa919
mov edx, dword [esp + 0xc]
mov al, byte [edx + edi*4 + 1]
cmp al, 0xfa
jne 0x4a7141
mov eax, dword [edx + edi*4 + 0x10]
mov dword [esp + 0x20], eax
movzx ecx, word [eax + 8]
movzx eax, word [eax + 6]
add ecx, eax
mov dword [esp + 0x2c], ecx
jmp 0x4a714d
cmp al, 0xf2
jne 0x4a714d
mov eax, dword [edx + edi*4 + 0x10]
mov dword [esp + 0x2c], eax
mov esi, dword [edx + edi*4 + 4]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x44], esi
mov eax, dword [edx + 0x1c]
sub eax, esi
lea ecx, [eax + eax*4]
mov eax, dword [edx + 8]
lea eax, [eax + ecx*8]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x2c]
lea eax, [eax*8 + 0x130]
mov dword [esp + 0x3c], eax
mov eax, dword [edx + 0x38]
mov edx, dword [eax + esi*4]
test edx, edx
je 0x4a719b
mov ecx, dword [esp + 0x18]
call fcn.0049fa30
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x38]
mov dword [eax + esi*4], 0
mov esi, dword [esp + 0x24]
mov ecx, esi
mov edx, dword [esp + 0x3c]
push 0
call fcn.0049d360
add esp, 4
test eax, eax
jne 0x4aab79
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x44]
mov esi, dword [esi + 4]
push 0x60
mov eax, dword [eax + 0x38]
push 0
push esi
mov dword [eax + ecx*4], esi
call fcn.005903b0
mov eax, dword [esp + 0x40]
add esp, 0xc
mov ecx, dword [esp + 0x2c]
mov byte [esi + 0x18], al
mov eax, dword [esp + 0x24]
mov word [esi + 0x14], cx
push 0x54
push 0
mov eax, dword [eax + 4]
lea eax, [eax + ecx*8]
add eax, 0x60
push eax
mov dword [esi], eax
call fcn.005903b0
mov edx, dword [esp + 0x44]
add esp, 0xc
mov ecx, dword [esp + 0x48]
or dword [esi + 0x1c], 8
mov byte [esi + 0x19], 1
push dword [esi]
push dword [esp + 0x24]
push dword [esp + 0x38]
call fcn.00496ad0
mov edx, dword [esp + 0x18]
add esp, 0xc
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x20]
mov dword [esi + 8], eax
mov cl, byte [edx + edi*4 + 3]
mov eax, dword [esi]
and cl, 1
mov byte [eax + 0x52], cl
xor eax, eax
cmp byte [edx + edi*4 + 1], 0xfa
setne al
shl eax, 2
xor eax, dword [esi + 0x1c]
and eax, 4
xor dword [esi + 0x1c], eax
jmp 0x4a6463
mov eax, dword [esp + 0xc]
mov edx, dword [eax + edi*4 + 8]
mov esi, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x38], edx
mov dword [esp + 0x30], esi
mov eax, dword [eax + 0x1c]
sub eax, esi
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 8]
lea eax, [eax + ecx*8]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x24], eax
lea eax, [edx*8 + 0x130]
mov dword [esp + 0x20], eax
mov eax, dword [ecx + 0x38]
mov edx, dword [eax + esi*4]
test edx, edx
je 0x4a72b2
call fcn.0049fa30
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x38]
mov dword [eax + esi*4], 0
mov esi, dword [esp + 0x24]
mov ecx, esi
mov edx, dword [esp + 0x20]
push 0
call fcn.0049d360
add esp, 4
test eax, eax
jne 0x4aab79
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
mov esi, dword [esi + 4]
push 0x60
mov eax, dword [eax + 0x38]
push 0
push esi
mov dword [esp + 0x38], esi
mov dword [eax + ecx*4], esi
call fcn.005903b0
mov eax, dword [esp + 0x30]
add esp, 0xc
mov ecx, dword [esp + 0x38]
mov byte [esi + 0x18], 0xff
mov word [esi + 0x14], cx
mov eax, dword [eax + 4]
push 0x54
push 0
lea eax, [eax + ecx*8]
add eax, 0x60
push eax
mov dword [esi], eax
call fcn.005903b0
mov eax, dword [esp + 0x18]
lea ecx, [esi + 4]
or dword [esi + 0x1c], 1
add esp, 0xc
mov byte [esi + 0x19], 1
xor edx, edx
mov dword [esp + 0x20], ecx
movzx eax, byte [eax + edi*4 + 3]
push 0x41e
or eax, 5
push eax
mov eax, dword [esp + 0x10]
push ecx
push eax
mov ecx, dword [eax]
call fcn.00494900
mov ecx, eax
add esp, 0x10
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x4a7545
mov ecx, dword [esi + 4]
lea edx, [eax + 1]
call fcn.00495840
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4a7545
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + edi*4 + 0x10]
test eax, eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x20]
je 0x4a74a4
movzx esi, byte [ecx + edi*4 + 3]
mov ecx, dword [eax]
or esi, 2
mov dword [esp + 0x30], ecx
call fcn.004931f0
push esi
mov esi, dword [esp + 0x34]
lea edx, [esp + 0xb8]
mov ecx, esi
call fcn.0049a8b0
add esp, 4
mov ecx, eax
cmp byte [esi + 9], 0
mov dword [esp + 0x14], ecx
je 0x4a73df
add dword [esi + 0xc], 0xffffffff
jne 0x4a73df
mov eax, dword [esi + 4]
mov eax, dword [eax + 0x38]
test eax, eax
je 0x4a73db
push eax
call dword [0x64bb9c]
mov ecx, dword [esp + 0x18]
add esp, 4
mov byte [esi + 0xa], 0
test ecx, ecx
jne 0x4a7497
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x24]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x20]
mov esi, dword [esi]
mov eax, dword [eax]
mov ecx, eax
mov dword [esp + 0x20], eax
call fcn.004931f0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0xb4]
mov edx, dword [eax + 4]
test byte [edx + 0x16], 1
je 0x4a7423
mov dword [esp + 0x14], 8
jmp 0x4a746f
cmp ecx, 1
jne 0x4a7439
cmp dword [edx + 0x2c], 0
mov dword [esp + 0x30], 0
cmove ecx, dword [esp + 0x30]
mov dword [esi + 0x44], ecx
or ecx, 0xffffffff
mov word [esi + 0x54], cx
mov ecx, dword [esp + 0x24]
mov dword [esi + 0x10], ecx
mov dword [esi], eax
mov dword [esi + 4], edx
mov byte [esi + 0x50], 1
mov ecx, dword [edx + 8]
mov dword [esi + 8], ecx
test ecx, ecx
je 0x4a7460
mov dword [ecx + 0xc], esi
mov dword [edx + 8], esi
mov byte [esi + 0x51], 0
mov dword [esp + 0x14], 0
cmp byte [eax + 9], 0
je 0x4a7497
add dword [eax + 0xc], 0xffffffff
jne 0x4a7497
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x38]
test eax, eax
je 0x4a748f
push eax
call dword [0x64bb9c]
add esp, 4
mov eax, dword [esp + 0x20]
mov byte [eax + 0xa], 0
mov esi, dword [esp + 0x2c]
and dword [esi + 0x1c], 0xfffffffb
jmp 0x4a7545
mov eax, dword [eax]
mov ecx, eax
mov esi, dword [esi]
mov dword [esp + 0x24], eax
call fcn.004931f0
mov eax, dword [esp + 0x24]
mov edx, 1
mov ecx, dword [eax + 4]
test byte [ecx + 0x16], dl
je 0x4a74ce
mov dword [esp + 0x14], 8
jmp 0x4a7515
cmp dword [ecx + 0x2c], 0
mov dword [esp + 0x20], 0
cmove edx, dword [esp + 0x20]
mov dword [esi + 0x44], edx
or edx, 0xffffffff
mov word [esi + 0x54], dx
mov dword [esi + 0x10], 0
mov dword [esi], eax
mov dword [esi + 4], ecx
mov byte [esi + 0x50], 1
mov edx, dword [ecx + 8]
mov dword [esi + 8], edx
test edx, edx
je 0x4a7506
mov dword [edx + 0xc], esi
mov dword [ecx + 8], esi
mov byte [esi + 0x51], 0
mov dword [esp + 0x14], 0
cmp byte [eax + 9], 0
je 0x4a753d
add dword [eax + 0xc], 0xffffffff
jne 0x4a753d
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x38]
test eax, eax
je 0x4a7535
push eax
call dword [0x64bb9c]
add esp, 4
mov eax, dword [esp + 0x24]
mov byte [eax + 0xa], 0
mov esi, dword [esp + 0x2c]
or dword [esi + 0x1c], 4
mov edx, dword [esp + 0xc]
xor eax, eax
cmp byte [edx + edi*4 + 3], 8
setne al
shl eax, 3
xor eax, dword [esi + 0x1c]
and eax, 8
xor dword [esi + 0x1c], eax
jmp 0x4a6463
mov eax, dword [esp + 0xc]
mov edx, dword [eax + edi*4 + 8]
mov esi, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x30], edx
mov dword [esp + 0x2c], esi
mov eax, dword [eax + 0x1c]
sub eax, esi
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 8]
lea eax, [eax + ecx*8]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x24], eax
lea eax, [edx*8 + 0x130]
mov dword [esp + 0x20], eax
mov eax, dword [ecx + 0x38]
mov edx, dword [eax + esi*4]
test edx, edx
je 0x4a75be
call fcn.0049fa30
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x38]
mov dword [eax + esi*4], 0
mov esi, dword [esp + 0x24]
mov ecx, esi
mov edx, dword [esp + 0x20]
push 0
call fcn.0049d360
add esp, 4
test eax, eax
jne 0x4aab79
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x2c]
mov esi, dword [esi + 4]
push 0x60
mov eax, dword [eax + 0x38]
push 0
push esi
mov dword [eax + ecx*4], esi
call fcn.005903b0
mov eax, dword [esp + 0x30]
add esp, 0xc
mov ecx, dword [esp + 0x30]
mov byte [esi + 0x18], 0xff
mov word [esi + 0x14], cx
mov eax, dword [eax + 4]
push 0x54
push 0
lea eax, [eax + ecx*8]
add eax, 0x60
push eax
mov dword [esi], eax
call fcn.005903b0
mov eax, dword [esp + 0x18]
add esp, 0xc
mov ecx, dword [esp + 8]
mov edx, esi
mov eax, dword [eax + edi*4 + 0x10]
mov dword [esi + 8], eax
call fcn.004ac040
jmp 0x4a645f
mov eax, dword [esp + 0xc]
mov edx, dword [eax + edi*4 + 0xc]
mov esi, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x30], edx
mov dword [esp + 0x2c], esi
mov eax, dword [eax + 0x1c]
sub eax, esi
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 8]
lea eax, [eax + ecx*8]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x20], eax
lea eax, [edx*8 + 0x60]
mov dword [esp + 0x24], eax
mov eax, dword [ecx + 0x38]
mov edx, dword [eax + esi*4]
test edx, edx
je 0x4a7695
call fcn.0049fa30
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x38]
mov dword [eax + esi*4], 0
mov esi, dword [esp + 0x20]
mov ecx, esi
mov edx, dword [esp + 0x24]
push 0
call fcn.0049d360
add esp, 4
test eax, eax
jne 0x4aab79
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x2c]
mov esi, dword [esi + 4]
push 0x60
mov eax, dword [eax + 0x38]
push 0
push esi
mov dword [eax + ecx*4], esi
call fcn.005903b0
mov edx, dword [esp + 0x18]
add esp, 0xc
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 8]
mov word [esi + 0x18], 0x1ff
mov word [esi + 0x14], ax
mov eax, dword [edx + edi*4 + 8]
or dword [esi + 0x1c], 4
mov edi, dword [esp + 0x10]
mov dword [esi + 0x10], eax
inc edi
mov esi, dword [esp + 0x1c]
jmp 0x4a477a
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0xc]
mov edx, dword [ecx + 0x38]
mov eax, dword [eax + edi*4 + 4]
mov edx, dword [edx + eax*4]
call fcn.0049fa30
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [eax + 0x38]
mov edi, dword [esp + 0x10]
inc edi
mov dword [eax + ecx*4], 0
mov ecx, dword [esp + 8]
jmp 0x4a477a
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov eax, dword [esp + 0xc]
test byte [esi + 0x1c], 4
movzx edx, byte [eax + edi*4]
mov dword [esp + 0x30], edx
mov byte [esi + 0x19], 0
je 0x4a7829
mov eax, dword [eax + edi*4 + 0xc]
mov ecx, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, eax
mov dword [esp + 0x20], eax
call fcn.004a4560
mov ecx, dword [esp + 0x20]
call fcn.0049d7b0
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x20]
mov byte [esi + 0x1a], 0
mov dword [esp + 0x38], edx
movzx ecx, word [eax + 0x1c]
test cl, 4
jne 0x4a77df
test cl, 8
je 0x4a4816
mov ecx, dword [esp + 0x2c]
call fcn.00577450
mov eax, dword [esp + 0x20]
movsd xmm1, qword [eax + 8]
comisd xmm0, xmm1
jbe 0x4a77cc
mov eax, dword [esp + 0x30]
test al, 1
jne 0x4a77df
dec eax
jmp 0x4a77db
comisd xmm1, xmm0
jbe 0x4a77df
mov eax, dword [esp + 0x30]
test al, 1
je 0x4a77df
inc eax
mov dword [esp + 0x30], eax
mov ecx, dword [esi]
lea eax, [esp + 0x5c]
push eax
push 0
push dword [esp + 0x40]
xor edx, edx
push dword [esp + 0x38]
call fcn.00497560
mov ecx, eax
add esp, 0x10
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x4aa976
cmp dword [esp + 0x5c], eax
jne 0x4a78ab
mov eax, dword [esp + 0x2c]
mov dword [esi + 0x38], eax
mov eax, dword [esp + 0x38]
mov byte [esi + 0x1a], 1
mov dword [esi + 0x3c], eax
jmp 0x4a78ab
mov ecx, dword [eax + edi*4 + 0x10]
mov eax, dword [esi + 8]
mov dword [esp + 0x18c], eax
lea eax, [edx - 1]
test al, 1
mov word [esp + 0x190], cx
mov ecx, dword [esp + 0x28]
sete al
lea eax, [eax*2 - 1]
mov byte [esp + 0x192], al
mov eax, dword [esp + 0xc]
mov eax, dword [eax + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, 0x4000
mov dword [esp + 0x194], ecx
test word [ecx + 0x1c], ax
je 0x4a787e
call fcn.0049d4f0
mov ecx, dword [esi]
lea eax, [esp + 0x5c]
push eax
push 0
push 0
push 0
lea edx, [esp + 0x19c]
call fcn.00497560
mov ecx, eax
add esp, 0x10
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x4aa976
mov byte [esi + 0x1a], al
mov eax, dword [esp + 0x30]
mov byte [esi + 0x1b], 0
mov dword [esi + 0x44], 0
mov ecx, dword [esp + 0x5c]
cmp eax, 0x3d
jl 0x4a790a
test ecx, ecx
js 0x4a78f4
jne 0x4a78ce
cmp eax, 0x3e
je 0x4a78f4
mov dword [esp + 0x5c], 0
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
inc ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 8]
mov edi, dword [esp + 0x10]
jmp 0x4a4780
lea eax, [esp + 0x5c]
mov dword [esp + 0x5c], 0
push eax
push dword [esi]
call fcn.004979e0
jmp 0x4a793a
test ecx, ecx
jg 0x4a7926
jne 0x4a7915
cmp eax, 0x3b
je 0x4a7926
mov eax, dword [esi]
xor ecx, ecx
cmp byte [eax + 0x51], 1
setne cl
mov dword [esp + 0x5c], ecx
jmp 0x4a794f
lea eax, [esp + 0x5c]
mov dword [esp + 0x5c], 0
push eax
push dword [esi]
call fcn.00497b70
mov ecx, eax
add esp, 8
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x4aa976
mov byte [esi + 0x1a], 0
cmp dword [esp + 0x5c], 0
je 0x4a78d6
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x1c]
mov ecx, dword [edx + edi*4 + 8]
dec ecx
inc ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 8]
mov edi, dword [esp + 0x10]
jmp 0x4a4780
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esp + 0x28]
mov byte [esi + 0x19], 0
mov eax, dword [edx + edi*4 + 8]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.0049d7b0
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], edx
mov word [esi + 0x1a], 0x100
jmp 0x4a4b56
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x38], 0
cmp dword [edx + edi*4 + 0x10], 0
mov eax, dword [eax + 0x38]
mov ecx, dword [edx + edi*4 + 4]
mov esi, dword [eax + ecx*4]
mov eax, dword [edx + edi*4 + 0xc]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x24], esi
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov dword [esp + 0x20], ecx
jle 0x4a7a53
mov eax, dword [esi + 8]
mov dword [esp + 0x114], eax
xor eax, eax
mov dx, word [edx + edi*4 + 0x10]
xor edi, edi
mov word [esp + 0x118], dx
mov dword [esp + 0x11c], ecx
cmp ax, dx
jae 0x4a7a46
xor esi, esi
nop
add ecx, esi
mov eax, 0x4000
test word [ecx + 0x1c], ax
je 0x4a7a37
call fcn.0049d4f0
mov ecx, dword [esp + 0x11c]
mov dx, word [esp + 0x118]
mov dword [esp + 0x20], ecx
jmp 0x4a7a3b
mov ecx, dword [esp + 0x20]
inc edi
movzx eax, dx
add esi, 0x28
cmp edi, eax
jl 0x4a7a10
mov edi, dword [esp + 0x48]
lea esi, [esp + 0x114]
jmp 0x4a7a93
mov ecx, dword [esi + 8]
lea eax, [esp + 0x38]
push eax
push 0xbf
lea edx, [esp + 0x270]
call fcn.004a12f0
mov esi, eax
add esp, 8
test esi, esi
je 0x4aab79
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
push esi
push dword [edx + 4]
mov edx, dword [edx + 0x18]
mov ecx, dword [ecx + 8]
call fcn.004a1360
add esp, 8
mov eax, dword [esp + 0xc]
mov byte [esi + 6], 0
cmp byte [eax + edi*4], 0x40
jne 0x4a7adc
movzx edx, word [esp + 0x118]
xor ecx, ecx
test edx, edx
jle 0x4a7adc
mov eax, dword [esp + 0x11c]
add eax, 0x1c
nop dword [eax]
test byte [eax], 1
jne 0x4a7acf
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x4a7ac0
jmp 0x4a7adc
mov eax, dword [esp + 0xc]
mov eax, dword [eax + edi*4 + 8]
dec eax
mov dword [esp + 0x10], eax
lea eax, [esp + 0xb8]
mov edx, esi
mov esi, dword [esp + 0x24]
push eax
push 0
push 0
mov ecx, dword [esi]
push 0
call fcn.00497560
mov edx, dword [esp + 0x1c]
add esp, 0x10
mov ecx, eax
mov dword [esp + 0x14], ecx
cmp dword [edx + edi*4 + 0x10], 0
jne 0x4a7b20
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 8]
call fcn.00482e40
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
test ecx, ecx
jne 0x4a6463
mov eax, dword [esp + 0xb8]
test eax, eax
mov dword [esi + 0xc], eax
mov al, 1
sete cl
mov byte [esi + 0x1b], 0
sub al, cl
mov dword [esi + 0x44], 0
mov byte [esi + 0x19], al
cmp byte [edx + edi*4], 0x42
jne 0x4a7b72
test ecx, ecx
je 0x4a78da
mov ecx, dword [edx + edi*4 + 8]
mov esi, dword [esp + 0x1c]
dec ecx
inc ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 8]
mov edi, dword [esp + 0x10]
jmp 0x4a4780
test ecx, ecx
jne 0x4a78da
mov ecx, dword [edx + edi*4 + 8]
mov esi, dword [esp + 0x1c]
dec ecx
inc ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 8]
mov edi, dword [esp + 0x10]
jmp 0x4a4780
mov ecx, dword [esp + 0xc]
xor edx, edx
mov dword [esp + 0x24], 0
mov eax, dword [ecx + edi*4 + 0xc]
mov ecx, dword [ecx + edi*4 + 4]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
lea eax, [esp + 0x24]
push eax
mov eax, dword [esp + 0x2c]
push 0
mov dword [esp + 0x28], ecx
mov ecx, dword [ecx]
push dword [eax + esi*8 + 0x14]
push dword [eax + esi*8 + 0x10]
call fcn.00497560
mov ecx, dword [esp + 0x30]
add esp, 0x10
mov edx, dword [esp + 0x28]
mov dword [esp + 0x14], eax
mov eax, dword [edx + esi*8 + 0x10]
mov dword [ecx + 0x38], eax
mov eax, dword [edx + esi*8 + 0x14]
mov edx, dword [esp + 0x24]
test edx, edx
mov dword [ecx + 0x3c], eax
sete al
mov byte [ecx + 0x19], 0
mov byte [ecx + 0x1a], al
mov dword [ecx + 0x44], 0
mov byte [ecx + 0x1b], 0
test edx, edx
je 0x4a7c1f
mov eax, dword [esp + 0xc]
mov eax, dword [eax + edi*4 + 8]
dec eax
mov dword [esp + 0x10], eax
mov dword [ecx + 0xc], edx
jmp 0x4a6463
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 0x28]
mov dword [esi + 0x10], eax
mov eax, dword [ecx + 0x2c]
mov dword [esi + 0x14], eax
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 8]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
inc edi
jmp 0x4a477a
mov eax, dword [esp + 0xc]
xorps xmm0, xmm0
movlpd qword [esp + 0x50], xmm0
mov dword [esp + 0x30], 0
mov ecx, dword [eax + edi*4 + 4]
mov edi, dword [esp + 0x18]
mov eax, dword [edi + 0x38]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x34], eax
mov esi, dword [eax]
test esi, esi
je 0x4a7f65
test byte [eax + 0x1c], 2
jne 0x4a7dad
cmp byte [esi + 0x51], 1
jne 0x4a7cb0
test byte [esi + 0x50], 8
jne 0x4a7d0f
mov ecx, esi
call fcn.004972e0
mov ecx, eax
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x4aa96c
cmp byte [esi + 0x51], al
jne 0x4a7ce0
mov dword [esp + 0x30], 1
lea esi, [eax + 1]
mov dword [esp + 0x14], ecx
xor edi, edi
jmp 0x4a7db5
mov ecx, esi
mov dword [esp + 0x30], 0
call fcn.004974d0
mov ecx, eax
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x4a7cff
or byte [esi + 0x50], 8
jmp 0x4a7d0b
and byte [esi + 0x50], 0xf7
test ecx, ecx
jne 0x4aa96c
mov eax, dword [esp + 0x34]
mov edx, dword [eax]
mov dword [esp + 0x24], edx
cmp byte [edx + 0x51], 1
je 0x4a7d3f
xorps xmm0, xmm0
mov dword [esp + 0x14], 0
movlpd qword [esp + 0x50], xmm0
mov edi, dword [esp + 0x54]
mov esi, dword [esp + 0x50]
add esi, 1
adc edi, 0
jmp 0x4a7db5
cmp word [edx + 0x32], 0
jne 0x4a7d8a
movsx eax, word [edx + 0x54]
mov edi, dword [edx + eax*4 + 0x80]
movzx esi, word [edx + eax*2 + 0x56]
lea eax, [edx + 0x18]
push eax
mov ecx, dword [edi + 0x40]
movzx edx, byte [ecx + esi*2]
movzx eax, byte [ecx + esi*2 + 1]
mov ecx, edi
shl edx, 8
or edx, eax
movzx eax, word [edi + 0x12]
and edx, eax
add edx, dword [edi + 0x38]
call fcn.00493b70
mov edx, dword [esp + 0x28]
add esp, 4
mov eax, dword [esp + 0x34]
or byte [edx + 0x50], 2
mov edi, dword [edx + 0x1c]
mov esi, dword [edx + 0x18]
mov dword [esp + 0x14], 0
cmp edi, 0x7fffffff
jl 0x4a7d34
jg 0x4a7da7
cmp esi, 0xffffffff
jb 0x4a7d34
or dword [eax + 0x1c], 2
jmp 0x4a7db5
mov edi, dword [esp + 0x54]
mov esi, dword [esp + 0x50]
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0xc]
mov ecx, dword [edx + eax*4 + 0xc]
test ecx, ecx
je 0x4a7e67
mov eax, dword [esp + 0x18]
mov edx, dword [eax + 0xb0]
test edx, edx
je 0x4a7df4
mov eax, dword [edx + 4]
test eax, eax
je 0x4a7de9
nop
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x4a7de0
mov eax, dword [edx + 0xc]
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*8]
jmp 0x4a7dfe
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0x28]
lea ecx, [ecx + eax*8]
mov dword [esp + 0x20], ecx
call fcn.0049d7b0
mov ecx, dword [esp + 0x20]
mov dword [ecx + 0x10], eax
mov ax, word [ecx + 0x1c]
mov dword [ecx + 0x14], edx
mov edx, 0xbe04
and ax, dx
mov edx, dword [ecx + 0x10]
or ax, 4
mov word [ecx + 0x1c], ax
mov eax, dword [ecx + 0x14]
cmp edx, 0xffffffff
jne 0x4a7e3b
cmp eax, 0x7fffffff
je 0x4aa93b
mov ecx, dword [esp + 0x34]
test byte [ecx + 0x1c], 2
mov ecx, dword [esp + 0x20]
jne 0x4aa93b
add edx, 1
adc eax, 0
cmp edi, eax
jg 0x4a7e61
jl 0x4a7e5d
cmp esi, edx
jae 0x4a7e61
mov esi, edx
mov edi, eax
mov dword [ecx + 0x10], esi
mov dword [ecx + 0x14], edi
mov eax, dword [esp + 0x34]
test byte [eax + 0x1c], 2
je 0x4a7f47
mov edi, dword [esp + 0x64]
mov esi, dword [esp + 0x60]
and edi, 0x3fffffff
add esi, 1
mov dword [esp + 0x50], esi
adc edi, 0
xor eax, eax
mov dword [esp + 0x20], eax
xor edx, edx
lea eax, [esp + 0x30]
mov dword [esp + 0x54], edi
push eax
mov eax, dword [esp + 0x38]
push 0
push edi
push esi
mov ecx, dword [eax]
call fcn.00497560
mov edx, eax
add esp, 0x10
mov dword [esp + 0x14], edx
test edx, edx
jne 0x4a7f43
nop
mov ecx, dword [esp + 0x30]
test ecx, ecx
jne 0x4a7f37
mov eax, dword [esp + 0x20]
inc eax
mov dword [esp + 0x20], eax
cmp eax, 0x64
jge 0x4a7f37
lea eax, [esp + 0x50]
push eax
push 8
call fcn.00484c30
mov esi, dword [esp + 0x58]
add esp, 8
cmp dword [esp + 0x20], 5
jge 0x4a7efa
and esi, 0xffffff
xor edi, edi
jmp 0x4a7f04
mov edi, dword [esp + 0x54]
and edi, 0x3fffffff
add esi, 1
lea eax, [esp + 0x30]
push eax
mov eax, dword [esp + 0x38]
adc edi, 0
push 0
push edi
push esi
mov ecx, dword [eax]
xor edx, edx
mov dword [esp + 0x60], esi
mov dword [esp + 0x64], edi
call fcn.00497560
mov edx, eax
add esp, 0x10
mov dword [esp + 0x14], edx
test edx, edx
je 0x4a7ec0
jmp 0x4a7f43
test edx, edx
jne 0x4a7f43
test ecx, ecx
je 0x4aa93b
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x1c]
mov word [eax + 0x1a], 0
mov dword [eax + 0x44], 0
mov dword [ecx + 0x10], esi
mov esi, ecx
mov dword [esi + 0x14], edi
jmp 0x4a6467
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x50]
mov edi, dword [esp + 0x54]
mov dword [ecx + 0x10], esi
mov esi, ecx
mov dword [esi + 0x14], edi
jmp 0x4a6467
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + edi*4 + 8]
mov ecx, dword [ecx + edi*4 + 4]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x20], eax
cmp dl, 0x46
jne 0x4a7fc9
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 0xc]
mov edi, dword [esp + 0x28]
lea eax, [eax + eax*4]
mov ecx, dword [ecx + eax*8 + 0x10]
mov eax, dword [edi + eax*8 + 0x14]
mov edi, dword [esp + 0x48]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x2c], eax
jmp 0x4a7fe2
mov eax, dword [esp + 0xc]
mov eax, dword [eax + edi*4 + 0xc]
cdq
mov ecx, eax
mov dword [esp + 0x24], eax
mov eax, edx
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0xc]
test byte [edx + edi*4 + 3], 1
je 0x4a7ff4
mov eax, dword [esp + 0x18]
inc dword [eax + 0x5c]
mov eax, dword [esp + 0x2c]
test byte [edx + edi*4 + 3], 2
je 0x4a8011
mov edx, dword [esp + 8]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], eax
mov dword [edx + 0x20], ecx
mov dword [edx + 0x24], eax
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x28]
movzx eax, word [ecx + esi*8 + 0x1c]
test al, 1
je 0x4a802e
mov dword [ecx + esi*8 + 4], 0
mov dword [ecx + esi*8 + 0x18], 0
mov cl, byte [edx + edi*4 + 3]
mov byte [esp + 0x43], cl
test cl, 0x10
je 0x4a8044
mov edx, dword [esp + 0x20]
mov edx, dword [edx + 0xc]
jmp 0x4a8046
xor edx, edx
test eax, 0x4000
je 0x4a8057
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + esi*8 + 0x10]
jmp 0x4a8059
xor ecx, ecx
movzx eax, byte [esp + 0x43]
push edx
shr eax, 3
xor edx, edx
and eax, 1
push eax
mov eax, dword [esp + 0x30]
push ecx
push dword [eax + esi*8 + 0x18]
push dword [eax + esi*8 + 4]
mov eax, dword [esp + 0x34]
push dword [esp + 0x40]
mov esi, dword [esp + 0x3c]
push esi
mov ecx, dword [eax]
call fcn.0049a410
mov ecx, dword [esp + 0x3c]
mov edx, eax
add esp, 0x1c
mov dword [esp + 0x14], eax
mov word [ecx + 0x1a], 0
mov dword [ecx + 0x44], 0
test edx, edx
jne 0x4aa79c
mov eax, dword [esp + 8]
mov edx, dword [eax + 0xc8]
test edx, edx
je 0x4aa7a9
mov eax, dword [esp + 0xc]
mov eax, dword [eax + edi*4 + 0x10]
test eax, eax
je 0x4a6463
push dword [esp + 0x2c]
movsx ecx, byte [ecx + 0x18]
push esi
mov esi, dword [esp + 0x10]
add ecx, ecx
push eax
mov eax, dword [esi + 0x10]
push dword [eax + ecx*8]
mov eax, dword [esp + 0x1c]
mov ecx, 0x17
test byte [eax + edi*4 + 3], 4
mov eax, 0x12
cmovne eax, ecx
push eax
push dword [esi + 0xc4]
call edx
add esp, 0x18
jmp 0x4a6463
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov ecx, esi
mov eax, dword [esi + 0x38]
mov dword [esp + 0x20], eax
mov eax, dword [esi + 0x3c]
mov dword [esp + 0x24], eax
call fcn.004a0e20
mov ecx, eax
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x4aa976
mov ecx, dword [esi]
call fcn.0049a660
mov ecx, eax
mov dword [esi + 0x44], 0
mov dword [esp + 0x14], ecx
test ecx, ecx
mov ecx, dword [esp + 8]
jne 0x4a819f
mov edx, dword [ecx + 0xc8]
test edx, edx
je 0x4a819f
mov eax, dword [esp + 0xc]
mov eax, dword [eax + edi*4 + 0x10]
test eax, eax
je 0x4a819f
test byte [esi + 0x1c], 4
je 0x4a819f
push dword [esp + 0x24]
movsx ecx, byte [esi + 0x18]
push dword [esp + 0x24]
mov esi, dword [esp + 0x10]
add ecx, ecx
push eax
mov eax, dword [esi + 0x10]
push dword [eax + ecx*8]
push 9
push dword [esi + 0xc4]
call edx
add esp, 0x18
mov ecx, esi
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x1c]
test byte [eax + edi*4 + 8], 1
je case.default.0x4a47e3
mov edx, dword [esp + 0x18]
inc dword [edx + 0x5c]
jmp case.default.0x4a47e3
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov eax, dword [edx + 0x5c]
add dword [ecx + 0x54], eax
inc edi
mov dword [ecx + 0x50], eax
mov dword [edx + 0x5c], 0
mov edx, dword [esp + 0xc]
mov dword [esp + 0x10], edi
jmp 0x4a4780
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edx + edi*4 + 0xc]
mov edx, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
lea eax, [esp + 0xbc]
push eax
mov eax, dword [esp + 0x10]
push dword [eax + edi*4 + 0x10]
call fcn.004acdc0
add esp, 8
mov dword [esp + 0x14], eax
cmp dword [esp + 0xbc], 0
mov edx, eax
je 0x4a8239
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + edi*4 + 8]
dec ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 8]
jmp 0x4a646f
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x28]
mov eax, dword [ecx + edi*4 + 8]
mov ecx, dword [ecx + edi*4 + 4]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax + 0x40]
mov eax, dword [ecx + 0x28]
test eax, eax
je 0x4a8284
mov eax, dword [eax + 4]
lea eax, [eax + eax*2]
shl eax, 4
add eax, dword [ecx + 0x24]
mov esi, dword [eax + 0x14]
mov edi, dword [eax + 0x20]
jmp 0x4a828c
mov eax, dword [ecx + 0x30]
mov esi, dword [eax + 4]
mov edi, dword [eax]
mov ecx, dword [esp + 0x1c]
mov edx, esi
push 0
call fcn.0049d360
add esp, 4
test eax, eax
jne 0x4aa946
mov ecx, dword [esp + 0x1c]
mov edx, 0xbe10
push esi
push edi
mov ax, word [ecx + 0x1c]
mov dword [ecx + 0x18], esi
and ax, dx
mov esi, ecx
or ax, 0x10
mov word [ecx + 0x1c], ax
push dword [esi + 4]
call fcn.0058fe30
mov edi, dword [esp + 0x1c]
add esp, 0xc
mov ecx, dword [esp + 8]
inc edi
mov dword [esp + 0x14], 0
jmp 0x4a4776
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x28]
mov eax, dword [ecx + edi*4 + 8]
mov ecx, dword [ecx + edi*4 + 4]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov ecx, esi
mov dword [esp + 0x24], esi
mov edi, dword [esi]
mov dword [esp + 0x2c], edi
call fcn.004a0e20
mov ecx, eax
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x4aa976
test byte [esi + 0x1c], 4
jne 0x4a83e2
cmp byte [edi + 0x51], 1
je 0x4a8353
xorps xmm0, xmm0
movlpd qword [esp + 0x80], xmm0
mov ecx, dword [esp + 0x84]
mov esi, dword [esp + 0x80]
jmp 0x4a83a4
cmp word [edi + 0x32], 0
jne 0x4a839e
movsx eax, word [edi + 0x54]
movzx esi, word [edi + eax*2 + 0x56]
mov edi, dword [edi + eax*4 + 0x80]
mov eax, dword [esp + 0x2c]
add eax, 0x18
push eax
mov ecx, dword [edi + 0x40]
movzx eax, byte [ecx + esi*2]
movzx edx, byte [ecx + esi*2 + 1]
mov ecx, edi
shl eax, 8
or edx, eax
movzx eax, word [edi + 0x12]
and edx, eax
add edx, dword [edi + 0x38]
call fcn.00493b70
mov edi, dword [esp + 0x30]
add esp, 4
or byte [edi + 0x50], 2
mov esi, dword [edi + 0x18]
mov ecx, dword [edi + 0x1c]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x58]
cdq
cmp ecx, edx
jg 0x4a83be
jl 0x4a8439
cmp esi, eax
jbe 0x4a8439
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x18]
push str.string_or_blob_too_big
push ecx
add eax, 0x2c
push eax
call fcn.00483210
mov dword [esp + 0x20], 0x12
jmp 0x4aab9c
cmp word [edi + 0x32], 0
jne 0x4a842d
movsx eax, word [edi + 0x54]
movzx esi, word [edi + eax*2 + 0x56]
mov edi, dword [edi + eax*4 + 0x80]
mov eax, dword [esp + 0x2c]
add eax, 0x18
push eax
mov ecx, dword [edi + 0x40]
movzx eax, byte [ecx + esi*2]
movzx edx, byte [ecx + esi*2 + 1]
mov ecx, edi
shl eax, 8
or edx, eax
movzx eax, word [edi + 0x12]
and edx, eax
add edx, dword [edi + 0x38]
call fcn.00493b70
mov edi, dword [esp + 0x30]
add esp, 4
or byte [edi + 0x50], 2
mov ecx, dword [esp + 8]
mov esi, dword [edi + 0x24]
cmp esi, dword [ecx + 0x58]
ja 0x4a83c2
mov ecx, dword [esp + 0x1c]
mov edx, esi
push 0
call fcn.0049d360
add esp, 4
test eax, eax
jne 0x4aab79
mov edx, dword [esp + 0x1c]
mov ecx, 0xbe10
mov ax, word [edx + 0x1c]
and ax, cx
mov dword [edx + 0x18], esi
or ax, 0x10
mov word [edx + 0x1c], ax
mov eax, dword [esp + 0x24]
test byte [eax + 0x1c], 4
jne 0x4a847d
push 0
push dword [edx + 4]
jmp 0x4a84b7
mov eax, dword [edx + 4]
mov dword [esp + 0x24], eax
mov al, byte [edi + 0x51]
test al, al
jne 0x4a849c
mov dword [esp + 0x14], 4
mov byte [edx + 0x1e], 1
jmp 0x4a6463
cmp al, 3
jb 0x4a84b1
mov ecx, edi
call fcn.00493830
mov ecx, eax
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x4a84c8
push 0
push dword [esp + 0x28]
push esi
xor edx, edx
mov ecx, edi
call fcn.00496e50
mov dword [esp + 0x20], eax
add esp, 0xc
mov edx, dword [esp + 0x1c]
mov byte [edx + 0x1e], 1
jmp 0x4a6463
mov edx, dword [esp + 0xc]
mov ecx, dword [edx + edi*4 + 4]
mov edi, dword [esp + 0x18]
mov eax, dword [edi + 0x38]
mov esi, dword [eax + ecx*4]
cmp byte [esi + 0x19], 0
je 0x4a8508
mov esi, dword [esp + 0x1c]
mov eax, 1
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 8]
inc edi
mov word [esi + 0x1c], ax
jmp 0x4a477a
cmp byte [esi + 0x1b], 0
je 0x4a8527
mov eax, dword [esi + 0x30]
mov dword [esp + 0x90], eax
mov eax, dword [esi + 0x34]
mov dword [esp + 0x94], eax
jmp 0x4a8674
mov ecx, dword [esi + 0x20]
test ecx, ecx
je 0x4a85c4
mov edi, dword [ecx]
lea edx, [esp + 0x90]
push edx
push ecx
mov dword [esp + 0x28], edi
mov eax, dword [edi]
mov eax, dword [eax + 0x30]
call eax
mov dword [esp + 0x1c], eax
add esp, 8
mov eax, dword [esp + 0x18]
mov esi, dword [eax]
mov ecx, esi
mov edx, dword [eax + 0x2c]
call fcn.00482e40
mov ecx, dword [edi + 8]
mov dword [esp + 0x24], ecx
test ecx, ecx
jne 0x4a856e
xor esi, esi
jmp 0x4a85a6
cmp byte [ecx], 0
mov eax, ecx
je 0x4a857b
inc eax
cmp byte [eax], 0
jne 0x4a8575
sub eax, ecx
mov ecx, esi
and eax, 0x3fffffff
lea edi, [eax + 1]
mov edx, edi
call fcn.00483070
mov esi, eax
test esi, esi
je 0x4a85a2
push edi
push dword [esp + 0x28]
push esi
call fcn.0058fe30
add esp, 0xc
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
mov dword [eax + 0x2c], esi
push dword [edi + 8]
call fcn.00482da0
add esp, 4
mov dword [edi + 8], 0
jmp 0x4a8674
mov ecx, esi
call fcn.004a0e20
mov ecx, eax
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x4aa95e
cmp byte [esi + 0x1a], al
je 0x4a85f7
mov eax, dword [esi + 0x38]
mov dword [esp + 0x90], eax
mov eax, dword [esi + 0x3c]
mov dword [esp + 0x94], eax
jmp 0x4a8674
mov edx, dword [esi]
mov dword [esp + 0x24], edx
cmp byte [edx + 0x51], 1
je 0x4a8611
xorps xmm0, xmm0
movlpd qword [esp + 0x90], xmm0
jmp 0x4a866c
cmp word [edx + 0x32], 0
jne 0x4a8658
movsx eax, word [edx + 0x54]
mov edi, dword [edx + eax*4 + 0x80]
movzx esi, word [edx + eax*2 + 0x56]
lea eax, [edx + 0x18]
push eax
mov ecx, dword [edi + 0x40]
movzx edx, byte [ecx + esi*2]
movzx eax, byte [ecx + esi*2 + 1]
mov ecx, edi
shl edx, 8
or edx, eax
movzx eax, word [edi + 0x12]
and edx, eax
add edx, dword [edi + 0x38]
call fcn.00493b70
mov edx, dword [esp + 0x28]
add esp, 4
or byte [edx + 0x50], 2
mov eax, dword [edx + 0x18]
mov dword [esp + 0x90], eax
mov eax, dword [edx + 0x1c]
mov dword [esp + 0x94], eax
mov dword [esp + 0x14], 0
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x90]
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x94]
mov dword [esi + 0x14], eax
jmp 0x4a6467
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax]
mov word [eax + 0x19], 1
mov dword [eax + 0x44], 0
test ecx, ecx
je 0x4a5386
call fcn.004936c0
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
inc edi
mov ecx, dword [esp + 8]
jmp 0x4a477a
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
xor eax, eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x2c], eax
mov esi, dword [ecx]
cmp byte [esi + 0x51], 1
jne 0x4a8703
test byte [esi + 0x50], 8
je 0x4a8703
xor edx, edx
mov dword [esp + 0x14], edx
jmp 0x4a8751
mov ecx, esi
call fcn.004972e0
mov ecx, eax
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x4a8745
cmp byte [esi + 0x51], al
jne 0x4a871e
lea eax, [ecx + 1]
jmp 0x4a8749
mov ecx, esi
mov dword [esp + 0x2c], 0
call fcn.004974d0
mov dword [esp + 0x14], eax
test eax, eax
mov eax, dword [esp + 0x2c]
jne 0x4a873f
or byte [esi + 0x50], 8
jmp 0x4a8749
and byte [esi + 0x50], 0xf7
jmp 0x4a8749
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
mov byte [ecx + 0x19], al
mov word [ecx + 0x1a], 0
mov dword [ecx + 0x44], 0
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + edi*4 + 8]
test ecx, ecx
jle 0x4aa79c
mov esi, dword [esp + 0x1c]
test eax, eax
je 0x4a8239
dec ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 8]
jmp 0x4a646f
mov eax, dword [esp + 0x18]
inc dword [eax + 0x74]
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov eax, 1
mov dword [esp + 0x20], eax
mov dword [esp + 0x3c], eax
cmp dword [esi + 0x40], 0
je 0x4a87d4
mov ecx, dword [esp + 8]
lea eax, [esp + 0x3c]
push eax
mov edx, esi
call fcn.004ac7c0
mov dword [esp + 0x18], eax
add esp, 4
mov eax, dword [esp + 0x3c]
jmp 0x4a881b
mov eax, dword [esi]
mov ecx, eax
mov dword [esp + 0x24], eax
call fcn.004972e0
mov ecx, eax
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x4a880a
mov ecx, dword [esp + 0x24]
cmp byte [ecx + 0x51], al
jne 0x4a87fb
mov eax, 1
jmp 0x4a880e
xor eax, eax
call fcn.00497450
mov dword [esp + 0x14], eax
xor eax, eax
jmp 0x4a880e
mov eax, dword [esp + 0x20]
mov word [esi + 0x1a], 0
mov dword [esi + 0x44], 0
mov edx, dword [esp + 0x14]
mov byte [esi + 0x19], al
mov esi, dword [esp + 0x1c]
test eax, eax
je 0x4a8239
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + edi*4 + 8]
dec ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 8]
jmp 0x4a646f
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
lea eax, [esp + 0x8c]
mov ecx, dword [esp + 8]
mov edx, esi
push eax
mov dword [esp + 0x90], 0
call fcn.004acb80
add esp, 4
jmp 0x4a88c4
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [eax + 0x38]
cmp dword [eax + ecx*4], 0
je 0x4a6467
jmp 0x4a8898
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov eax, dword [edx + edi*4 + 0xc]
mov dword [esp + 0x8c], eax
lea eax, [esp + 0x8c]
push eax
push dword [esi]
mov eax, dword [edx + edi*4 + 0x10]
call eax
add esp, 8
mov dword [esp + 0x14], eax
mov dword [esi + 0x44], 0
cmp dword [esp + 0x8c], 0
jne 0x4a8900
mov ecx, dword [esp + 0xc]
mov byte [esi + 0x19], 0
mov eax, dword [ecx + edi*4 + 8]
dec eax
mov dword [esp + 0x10], eax
movzx eax, byte [ecx + edi*4 + 3]
mov ecx, dword [esp + 0x18]
inc dword [ecx + eax*4 + 0x6c]
mov byte [esi + 0x1a], 0
jmp 0x4aa38c
mov byte [esi + 0x19], 1
mov byte [esi + 0x1a], 0
jmp 0x4aa38c
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x28]
test byte [edx + edi*4 + 3], 1
mov eax, dword [eax + 0x38]
mov ecx, dword [edx + edi*4 + 4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edx + edi*4 + 8]
mov dword [esp + 0x24], ecx
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, dword [ecx]
mov dword [esp + 0x20], eax
je 0x4a8945
mov eax, dword [esp + 0x18]
inc dword [eax + 0x5c]
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x4a896d
mov ecx, esi
call fcn.0049d4f0
mov ecx, eax
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x4a6463
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp dword [ecx + 0x40], 0
je 0x4a8987
mov edx, ecx
mov ecx, dword [esp + 8]
push esi
call fcn.004ac660
add esp, 4
jmp 0x4a645f
test byte [edx + edi*4 + 3], 0x10
je 0x4a8993
mov eax, dword [ecx + 0xc]
jmp 0x4a8995
xor eax, eax
mov ecx, dword [esp + 0x20]
push eax
push dword [edx + edi*4 + 0xc]
mov eax, dword [esi + 0x18]
push 0
push 0
cdq
push 0x5f1952
push edx
mov edx, dword [esi + 4]
push eax
call fcn.0049a410
mov dword [esp + 0x30], eax
add esp, 0x1c
mov eax, dword [esp + 0x24]
mov dword [eax + 0x44], 0
jmp 0x4a6463
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov eax, dword [esi + 8]
mov ecx, dword [esi]
mov dword [esp + 0x1a0], eax
mov ax, word [edx + edi*4 + 0xc]
mov word [esp + 0x1a4], ax
mov eax, dword [edx + edi*4 + 8]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x24], ecx
mov byte [esp + 0x1a6], 0
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x1a8], eax
lea edx, [esp + 0x1a0]
lea eax, [esp + 0xc0]
push eax
push 0
push 0
push 0
call fcn.00497560
mov ecx, eax
add esp, 0x10
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x4a8a55
cmp dword [esp + 0xc0], eax
jne 0x4a8a55
mov ecx, dword [esp + 0x24]
call fcn.0049a660
mov dword [esp + 0x14], eax
mov dword [esi + 0x44], 0
jmp 0x4a6463
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov eax, 1
mov ecx, dword [esp + 0x1c]
mov edi, dword [esi]
mov word [ecx + 0x1c], ax
mov ecx, esi
call fcn.004a0e20
mov ecx, eax
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x4aa968
cmp byte [esi + 0x19], al
jne 0x4a8afe
lea eax, [esp + 0xd8]
xorps xmm0, xmm0
push eax
mov edx, edi
movlpd qword [esp + 0xdc], xmm0
call fcn.004a2080
mov ecx, eax
add esp, 4
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x4aa976
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0xd8]
inc dword [esp + 0x10]
mov ecx, dword [esp + 8]
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0xdc]
mov dword [esi + 0x14], eax
mov eax, 4
mov word [esi + 0x1c], ax
jmp 0x4a4780
mov esi, dword [esp + 0x1c]
inc dword [esp + 0x10]
mov ecx, dword [esp + 8]
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
jmp 0x4a4780
mov eax, dword [esp + 0xc]
cmp dl, 0x70
mov edx, dword [esp + 0x28]
mov dword [esp + 0x20], 0
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 8]
mov dword [esp + 0x1b4], eax
mov eax, dword [esp + 0xc]
mov ax, word [eax + edi*4 + 0x10]
mov word [esp + 0x1b8], ax
sbb al, al
mov byte [esp + 0x1ba], al
mov eax, dword [esp + 0xc]
mov eax, dword [eax + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x1bc], eax
lea edx, [esp + 0x1b4]
lea eax, [esp + 0x20]
push eax
call fcn.004a2240
mov ecx, dword [esp + 0x10]
add esp, 4
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x20]
test byte [ecx + edi*4], 1
jne 0x4a8b9b
neg eax
jmp 0x4a8b9c
inc eax
mov edx, dword [esp + 0x14]
test eax, eax
jle 0x4a8239
mov ecx, dword [ecx + edi*4 + 8]
dec ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 8]
jmp 0x4a646f
mov eax, dword [ecx + 4]
xor edx, edx
test eax, eax
je 0x4a8bed
cmp dword [eax + 0x28], 0xbdf20da3
jne 0x4a8be6
mov ecx, dword [eax + 0x58]
test ecx, 0x200
je 0x4a8be6
and cl, 0xc
cmp cl, 8
jae 0x4a8be6
cmp dword [eax + 0x4c], 0
jl 0x4a8be6
inc edx
mov eax, dword [eax + 0x34]
test eax, eax
jne 0x4a8bc3
mov eax, 1
mov word [esi + 0x1c], ax
cmp edx, eax
jg 0x4aa9c0
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x44], 0
mov eax, dword [ecx + edi*4 + 0xc]
mov esi, dword [ecx + edi*4 + 4]
mov ecx, eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 8]
shl ecx, 4
mov dword [esp + 0x20], ecx
mov eax, dword [eax + 0x10]
mov ecx, dword [eax + ecx + 4]
mov dword [esp + 0x24], ecx
call fcn.004931f0
lea eax, [esp + 0x44]
mov edx, esi
mov esi, dword [esp + 0x24]
mov ecx, esi
push eax
call fcn.0049ad80
add esp, 4
mov dword [esp + 0x14], eax
cmp byte [esi + 9], 0
je 0x4a8c70
add dword [esi + 0xc], 0xffffffff
jne 0x4a8c70
mov eax, dword [esi + 4]
mov eax, dword [eax + 0x38]
test eax, eax
je 0x4a8c6c
push eax
call dword [0x64bb9c]
add esp, 4
mov byte [esi + 0xa], 0
cmp dword [esp + 0x14], 0
mov eax, 4
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x44]
mov word [ecx + 0x1c], ax
mov eax, esi
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jne 0x4a6463
test esi, esi
je 0x4a6463
mov eax, dword [esp + 0xc]
mov edx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 8]
mov edi, dword [eax + 0x10]
add edi, dword [esp + 0x20]
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x4a8cd1
nop word [eax + eax]
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x20], esi
jne 0x4a8ccb
mov dword [ecx + 0x20], edx
mov eax, dword [eax]
test eax, eax
jne 0x4a8cc0
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x4a8cf1
nop dword [eax + eax]
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x2c], esi
jne 0x4a8ceb
mov dword [ecx + 0x2c], edx
mov eax, dword [eax]
test eax, eax
jne 0x4a8ce0
mov al, byte [esp + 0x2c]
inc al
mov byte [esp + 0x5b], al
jmp 0x4a6463
mov edx, dword [esp + 0xc]
lea eax, [esp + 0x34]
mov ecx, dword [ecx + 0x10]
mov dword [esp + 0x24], 0
mov dword [esp + 0x34], 0
cmp dword [edx + edi*4 + 0xc], 0
cmove eax, dword [esp + 0x24]
push eax
mov eax, dword [edx + edi*4 + 8]
mov edx, dword [edx + edi*4 + 4]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.0049acf0
mov ecx, dword [esp + 0x10]
add esp, 4
mov dword [esp + 0x14], eax
cmp dword [ecx + edi*4 + 0xc], 0
je 0x4a6467
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x34]
add dword [edx + 0x5c], eax
mov ecx, dword [ecx + edi*4 + 0xc]
test ecx, ecx
jle 0x4a6467
mov edi, dword [esp + 0x28]
lea ecx, [ecx + ecx*4]
cdq
add dword [edi + ecx*8 + 0x10], eax
adc dword [edi + ecx*8 + 0x14], edx
jmp 0x4a6467
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov edx, dword [ecx + 0x40]
test edx, edx
je 0x4a8db2
mov ecx, dword [esp + 8]
call fcn.004ac0f0
inc dword [esp + 0x10]
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
jmp 0x4a4780
mov ecx, dword [ecx]
push 0
mov edx, dword [ecx + 0x44]
mov ecx, dword [ecx]
call fcn.0049acf0
add esp, 4
mov dword [esp + 0x14], eax
jmp 0x4a6467
mov eax, dword [esp + 0xc]
mov dword [esp + 0x48], 0
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 8]
shl ecx, 4
add ecx, dword [eax + 0x10]
xor eax, eax
cmp dl, 0x76
setne al
mov esi, dword [ecx + 4]
inc eax
mov ecx, esi
mov dword [esp + 0x24], eax
call fcn.004931f0
push dword [esp + 0x24]
lea edx, [esp + 0x4c]
mov ecx, esi
call fcn.0049a8b0
add esp, 4
mov dword [esp + 0x14], eax
cmp byte [esi + 9], 0
je 0x4a8e37
add dword [esi + 0xc], 0xffffffff
jne 0x4a8e37
mov eax, dword [esi + 4]
mov eax, dword [eax + 0x38]
test eax, eax
je 0x4a8e33
push eax
call dword [0x64bb9c]
add esp, 4
mov byte [esi + 0xa], 0
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x48]
cdq
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], edx
jmp 0x4a6467
mov esi, dword [esp + 0xc]
mov eax, str.sqlite_master
mov ecx, str.sqlite_temp_master
mov edx, dword [esi + edi*4 + 4]
cmp edx, 1
push dword [esi + edi*4 + 0x10]
mov edi, dword [esp + 0xc]
cmovne ecx, eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x134], eax
mov eax, dword [esp + 0x1c]
add eax, 0x2c
mov dword [esp + 0x13c], edx
mov dword [esp + 0x138], eax
add edx, edx
mov eax, dword [edi + 0x10]
push ecx
push dword [eax + edx*8]
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
push edi
call fcn.004848a0
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x4a8eb4
mov dword [esp + 0x14], 7
mov ecx, edi
jmp 0x4a8f07
push 0
lea eax, [esp + 0x134]
mov byte [edi + 0x89], 1
push eax
push fcn.004cb420
push esi
push edi
mov dword [esp + 0x150], 0
call fcn.004c7e20
add esp, 0x14
mov edx, esi
test eax, eax
mov ecx, edi
cmove eax, dword [esp + 0x13c]
mov dword [esp + 0x14], eax
call fcn.00482e40
mov edx, dword [esp + 0x14]
mov ecx, edi
mov byte [ecx + 0x89], 0
test edx, edx
je 0x4a8f12
call fcn.004b83f0
mov edx, dword [esp + 0x14]
mov ecx, edi
cmp edx, 7
je 0x4aab7d
mov esi, dword [esp + 0x1c]
jmp 0x4a646f
mov eax, dword [esp + 0xc]
mov edx, dword [eax + edi*4 + 4]
call fcn.004b6a00
mov dword [esp + 0x14], eax
jmp 0x4a6467
mov eax, dword [esp + 0xc]
mov edx, dword [eax + edi*4 + 0x10]
mov ecx, dword [eax + edi*4 + 4]
mov eax, edx
mov edi, dword [esp + 8]
shl ecx, 4
add ecx, dword [edi + 0x10]
test edx, edx
je 0x4a8f6d
cmp byte [edx], 0
je 0x4a8f66
nop dword [eax + eax]
inc eax
cmp byte [eax], 0
jne 0x4a8f60
sub eax, edx
and eax, 0x3fffffff
mov ecx, dword [ecx + 0xc]
push 0
push eax
add ecx, 8
call fcn.00486ba0
add esp, 8
mov edx, eax
mov ecx, edi
call fcn.004b84e0
mov edx, dword [esp + 0xc]
mov ecx, edi
mov edi, dword [esp + 0x10]
or dword [ecx + 0x18], 2
inc edi
mov dword [esp + 0x10], edi
jmp 0x4a4780
mov eax, dword [esp + 0xc]
push dword [eax + edi*4 + 0x10]
mov edx, dword [eax + edi*4 + 4]
call fcn.004b8250
mov ecx, dword [esp + 0xc]
add esp, 4
inc dword [esp + 0x10]
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
jmp 0x4a4780
mov eax, dword [esp + 0xc]
push dword [eax + edi*4 + 0x10]
mov edx, dword [eax + edi*4 + 4]
call fcn.004d64b0
mov ecx, dword [esp + 0xc]
add esp, 4
inc dword [esp + 0x10]
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
jmp 0x4a4780
mov esi, dword [esp + 0xc]
mov eax, dword [esi + edi*4 + 8]
mov dword [esp + 0x24], eax
lea edx, [eax*4 + 4]
call fcn.00483070
mov edx, eax
mov dword [esp + 0x2c], edx
test edx, edx
je 0x4aab79
mov ecx, dword [esi + edi*4 + 0xc]
lea eax, [ecx + ecx*4]
mov ecx, dword [esi + edi*4 + 4]
mov dword [esp + 0x30], eax
xor esi, esi
mov eax, dword [esp + 0x28]
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*8]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x20], ecx
test eax, eax
jle 0x4a905e
mov edi, ecx
mov ecx, edi
call fcn.0049d7b0
mov edx, dword [esp + 0x2c]
add edi, 0x28
mov dword [edx + esi*4], eax
inc esi
mov eax, dword [esp + 0x24]
cmp esi, eax
jl 0x4a9040
mov edi, dword [esp + 0x48]
mov dword [edx + esi*4], 0
lea ecx, [esp + 0x70]
mov esi, dword [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x34]
push dword [esi + ecx*8 + 0x10]
mov esi, dword [esp + 0x10]
push eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 0x10]
movzx eax, byte [eax + edi*4 + 3]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.0049bdf0
mov edx, dword [esp + 0x38]
add esp, 0xc
mov ecx, esi
mov edi, eax
call fcn.00482e40
mov ecx, dword [esp + 0x30]
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x70]
cdq
sub dword [esi + ecx*8 + 0x10], eax
mov eax, esi
sbb dword [eax + ecx*8 + 0x14], edx
mov ecx, dword [esp + 0x20]
call fcn.0049da40
mov esi, dword [esp + 0x70]
test esi, esi
je 0x4a90e9
test edi, edi
je 0x4aab79
mov ecx, dword [esp + 0x20]
mov edx, edi
push fcn.00482da0
push 1
push 0xffffffffffffffff
call fcn.0049dcd0
add esp, 0xc
movzx edx, byte [esp + 0x4c]
mov ecx, dword [esp + 0x20]
call fcn.0049d340
inc dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
jmp 0x4a4780
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x28]
mov eax, dword [ecx + edi*4 + 4]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x1c], 0x20
lea esi, [edx + eax*8]
mov eax, dword [ecx + edi*4 + 8]
lea edi, [eax + eax*4]
jne 0x4a9141
mov ecx, esi
call fcn.0049dac0
test byte [esi + 0x1c], 0x20
je 0x4aab79
mov eax, dword [esp + 0x28]
mov ecx, dword [esi + 0x10]
push dword [eax + edi*8 + 0x14]
push dword [eax + edi*8 + 0x10]
call fcn.0048b990
mov esi, dword [esp + 0x24]
add esp, 8
inc dword [esp + 0x10]
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
jmp 0x4a4780
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + edi*4 + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x1c], 0x20
lea ecx, [ecx + eax*8]
mov dword [esp + 0x24], ecx
je 0x4a91ff
mov esi, dword [ecx + 0x10]
movzx eax, word [esi + 0x1a]
test al, 2
jne 0x4a91b1
test al, 1
jne 0x4a91ac
mov ecx, dword [esi + 8]
call fcn.0048baa0
mov ecx, dword [esp + 0x24]
mov dword [esi + 8], eax
or word [esi + 0x1a], 2
mov eax, dword [esi + 8]
test eax, eax
je 0x4a91ff
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], edx
mov dword [esi + 8], eax
test eax, eax
jne 0x4a91de
mov ecx, esi
call fcn.0048b940
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0xc]
push edx
push ecx
mov ecx, dword [esp + 0x30]
mov eax, dword [eax + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.0049da90
add esp, 8
jmp 0x4aa38c
call fcn.0049da40
jmp case.0x4a47e3.16
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x28]
mov eax, dword [ecx + edi*4 + 4]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x1c], 0x20
lea esi, [edx + eax*8]
mov eax, dword [ecx + edi*4 + 0xc]
mov ecx, dword [ecx + edi*4 + 0x10]
mov dword [esp + 0x24], ecx
lea eax, [eax + eax*4]
mov dword [esp + 0x20], eax
jne 0x4a9252
mov ecx, esi
call fcn.0049dac0
test byte [esi + 0x1c], 0x20
je 0x4aab79
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
test ecx, ecx
je 0x4a9279
push dword [edx + eax*8 + 0x14]
push dword [edx + eax*8 + 0x10]
mov edx, ecx
mov ecx, dword [esi + 0x10]
call fcn.0048bcb0
add esp, 8
test eax, eax
jne 0x4a4816
mov ecx, dword [esp + 0x24]
test ecx, ecx
js 0x4a9296
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x28]
push dword [ecx + eax*8 + 0x14]
push dword [ecx + eax*8 + 0x10]
mov ecx, dword [esi + 0x10]
call fcn.0048b990
add esp, 8
inc dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
jmp 0x4a4780
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x28]
mov edx, dword [eax + edi*4 + 0x10]
mov eax, dword [eax + edi*4 + 0xc]
mov dword [esp + 0x24], edx
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x2c], ecx
cmp byte [eax + edi*4 + 3], 0
je 0x4a9304
mov eax, dword [esp + 0x18]
mov ecx, dword [edx + 0x14]
mov eax, dword [eax + 0xb0]
test eax, eax
je 0x4a9300
nop dword [eax]
cmp dword [eax + 0x18], ecx
je 0x4a8b02
mov eax, dword [eax + 4]
test eax, eax
jne 0x4a92f0
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 8]
mov eax, dword [eax + 0xb8]
cmp eax, dword [edi + 0x80]
jge 0x4aa9da
test byte [ecx + 0x1c], 0x40
jne 0x4a93f7
mov ecx, dword [edx + 0xc]
mov esi, dword [edx + 8]
add esi, ecx
lea eax, [esi + esi*4]
lea ecx, [ecx + eax*2]
mov eax, dword [edx + 0x10]
lea ecx, [ecx + 0x12]
lea edx, [eax + ecx*4]
mov ecx, edi
call fcn.00483040
mov edi, eax
mov dword [esp + 0x20], edi
test edi, edi
je 0x4aab79
mov ecx, dword [esp + 0x2c]
call fcn.0049d730
mov eax, dword [esp + 0x2c]
mov ecx, 0x40
mov edx, dword [esp + 0x24]
mov word [eax + 0x1c], cx
mov ecx, dword [esp + 0x18]
mov dword [eax + 0x10], edi
mov dword [edi], ecx
mov dword [edi + 0x3c], esi
mov eax, dword [edx + 0xc]
mov dword [edi + 0x40], eax
mov eax, dword [esp + 0x10]
mov dword [edi + 0x2c], eax
mov eax, dword [ecx + 8]
mov dword [edi + 0xc], eax
mov eax, dword [ecx + 0x1c]
mov dword [edi + 0x34], eax
mov eax, dword [ecx + 0x38]
mov dword [edi + 0x14], eax
mov eax, dword [ecx + 0x24]
mov dword [edi + 0x28], eax
mov eax, dword [ecx + 4]
mov dword [edi + 8], eax
mov eax, dword [ecx + 0x20]
mov dword [edi + 0x30], eax
mov eax, dword [edx + 0x14]
mov dword [edi + 0x18], eax
mov eax, dword [ecx + 0xc8]
mov dword [edi + 0x10], eax
mov eax, dword [ecx + 0xc4]
mov dword [edi + 0x38], eax
lea eax, [esi*4 + 9]
add eax, esi
lea ecx, [edi + eax*8]
lea eax, [edi + 0x48]
cmp eax, ecx
je 0x4a93fa
mov esi, dword [esp + 8]
mov edi, 0x80
nop
mov word [eax + 0x1c], di
mov dword [eax], esi
add eax, 0x28
cmp eax, ecx
jne 0x4a93e0
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
jmp 0x4a93fa
mov edi, dword [ecx + 0x10]
mov ecx, dword [esp + 0x18]
lea esi, [edi + 0x20]
mov dword [esp + 0x28], esi
inc dword [ecx + 0xb8]
mov eax, dword [ecx + 0xb0]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x60]
mov dword [esi], eax
mov eax, dword [esp + 0x64]
mov dword [esi + 4], eax
mov eax, dword [ecx + 0x5c]
mov dword [edi + 0x44], eax
mov dword [ecx + 8], esi
mov dword [ecx + 0x5c], 0
mov dword [ecx + 0xb0], edi
mov eax, dword [edi + 0x3c]
mov dword [ecx + 0x1c], eax
movzx eax, word [edi + 0x40]
mov dword [ecx + 0x24], eax
mov eax, dword [ecx + 0x1c]
inc eax
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov esi, dword [esp + 0x18]
mov dword [esi + 0x38], ecx
mov eax, dword [edx]
mov dword [esi + 4], eax
mov dword [esp + 0xc], eax
mov eax, dword [edx + 4]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x24]
lea ecx, [ecx + eax*4]
mov dword [esi + 0xc8], ecx
mov eax, dword [edx + 0x10]
push eax
push 0
mov dword [esi + 0xc4], eax
or esi, 0xffffffff
push ecx
call fcn.005903b0
mov ecx, dword [esp + 0x14]
add esp, 0xc
mov edx, dword [esp + 0xc]
inc esi
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x10]
jmp 0x4a4780
mov eax, dword [esp + 0x18]
push 0x1000
mov edx, dword [eax + 0xb0]
mov eax, dword [edx + 0x2c]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 8]
mov eax, dword [eax + ecx*4 + 4]
mov ecx, dword [esp + 0x10]
add eax, dword [ecx + edi*4 + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
lea edx, [eax + ecx*8]
mov ecx, esi
call fcn.0049db70
mov ecx, dword [esp + 0xc]
add esp, 4
inc dword [esp + 0x10]
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
jmp 0x4a4780
test dword [ecx + 0x18], 0x1000000
mov eax, dword [esp + 0xc]
je 0x4a951e
mov eax, dword [eax + edi*4 + 8]
mov edi, dword [esp + 0x10]
cdq
add dword [ecx + 0x1f8], eax
adc dword [ecx + 0x1fc], edx
inc edi
mov edx, dword [esp + 0xc]
mov dword [esp + 0x10], edi
jmp 0x4a4780
cmp dword [eax + edi*4 + 4], 0
mov eax, dword [eax + edi*4 + 8]
cdq
je 0x4a9548
add dword [ecx + 0x1f0], eax
mov edi, dword [esp + 0x10]
adc dword [ecx + 0x1f4], edx
inc edi
mov edx, dword [esp + 0xc]
mov dword [esp + 0x10], edi
jmp 0x4a4780
mov edi, dword [esp + 0x18]
add dword [edi + 0x90], eax
adc dword [edi + 0x94], edx
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
inc edi
mov dword [esp + 0x10], edi
jmp 0x4a4780
mov edx, dword [esp + 0xc]
cmp dword [edx + edi*4 + 4], 0
je 0x4a95a4
mov eax, dword [ecx + 0x1f0]
or eax, dword [ecx + 0x1f4]
jne 0x4a49cb
mov eax, dword [ecx + 0x1f8]
or eax, dword [ecx + 0x1fc]
jne 0x4a49cb
mov edi, dword [edx + edi*4 + 8]
dec edi
inc edi
jmp 0x4a477a
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x18]
mov eax, dword [eax + 0x90]
or eax, dword [esi + 0x94]
mov esi, dword [esp + 0x1c]
jmp 0x4a9581
mov eax, dword [esp + 0x18]
mov edx, dword [eax + 0xb0]
test edx, edx
je 0x4a95ef
mov eax, dword [edx + 4]
test eax, eax
je 0x4a95dc
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x4a95d3
mov eax, dword [esp + 0xc]
mov eax, dword [eax + edi*4 + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
lea esi, [eax + ecx*8]
jmp 0x4a9601
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + edi*4 + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
mov dword [esp + 0x24], esi
call fcn.0049d7b0
mov dword [esi + 0x10], eax
mov ecx, 0xbe04
movzx eax, word [esi + 0x1c]
and ax, cx
mov dword [esi + 0x14], edx
mov ecx, dword [esp + 0x28]
or ax, 4
mov word [esi + 0x1c], ax
mov eax, dword [esp + 0xc]
mov eax, dword [eax + edi*4 + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.0049d7b0
mov dword [esi + 0x10], eax
mov ecx, 0xbe04
movzx eax, word [esi + 0x1c]
and ax, cx
mov dword [esi + 0x14], edx
mov ecx, dword [esi + 0x10]
or ax, 4
mov word [esi + 0x1c], ax
mov eax, dword [esp + 0x24]
cmp dword [eax + 0x14], edx
jg 0x4a9672
jl 0x4a966c
cmp dword [eax + 0x10], ecx
jae 0x4a9672
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], edx
inc dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
jmp 0x4a4780
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 4]
lea eax, [eax + eax*4]
cmp dword [esi + eax*8 + 0x14], 0
mov esi, dword [esp + 0x1c]
jl 0x4a49cb
jg 0x4a9599
mov esi, dword [esp + 0x28]
cmp dword [esi + eax*8 + 0x10], 0
mov esi, dword [esp + 0x1c]
jbe 0x4a49cb
mov edi, dword [edx + edi*4 + 8]
dec edi
inc edi
jmp 0x4a477a
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 4]
lea eax, [eax + eax*4]
cmp dword [esi + eax*8 + 0x14], 0
mov esi, dword [esp + 0x1c]
jg 0x4a49cb
jl 0x4a9599
mov ecx, dword [esp + 0x28]
cmp dword [ecx + eax*8 + 0x10], 0
mov ecx, dword [esp + 8]
jae 0x4a49cb
mov edi, dword [edx + edi*4 + 8]
dec edi
inc edi
jmp 0x4a477a
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + edi*4 + 0xc]
cdq
add dword [esi + ecx*8 + 0x10], eax
mov eax, esi
adc dword [eax + ecx*8 + 0x14], edx
mov edx, esi
mov eax, dword [eax + ecx*8 + 0x10]
mov esi, dword [esp + 0x1c]
or eax, dword [edx + ecx*8 + 0x14]
mov edx, dword [esp + 0xc]
jne 0x4a9758
mov ecx, dword [edx + edi*4 + 8]
dec ecx
inc ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 8]
mov edi, dword [esp + 0x10]
jmp 0x4a4780
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 8]
mov edi, dword [esp + 0x10]
jmp 0x4a4780
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x28]
movzx edx, byte [eax + edi*4 + 3]
mov eax, dword [eax + edi*4 + 8]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [esp + 0x18]
mov esi, dword [eax + 0xc]
xor eax, eax
test edx, edx
jle 0x4a979d
mov dword [esi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, edx
jl 0x4a9792
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + edi*4 + 0x10]
mov dword [esp + 0x1c8], eax
mov eax, dword [ecx + edi*4 + 0xc]
mov ecx, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x1f8], eax
inc dword [eax + 0x18]
mov eax, 1
mov ecx, dword [esp + 0x1c8]
mov word [esp + 0x1ec], ax
mov eax, dword [esp + 8]
mov dword [esp + 0x1d4], 0
mov dword [esp + 0x1f4], 0
mov dword [esp + 0x1f0], 0
mov dword [esp + 0x1d0], eax
mov dword [esp + 0x208], 0
mov dword [esp + 0x1fc], 0
mov byte [esp + 0x20c], 0
test byte [ecx + 2], 0x20
je 0x4a9837
mov eax, dword [esp + 0xc]
mov eax, dword [eax + edi*4 - 4]
mov dword [esp + 0x1fc], eax
push esi
push edx
lea eax, [esp + 0x1d0]
push eax
mov eax, dword [ecx + 0x10]
call eax
add esp, 0xc
cmp dword [esp + 0x208], 0
je 0x4a9886
mov dl, 1
lea ecx, [esp + 0x1d0]
call fcn.0049df70
push eax
mov eax, dword [esp + 0x1c]
push 0x60eb3c
push dword [esp + 0x10]
add eax, 0x2c
push eax
call fcn.00483210
mov eax, dword [esp + 0x218]
add esp, 0x10
mov dword [esp + 0x14], eax
cmp byte [esp + 0x20c], 0
je 0x4a98b2
mov eax, dword [esp + 0xc]
mov eax, dword [eax + edi*4 - 0x10]
test eax, eax
je 0x4a98b2
mov ecx, dword [esp + 0x28]
lea eax, [eax + eax*4]
push 0
push 1
lea ecx, [ecx + eax*8]
call fcn.0049da90
add esp, 8
lea ecx, [esp + 0x1d0]
call fcn.0049d730
jmp 0x4a6463
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x28]
mov eax, dword [ecx + edi*4 + 4]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov edx, dword [ecx + edi*4 + 0x10]
mov ecx, esi
call fcn.0049d650
mov dword [esp + 0x14], eax
test eax, eax
je 0x4a990b
mov dl, 1
mov ecx, esi
call fcn.0049df70
push eax
mov eax, dword [esp + 0x1c]
push 0x60eb3c
push dword [esp + 0x10]
add eax, 0x2c
push eax
call fcn.00483210
add esp, 0x10
movzx edx, byte [esp + 0x4c]
mov ecx, esi
call fcn.0049d340
movzx eax, word [esi + 0x1c]
test al, 0x12
je 0x4a6463
mov edx, dword [esi + 0x18]
test eax, 0x4000
je 0x4a9930
add edx, dword [esi + 0x10]
mov eax, dword [esi]
xor ecx, ecx
cmp edx, dword [eax + 0x58]
setg cl
test ecx, ecx
mov ecx, dword [esp + 8]
jne 0x4a83c2
mov esi, dword [esp + 0x1c]
jmp case.default.0x4a47e3
mov esi, dword [esp + 0xc]
lea eax, [esp + 0x264]
push eax
lea eax, [esp + 0x264]
mov dword [esp + 0x260], 0
push eax
push dword [esi + edi*4 + 8]
mov edx, dword [esi + edi*4 + 4]
mov dword [esp + 0x270], 0xffffffff
mov dword [esp + 0x26c], 0xffffffff
call fcn.004e8850
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x14], ecx
cmp ecx, 5
jne 0x4a99b2
mov dword [esp + 0x14], 0
mov dword [esp + 0x25c], 1
mov eax, dword [esi + edi*4 + 0xc]
xor esi, esi
mov ecx, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [esp + esi*4 + 0x25c]
mov ecx, edi
cdq
push edx
push eax
call fcn.0049da90
inc esi
add esp, 8
add edi, 0x28
cmp esi, 3
jl 0x4a99c2
jmp 0x4a6463
mov eax, dword [esp + 0xc]
mov esi, dword [eax + edi*4 + 0xc]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 8]
add ecx, ecx
cmp esi, 0xffffffff
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8 + 4]
mov dword [esp + 0x24], eax
mov eax, dword [eax + 4]
mov ecx, dword [eax]
mov dword [esp + 0x20], ecx
movzx edx, byte [ecx + 5]
cmove esi, edx
mov dword [esp + 0x2c], edx
cmp byte [ecx + 0x10], 3
jae 0x4a9a34
mov eax, dword [ecx + 0x40]
cmp dword [eax], 0
je 0x4a9a36
cmp dword [ecx + 0x4c], 0
jl 0x4a9a36
jg 0x4a9a34
cmp dword [ecx + 0x48], 0
jbe 0x4a9a36
mov esi, edx
cmp byte [ecx + 0xf], 0
mov eax, 0x5f1952
jne 0x4a9a47
mov eax, dword [ecx + 0xa8]
cmp esi, 5
jne 0x4a9a75
mov ecx, eax
call fcn.00485410
test eax, eax
je 0x4a9a71
mov ecx, dword [esp + 0x20]
cmp byte [ecx + 4], 0
mov eax, dword [ecx + 0x3c]
mov eax, dword [eax]
jne 0x4a9a75
cmp dword [eax], 2
jl 0x4a9a71
cmp dword [eax + 0x34], 0
jne 0x4a9a75
mov esi, edx
jmp 0x4a9ae5
cmp esi, edx
je 0x4a9ae5
cmp edx, 5
je 0x4a9a83
cmp esi, 5
jne 0x4a9ae5
mov eax, dword [esp + 8]
cmp byte [eax + 0x3e], 0
je 0x4aaa02
cmp dword [eax + 0x90], 1
jg 0x4aaa02
cmp edx, 5
jne 0x4a9ab8
call fcn.00490bd0
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4a9ae1
mov ecx, dword [esp + 0x20]
mov edx, esi
jmp 0x4a9ac2
cmp edx, 4
jne 0x4a9ac7
mov edx, 2
call fcn.00490980
mov ecx, dword [esp + 0x24]
xor edx, edx
cmp esi, 5
sete dl
inc edx
call fcn.0049c4b0
mov dword [esp + 0x14], eax
test eax, eax
je 0x4a9ae5
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x20]
mov edx, esi
call fcn.00490980
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x28]
mov ecx, dword [ecx + edi*4 + 8]
lea ecx, [ecx + ecx*4]
lea esi, [edx + ecx*8]
mov ecx, 0xa02
mov dword [esp + 0x1c], esi
mov word [esi + 0x1c], cx
cmp eax, 6
jne 0x4a9b18
xor ecx, ecx
jmp 0x4a9b1f
mov ecx, dword [eax*4 + 0x5f28b8]
mov dword [esi + 4], ecx
call fcn.00485410
movzx edx, byte [esp + 0x4c]
mov ecx, esi
mov dword [esi + 0x18], eax
mov byte [esi + 0x1e], 1
call fcn.0049d340
jmp 0x4a6467
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 8]
lea ecx, [ecx + 0x2c]
call fcn.004d9060
mov dword [esp + 0x14], eax
jmp 0x4a6467
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 8]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov ecx, dword [eax + ecx*8 + 4]
call fcn.00496280
mov ecx, eax
mov dword [esp + 0x14], ecx
cmp ecx, 0x65
jne 0x4a6467
mov eax, dword [esp + 0xc]
mov dword [esp + 0x14], 0
mov ecx, dword [eax + edi*4 + 8]
dec ecx
xor edx, edx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 8]
jmp 0x4a646f
mov edx, dword [esp + 0xc]
cmp dword [edx + edi*4 + 4], 0
jne 0x4a9bbb
call fcn.004a23b0
mov edi, dword [esp + 0x10]
inc edi
jmp 0x4a477a
mov edi, dword [esp + 0x18]
or dword [edi + 0x58], 0x20
mov edi, dword [esp + 0x10]
inc edi
jmp 0x4a477a
mov edx, dword [esp + 0xc]
mov al, byte [edx + edi*4 + 0xc]
mov byte [esp + 0xc4], al
test al, al
jne 0x4a9bed
test dword [ecx + 0x18], 0x4000
jne case.default.0x4a47e3
mov eax, dword [edx + edi*4 + 4]
mov ecx, dword [ecx + 0x10]
add eax, eax
push dword [esp + 0xc4]
mov edx, dword [edx + edi*4 + 8]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.0049c390
mov ecx, eax
add esp, 4
mov dword [esp + 0x14], ecx
cmp cl, 6
jne 0x4a6467
mov eax, dword [esp + 0xc]
push dword [eax + edi*4 + 0x10]
mov eax, dword [esp + 0x1c]
push str.database_table_is_locked:__s
push dword [esp + 0x10]
add eax, 0x2c
push eax
call fcn.00483210
add esp, 0x10
jmp 0x4a6467
mov eax, dword [esp + 0xc]
mov esi, dword [eax + edi*4 + 0x10]
mov edx, esi
call fcn.004da3b0
mov dword [esp + 0x14], eax
test esi, esi
je 0x4a6463
mov eax, dword [esp + 0x18]
mov edi, dword [esi + 8]
mov dword [esp + 0x20], edi
mov esi, dword [eax]
mov ecx, esi
mov edx, dword [eax + 0x2c]
call fcn.00482e40
mov ecx, dword [edi + 8]
mov dword [esp + 0x24], ecx
test ecx, ecx
jne 0x4a9c83
xor esi, esi
jmp 0x4a9cc1
cmp byte [ecx], 0
mov eax, ecx
je 0x4a9c96
nop word [eax + eax]
inc eax
cmp byte [eax], 0
jne 0x4a9c90
sub eax, ecx
mov ecx, esi
and eax, 0x3fffffff
lea edi, [eax + 1]
mov edx, edi
call fcn.00483070
mov esi, eax
test esi, esi
je 0x4a9cbd
push edi
push dword [esp + 0x28]
push esi
call fcn.0058fe30
add esp, 0xc
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
mov dword [eax + 0x2c], esi
push dword [edi + 8]
call fcn.00482da0
add esp, 4
mov dword [edi + 8], 0
jmp 0x4a6463
mov eax, dword [esp + 0x18]
add eax, 0x2c
push eax
mov eax, dword [esp + 0x10]
push dword [eax + edi*4 + 0x10]
mov edx, dword [eax + edi*4 + 4]
call fcn.004d9e60
add esp, 8
mov dword [esp + 0x14], eax
jmp 0x4a6467
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x58]
and eax, 0xfffffffb
or eax, 8
mov dword [edx + 0x58], eax
mov eax, dword [esp + 0xc]
push dword [eax + edi*4 + 0x10]
mov edx, dword [eax + edi*4 + 4]
call fcn.004da180
mov ecx, dword [esp + 0x1c]
add esp, 4
mov dword [esp + 0x14], eax
and dword [ecx + 0x58], 0xfffffff3
jmp 0x4a6467
mov eax, dword [esp + 0xc]
lea ecx, [esp + 0x2c]
mov dword [esp + 0x2c], 0
push ecx
mov eax, dword [eax + edi*4 + 0x10]
mov esi, dword [eax + 8]
push esi
mov dword [esp + 0x40], esi
mov eax, dword [esi]
mov dword [esp + 0x44], eax
mov eax, dword [eax + 0x18]
call eax
mov ecx, dword [esp + 0x20]
add esp, 8
mov dword [esp + 0x14], eax
mov eax, dword [ecx]
mov edx, dword [ecx + 0x2c]
mov ecx, eax
mov dword [esp + 0x24], eax
call fcn.00482e40
mov ecx, dword [esi + 8]
mov dword [esp + 0x30], ecx
test ecx, ecx
jne 0x4a9d8b
xor esi, esi
jmp 0x4a9dc6
cmp byte [ecx], 0
mov eax, ecx
je 0x4a9d98
inc eax
cmp byte [eax], 0
jne 0x4a9d92
sub eax, ecx
mov ecx, dword [esp + 0x24]
and eax, 0x3fffffff
inc eax
mov edx, eax
mov dword [esp + 0x20], eax
call fcn.00483070
mov esi, eax
test esi, esi
je 0x4a9dc6
push dword [esp + 0x20]
push dword [esp + 0x34]
push esi
call fcn.0058fe30
add esp, 0xc
mov eax, dword [esp + 0x18]
mov dword [eax + 0x2c], esi
mov esi, dword [esp + 0x38]
push dword [esi + 8]
call fcn.00482da0
add esp, 4
mov dword [esi + 8], 0
cmp dword [esp + 0x14], 0
jne 0x4a6463
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x18]
mov dword [eax], esi
mov eax, dword [esp + 0xc]
mov edi, dword [eax + edi*4 + 4]
mov eax, dword [edx + 0x1c]
sub eax, edi
lea ecx, [eax + eax*4]
mov eax, dword [edx + 8]
lea esi, [eax + ecx*8]
mov eax, dword [edx + 0x38]
mov edx, dword [eax + edi*4]
test edx, edx
je 0x4a9e2f
mov ecx, dword [esp + 0x18]
call fcn.0049fa30
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x38]
mov dword [eax + edi*4], 0
push 0
mov edx, 0x60
mov ecx, esi
call fcn.0049d360
add esp, 4
test eax, eax
jne 0x4a9e88
mov eax, dword [esp + 0x18]
mov esi, dword [esi + 4]
push 0x60
push 0
mov eax, dword [eax + 0x38]
push esi
mov dword [eax + edi*4], esi
call fcn.005903b0
mov ecx, dword [esp + 0x14]
xor eax, eax
mov edx, dword [esp + 0x18]
add esp, 0xc
inc dword [esp + 0x10]
mov edi, dword [esp + 0x10]
mov byte [esi + 0x18], 0xff
mov word [esi + 0x14], ax
mov eax, dword [esp + 0x2c]
mov dword [esi + 0x20], eax
mov esi, dword [esp + 0x1c]
jmp 0x4a4780
mov eax, dword [esp + 8]
push dword [esp + 0x2c]
mov byte [eax + 0x40], 1
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 0x1c]
call eax
add esp, 4
jmp 0x4a6463
mov ecx, dword [esp + 0xc]
mov esi, dword [esp + 0x28]
add esi, 0x28
mov eax, dword [ecx + edi*4 + 0xc]
mov ecx, dword [ecx + edi*4 + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x18]
lea esi, [esi + edx*8]
movd xmm0, esi
mov dword [esp + 0x3c], esi
mov eax, dword [eax + 0x38]
mov esi, dword [esi + 0x10]
pshufd xmm3, xmm0, 0
mov eax, dword [eax + ecx*4]
xor ecx, ecx
mov dword [esp + 0x34], eax
mov eax, dword [eax + 0x20]
mov dword [esp + 0x2c], eax
mov eax, dword [eax]
mov dword [esp + 0x20], eax
mov eax, dword [eax]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x28]
mov eax, dword [eax + edx*8 + 0x10]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x18]
mov edx, dword [eax + 0xc]
mov dword [esp + 0x24], edx
test esi, esi
jle 0x4a9fc1
cmp esi, 8
jb 0x4a9fa1
cmp dword [0x655814], 2
jl 0x4a9fa1
movaps xmm2, xmmword [0x624a60]
mov eax, esi
and eax, reloc.OLEAUT32.dll_VariantInit
jns 0x4a9f37
dec eax
or eax, 0xfffffff8
inc eax
movaps xmm1, xmmword [0x624a70]
mov edx, esi
sub edx, eax
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x24]
mov edi, dword [esp + 0x38]
nop
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm0, xmm0, 0
lea edx, [edx + 0x20]
paddd xmm0, xmm2
add ecx, 8
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x20], xmm0
movd xmm0, eax
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x10], xmm0
cmp ecx, edi
jl 0x4a9f50
mov edi, dword [esp + 0x48]
mov edx, dword [esp + 0x24]
cmp ecx, esi
jge 0x4a9fc1
mov edi, dword [esp + 0x3c]
lea eax, [ecx + 1]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov edi, dword [esp + 0x48]
mov dword [edx + ecx*4], eax
inc ecx
add eax, 0x28
cmp ecx, esi
jl 0x4a9fb6
mov ecx, dword [esp + 0x18]
push edx
push esi
mov eax, dword [ecx + 0x58]
and eax, 0xfffffff7
or eax, 4
mov dword [ecx + 0x58], eax
mov eax, dword [esp + 0x14]
push dword [eax + edi*4 + 0x10]
mov eax, dword [esp + 0x3c]
push dword [esp + 0x50]
push dword [esp + 0x3c]
mov eax, dword [eax + 0x20]
call eax
mov dword [esp + 0x28], eax
add esp, 0x14
mov eax, dword [esp + 0x18]
mov esi, dword [eax]
mov ecx, esi
mov edx, dword [eax + 0x2c]
and dword [eax + 0x58], 0xfffffff3
call fcn.00482e40
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x38], ecx
test ecx, ecx
jne 0x4aa01a
xor esi, esi
jmp 0x4aa053
cmp byte [ecx], 0
mov eax, ecx
je 0x4aa027
inc eax
cmp byte [eax], 0
jne 0x4aa021
sub eax, ecx
mov ecx, esi
and eax, 0x3fffffff
inc eax
mov edx, eax
mov dword [esp + 0x24], eax
call fcn.00483070
mov esi, eax
test esi, esi
je 0x4aa053
push dword [esp + 0x24]
push dword [esp + 0x3c]
push esi
call fcn.0058fe30
add esp, 0xc
mov eax, dword [esp + 0x18]
mov dword [eax + 0x2c], esi
mov esi, dword [esp + 0x20]
push dword [esi + 8]
call fcn.00482da0
add esp, 4
mov dword [esi + 8], 0
cmp dword [esp + 0x14], 0
jne 0x4aa098
mov eax, dword [esp + 0x30]
push dword [esp + 0x2c]
mov eax, dword [eax + 0x28]
call eax
add esp, 4
test eax, eax
je 0x4aa098
mov eax, dword [esp + 0xc]
mov eax, dword [eax + edi*4 + 8]
dec eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x34]
mov byte [eax + 0x19], 0
jmp 0x4a6463
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edx + edi*4 + 0xc]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x2c], ecx
cmp byte [ecx + 0x19], 0
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x20], eax
je 0x4aa0ef
mov ecx, eax
call fcn.0049da40
inc dword [esp + 0x10]
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
jmp 0x4a4780
mov eax, dword [ecx + 0x20]
push 0x48
push 0
mov eax, dword [eax]
mov dword [esp + 0x2c], eax
mov esi, dword [eax]
lea eax, [esp + 0x218]
push eax
call fcn.005903b0
add esp, 0xc
lea ecx, [esp + 0x218]
call fcn.0049d730
mov eax, dword [esp + 0x20]
mov ecx, 1
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x218], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [esp + 0x228], xmm0
movq xmm0, qword [eax + 0x20]
movq qword [esp + 0x238], xmm0
mov word [eax + 0x1c], cx
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0
mov eax, dword [esp + 0x234]
and eax, 0xbe01
or eax, ecx
mov word [esp + 0x234], ax
mov eax, dword [esp + 0xc]
push dword [eax + edi*4 + 8]
lea eax, [esp + 0x214]
push eax
mov eax, dword [esp + 0x34]
push dword [eax + 0x20]
mov eax, dword [esi + 0x2c]
call eax
mov dword [esp + 0x20], eax
add esp, 0xc
mov eax, dword [esp + 0x18]
mov esi, dword [eax]
mov ecx, esi
mov edx, dword [eax + 0x2c]
call fcn.00482e40
mov ecx, dword [esp + 0x24]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x2c], ecx
test ecx, ecx
jne 0x4aa1b6
xor esi, esi
jmp 0x4aa1ed
cmp byte [ecx], 0
mov eax, ecx
je 0x4aa1c6
nop dword [eax]
inc eax
cmp byte [eax], 0
jne 0x4aa1c0
sub eax, ecx
mov ecx, esi
and eax, 0x3fffffff
lea edi, [eax + 1]
mov edx, edi
call fcn.00483070
mov esi, eax
test esi, esi
je 0x4aa1ed
push edi
push dword [esp + 0x30]
push esi
call fcn.0058fe30
add esp, 0xc
mov eax, dword [esp + 0x18]
mov dword [eax + 0x2c], esi
mov esi, dword [esp + 0x24]
push dword [esi + 8]
call fcn.00482da0
mov ecx, dword [esp + 0x18]
add esp, 4
movzx edx, byte [esp + 0x4c]
mov dword [esi + 8], 0
mov eax, dword [esp + 0x250]
test eax, eax
cmovne ecx, eax
mov dword [esp + 0x14], ecx
lea ecx, [esp + 0x218]
call fcn.0049d340
mov esi, dword [esp + 0x20]
mov ecx, esi
call fcn.0049d730
movups xmm0, xmmword [esp + 0x218]
mov eax, 1
movups xmmword [esi], xmm0
movups xmm0, xmmword [esp + 0x228]
movups xmmword [esi + 0x10], xmm0
movq xmm0, qword [esp + 0x238]
movq qword [esi + 0x20], xmm0
mov word [esp + 0x234], ax
mov dword [esp + 0x238], 0
mov dword [esp + 0x23c], 0
jmp 0x4a9917
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x38], ecx
cmp byte [ecx + 0x19], 0
jne 0x4a6467
mov eax, dword [ecx + 0x20]
mov edi, dword [esp + 0x18]
mov esi, dword [eax]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x30], esi
mov edx, dword [esi]
mov eax, dword [eax + 0x58]
and eax, 0xfffffff7
mov dword [esp + 0x3c], edx
or eax, 4
mov dword [edi + 0x58], eax
push dword [ecx + 0x20]
mov eax, dword [edx + 0x24]
call eax
mov ecx, edi
mov dword [esp + 0x18], eax
add esp, 4
mov eax, dword [ecx]
and dword [ecx + 0x58], 0xfffffff3
mov edx, dword [ecx + 0x2c]
mov ecx, eax
mov dword [esp + 0x24], eax
call fcn.00482e40
mov ecx, dword [esi + 8]
mov edi, dword [esp + 0x48]
mov dword [esp + 0x2c], ecx
test ecx, ecx
jne 0x4aa302
xor esi, esi
jmp 0x4aa344
cmp byte [ecx], 0
mov eax, ecx
je 0x4aa316
nop dword [eax]
inc eax
cmp byte [eax], 0
jne 0x4aa310
sub eax, ecx
mov ecx, dword [esp + 0x24]
and eax, 0x3fffffff
inc eax
mov edx, eax
mov dword [esp + 0x20], eax
call fcn.00483070
mov esi, eax
test esi, esi
je 0x4aa344
push dword [esp + 0x20]
push dword [esp + 0x30]
push esi
call fcn.0058fe30
add esp, 0xc
mov eax, dword [esp + 0x18]
mov dword [eax + 0x2c], esi
mov esi, dword [esp + 0x30]
push dword [esi + 8]
call fcn.00482da0
add esp, 4
mov dword [esi + 8], 0
cmp dword [esp + 0x14], 0
jne case.0x4a47e3.16
mov eax, dword [esp + 0x38]
push dword [eax + 0x20]
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 0x28]
call eax
add esp, 4
test eax, eax
jne 0x4aa38c
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + edi*4 + 8]
dec ecx
mov dword [esp + 0x10], ecx
mov esi, dword [esp + 8]
cmp dword [esi + 0xe8], 0
jne 0x4aab42
mov ecx, dword [esi + 0x11c]
test ecx, ecx
je 0x4a6463
mov eax, dword [esp + 0x68]
cmp eax, dword [esp + 0x74]
jb 0x4a6463
mov edi, dword [esi + 0x124]
xor edx, edx
div edi
push dword [esi + 0x120]
sub edi, edx
add edi, dword [esp + 0x6c]
mov dword [esp + 0x78], edi
call ecx
add esp, 4
test eax, eax
je 0x4a6463
mov dword [esp + 0x14], 9
jmp 0x4aab9f
mov ecx, dword [esp + 0xc]
mov edx, 1
mov eax, dword [ecx + edi*4 + 0x10]
mov eax, dword [eax + 8]
mov dword [esp + 0x24], eax
mov eax, dword [ecx + edi*4 + 4]
mov ecx, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.0049d340
mov ecx, eax
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x4a6463
mov edi, dword [esp + 0x24]
push dword [esi + 4]
push edi
mov eax, dword [edi]
mov eax, dword [eax + 0x4c]
call eax
mov dword [esp + 0x1c], eax
add esp, 8
mov eax, dword [esp + 0x18]
mov esi, dword [eax]
mov ecx, esi
mov edx, dword [eax + 0x2c]
call fcn.00482e40
mov ecx, dword [edi + 8]
mov dword [esp + 0x20], ecx
test ecx, ecx
jne 0x4aa459
xor esi, esi
jmp 0x4aa491
cmp byte [ecx], 0
mov eax, ecx
je 0x4aa466
inc eax
cmp byte [eax], 0
jne 0x4aa460
sub eax, ecx
mov ecx, esi
and eax, 0x3fffffff
lea edi, [eax + 1]
mov edx, edi
call fcn.00483070
mov esi, eax
test esi, esi
je 0x4aa48d
push edi
push dword [esp + 0x24]
push esi
call fcn.0058fe30
add esp, 0xc
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
mov dword [eax + 0x2c], esi
push dword [edi + 8]
call fcn.00482da0
mov ecx, dword [esp + 0x1c]
add esp, 4
mov dword [edi + 8], 0
and dword [ecx + 0x58], 0xffffffdf
jmp 0x4a6463
mov edx, dword [esp + 0xc]
mov eax, dword [edx + edi*4 + 0x10]
mov edx, dword [edx + edi*4 + 8]
mov eax, dword [eax + 8]
mov dword [esp + 0x20], eax
mov eax, dword [eax]
mov dword [esp + 0x24], eax
cmp dword [eax + 0x34], 0
je case.default.0x4a47e3
mov al, byte [ecx + 0x44]
mov ecx, dword [esp + 0x28]
mov byte [esp + 0x43], al
mov eax, dword [esp + 0x18]
mov esi, dword [eax + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [eax + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
xor eax, eax
test edx, edx
jle 0x4aa50b
mov dword [esi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, edx
jl 0x4aa500
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov al, byte [eax + edi*4 + 3]
mov byte [ecx + 0x44], al
lea eax, [esp + 0x128]
push eax
mov eax, dword [esp + 0x28]
push esi
push edx
push dword [esp + 0x2c]
mov eax, dword [eax + 0x34]
call eax
mov ecx, dword [esp + 0x18]
add esp, 0x10
mov dword [esp + 0x14], eax
mov al, byte [esp + 0x43]
mov byte [ecx + 0x44], al
mov eax, dword [esp + 0x18]
mov esi, dword [eax]
mov ecx, esi
mov edx, dword [eax + 0x2c]
call fcn.00482e40
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 8]
mov dword [esp + 0x2c], ecx
test ecx, ecx
jne 0x4aa566
xor esi, esi
jmp 0x4aa5a2
cmp byte [ecx], 0
mov eax, ecx
je 0x4aa576
nop dword [eax]
inc eax
cmp byte [eax], 0
jne 0x4aa570
sub eax, ecx
mov ecx, esi
and eax, 0x3fffffff
inc eax
mov edx, eax
mov dword [esp + 0x24], eax
call fcn.00483070
mov esi, eax
test esi, esi
je 0x4aa5a2
push dword [esp + 0x24]
push dword [esp + 0x30]
push esi
call fcn.0058fe30
add esp, 0xc
mov eax, dword [esp + 0x18]
mov dword [eax + 0x2c], esi
mov esi, dword [esp + 0x20]
push dword [esi + 8]
call fcn.00482da0
mov ecx, dword [esp + 0xc]
add esp, 4
cmp dword [esp + 0x14], 0
mov dword [esi + 8], 0
mov esi, dword [esp + 0xc]
jne 0x4aa5f1
cmp dword [esi + edi*4 + 4], 0
je 0x4aa5f1
mov eax, dword [esp + 0x128]
mov edx, dword [esp + 0x12c]
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], edx
mov dword [ecx + 0x20], eax
mov dword [ecx + 0x24], edx
mov edx, dword [esp + 0x14]
cmp dl, 0x13
jne 0x4aa64e
mov eax, dword [esi + edi*4 + 0x10]
cmp byte [eax + 0x10], 0
je 0x4aa64e
mov al, byte [esi + edi*4 + 3]
cmp al, 4
jne 0x4aa622
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
inc edi
mov dword [esp + 0x14], 0
jmp 0x4a4776
cmp al, 5
jne 0x4aa63b
mov esi, dword [esp + 0x18]
mov eax, 2
mov byte [esi + 0x56], al
mov esi, dword [esp + 0x1c]
jmp 0x4a646f
mov esi, dword [esp + 0x18]
movzx eax, al
mov byte [esi + 0x56], al
mov esi, dword [esp + 0x1c]
jmp 0x4a646f
mov esi, dword [esp + 0x18]
inc dword [esi + 0x5c]
mov esi, dword [esp + 0x1c]
jmp 0x4a646f
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [eax + 0x10]
add ecx, ecx
inc dword [esp + 0x10]
mov edi, dword [esp + 0x10]
mov eax, dword [eax + ecx*8 + 4]
mov ecx, dword [esp + 8]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x2c]
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], 0
jmp 0x4a4780
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [eax + 0x10]
add ecx, ecx
mov esi, dword [eax + ecx*8 + 4]
mov ecx, dword [edx + edi*4 + 0xc]
test ecx, ecx
je 0x4aa6be
mov eax, dword [esi + 4]
mov edi, dword [eax + 0x2c]
cmp edi, ecx
cmovb edi, ecx
jmp 0x4aa6c0
xor edi, edi
mov ecx, esi
call fcn.004931f0
mov eax, dword [esi + 4]
mov eax, dword [eax]
test edi, edi
jle 0x4aa6d6
mov dword [eax + 0x9c], edi
cmp byte [esi + 9], 0
mov edi, dword [eax + 0x9c]
je 0x4aa700
add dword [esi + 0xc], 0xffffffff
jne 0x4aa700
mov eax, dword [esi + 4]
mov ecx, dword [eax + 0x38]
test ecx, ecx
je 0x4aa6fc
push ecx
call dword [0x64bb9c]
add esp, 4
mov byte [esi + 0xa], 0
mov esi, dword [esp + 0x1c]
mov eax, edi
inc dword [esp + 0x10]
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 8]
cdq
mov dword [esi + 0x14], edx
mov edx, dword [esp + 0xc]
mov dword [esi + 0x10], eax
jmp 0x4a4780
mov edx, dword [esp + 0xc]
mov eax, dword [edx + edi*4 + 8]
test eax, eax
je 0x4aa733
dec eax
mov dword [esp + 0x10], eax
cmp dword [ecx + 0xa4], 0
je case.default.0x4a47e3
mov eax, dword [esp + 0x18]
test dword [eax + 0x58], 0x800
jne case.default.0x4a47e3
mov edx, dword [edx + edi*4 + 0x10]
mov edi, eax
test edx, edx
jne 0x4aa769
mov edx, dword [edi + 0xa8]
test edx, edx
je case.default.0x4a47e3
mov ecx, edi
call fcn.004a40e0
mov edi, dword [esp + 8]
mov esi, eax
push esi
push dword [edi + 0xa8]
mov ecx, dword [edi + 0xa4]
call ecx
add esp, 8
mov edx, esi
mov ecx, edi
call fcn.00482e40
mov esi, dword [esp + 0x1c]
mov ecx, edi
jmp case.default.0x4a47e3
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 8]
jmp 0x4a646f
mov esi, dword [esp + 0x1c]
mov ecx, eax
jmp case.default.0x4a47e3
mov esi, dword [esp + 0x18]
mov ecx, dword [edx + edi*4 + 4]
mov dword [esi + 0x50], ecx
mov al, byte [edx + edi*4 + 8]
mov byte [esi + 0x56], al
mov eax, dword [esp + 0x10]
mov dword [esi + 0x4c], eax
test ecx, ecx
je 0x4aa859
mov al, byte [edx + edi*4 + 3]
test al, al
je 0x4aa80c
movzx eax, al
mov eax, dword [eax*4 + 0x5f1e64]
test eax, eax
je 0x4aa80e
mov ecx, dword [edx + edi*4 + 0x10]
test ecx, ecx
je 0x4aa80e
push ecx
push eax
push str._s_constraint_failed:__s
push dword [esp + 0x14]
add esi, 0x2c
push esi
call fcn.00483210
add esp, 0x14
jmp 0x4aa834
xor eax, eax
mov ecx, dword [edx + edi*4 + 0x10]
add esi, 0x2c
test ecx, ecx
je 0x4aa821
push ecx
push 0x60eb3c
jmp 0x4aa827
push eax
push str._s_constraint_failed
push dword [esp + 0x10]
push esi
call fcn.00483210
add esp, 0x10
push dword [esi]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
push dword [esi + 0xa8]
push dword [esp + 0x18]
push str.abort_at__d_in___s_:__s
push dword [eax + edi*4 + 4]
call fcn.00484bf0
add esp, 0x14
mov ecx, esi
call fcn.004a05b0
mov ecx, dword [esp + 8]
cmp eax, 5
jne 0x4aa873
mov edi, eax
mov dword [esi + 0x50], edi
jmp 0x4aac23
cmp dword [esi + 0x50], 0
mov edi, 0x65
mov eax, 1
cmovne edi, eax
jmp 0x4aac23
lea ecx, [esp + 0x148]
call fcn.0049d730
mov ecx, edi
jmp 0x4aab7d
mov eax, 0x14
mov dword [esp + 0x14], eax
jmp 0x4aa97e
push str.cannot_open_savepoint___SQL_statements_in_progress
push ecx
mov eax, dword [esp + 0x20]
add eax, 0x2c
push eax
call fcn.00483210
mov eax, dword [esp + 0x1c]
add esp, 0xc
mov dword [esp + 0x14], 5
inc eax
jmp 0x4aaba3
push str.cannot_release_savepoint___SQL_statements_in_progress
push eax
jmp 0x4aa8b0
mov eax, dword [esp + 0x10]
mov dword [edi + 0x4c], eax
mov edi, 5
mov eax, dword [esp + 0x18]
mov byte [ecx + 0x3e], 0
mov dword [eax + 0x50], edi
jmp 0x4aac23
mov eax, 8
mov dword [esp + 0x14], eax
jmp 0x4aa97e
mov ecx, dword [esp + 0x18]
mov edi, 5
mov eax, dword [esp + 0x10]
mov dword [ecx + 0x4c], eax
mov dword [ecx + 0x50], edi
jmp 0x4aac1f
mov ecx, 0x11473
call fcn.004e9c30
mov dword [esp + 0x14], eax
jmp 0x4aa97a
mov eax, dword [esp + 0x10]
mov dword [esp + 0x14], 4
inc eax
jmp 0x4aaba3
mov eax, 0xd
mov dword [esp + 0x14], eax
jmp 0x4aa97a
mov eax, dword [esp + 0x10]
mov dword [esp + 0x14], 7
inc eax
jmp 0x4aaba3
mov eax, dword [esp + 0x14]
jmp 0x4aa97e
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x14]
jmp 0x4aa982
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 8]
jmp 0x4aa982
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 8]
mov edi, dword [esp + 0x18]
cmp byte [ecx + 0x40], 0
je 0x4aa993
mov eax, 7
mov dword [esp + 0x14], eax
jmp 0x4aa99e
cmp eax, 0xc0a
je 0x4aab9f
mov ecx, eax
call fcn.004e7d40
push eax
push 0x60eb3c
push dword [esp + 0x10]
lea eax, [edi + 0x2c]
push eax
call fcn.00483210
add esp, 0x10
jmp 0x4aab9f
mov eax, dword [esp + 0x18]
mov dword [esp + 0x14], 6
mov byte [eax + 0x56], 2
mov eax, dword [esp + 0x10]
inc eax
jmp 0x4aaba3
mov eax, dword [esp + 0x18]
push str.too_many_levels_of_trigger_recursion
add eax, 0x2c
mov dword [esp + 0x18], 1
push edi
push eax
call fcn.00483210
mov eax, dword [esp + 0x1c]
add esp, 0xc
inc eax
jmp 0x4aaba3
mov ecx, str.out_of
mov dword [esp + 0x14], 1
cmp esi, 5
mov eax, str.into
cmovne eax, ecx
push eax
mov eax, dword [esp + 0x1c]
push str.cannot_change__s_wal_mode_from_within_a_transaction
push dword [esp + 0x10]
add eax, 0x2c
push eax
call fcn.00483210
mov eax, dword [esp + 0x20]
add esp, 0x10
inc eax
jmp 0x4aaba3
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 8]
mov ecx, dword [eax + edi*4 + 4]
mov edx, dword [eax + edi*4 + 8]
mov dword [esp + 0x70], ecx
test ecx, ecx
je 0x4aaa73
cmp byte [esi + 0x3e], 0
jne 0x4aaa73
test edx, edx
jne 0x4aaa73
cmp dword [esi + 0x94], edx
jle 0x4aaa73
push str.cannot_commit_transaction___SQL_statements_in_progress
push esi
jmp 0x4aa8b0
movzx eax, byte [esi + 0x3e]
cmp ecx, eax
jne 0x4aaab9
test ecx, ecx
jne 0x4aaa86
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x4aaa95
test edx, edx
mov eax, str.cannot_rollback___no_transaction_is_active
mov ecx, str.cannot_commit___no_transaction_is_active
cmove eax, ecx
push eax
mov eax, dword [esp + 0x1c]
add eax, 0x2c
push esi
push eax
call fcn.00483210
mov eax, dword [esp + 0x1c]
add esp, 0xc
mov dword [esp + 0x14], 1
inc eax
jmp 0x4aaba3
test edx, edx
je 0x4aaaee
mov edx, 0x204
mov ecx, esi
call fcn.004e7c20
mov byte [esi + 0x3e], 1
mov ecx, esi
call fcn.004e74b0
mov eax, dword [esp + 0x18]
mov edi, 1
mov ecx, 0x65
cmp dword [eax + 0x50], 0
cmove edi, ecx
jmp 0x4aac1f
mov ecx, dword [esp + 0x18]
mov edx, 1
call fcn.004a0540
mov edi, eax
test edi, edi
jne 0x4aac1f
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x18]
mov byte [esi + 0x3e], al
call fcn.004a05b0
cmp eax, 5
jne 0x4aaacd
mov edx, dword [esp + 0x18]
mov edi, 5
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 8]
mov dword [edx + 0x4c], eax
mov al, 1
sub al, byte [esp + 0x70]
mov byte [ecx + 0x3e], al
mov dword [edx + 0x50], edi
jmp 0x4aac23
mov esi, ecx
mov eax, dword [str.interrupted]
mov ecx, str.unknown_error
mov edx, dword [esp + 0x18]
test eax, eax
mov dword [esp + 0x14], 9
cmovne ecx, eax
push ecx
push 0x60eb3c
lea eax, [edx + 0x2c]
mov dword [edx + 0x50], 9
push esi
push eax
call fcn.00483210
add esp, 0x10
jmp 0x4aab9f
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x18]
push str.out_of_memory
push ecx
add eax, 0x2c
mov byte [ecx + 0x40], 1
push eax
call fcn.00483210
mov dword [esp + 0x20], 7
add esp, 0xc
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push dword [edx + 0x2c]
mov dword [edx + 0x50], ecx
push dword [edx + 0xa8]
push eax
push str.statement_aborts_at__d:___s___s
push ecx
call fcn.00484bf0
mov ecx, dword [esp + 0x2c]
add esp, 0x14
call fcn.004a05b0
cmp dword [esp + 0x14], 0xc0a
mov ecx, dword [esp + 8]
jne 0x4aabe1
mov byte [ecx + 0x40], 1
mov al, byte [esp + 0x5b]
mov edi, 1
test al, al
je 0x4aac23
movzx esi, al
mov eax, dword [esp + 8]
dec esi
mov ecx, esi
add ecx, ecx
mov eax, dword [eax + 0x10]
push dword [eax + ecx*8 + 0xc]
call fcn.004bdc00
add esp, 4
cmp esi, edi
je 0x4aac1f
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x10]
push dword [eax + 0x1c]
call fcn.004bdc00
add esp, 4
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x60]
mov dword [ecx + 0x20], eax
mov eax, dword [esp + 0x64]
mov dword [ecx + 0x24], eax
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x68]
add dword [ecx + 0x7c], eax
call fcn.0049f180
mov ecx, dword [esp + 0x32c]
mov eax, edi
pop edi
pop esi
xor ecx, esp
call fcn.005765b2
mov esp, ebp
pop ebp
ret