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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x2d8
mov eax, dword [0x7cdffc]
xor eax, esp
mov dword [esp + 0x2d4], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0x10], eax
mov eax, dword [ecx]
push esi
mov dword [esp + 0x10], eax
xor esi, esi
push edi
mov dl, byte [eax + 0x3e]
mov byte [esp + 0x4c], dl
mov edx, dword [ecx + 8]
mov dword [esp + 0x24], edx
mov edx, dword [eax + 0x20]
mov eax, dword [eax + 0x24]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x2c], 0
mov dword [esp + 0x10], 0
mov byte [esp + 0x5b], 0
mov dword [esp + 0x90], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x1c], esi
mov dword [esp + 0x7c], esi
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], eax
call fcn.004d2800
mov ecx, dword [esp + 0x20]
cmp dword [ecx + 0x50], 7
je 0x4de746
mov dword [ecx + 0x50], esi
mov dword [ecx + 0x88], esi
mov dword [ecx + 0x8c], esi
mov dword [ecx + 0x14], esi
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x1c4], esi
cmp dword [ecx + 0xf0], esi
jne 0x4de705
cmp dword [ecx + 0x124], esi
je 0x4d8b19
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x7c]
test eax, eax
jne 0x4d8b0d
mov eax, dword [ecx + 0x12c]
mov dword [esp + 0x78], eax
jmp 0x4d8b19
xor edx, edx
div dword [ecx + 0x12c]
mov dword [esp + 0x78], edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x5c], 0xbe01
mov edi, dword [edx + 0x4c]
mov dword [esp + 0x2c], edi
mov edx, dword [esp + 0x18]
cmp byte [ecx + 0x41], 0
jne 0x4de74a
inc dword [esp + 0x74]
lea edi, [edi + edi*4]
test byte [edx + edi*4 + 2], 2
mov dword [esp + 0x50], edi
je 0x4d8b81
mov eax, dword [edx + edi*4 + 8]
mov esi, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, 0x2460
mov dword [esp + 0x1c], esi
test word [esi + 8], ax
je 0x4d8b78
mov ecx, esi
call fcn.004d0a00
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov eax, 4
mov word [esi + 8], ax
mov dl, byte [edx + edi*4]
movzx eax, dl
dec eax
mov byte [esp + 0x1b8], dl
cmp eax, 0x98
ja case.default.0x4d8b9a
jmp dword [eax*4 + 0x4de774]
mov eax, dword [esp + 0x18]
mov edx, dword [eax + edi*4 + 8]
dec edx
mov dword [esp + 0x2c], edx
jmp 0x4ddfad
mov eax, dword [esp + 0x18]
mov edx, 4
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x24]
lea ecx, [ecx + ecx*4]
mov word [eax + ecx*8 + 8], dx
mov eax, dword [esp + 0x2c]
cdq
mov dword [edi + ecx*8], eax
mov eax, edi
mov edi, dword [esp + 0x50]
mov dword [eax + ecx*8 + 4], edx
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 8]
dec ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x14]
jmp case.default.0x4d8b9a
mov eax, dword [esp + 0x18]
mov eax, dword [eax + edi*4 + 4]
mov edi, dword [esp + 0x24]
lea eax, [eax + eax*4]
mov edx, dword [edi + eax*8]
mov dword [esp + 0x2c], edx
mov edx, pe_nt_image_headers32
mov word [edi + eax*8 + 8], dx
jmp case.default.0x4d8b9a
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x24]
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], eax
mov eax, 4
mov word [esi + 8], ax
mov eax, dword [esp + 0x18]
mov dword [esi + 4], edx
mov eax, dword [eax + edi*4 + 8]
test eax, eax
je case.default.0x4d8b9a
lea edx, [eax - 1]
mov dword [esp + 0x2c], edx
jmp case.default.0x4d8b9a
mov edx, dword [esp + 0x18]
mov eax, dword [edx + edi*4 + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x24]
mov eax, dword [eax + ecx*8]
lea eax, [eax + eax*4]
mov edx, dword [edx + eax*4 + 8]
mov eax, dword [esp + 0x24]
dec edx
mov dword [esp + 0x2c], edx
mov edx, pe_nt_image_headers32
mov word [eax + ecx*8 + 8], dx
mov ecx, dword [esp + 0x14]
jmp case.default.0x4d8b9a
mov eax, dword [esp + 0x18]
mov eax, dword [eax + edi*4 + 4]
mov edi, dword [esp + 0x24]
lea esi, [eax + eax*4]
mov eax, 4
mov ecx, dword [edi + esi*8]
mov word [edi + esi*8 + 8], ax
mov eax, dword [esp + 0x2c]
cdq
mov dword [edi + esi*8], eax
mov dword [edi + esi*8 + 4], edx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x14]
jmp 0x4dc008
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov eax, dword [edx + edi*4 + 0xc]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
mov ecx, dword [esp + 0x14]
je case.default.0x4d8b9a
jmp 0x4d8cf1
mov edx, dword [esp + 0x18]
cmp dword [edx + edi*4 + 4], 0
jne 0x4de2ea
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0xb0]
test ecx, ecx
je 0x4de2ea
mov edx, dword [esp + 0x20]
mov eax, dword [ecx + 4]
dec dword [edx + 0xb8]
mov dword [edx + 0xb0], eax
mov eax, dword [edx + 0x5c]
mov edx, dword [esp + 0x14]
add dword [edx + 0x54], eax
mov dword [edx + 0x50], eax
call fcn.004d3230
mov edx, eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x20]
mov eax, dword [eax + 0x24]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x60], ecx
cmp dword [eax + edi*4 + 8], 4
jne 0x4d8d69
mov eax, dword [esp + 0x20]
lea ecx, [edx + edx*4]
mov eax, dword [eax + 4]
mov edx, dword [eax + ecx*4 + 8]
dec edx
mov dword [esp + 0x2c], edx
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 4]
mov dword [esp + 0x18], eax
mov eax, dword [ecx + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x24], eax
jmp case.default.0x4d8b9a
mov eax, dword [esp + 0x18]
mov eax, dword [eax + edi*4 + 4]
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp case.default.0x4d8b9a
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 0x10]
mov eax, dword [ecx]
mov dword [esi], eax
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x14]
mov dword [esi + 4], eax
jmp case.default.0x4d8b9a
mov eax, 8
mov word [esi + 8], ax
mov eax, dword [esp + 0x18]
mov eax, dword [eax + edi*4 + 0x10]
movsd xmm0, qword [eax]
movsd qword [esi], xmm0
jmp case.default.0x4d8b9a
mov edx, dword [esp + 0x18]
mov ecx, dword [edx + edi*4 + 0x10]
mov byte [edx + edi*4], 0x1b
call fcn.004b7300
cmp byte [esp + 0x4c], 1
mov dword [edx + edi*4 + 4], eax
je 0x4d8e5a
push 0
push 1
mov edx, ecx
mov ecx, esi
push 0xffffffffffffffff
call fcn.004d1160
add esp, 0xc
mov dword [esp + 0x10], eax
cmp eax, 0x12
je 0x4de5ca
movzx edx, byte [esp + 0x4c]
mov ecx, esi
call fcn.004d05b0
test eax, eax
jne 0x4de746
mov edx, dword [esp + 0x18]
mov dword [esi + 0x18], eax
mov eax, 0x800
or word [esi + 8], ax
cmp byte [edx + edi*4 + 1], 0xff
jne 0x4d8e47
mov edx, dword [edx + edi*4 + 0x10]
mov ecx, dword [esp + 0x14]
call fcn.004b4750
mov edx, dword [esp + 0x18]
mov byte [edx + edi*4 + 1], 0xff
mov eax, dword [esi + 0x10]
mov dword [edx + edi*4 + 0x10], eax
mov eax, dword [esi + 0xc]
mov dword [edx + edi*4 + 4], eax
mov ecx, dword [esp + 0x14]
mov eax, dword [edx + edi*4 + 4]
cmp eax, dword [ecx + 0x58]
jg 0x4de5ce
jmp 0x4d8e71
mov edx, dword [esp + 0x18]
mov eax, 0xa02
mov word [esi + 8], ax
mov eax, dword [edx + edi*4 + 0x10]
mov dword [esi + 0x10], eax
mov eax, dword [edx + edi*4 + 4]
mov dword [esi + 0xc], eax
mov al, byte [esp + 0x4c]
mov byte [esi + 0xa], al
jmp case.default.0x4d8b9a
mov edx, dword [esp + 0x18]
mov eax, 1
cmp dword [edx + edi*4 + 4], 0
mov esi, dword [edx + edi*4 + 0xc]
mov ecx, dword [edx + edi*4 + 8]
mov edx, 0x101
cmovne eax, edx
mov edx, dword [esp + 0x1c]
sub esi, ecx
movzx edi, ax
mov word [edx + 8], di
test esi, esi
jle 0x4d8cc4
add edx, 0x28
mov ecx, edx
mov dword [esp + 0x1c], edx
call fcn.004d0f30
mov edx, dword [esp + 0x1c]
dec esi
mov word [edx + 8], di
test esi, esi
jg 0x4d8ec7
mov ecx, dword [esp + 0x14]
jmp 0x4dc008
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov eax, dword [eax + edi*4 + 4]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov edx, 0xff7f
mov ax, word [esi + 8]
and ax, dx
mov dword [esp + 0x1c], esi
or ax, 1
mov word [esi + 8], ax
jmp case.default.0x4d8b9a
mov eax, dword [esp + 0x18]
mov ecx, esi
push 0
push 0
push dword [eax + edi*4 + 4]
mov edx, dword [eax + edi*4 + 0x10]
call fcn.004d1160
mov al, byte [esp + 0x58]
add esp, 0xc
mov ecx, dword [esp + 0x14]
mov byte [esi + 0xa], al
jmp case.default.0x4d8b9a
mov eax, dword [esp + 0x18]
mov eax, dword [eax + edi*4 + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x20]
lea edx, [edx - 5]
mov eax, dword [eax + 0x3c]
lea edx, [eax + edx*8]
movzx eax, word [edx + 8]
test al, 0x12
je 0x4d8f87
mov esi, dword [edx + 0xc]
test eax, 0x4000
je 0x4d8f70
add esi, dword [edx]
mov eax, dword [edx + 0x20]
xor ecx, ecx
cmp esi, dword [eax + 0x58]
setg cl
test ecx, ecx
jne 0x4de5ca
mov esi, dword [esp + 0x1c]
push 0x800
mov ecx, esi
call fcn.004d10a0
mov ecx, dword [esp + 0x18]
add esp, 4
jmp case.default.0x4d8b9a
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x24]
mov eax, dword [edx + edi*4 + 4]
mov ecx, dword [edx + edi*4 + 0xc]
mov dword [esp + 0x28], ecx
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, dword [edx + edi*4 + 8]
mov edx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov eax, 1
mov edx, 0x2460
test word [edi + 8], dx
jne 0x4d8fdd
cmp dword [edi + 0x18], 0
je 0x4d8ff2
mov ecx, edi
call fcn.004d0a70
mov ecx, dword [esp + 0x28]
mov eax, 1
mov edx, 0x2460
movups xmm0, xmmword [esi]
movups xmmword [edi], xmm0
movups xmm0, xmmword [esi + 0x10]
movups xmmword [edi + 0x10], xmm0
movq xmm0, qword [esi + 0x20]
movq qword [edi + 0x20], xmm0
add edi, 0x28
mov word [esi + 8], ax
mov dword [esi + 0x18], 0
add esi, 0x28
sub ecx, 1
mov dword [esp + 0x28], ecx
jne 0x4d8fd1
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1c], edi
jmp 0x4dc008
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov eax, dword [ecx + edi*4 + 0xc]
mov dword [esp + 0x28], eax
mov eax, dword [ecx + edi*4 + 4]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [ecx + edi*4 + 8]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
push 0x1000
mov edx, esi
mov dword [esp + 0x20], edi
mov ecx, edi
call fcn.004d10a0
mov eax, 0x1000
add esp, 4
test word [edi + 8], ax
je 0x4d9084
mov ecx, edi
call fcn.004d0720
test eax, eax
jne 0x4de746
mov ecx, dword [esp + 0x28]
mov eax, ecx
dec ecx
mov dword [esp + 0x28], ecx
test eax, eax
je 0x4d8cc4
add edi, 0x28
add esi, 0x28
jmp 0x4d9055
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
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.004d10a0
mov ecx, dword [esp + 0x18]
add esp, 4
jmp case.default.0x4d8b9a
mov eax, dword [ecx + 0x124]
test eax, eax
je 0x4d90fe
mov edx, dword [esp + 0x74]
cmp edx, dword [esp + 0x78]
jb 0x4d90fe
push dword [ecx + 0x128]
call eax
add esp, 4
test eax, eax
jne 0x4de3a9
mov ecx, dword [esp + 0x20]
xor edx, edx
call fcn.004d3e60
mov ecx, eax
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x4d8bef
mov ecx, dword [esp + 0x20]
lea edx, [eax + 1]
call fcn.004d3d40
mov ecx, eax
mov dword [esp + 0x10], ecx
test ecx, ecx
je 0x4de3b7
mov ecx, dword [esp + 0x14]
jmp case.default.0x4d8b9a
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov eax, dword [ecx + edi*4 + 4]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x28], 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 + 0x28]
lea eax, [eax + eax*4]
movzx ecx, word [edi + 8]
lea eax, [edx + eax*8]
mov dword [esp + 0x1c], eax
mov al, byte [esi + 8]
or al, cl
test al, 1
je 0x4d918d
mov esi, dword [esp + 0x1c]
mov ecx, esi
call fcn.004d0f30
mov ecx, dword [esp + 0x14]
jmp case.default.0x4d8b9a
test ecx, 0x4000
je 0x4d91a4
mov ecx, edi
call fcn.004d0790
test eax, eax
jne 0x4de746
mov eax, 0x4000
test word [esi + 8], ax
je 0x4d91be
mov ecx, esi
call fcn.004d0790
test eax, eax
jne 0x4de746
test byte [edi + 8], 0x12
jne 0x4d91dc
mov dl, byte [esp + 0x4c]
mov ecx, edi
push 0
call fcn.004d0850
add esp, 4
test eax, eax
jne 0x4de746
test byte [esi + 8], 0x12
jne 0x4d91fa
mov dl, byte [esp + 0x4c]
mov ecx, esi
push 0
call fcn.004d0850
add esp, 4
test eax, eax
jne 0x4de746
mov eax, dword [edi + 0xc]
add eax, dword [esi + 0xc]
cdq
mov edi, eax
mov ecx, edx
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x58]
cdq
cmp ecx, edx
jg 0x4de5ca
jl 0x4d921f
cmp edi, eax
ja 0x4de5ca
mov ecx, dword [esp + 0x1c]
lea edx, [edi + 2]
xor eax, eax
cmp ecx, esi
sete al
push eax
call fcn.004d05d0
add esp, 4
test eax, eax
jne 0x4de746
mov ecx, dword [esp + 0x1c]
mov edx, 0xbe02
mov ax, word [ecx + 8]
and ax, dx
or ax, 2
mov word [ecx + 8], ax
cmp ecx, esi
je 0x4d926f
push dword [esi + 0xc]
push dword [esi + 0x10]
push dword [ecx + 0x10]
call fcn.006e6940
mov ecx, dword [esp + 0x28]
add esp, 0xc
mov eax, dword [esp + 0x28]
push dword [eax + 0xc]
push dword [eax + 0x10]
mov eax, dword [ecx + 0x10]
add eax, dword [esi + 0xc]
push eax
call fcn.006e6940
mov esi, dword [esp + 0x28]
add esp, 0xc
mov ecx, dword [esp + 0x14]
mov eax, dword [esi + 0x10]
mov byte [edi + eax], 0
mov eax, dword [esi + 0x10]
mov byte [edi + eax + 1], 0
mov eax, 0x200
or word [esi + 8], ax
mov al, byte [esp + 0x4c]
mov dword [esi + 0xc], edi
mov byte [esi + 0xa], al
jmp case.default.0x4d8b9a
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov eax, dword [esi + edi*4 + 4]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
movzx ecx, word [edx + 8]
mov eax, ecx
mov dword [esp + 0x1b4], edx
and eax, 0xc
je 0x4d92e1
mov dword [esp + 0x44], eax
jmp 0x4d92fe
test cl, 0x12
je 0x4d92f6
mov ecx, edx
call fcn.004d89e0
movzx eax, ax
mov dword [esp + 0x44], eax
jmp 0x4d92fe
mov dword [esp + 0x44], 0
mov eax, dword [esi + edi*4 + 8]
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
movzx ecx, word [edx + 8]
mov eax, ecx
mov dword [esp + 0x38], edx
and eax, 0xc
je 0x4d9321
mov dword [esp + 0x48], eax
jmp 0x4d9342
test cl, 0x12
je 0x4d933a
mov ecx, edx
call fcn.004d89e0
mov edx, dword [esp + 0x38]
movzx eax, ax
mov dword [esp + 0x48], eax
jmp 0x4d9342
mov dword [esp + 0x48], 0
mov eax, dword [esi + edi*4 + 0xc]
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, dword [esp + 0x1b4]
mov dword [esp + 0x1c], eax
mov al, byte [edx + 8]
or al, byte [ecx + 8]
test al, 1
jne 0x4d9179
mov al, byte [esp + 0x48]
and al, byte [esp + 0x44]
test al, 4
je 0x4d94bb
mov eax, ecx
mov byte [esp + 0x1b8], 1
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x38]
mov esi, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0xd8], eax
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x80], esi
movzx eax, byte [eax + edi*4]
add eax, 0xffffffa7
cmp eax, 3
ja case.default.0x4d93ba
jmp dword [eax*4 + 0x4de9d8]
push ecx
push edx
lea ecx, [esp + 0x88]
call fcn.004b86a0
add esp, 8
test eax, eax
jne 0x4d94c5
mov eax, dword [esp + 0x84]
mov esi, dword [esp + 0x80]
jmp 0x4d9493
test edx, edx
jne 0x4d941c
cmp ecx, 0x80000000
jne 0x4d941c
mov eax, dword [esp + 0xd8]
test eax, eax
jg 0x4d94c5
jl 0x4d9412
test esi, esi
jae 0x4d94c5
add esi, 0
adc eax, 0x80000000
jmp 0x4d9493
neg edx
adc ecx, 0
neg ecx
jmp case.0x4d93ba.89
push ecx
push edx
lea ecx, [esp + 0x88]
call fcn.004b8740
jmp 0x4d93cf
mov eax, edx
or eax, ecx
je 0x4d9179
mov eax, edx
and eax, ecx
cmp eax, 0xffffffff
mov eax, dword [esp + 0xd8]
jne 0x4d945a
test esi, esi
jne 0x4d945a
cmp eax, 0x80000000
je 0x4d94c5
push ecx
push edx
push eax
push esi
call fcn.006a8590
jmp 0x4d948f
mov eax, edx
or eax, ecx
je 0x4d9179
mov eax, edx
and eax, ecx
cmp eax, 0xffffffff
jne 0x4d947f
mov edx, 1
xor ecx, ecx
mov eax, dword [esp + 0xd8]
push ecx
push edx
push eax
push esi
call fcn.007256c0
mov esi, eax
mov eax, edx
mov ecx, dword [esp + 0x1c]
mov dword [ecx], esi
mov esi, ecx
mov ecx, 0xbe04
mov dword [esi + 4], eax
mov ax, word [esi + 8]
and ax, cx
mov ecx, dword [esp + 0x14]
or ax, 4
mov word [esi + 8], ax
jmp case.default.0x4d8b9a
mov byte [esp + 0x1b8], 0
jmp 0x4d94cc
mov ecx, dword [esp + 0x1b4]
call fcn.004d0be0
mov ecx, dword [esp + 0x38]
movsd qword [esp + 0x30], xmm0
call fcn.004d0be0
mov eax, dword [esp + 0x18]
movaps xmm1, xmm0
movsd qword [esp + 0x68], xmm1
movzx eax, byte [eax + edi*4]
add eax, 0xffffffa7
cmp eax, 3
ja case.default.0x4d94f9
jmp dword [eax*4 + 0x4de9e8]
addsd xmm1, qword [esp + 0x30]
jmp 0x4d957c
subsd xmm1, qword [esp + 0x30]
jmp 0x4d957c
mulsd xmm1, qword [esp + 0x30]
jmp 0x4d957c
movsd xmm0, qword [esp + 0x30]
xorps xmm2, xmm2
ucomisd xmm0, xmm2
lahf
test ah, 0x44
jnp 0x4d9179
divsd xmm1, xmm0
jmp 0x4d957c
movsd xmm0, qword [esp + 0x30]
call fcn.0072553f
movsd xmm0, qword [esp + 0x68]
mov esi, eax
mov edi, edx
call fcn.0072553f
mov ecx, esi
or ecx, edi
je 0x4d9179
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x4d9569
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push eax
call fcn.007256c0
mov ecx, eax
call fcn.00725690
movaps xmm1, xmm0
movaps xmm0, xmm1
call fcn.004b72c0
test eax, eax
jne 0x4d9179
mov edi, dword [esp + 0x1c]
mov ecx, 0xbe08
mov ax, word [edi + 8]
and ax, cx
movsd qword [edi], xmm1
or ax, 8
mov word [edi + 8], ax
mov eax, dword [esp + 0x48]
or al, byte [esp + 0x44]
test al, 8
jne 0x4d8cc4
cmp byte [esp + 0x1b8], 0
jne 0x4d8cc4
mov ecx, edi
call fcn.004d0c40
mov ecx, dword [esp + 0x14]
jmp 0x4dc008
mov eax, dword [esp + 0x18]
mov eax, dword [eax + edi*4 + 4]
test eax, eax
je case.default.0x4d8b9a
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
push 0
push 0
lea ecx, [ecx + eax*8]
call fcn.004d0f90
mov ecx, dword [esp + 0x1c]
add esp, 8
jmp case.default.0x4d8b9a
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
movzx ecx, byte [esi + edi*4 + 3]
mov edx, dword [eax + 0xc]
mov eax, dword [esi + edi*4 + 0xc]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x30], ecx
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x40], eax
mov dword [esp + 0xdc], eax
mov eax, dword [esi + edi*4 + 8]
mov esi, edx
mov edx, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
xor eax, eax
mov dword [esp + 0x3c], eax
test ecx, ecx
je 0x4d9692
mov edi, 0x1000
mov dword [edx + eax*4], esi
test word [esi + 8], di
mov edi, dword [esp + 0x50]
je 0x4d967d
mov ecx, esi
call fcn.004d0720
test eax, eax
jne 0x4de746
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x28]
inc eax
add esi, 0x28
mov dword [esp + 0x3c], eax
cmp eax, ecx
jl 0x4d9650
mov esi, dword [esp + 0xdc]
jmp 0x4d9696
mov esi, dword [esp + 0x40]
mov eax, dword [esp + 0x18]
push edx
push ecx
mov eax, dword [eax + edi*4 + 0x10]
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0xf4], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0xf0], eax
mov ax, word [esi + 8]
and ax, word [esp + 0x64]
or ax, 1
mov word [esi + 8], ax
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x68]
mov byte [esp + 0xfd], 0
mov dword [esi + 0x20], eax
mov eax, dword [esp + 0x6c]
mov dword [esi + 0x24], eax
lea eax, [esp + 0xe4]
push eax
mov eax, dword [esp + 0xec]
mov eax, dword [eax + 0xc]
call eax
mov eax, dword [esi + 0x20]
add esp, 0xc
cmp byte [esp + 0xf5], 0
mov dword [esp + 0x60], eax
mov eax, dword [esi + 0x24]
mov dword [esp + 0x64], eax
je 0x4d976a
cmp dword [esp + 0xf0], 0
je 0x4d9752
push dword [esp + 0xdc]
call fcn.004d6360
add esp, 4
push eax
mov eax, dword [esp + 0x24]
push 0x792294
add eax, 0x2c
push esi
push eax
call fcn.004b4c70
mov eax, dword [esp + 0x100]
add esp, 0x10
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x20]
push dword [eax + edi*4 + 4]
call fcn.004d4360
add esp, 4
movzx edx, byte [esp + 0x4c]
mov ecx, dword [esp + 0xdc]
call fcn.004d05b0
mov eax, dword [esp + 0xdc]
movzx ecx, word [eax + 8]
test cl, 0x12
je 0x4dc006
mov edx, dword [eax + 0xc]
test ecx, 0x4000
je 0x4d979c
add edx, dword [eax]
mov eax, dword [eax + 0x20]
xor ecx, ecx
cmp edx, dword [eax + 0x58]
setg cl
test ecx, ecx
mov ecx, esi
jne 0x4de5ce
jmp 0x4dc008
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov eax, dword [esi + edi*4 + 4]
lea eax, [eax + eax*4]
lea ecx, [edx + eax*8]
mov eax, dword [esi + edi*4 + 8]
mov dword [esp + 0x30], ecx
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov eax, dword [esi + edi*4 + 0xc]
mov esi, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov al, byte [edx + 8]
or al, byte [ecx + 8]
mov dword [esp + 0x1c], esi
test al, 1
je 0x4d9802
mov ecx, esi
call fcn.004d0f30
mov ecx, dword [esp + 0x14]
jmp case.default.0x4d8b9a
mov ecx, edx
call fcn.004d0b30
mov ecx, dword [esp + 0x30]
mov esi, edx
mov dword [esp + 0xd8], eax
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], esi
call fcn.004d0b30
mov ecx, eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x28], ecx
mov al, byte [eax + edi*4]
mov byte [esp + 0x1b8], al
cmp al, 0x55
jne 0x4d9851
mov edi, dword [esp + 0xd8]
and edi, ecx
and esi, edx
jmp 0x4d9943
cmp al, 0x56
jne 0x4d9865
mov edi, dword [esp + 0xd8]
or edi, ecx
or esi, edx
jmp 0x4d9943
mov eax, ecx
or eax, edx
je 0x4d993c
test edx, edx
jg 0x4d989b
jl 0x4d9879
test ecx, ecx
jae 0x4d989b
mov al, 0xaf
sub al, byte [esp + 0x1b8]
cmp edx, 0xffffffff
jl 0x4d98ad
jg 0x4d988e
cmp ecx, 0xffffffc0
jbe 0x4d98ad
neg ecx
mov dword [esp + 0x28], ecx
adc edx, 0
neg edx
jmp 0x4d98a2
mov al, byte [esp + 0x1b8]
test edx, edx
jl 0x4d98db
jg 0x4d98ad
cmp ecx, 0x40
jb 0x4d98db
test esi, esi
jg 0x4d98c8
jl 0x4d98bd
cmp dword [esp + 0xd8], 0
jae 0x4d98c8
cmp al, 0x57
je 0x4d98c8
or edi, 0xffffffff
or esi, edi
jmp 0x4d9943
xorps xmm0, xmm0
movlpd qword [esp + 0x68], xmm0
mov esi, dword [esp + 0x6c]
mov edi, dword [esp + 0x68]
jmp 0x4d9943
movq xmm1, qword [esp + 0xb8]
movd xmm0, ecx
cmp al, 0x57
jne 0x4d9900
psllq xmm1, xmm0
movq qword [esp + 0x30], xmm1
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x30]
jmp 0x4d9943
psrlq xmm1, xmm0
movq qword [esp + 0x30], xmm1
test esi, esi
jg 0x4d98f6
jl 0x4d991a
cmp dword [esp + 0xd8], 0
jae 0x4d98f6
mov ecx, 0x40
or eax, 0xffffffff
sub ecx, dword [esp + 0x28]
or edx, 0xffffffff
call fcn.006a8700
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x34]
or edi, eax
or esi, edx
jmp 0x4d9943
mov edi, dword [esp + 0xd8]
mov eax, dword [esp + 0x1c]
mov ecx, 0xbe04
mov dword [eax + 4], esi
mov esi, eax
mov dword [eax], edi
mov ax, word [esi + 8]
and ax, cx
mov ecx, dword [esp + 0x14]
or ax, 4
mov word [esi + 8], ax
jmp case.default.0x4d8b9a
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov eax, dword [eax + edi*4 + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.004d0ce0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov eax, dword [eax + edi*4 + 8]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
jmp 0x4dc008
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov eax, dword [ecx + edi*4 + 4]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
movzx eax, word [esi + 8]
test al, 4
jne 0x4d99fa
test al, 8
jne 0x4d99cb
test al, 2
je 0x4d99d6
mov edx, 1
mov ecx, esi
call fcn.004d8850
jmp 0x4d99d2
mov ecx, esi
call fcn.004d0c40
mov ecx, dword [esp + 0x18]
movzx eax, word [esi + 8]
test al, 4
jne 0x4d99fa
mov eax, dword [ecx + edi*4 + 8]
test eax, eax
je 0x4de44b
lea ecx, [eax - 1]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x14]
jmp 0x4dc008
mov ecx, dword [esp + 0x14]
and eax, 0xbe04
or eax, 4
mov word [esi + 8], ax
jmp 0x4dc008
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov eax, dword [eax + edi*4 + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 4
lea ecx, [ecx + eax*8]
je 0x4d8bef
call fcn.004d0d10
mov ecx, dword [esp + 0x14]
jmp case.default.0x4d8b9a
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov eax, dword [eax + edi*4 + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, 0x4000
test word [esi + 8], ax
je 0x4d9a64
mov ecx, esi
call fcn.004d0790
mov dword [esp + 0x10], eax
jmp 0x4d9a6c
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x18]
mov ecx, esi
push dword [esp + 0x4c]
mov dl, byte [eax + edi*4 + 8]
call fcn.004d0e60
mov ecx, dword [esp + 0x18]
add esp, 4
jmp 0x4dc008
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x24]
mov eax, dword [edx + edi*4 + 4]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov eax, dword [edx + edi*4 + 0xc]
mov dword [esp + 0xd8], ecx
movzx ecx, word [ecx + 8]
lea eax, [eax + eax*4]
movzx edx, word [esi + eax*8 + 8]
lea esi, [esi + eax*8]
mov eax, ecx
mov dword [esp + 0x38], edx
mov dword [esp + 0x48], eax
mov al, dl
or al, cl
test al, 1
je 0x4d9b55
mov ecx, dword [esp + 0x18]
mov al, byte [ecx + edi*4 + 3]
test al, al
jns 0x4d9b04
mov eax, edx
xor ecx, ecx
and eax, dword [esp + 0x48]
bt ax, cx
mov ecx, dword [esp + 0x18]
jae 0x4d9afa
test edx, 0x100
jne 0x4d9afa
xor edx, edx
jmp 0x4d9c34
mov edx, 1
jmp 0x4d9c34
test al, 0x20
je 0x4d9b37
mov eax, dword [ecx + edi*4 + 8]
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, 0xbe01
mov ax, word [esi + 8]
and ax, cx
mov dword [esp + 0x1c], esi
mov ecx, dword [esp + 0x14]
or ax, 1
mov word [esi + 8], ax
jmp case.default.0x4d8b9a
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
test al, 0x10
je 0x4d9b4c
mov ecx, dword [ecx + edi*4 + 8]
dec ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x14]
jmp 0x4dc010
mov eax, dword [esp + 0x18]
mov al, byte [eax + edi*4 + 3]
and al, 0x47
cmp al, 0x43
jb 0x4d9b8d
and cl, 0xe
cmp cl, 2
jne 0x4d9b79
mov ecx, dword [esp + 0xd8]
xor edx, edx
call fcn.004d8850
mov al, byte [esi + 8]
and al, 0xe
cmp al, 2
jne 0x4d9bcc
xor edx, edx
mov ecx, esi
call fcn.004d8850
jmp 0x4d9bcc
cmp al, 0x42
jne 0x4d9bcc
test cl, 2
jne 0x4d9bb0
test cl, 0xc
je 0x4d9bb0
mov dl, byte [esp + 0x4c]
mov ecx, dword [esp + 0xd8]
push 1
call fcn.004d0850
add esp, 4
movzx eax, word [esi + 8]
test al, 2
jne 0x4d9bcc
test al, 0xc
je 0x4d9bcc
mov dl, byte [esp + 0x4c]
mov ecx, esi
push 1
call fcn.004d0850
add esp, 4
mov eax, dword [esp + 0xd8]
mov ecx, 0x4000
test word [eax + 8], cx
je 0x4d9bed
mov ecx, eax
call fcn.004d0790
and dword [esp + 0x48], 0xbfff
mov eax, 0x4000
test word [esi + 8], ax
je 0x4d9c07
mov ecx, esi
call fcn.004d0790
and dword [esp + 0x38], 0xbfff
mov ecx, dword [esp + 0x14]
cmp byte [ecx + 0x41], 0
jne 0x4de74a
mov eax, dword [esp + 0x18]
mov ecx, esi
mov edx, dword [esp + 0xd8]
push dword [eax + edi*4 + 0x10]
call fcn.004d4f10
mov ecx, dword [esp + 0x1c]
add esp, 4
mov edx, eax
movzx ecx, byte [ecx + edi*4]
add ecx, 0xffffffb2
cmp ecx, 4
ja case.default.0x4d9c40
jmp dword [ecx*4 + 0x4de9f8]
xor eax, eax
test edx, edx
sete al
jmp 0x4d9c76
xor eax, eax
test edx, edx
setne al
jmp 0x4d9c76
mov eax, edx
jmp 0x4d9c73
xor eax, eax
test edx, edx
setle al
jmp 0x4d9c76
xor eax, eax
test edx, edx
setg al
jmp 0x4d9c76
mov eax, edx
not eax
shr eax, 0x1f
mov ecx, dword [esp + 0x18]
test byte [ecx + edi*4 + 3], 0x20
je 0x4d9caf
mov ecx, dword [ecx + edi*4 + 8]
mov edx, dword [esp + 0x24]
lea ecx, [ecx + ecx*4]
lea edi, [edx + ecx*8]
mov edx, 0xbe04
mov cx, word [edi + 8]
and cx, dx
mov dword [esp + 0x1c], edi
cdq
or cx, 4
mov word [edi + 8], cx
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x4d9cbc
test eax, eax
je 0x4d9cbc
mov eax, dword [ecx + edi*4 + 8]
dec eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0x48]
mov word [eax + 8], cx
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x14]
mov word [esi + 8], ax
jmp 0x4dc008
mov eax, dword [esp + 0x18]
mov eax, dword [eax + edi*4 + 0x10]
mov dword [esp + 0x7c], eax
jmp case.default.0x4d8b9a
mov esi, dword [esp + 0x18]
mov eax, 0
mov edx, dword [esi + edi*4 + 0x10]
test byte [esi + edi*4 + 3], 1
mov ecx, dword [esi + edi*4 + 0xc]
mov esi, dword [esi + edi*4 + 4]
cmovne eax, dword [esp + 0x7c]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x3c], esi
mov dword [esp + 0x7c], eax
mov dword [esp + 0x40], ecx
mov esi, dword [edx + edi*4 + 8]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x30], esi
xor esi, esi
test ecx, ecx
jle 0x4d9da8
test eax, eax
je 0x4d9d3b
mov ecx, dword [eax + esi*4]
jmp 0x4d9d3d
mov ecx, esi
mov eax, dword [edx + 0x10]
push dword [edx + esi*4 + 0x14]
mov edx, dword [esp + 0x28]
movzx edi, byte [esi + eax]
mov eax, dword [esp + 0x34]
add eax, ecx
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov eax, dword [esp + 0x40]
add eax, ecx
mov ecx, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.004d4f10
add esp, 4
mov dword [esp + 0x90], eax
test eax, eax
jne 0x4d9d9b
mov eax, dword [esp + 0x7c]
inc esi
mov edx, dword [esp + 0x28]
cmp esi, dword [esp + 0x40]
jl 0x4d9d32
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x7c], 0
jmp 0x4dc008
test edi, edi
je 0x4d9da8
neg eax
mov dword [esp + 0x90], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x7c], 0
jmp 0x4dc008
mov eax, dword [esp + 0x90]
test eax, eax
mov eax, dword [esp + 0x18]
jns 0x4d9dd6
mov edx, dword [eax + edi*4 + 4]
dec edx
mov dword [esp + 0x2c], edx
jmp case.default.0x4d8b9a
jne 0x4d9de6
mov edx, dword [eax + edi*4 + 8]
dec edx
mov dword [esp + 0x2c], edx
jmp case.default.0x4d8b9a
mov edx, dword [eax + edi*4 + 0xc]
dec edx
mov dword [esp + 0x2c], edx
jmp case.default.0x4d8b9a
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov eax, dword [eax + edi*4 + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
lea ecx, [ecx + eax*8]
je 0x4d9e14
mov esi, 2
jmp 0x4d9e26
call fcn.004d0b30
or eax, edx
je 0x4d9e24
mov esi, 1
jmp 0x4d9e26
xor esi, esi
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov eax, dword [eax + edi*4 + 8]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
lea ecx, [ecx + eax*8]
je 0x4d9e46
mov eax, 2
jmp 0x4d9e58
call fcn.004d0b30
or eax, edx
je 0x4d9e56
mov eax, 1
jmp 0x4d9e58
xor eax, eax
mov ecx, dword [esp + 0x18]
lea eax, [eax + esi*2]
cmp byte [ecx + edi*4], 0x48
jne 0x4d9e6e
mov al, byte [esi + eax + 0x78b3ec]
jmp 0x4d9e75
mov al, byte [esi + eax + 0x78b93c]
mov edx, dword [esp + 0x24]
movzx ecx, al
mov eax, dword [esp + 0x18]
mov eax, dword [eax + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov edx, dword [esp + 0x10]
mov ax, word [edi + 8]
mov esi, edi
mov dword [esp + 0x1c], edi
cmp ecx, 2
jne 0x4d9eb6
mov ecx, 0xbe01
and ax, cx
mov ecx, dword [esp + 0x14]
or ax, 1
mov word [edi + 8], ax
jmp 0x4dc010
mov dword [edi], ecx
mov ecx, 0xbe04
and ax, cx
mov dword [edi + 4], 0
mov ecx, dword [esp + 0x14]
or ax, 4
mov word [edi + 8], ax
jmp 0x4dc010
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov eax, dword [ecx + edi*4 + 4]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [ecx + edi*4 + 8]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov ecx, edi
mov dword [esp + 0x1c], edi
call fcn.004d0f30
test byte [esi + 8], 1
jne 0x4d8cc4
mov eax, 4
mov ecx, esi
mov word [edi + 8], ax
call fcn.004d0b30
or eax, edx
jne 0x4d9f32
xor ecx, ecx
mov eax, 1
mov dword [edi + 4], ecx
mov ecx, dword [esp + 0x14]
mov dword [edi], eax
jmp 0x4dc008
xorps xmm0, xmm0
movlpd qword [esp + 0x68], xmm0
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x68]
mov dword [edi + 4], ecx
mov ecx, dword [esp + 0x14]
mov dword [edi], eax
jmp 0x4dc008
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov eax, dword [ecx + edi*4 + 4]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [ecx + edi*4 + 8]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov ecx, edi
mov dword [esp + 0x1c], edi
call fcn.004d0f30
test byte [esi + 8], 1
jne 0x4d8cc4
mov eax, 4
mov ecx, esi
mov word [edi + 8], ax
call fcn.004d0b30
mov ecx, dword [esp + 0x14]
not eax
not edx
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x4dc008
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
mov eax, dword [eax + 0xc8]
mov ecx, dword [edx + edi*4 + 4]
cmp byte [eax + ecx], 0
je 0x4d9fce
mov ecx, dword [edx + edi*4 + 8]
dec ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x14]
jmp case.default.0x4d8b9a
mov byte [eax + ecx], 1
mov ecx, dword [esp + 0x14]
jmp case.default.0x4d8b9a
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov eax, dword [edx + edi*4 + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
lea ecx, [ecx + eax*8]
je 0x4d9ffa
mov eax, dword [edx + edi*4 + 0xc]
jmp 0x4da022
call fcn.004d0be0
xorps xmm1, xmm1
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x4da013
mov eax, 1
jmp 0x4da015
xor eax, eax
mov edx, dword [esp + 0x18]
cmp byte [edx + edi*4], 0x2e
jne 0x4da022
xor eax, 1
test eax, eax
je 0x4d8bef
mov ecx, dword [edx + edi*4 + 8]
dec ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x14]
jmp case.default.0x4d8b9a
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x24]
mov eax, dword [edx + edi*4 + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 8], 1
mov esi, dword [esp + 0x1c]
je case.default.0x4d8b9a
mov edx, dword [edx + edi*4 + 8]
dec edx
mov dword [esp + 0x2c], edx
jmp case.default.0x4d8b9a
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov eax, dword [edx + edi*4 + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
mov ecx, dword [esp + 0x14]
jne case.default.0x4d8b9a
mov edx, dword [edx + edi*4 + 8]
dec edx
mov dword [esp + 0x2c], edx
jmp case.default.0x4d8b9a
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov eax, dword [ecx + edi*4 + 0xc]
mov esi, dword [ecx + edi*4 + 8]
mov ecx, dword [ecx + edi*4 + 4]
mov dword [esp + 0xd8], esi
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov edx, dword [eax + ecx*4]
mov dword [esp + 0x1b8], edx
cmp byte [edx + 0x1a], 0
mov eax, dword [edx + 0x50]
mov ecx, dword [edx]
mov dword [esp + 0x48], eax
mov dword [esp + 0x1b4], ecx
je 0x4da0e9
mov ecx, edx
call fcn.004d46d0
jmp 0x4da0fa
test ecx, ecx
je 0x4da118
cmp byte [ecx + 0x49], 1
je 0x4da118
mov ecx, edx
call fcn.004d4730
mov ecx, eax
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x4dbe1d
mov edx, dword [esp + 0x1b8]
mov ecx, dword [esp + 0x1b4]
jmp 0x4da120
mov dword [esp + 0x10], 0
mov edi, dword [esp + 0x20]
mov eax, dword [edx + 0x3c]
cmp eax, dword [edi + 0x48]
mov edi, dword [esp + 0x50]
je 0x4da325
cmp byte [edx + 0x19], 0
je 0x4da16e
test ecx, ecx
jne 0x4da15e
mov eax, dword [edx + 0x10]
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
mov esi, dword [ecx + eax*8 + 0xc]
mov dword [edx + 0x44], esi
mov dword [edx + 0x40], esi
mov eax, dword [ecx + eax*8 + 0x10]
mov dword [edx + 0x4c], eax
jmp 0x4da293
mov edi, dword [esp + 0x44]
mov ecx, edi
call fcn.004d0f30
jmp 0x4da619
test byte [edx + 0x1c], 4
jne 0x4da202
cmp word [ecx + 0x2c], 0
jne 0x4da1d1
movsx eax, word [ecx + 0x4c]
mov edi, dword [ecx + eax*4 + 0x78]
movzx esi, word [ecx + eax*2 + 0x4e]
mov eax, dword [esp + 0x1b4]
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 + 0x14]
and edx, eax
add edx, dword [edi + 0x38]
call fcn.004c6390
mov ecx, dword [esp + 0x1b8]
add esp, 4
mov edi, dword [esp + 0x50]
mov edx, dword [esp + 0x1b8]
or byte [ecx + 0x48], 2
mov eax, dword [ecx + 0x18]
mov dword [esp + 0x1d0], eax
mov eax, dword [ecx + 0x1c]
mov dword [esp + 0x1d4], eax
mov eax, dword [esp + 0x1b4]
movzx ecx, word [ecx + 0x28]
mov eax, dword [eax + 0x20]
mov dword [edx + 0x4c], eax
mov eax, dword [esp + 0x1d0]
mov dword [edx + 0x40], eax
jmp 0x4da272
cmp word [ecx + 0x2c], 0
jne 0x4da25b
movsx eax, word [ecx + 0x4c]
mov edi, dword [ecx + eax*4 + 0x78]
movzx esi, word [ecx + eax*2 + 0x4e]
mov eax, dword [esp + 0x1b4]
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 + 0x14]
and edx, eax
add edx, dword [edi + 0x38]
call fcn.004c6390
mov ecx, dword [esp + 0x1b8]
add esp, 4
mov edi, dword [esp + 0x50]
mov edx, dword [esp + 0x1b8]
or byte [ecx + 0x48], 2
mov eax, dword [ecx + 0x24]
mov dword [edx + 0x40], eax
mov eax, dword [esp + 0x1b4]
movzx ecx, word [ecx + 0x28]
mov eax, dword [eax + 0x20]
mov dword [edx + 0x4c], eax
mov eax, ecx
movzx esi, ax
mov eax, dword [edx + 0x40]
cmp eax, esi
ja 0x4da283
mov dword [edx + 0x44], eax
jmp 0x4da286
mov dword [edx + 0x44], esi
mov ecx, dword [esp + 0x14]
cmp eax, dword [ecx + 0x58]
ja 0x4de5ce
mov eax, dword [esp + 0x20]
mov ecx, dword [edx + 0x4c]
mov eax, dword [eax + 0x48]
mov dword [edx + 0x3c], eax
mov al, byte [ecx]
cmp al, 0x80
jae 0x4da2b7
movzx ecx, al
mov eax, 1
mov dword [esp + 0x94], ecx
jmp 0x4da2d4
lea edx, [esp + 0x94]
call fcn.004b8500
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x1b8]
movzx eax, al
movzx eax, al
mov dword [edx + 0x48], eax
xor eax, eax
mov word [edx + 0x16], ax
mov eax, dword [esp + 0x48]
mov dword [eax], ecx
cmp ecx, 0x18003
ja 0x4da30e
cmp ecx, dword [edx + 0x40]
ja 0x4da30e
cmp esi, ecx
mov esi, dword [esp + 0xd8]
jae 0x4da331
mov dword [edx + 0x4c], 0
mov dword [edx + 0x44], 0
jmp 0x4da331
mov ecx, 0x11b3f
call fcn.005229a0
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x10], eax
jmp 0x4dc008
movzx eax, word [edx + 0x16]
cmp eax, esi
jg 0x4da509
mov ecx, dword [esp + 0x48]
mov eax, dword [edx + 0x48]
cmp eax, dword [ecx]
jae 0x4da4d6
mov eax, dword [edx + 0x4c]
mov dword [esp + 0x38], eax
test eax, eax
jne 0x4da3b2
xorps xmm0, xmm0
lea eax, [esp + 0x180]
push eax
movaps xmmword [esp + 0x184], xmm0
movaps xmmword [esp + 0x194], xmm0
movq qword [esp + 0x1a4], 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 + 0x1c0]
call fcn.004d1370
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x4d8cc4
mov eax, dword [esp + 0x190]
mov edx, dword [esp + 0x1b8]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x38], eax
movzx edx, word [edx + 0x16]
mov dword [esp + 0x30], edx
mov eax, dword [ecx + edx*4]
mov ecx, dword [ecx]
add ecx, dword [esp + 0x38]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x1b8]
mov dword [esp + 0x28], ecx
mov esi, dword [eax + 0x48]
lea eax, [eax + edx*4]
add esi, dword [esp + 0x38]
add eax, 0x54
mov dword [esp + 0x40], eax
mov al, byte [esi]
cmp al, 0x80
jae 0x4da3fa
movzx ecx, al
mov eax, 1
mov dword [esp + 0x8c], ecx
jmp 0x4da416
lea edx, [esp + 0x8c]
mov ecx, esi
call fcn.004b8500
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x30]
movzx eax, al
add esi, eax
mov eax, dword [esp + 0x40]
mov dword [eax], ecx
call fcn.004d4880
mov ecx, dword [esp + 0x3c]
add ecx, eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x94], ecx
cmp ecx, eax
jb 0x4da45a
mov eax, dword [esp + 0x48]
inc edx
add dword [esp + 0x40], 4
mov dword [esp + 0x30], edx
mov dword [eax + edx*4], ecx
cmp edx, dword [esp + 0xd8]
jg 0x4da45f
cmp esi, dword [esp + 0x28]
jb 0x4da3e3
jmp 0x4da45f
mov esi, dword [esp + 0x28]
inc esi
mov eax, dword [esp + 0x1b8]
mov word [eax + 0x16], dx
mov eax, esi
mov edx, dword [esp + 0x1b8]
sub eax, dword [esp + 0x38]
cmp dword [edx + 0x4c], 0
mov dword [edx + 0x48], eax
jne 0x4da4a4
lea ecx, [esp + 0x180]
call fcn.004d0b10
mov ecx, dword [esp + 0x3c]
mov eax, 1
mov edx, dword [esp + 0x1b8]
mov word [esp + 0x188], ax
mov eax, dword [esp + 0x28]
cmp esi, eax
jb 0x4da4b3
ja 0x4da4b8
cmp ecx, dword [edx + 0x40]
jne 0x4da4b8
cmp ecx, dword [edx + 0x40]
jbe 0x4da4cf
mov ecx, 0x11b93
call fcn.005229a0
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x10], eax
jmp 0x4dc008
mov esi, dword [esp + 0xd8]
movzx eax, word [edx + 0x16]
cmp eax, esi
jg 0x4da509
mov eax, dword [esp + 0x18]
cmp byte [eax + edi*4 + 1], 0xf8
jne 0x4da15e
mov edx, dword [eax + edi*4 + 0x10]
mov edi, dword [esp + 0x44]
mov ecx, edi
push 0x800
call fcn.004d10a0
add esp, 4
jmp 0x4da619
mov eax, dword [esp + 0x44]
mov ecx, 0x2460
test word [eax + 8], cx
je 0x4da526
mov ecx, eax
call fcn.004d0f30
mov edx, dword [esp + 0x1b8]
mov edx, dword [edx + esi*4 + 0x54]
mov esi, dword [esp + 0x1b8]
mov edi, dword [esp + 0xd8]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x30], edx
mov eax, dword [esi + 0x44]
mov dword [esp + 0x8c], edx
cmp eax, dword [ecx + edi*4 + 4]
mov edi, dword [esp + 0x50]
jb 0x4da577
mov ecx, dword [esi + 0x4c]
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0xd8]
mov edi, dword [esp + 0x44]
push edi
add ecx, dword [eax + esi*4]
call fcn.004d49a0
add esp, 4
jmp 0x4da612
mov eax, dword [esp + 0x18]
mov al, byte [eax + edi*4 + 3]
test al, 0xc0
je 0x4da591
cmp edx, 0xc
jb 0x4da58d
test dl, 1
je 0x4da59e
test al, al
js 0x4da59e
mov ecx, edx
call fcn.004d4880
mov ecx, eax
test ecx, ecx
jne 0x4da5bc
mov edi, dword [esp + 0x44]
lea ecx, [esp + 0x1d0]
xor eax, eax
cmp edx, 0xd
push edi
cmova ecx, eax
call fcn.004d49a0
add esp, 4
jmp 0x4da612
mov eax, dword [esi + 0x1c]
mov edi, dword [esp + 0x44]
shr eax, 2
not eax
and eax, 1
push edi
push eax
mov eax, dword [esp + 0x50]
push ecx
mov ecx, dword [esp + 0xe4]
mov edx, dword [eax + ecx*4]
mov ecx, dword [esp + 0x1c0]
call fcn.004d1370
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x4d8cc4
mov edx, dword [esp + 0x30]
mov ecx, dword [edi + 0x10]
push edi
call fcn.004d49a0
mov eax, 0xefff
add esp, 4
and word [edi + 8], ax
mov al, byte [esp + 0x4c]
mov byte [edi + 0xa], al
movzx esi, word [edi + 8]
test esi, 0x1000
je 0x4d8cc4
mov eax, dword [edi + 0x10]
mov dword [esp + 0x30], eax
test eax, eax
je 0x4d8cc4
mov edi, dword [edi + 0xc]
and esi, 0x12
mov ecx, dword [esp + 0x44]
lea edx, [edi + 2]
call fcn.004d0700
test eax, eax
jne 0x4de746
mov eax, dword [esp + 0x44]
push edi
push dword [esp + 0x34]
push dword [eax + 0x10]
call fcn.006e6940
mov ecx, dword [esp + 0x50]
add esp, 0xc
or esi, 0x200
mov eax, dword [ecx + 0x10]
mov byte [edi + eax], 0
mov eax, dword [ecx + 0x10]
mov byte [edi + eax + 1], 0
mov word [ecx + 8], si
mov ecx, dword [esp + 0x14]
jmp 0x4dc008
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov esi, dword [eax + edi*4 + 0x10]
mov eax, dword [eax + edi*4 + 4]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov al, byte [esi]
test al, al
je 0x4dc008
nop dword [eax]
push dword [esp + 0x4c]
mov dl, al
lea esi, [esi + 1]
mov ecx, edi
call fcn.004d88e0
mov al, byte [esi]
add esp, 4
add edi, 0x28
test al, al
jne 0x4da6b0
mov ecx, dword [esp + 0x14]
jmp 0x4dc008
mov edx, dword [esp + 0x18]
xor eax, eax
mov ecx, dword [esp + 0x24]
xorps xmm0, xmm0
mov dword [esp + 0x50], eax
mov dword [esp + 0x3c], eax
mov eax, dword [edx + edi*4 + 4]
mov esi, dword [edx + edi*4 + 0x10]
movlpd qword [esp + 0x68], xmm0
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [edx + edi*4 + 8]
mov dword [esp + 0x1b4], ecx
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [ecx + eax*8]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x20]
movzx edx, byte [eax + 0x57]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x30], edx
mov eax, dword [eax + edi*4 + 0xc]
mov edi, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [esp + 0x1c], eax
test esi, esi
je 0x4da761
mov al, byte [esi]
mov edi, ecx
push dword [esp + 0x4c]
mov dl, al
mov ecx, edi
call fcn.004d88e0
mov al, byte [esi + 1]
lea esi, [esi + 1]
add esp, 4
add edi, 0x28
test al, al
jne 0x4da740
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x6c]
mov edi, dword [esp + 0x40]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x28], edi
mov dword [esp + 0x44], eax
nop dword [eax]
mov ecx, edi
call fcn.004d4780
mov esi, eax
mov ecx, esi
mov dword [edi + 0x1c], esi
call fcn.004d4880
mov edi, eax
mov ecx, 0x4000
mov eax, dword [esp + 0x28]
test word [eax + 8], cx
je 0x4da7bf
mov ecx, dword [esp + 0x44]
or ecx, dword [esp + 0x38]
je 0x4da7b7
mov ecx, eax
call fcn.004d0790
jmp 0x4da7bf
mov eax, dword [eax]
add dword [esp + 0x3c], eax
sub edi, eax
mov eax, edi
cdq
add dword [esp + 0x44], eax
adc dword [esp + 0x38], edx
cmp esi, 0x7f
ja 0x4da7d6
mov edx, 1
jmp 0x4da7f3
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 0x4da7f3
cmp edx, 9
jl 0x4da7e0
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x50]
sub edi, 0x28
add eax, edx
mov dword [esp + 0x28], edi
mov edx, dword [esp + 0x30]
mov dword [esp + 0x50], eax
cmp edi, dword [esp + 0x1b4]
jae 0x4da780
cmp eax, 0x7e
jle 0x4da860
cdq
xor edi, edi
mov ecx, eax
shrd ecx, edx, 7
inc edi
shr edx, 7
mov eax, ecx
or eax, edx
je 0x4da836
cmp edi, 9
jl 0x4da823
mov eax, dword [esp + 0x50]
add eax, edi
xor esi, esi
mov dword [esp + 0x50], eax
cdq
mov ecx, eax
shrd ecx, edx, 7
inc esi
shr edx, 7
mov eax, ecx
or eax, edx
je 0x4da858
cmp esi, 9
jl 0x4da845
mov eax, dword [esp + 0x50]
cmp edi, esi
jge 0x4da865
inc eax
mov dword [esp + 0x50], eax
mov ecx, dword [esp + 0x38]
cdq
mov edi, eax
mov esi, edx
mov eax, dword [esp + 0x14]
add dword [esp + 0x44], edi
adc ecx, esi
mov eax, dword [eax + 0x58]
cdq
cmp ecx, edx
jg 0x4de5ca
mov edx, dword [esp + 0x44]
jl 0x4da892
cmp edx, eax
ja 0x4de5ca
mov ecx, dword [esp + 0x1c]
call fcn.004d0700
test eax, eax
jne 0x4de746
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x50]
cmp eax, 0x80
jae 0x4da8c6
mov edi, dword [esp + 0x28]
mov byte [edi], al
mov eax, 1
jmp 0x4da8d6
push esi
push edi
mov edi, dword [esp + 0x30]
mov ecx, edi
call fcn.004b8320
add esp, 8
mov edx, dword [esp + 0x1b4]
movzx esi, al
mov ecx, dword [edx + 0x1c]
mov dword [esp + 0x30], ecx
cmp ecx, 0x80
jae 0x4da8f9
mov byte [esi + edi], cl
mov eax, 1
jmp 0x4da912
push 0
push ecx
lea ecx, [esi + edi]
call fcn.004b8320
mov ecx, dword [esp + 0x38]
add esp, 8
mov edx, dword [esp + 0x1b4]
add edi, dword [esp + 0x50]
movzx eax, al
add esi, eax
lea eax, [ecx - 1]
mov dword [esp + 0x30], esi
cmp eax, 6
ja 0x4da968
mov eax, dword [esp + 0x1b4]
mov edx, dword [edx]
mov eax, dword [eax + 4]
cmp ecx, 7
je 0x4da944
cmp ecx, 0xc
jb 0x4da944
add ecx, 0xfffffff4
shr ecx, 1
jmp 0x4da94b
movzx ecx, byte [ecx + 0x78978c]
mov esi, ecx
nop dword [eax]
dec ecx
mov byte [ecx + edi], dl
shrd edx, eax, 8
shr eax, 8
test ecx, ecx
jne 0x4da950
mov edx, dword [esp + 0x1b4]
jmp 0x4da988
cmp ecx, 0xc
jb 0x4da986
mov esi, dword [edx + 0xc]
push esi
push dword [edx + 0x10]
push edi
call fcn.006e6940
mov edx, dword [esp + 0x1c0]
add esp, 0xc
jmp 0x4da988
xor esi, esi
add dword [esp + 0x50], esi
add edx, 0x28
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x28]
mov dword [esp + 0x1b4], edx
cmp edx, dword [esp + 0x40]
jbe 0x4da8e0
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x44]
mov dword [edi + 0xc], eax
mov eax, 0x10
mov word [edi + 8], ax
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x4da9cf
mov dword [edi], eax
mov eax, 0x4010
mov word [edi + 8], ax
mov ecx, dword [esp + 0x14]
mov byte [edi + 0xa], 1
jmp 0x4dc008
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x50]
xorps xmm0, xmm0
movlpd qword [esp + 0x50], xmm0
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax]
call fcn.004ce390
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x50]
mov dword [esi], eax
mov eax, dword [esp + 0x54]
mov dword [esi + 4], eax
jmp case.default.0x4d8b9a
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + edi*4 + 4]
mov edi, dword [ecx + edi*4 + 0x10]
mov dword [esp + 0xd8], eax
test eax, eax
jne 0x4dab21
mov edx, dword [esp + 0x14]
cmp dword [edx + 0x9c], eax
jg 0x4de458
mov ecx, edi
call fcn.004b7300
mov ecx, dword [edx + 0x1f4]
mov esi, eax
add ecx, dword [edx + 0x1f0]
xor edx, edx
push ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x34], esi
call fcn.00512970
mov ecx, eax
add esp, 4
mov dword [esp + 0x10], ecx
test ecx, ecx
mov ecx, dword [esp + 0x14]
jne 0x4dbe21
lea eax, [esi + 0x21]
push 0
push eax
call fcn.004b49d0
mov esi, eax
add esp, 8
test esi, esi
je 0x4dab0c
mov ecx, dword [esp + 0x30]
lea edx, [esi + 0x20]
inc ecx
mov dword [esi], edx
push ecx
push edi
push edx
call fcn.006e6940
mov eax, dword [esp + 0x20]
add esp, 0xc
cmp byte [eax + 0x3f], 0
je 0x4daabe
mov byte [eax + 0x3f], 0
mov byte [eax + 0x46], 1
jmp 0x4daac4
inc dword [eax + 0x1f0]
mov eax, dword [eax + 0x1e8]
mov ecx, dword [esp + 0x14]
inc dword [esp + 0x2c]
mov edi, dword [esp + 0x2c]
mov dword [esi + 0x18], eax
mov eax, dword [ecx + 0x1f8]
mov dword [ecx + 0x1e8], esi
mov dword [esi + 8], eax
mov eax, dword [ecx + 0x1fc]
mov dword [esi + 0xc], eax
mov eax, dword [ecx + 0x200]
mov dword [esi + 0x10], eax
mov eax, dword [ecx + 0x204]
mov dword [esi + 0x14], eax
mov esi, dword [esp + 0x1c]
jmp 0x4d8b2c
inc dword [esp + 0x2c]
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x2c]
jmp 0x4d8b2c
mov eax, dword [esp + 0x14]
xor ecx, ecx
mov dword [esp + 0x1b4], ecx
mov esi, dword [eax + 0x1e8]
mov dword [esp + 0x28], esi
test esi, esi
je 0x4dab61
nop dword [eax]
push edi
push dword [esi]
call fcn.004b7610
add esp, 8
test eax, eax
je 0x4dab8e
mov esi, dword [esi + 0x18]
inc dword [esp + 0x1b4]
mov dword [esp + 0x28], esi
test esi, esi
jne 0x4dab40
mov eax, dword [esp + 0x20]
push edi
mov edi, dword [esp + 0x18]
add eax, 0x2c
push str.no_such_savepoint:__s
push edi
push eax
call fcn.004b4c70
mov ecx, 1
add esp, 0x10
inc dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
jmp 0x4dc029
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0xd8]
cmp dword [eax + 0x9c], 0
jle 0x4dabab
cmp edx, 1
je 0x4de480
cmp dword [esi + 0x18], 0
jne 0x4dac05
cmp byte [eax + 0x46], 0
je 0x4dac05
mov dword [esp + 0x3c], 1
cmp edx, 1
jne 0x4dac0d
mov ecx, dword [esp + 0x20]
call fcn.004d3e60
mov edi, eax
test edi, edi
jne 0x4dc0a0
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
mov byte [edi + 0x3f], 1
call fcn.004d3ed0
cmp eax, 5
mov eax, dword [esp + 0x20]
je 0x4de4a8
mov byte [edi + 0x46], 0
mov eax, dword [eax + 0x50]
mov dword [esp + 0x10], eax
jmp 0x4dacf8
mov dword [esp + 0x3c], 0
mov eax, dword [eax + 0x1f0]
sub eax, dword [esp + 0x1b4]
mov ecx, dword [esp + 0x14]
dec eax
mov dword [esp + 0x1b4], eax
cmp edx, 2
jne 0x4dad23
mov eax, dword [ecx + 0x18]
xor edi, edi
shr eax, 1
and eax, 1
mov dword [esp + 0x30], eax
cmp dword [ecx + 0x14], edi
jle 0x4dac8b
xor eax, 1
xor esi, esi
mov dword [esp + 0x40], eax
nop dword [eax + eax]
mov ecx, dword [ecx + 0x10]
mov edx, 0x204
push eax
mov ecx, dword [esi + ecx + 4]
call fcn.004c9110
mov ecx, eax
add esp, 4
mov dword [esp + 0x10], ecx
test ecx, ecx
mov ecx, dword [esp + 0x14]
jne 0x4dbe21
mov eax, dword [esp + 0x40]
inc edi
add esi, 0x10
cmp edi, dword [ecx + 0x14]
jl 0x4dac50
mov edx, dword [esp + 0xd8]
mov eax, dword [esp + 0x1b4]
xor edi, edi
cmp dword [ecx + 0x14], edi
jle 0x4dacd9
xor esi, esi
nop dword [eax + eax]
mov ecx, dword [ecx + 0x10]
push eax
mov ecx, dword [esi + ecx + 4]
call fcn.004c9380
mov ecx, eax
add esp, 4
mov dword [esp + 0x10], ecx
test ecx, ecx
mov ecx, dword [esp + 0x14]
jne 0x4dbe21
mov eax, dword [esp + 0x1b4]
inc edi
mov edx, dword [esp + 0xd8]
add esi, 0x10
cmp edi, dword [ecx + 0x14]
jl 0x4daca0
cmp dword [esp + 0x30], 0
mov edi, dword [esp + 0x14]
je 0x4dacf4
mov ecx, edi
call fcn.004d5de0
call fcn.004ee490
or dword [edi + 0x18], 2
mov esi, dword [esp + 0x28]
cmp dword [edi + 0x1e8], esi
je 0x4dad6d
cmp dword [edi + 0x208], 0
mov ecx, dword [edi + 0x1e8]
mov eax, dword [ecx + 0x18]
mov dword [edi + 0x1e8], eax
je 0x4dad30
mov edx, ecx
mov ecx, edi
call fcn.004b4710
jmp 0x4dad5f
mov dword [esp + 0x30], 0
jmp 0x4dac92
cmp ecx, dword [edi + 0x114]
jb 0x4dad56
cmp ecx, dword [edi + 0x118]
jae 0x4dad56
mov eax, dword [edi + 0x110]
mov dword [ecx], eax
dec dword [edi + 0xfc]
mov dword [edi + 0x110], ecx
jmp 0x4dad5f
push ecx
call fcn.004b4670
add esp, 4
dec dword [edi + 0x1f0]
cmp dword [edi + 0x1e8], esi
jne 0x4dad00
mov edi, dword [esp + 0xd8]
mov ecx, dword [esp + 0x14]
cmp edi, 1
jne 0x4dada2
mov eax, dword [esi + 0x18]
mov edx, esi
mov dword [ecx + 0x1e8], eax
mov esi, ecx
call fcn.004b4750
cmp dword [esp + 0x3c], 0
jne 0x4dc006
dec dword [esi + 0x1f0]
jmp 0x4dadd3
cmp dword [esp + 0x3c], 0
mov eax, dword [esi + 8]
mov dword [ecx + 0x1f8], eax
mov eax, dword [esi + 0xc]
mov dword [ecx + 0x1fc], eax
mov eax, dword [esi + 0x10]
mov dword [ecx + 0x200], eax
mov eax, dword [esi + 0x14]
mov dword [ecx + 0x204], eax
jne 0x4dc008
mov esi, ecx
mov ecx, dword [esp + 0x1b4]
mov edx, edi
push ecx
mov ecx, esi
call fcn.00512970
mov ecx, eax
add esp, 4
mov dword [esp + 0x10], ecx
test ecx, ecx
mov ecx, dword [esp + 0x14]
jne 0x4dbe21
jmp 0x4dc008
mov eax, dword [esp + 0x18]
mov edx, dword [eax + edi*4 + 8]
test edx, edx
je 0x4dae17
test dword [ecx + 0x18], 0x2000000
jne 0x4de4c0
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x14]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov esi, dword [eax + ecx*8 + 4]
test esi, esi
je 0x4daf73
mov ecx, esi
call fcn.004c8180
mov ecx, eax
mov dword [esp + 0x10], ecx
cmp ecx, 5
je 0x4de4cd
test ecx, ecx
jne 0x4dbe1d
mov eax, dword [esp + 0x18]
cmp dword [eax + edi*4 + 8], ecx
je 0x4daf3b
mov edx, dword [esp + 0x20]
test byte [edx + 0x58], 0x80
je 0x4daf3b
mov ecx, dword [esp + 0x14]
cmp byte [ecx + 0x3f], 0
je 0x4dae81
cmp dword [ecx + 0x98], 1
jle 0x4daf3b
cmp dword [edx + 0x68], 0
jne 0x4dae9c
mov eax, dword [ecx + 0x1f0]
inc dword [ecx + 0x1f4]
add eax, dword [ecx + 0x1f4]
mov dword [edx + 0x68], eax
mov eax, dword [edx + 0x68]
xor edx, edx
dec eax
push eax
call fcn.00512970
mov edx, eax
add esp, 4
mov dword [esp + 0x10], edx
test edx, edx
jne 0x4daf03
mov eax, dword [esp + 0x20]
mov ecx, dword [esi + 4]
mov dword [esp + 0x28], ecx
mov eax, dword [eax + 0x68]
mov dword [esp + 0x30], eax
cmp byte [esi + 9], dl
je 0x4daee3
inc dword [esi + 0xc]
cmp byte [esi + 0xa], dl
jne 0x4daee3
mov ecx, esi
call fcn.004c5a40
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
mov edx, eax
call fcn.004c2af0
cmp byte [esi + 9], 0
mov dword [esp + 0x10], eax
je 0x4daf03
add dword [esi + 0xc], 0xffffffff
jne 0x4daf03
mov ecx, esi
call fcn.004c5a00
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
mov eax, dword [ecx + 0x1f8]
mov dword [edx + 0x98], eax
mov eax, dword [ecx + 0x1fc]
mov dword [edx + 0x9c], eax
mov eax, dword [ecx + 0x200]
mov dword [edx + 0xa0], eax
mov eax, dword [ecx + 0x204]
mov dword [edx + 0xa4], eax
lea eax, [esp + 0x98]
mov edx, 1
push eax
mov ecx, esi
call fcn.004ce250
mov eax, dword [esp + 0x1c]
add esp, 4
mov esi, dword [esp + 0x98]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x14]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax + 4]
jmp 0x4daf7e
xor esi, esi
xor eax, eax
mov dword [esp + 0x98], esi
mov ecx, dword [esp + 0x18]
cmp byte [ecx + edi*4 + 3], 0
je 0x4d8cc4
cmp esi, dword [ecx + edi*4 + 0xc]
jne 0x4daf9d
cmp eax, dword [ecx + edi*4 + 0x10]
je 0x4d8cc4
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
mov edx, dword [eax + 0x2c]
call fcn.004b4750
mov ecx, dword [esp + 0x14]
mov edx, str.database_schema_has_changed
call fcn.004b4bd0
mov ecx, dword [esp + 0x20]
mov dword [ecx + 0x2c], eax
mov eax, dword [esp + 0x18]
mov edx, dword [eax + edi*4 + 4]
mov ecx, edx
mov edi, dword [esp + 0x14]
add ecx, ecx
mov eax, dword [edi + 0x10]
mov eax, dword [eax + ecx*8 + 0xc]
cmp dword [eax], esi
je 0x4dafe4
mov ecx, edi
call fcn.004ee450
mov ecx, dword [esp + 0x20]
mov edx, 0x11
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x10], 0x11
or dword [ecx + 0x58], 0x20
mov ecx, edi
jmp 0x4dc010
mov edx, dword [esp + 0x18]
lea eax, [esp + 0xa0]
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.004ce250
mov eax, dword [esp + 0xa4]
add esp, 4
mov ecx, dword [esp + 0x14]
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp case.default.0x4d8b9a
mov eax, dword [esp + 0x18]
mov esi, dword [eax + edi*4 + 4]
mov eax, dword [eax + edi*4 + 0xc]
shl esi, 4
add esi, dword [ecx + 0x10]
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, eax
mov dword [esp + 0x28], eax
call fcn.004d0ce0
mov eax, dword [esp + 0x28]
mov ecx, dword [esi + 4]
push dword [eax]
mov eax, dword [esp + 0x1c]
mov edx, dword [eax + edi*4 + 8]
call fcn.004ce2d0
mov edx, dword [esp + 0x1c]
add esp, 4
mov dword [esp + 0x10], eax
mov eax, dword [edx + edi*4 + 8]
cmp eax, 1
jne 0x4db0a5
mov ecx, dword [esi + 0xc]
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
mov dword [ecx], eax
mov eax, dword [esp + 0x14]
or dword [eax + 0x18], 2
jmp 0x4db0ba
cmp eax, 2
jne 0x4db0b6
mov eax, dword [esp + 0x28]
mov ecx, dword [esi + 0xc]
mov al, byte [eax]
mov byte [ecx + 0x4c], al
mov eax, dword [esp + 0x14]
cmp dword [edx + edi*4 + 4], 1
jne 0x4d8cc4
mov ecx, eax
call fcn.004d5de0
mov ecx, dword [esp + 0x20]
and dword [ecx + 0x58], 0xffffffdf
mov ecx, dword [esp + 0x14]
jmp 0x4dc008
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x18]
test eax, eax
je 0x4db10a
mov eax, dword [eax + 0x20]
cmp eax, dword [ecx + edi*4 + 8]
je 0x4d8bef
jmp 0x4db10a
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
test byte [eax + 0x58], 0x20
jne 0x4de4f8
mov eax, dword [ecx + edi*4 + 0xc]
mov esi, dword [ecx + edi*4 + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xd8], eax
shl eax, 4
mov dword [esp + 0x38], 0
add eax, dword [ecx + 0x10]
mov dword [esp + 0x40], 0
mov dword [esp + 0x28], esi
mov ecx, dword [eax + 4]
mov dword [esp + 0x3c], ecx
cmp dl, 0x37
jne 0x4db16d
mov eax, dword [eax + 0xc]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x30], 1
mov al, byte [eax + 0x4c]
cmp al, byte [ecx + 0x57]
jae 0x4db175
mov byte [ecx + 0x57], al
jmp 0x4db175
mov dword [esp + 0x30], 0
mov edx, dword [esp + 0x18]
test byte [edx + edi*4 + 3], 2
je 0x4db1a4
mov ecx, dword [esp + 0x24]
lea eax, [esi + esi*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.004d0ce0
mov eax, dword [esi]
mov dword [esp + 0x28], eax
cmp eax, 2
jl 0x4de4e5
mov edx, dword [esp + 0x18]
mov al, byte [edx + edi*4 + 1]
cmp al, 0xfa
jne 0x4db1c0
mov eax, dword [edx + edi*4 + 0x10]
mov dword [esp + 0x40], eax
movzx ecx, word [eax + 8]
movzx eax, word [eax + 6]
add ecx, eax
jmp 0x4db1ce
cmp al, 0xf2
jne 0x4db1ca
mov ecx, dword [edx + edi*4 + 0x10]
jmp 0x4db1ce
mov ecx, dword [esp + 0x38]
mov edx, dword [edx + edi*4 + 4]
push 1
push dword [esp + 0xdc]
push ecx
mov ecx, dword [esp + 0x2c]
call fcn.004d8730
mov esi, eax
add esp, 0xc
test esi, esi
je 0x4de746
mov eax, dword [esp + 0x28]
or dword [esi + 0x1c], 8
mov dword [esi + 0x20], eax
mov eax, dword [esi]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x3c]
mov byte [esi + 0x19], 1
cmp byte [eax + 9], 0
je 0x4db225
inc dword [eax + 0xc]
cmp byte [eax + 0xa], 0
jne 0x4db225
mov ecx, eax
call fcn.004c5a40
mov eax, dword [esp + 0x3c]
push dword [esp + 0x38]
mov edx, dword [esp + 0x2c]
mov ecx, eax
push dword [esp + 0x44]
push dword [esp + 0x38]
call fcn.004c9430
mov ecx, dword [esp + 0x48]
add esp, 0xc
mov dword [esp + 0x10], eax
cmp byte [ecx + 9], 0
je 0x4db258
add dword [ecx + 0xc], 0xffffffff
jne 0x4db258
call fcn.004c5a00
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x40]
mov dword [esi + 8], eax
mov eax, dword [esi]
mov cl, byte [edx + edi*4 + 3]
and cl, 1
mov byte [eax + 0x4a], cl
xor ecx, ecx
cmp byte [edx + edi*4 + 1], 0xfa
mov eax, 4
cmovne ecx, eax
mov eax, dword [esi + 0x1c]
and eax, 0xfffffffb
or ecx, eax
mov dword [esi + 0x1c], ecx
mov ecx, dword [esp + 0x14]
jmp 0x4dc008
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
push 1
push 0xffffffffffffffff
push dword [eax + edi*4 + 8]
mov edx, dword [eax + edi*4 + 4]
call fcn.004d8730
mov esi, eax
add esp, 0xc
mov dword [esp + 0x28], esi
test esi, esi
je 0x4de746
mov eax, dword [esp + 0x18]
lea ecx, [esi + 4]
or dword [esi + 0x1c], 1
xor edx, edx
mov byte [esi + 0x19], 1
push 0x41e
movzx eax, byte [eax + edi*4 + 3]
or eax, 5
mov dword [esp + 0x34], ecx
push eax
mov eax, dword [esp + 0x1c]
push ecx
push eax
mov ecx, dword [eax]
call fcn.004c71e0
add esp, 0x10
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4db440
mov ecx, dword [esi + 4]
lea edx, [eax + 1]
call fcn.004c8180
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4db440
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + edi*4 + 0x10]
mov dword [esp + 0x3c], eax
test eax, eax
je 0x4db3eb
movzx eax, byte [ecx + edi*4 + 3]
or eax, 2
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x30]
mov esi, dword [eax]
cmp byte [esi + 9], 0
je 0x4db34e
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x4db34e
mov ecx, esi
call fcn.004c5a40
push dword [esp + 0x40]
lea edx, [esp + 0xa8]
mov ecx, esi
call fcn.004cdad0
add esp, 4
mov dword [esp + 0x10], eax
cmp byte [esi + 9], 0
je 0x4db37e
add dword [esi + 0xc], 0xffffffff
jne 0x4db37e
mov ecx, esi
call fcn.004c5a00
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x4db3e1
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x3c]
mov dword [eax + 8], ecx
mov eax, dword [eax]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x30]
mov esi, dword [eax]
cmp byte [esi + 9], 0
je 0x4db3af
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x4db3af
mov ecx, esi
call fcn.004c5a40
push dword [esp + 0x40]
mov edx, dword [esp + 0xa8]
mov ecx, esi
push dword [esp + 0x40]
push 1
call fcn.004c9430
add esp, 0xc
mov dword [esp + 0x10], eax
cmp byte [esi + 9], 0
je 0x4db3e1
add dword [esi + 0xc], 0xffffffff
jne 0x4db3e1
mov ecx, esi
call fcn.004c5a00
mov esi, dword [esp + 0x28]
and dword [esi + 0x1c], 0xfffffffb
jmp 0x4db440
mov eax, dword [esi]
mov esi, dword [esi + 4]
mov dword [esp + 0x30], eax
cmp byte [esi + 9], 0
je 0x4db40a
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x4db40a
mov ecx, esi
call fcn.004c5a40
push dword [esp + 0x30]
mov edx, 1
mov ecx, esi
push 0
push 1
call fcn.004c9430
add esp, 0xc
mov dword [esp + 0x10], eax
cmp byte [esi + 9], 0
je 0x4db438
add dword [esi + 0xc], 0xffffffff
jne 0x4db438
mov ecx, esi
call fcn.004c5a00
mov esi, dword [esp + 0x28]
or dword [esi + 0x1c], 4
mov eax, dword [esp + 0x18]
xor ecx, ecx
cmp byte [eax + edi*4 + 3], 8
mov eax, 8
cmovne ecx, eax
mov eax, dword [esi + 0x1c]
and eax, 0xfffffff7
or ecx, eax
mov dword [esi + 0x1c], ecx
mov ecx, dword [esp + 0x14]
jmp 0x4dc008
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
push 1
push 0xffffffffffffffff
push dword [eax + edi*4 + 8]
mov edx, dword [eax + edi*4 + 4]
call fcn.004d8730
add esp, 0xc
test eax, eax
je 0x4de746
mov edx, dword [esp + 0x18]
push eax
mov ecx, dword [edx + edi*4 + 0x10]
mov dword [eax + 8], ecx
mov edx, dword [edx + edi*4 + 0xc]
mov ecx, dword [esp + 0x18]
call fcn.004dfc10
mov ecx, dword [esp + 0x18]
add esp, 4
mov dword [esp + 0x10], eax
jmp case.default.0x4d8b9a
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov edx, dword [eax + ecx*4]
mov edi, dword [edx + 0x28]
mov ecx, edi
mov esi, dword [edx + 0x2c]
add ecx, 1
mov eax, esi
mov dword [edx + 0x28], ecx
adc eax, 0
or edi, esi
mov esi, dword [esp + 0x1c]
mov dword [edx + 0x2c], eax
mov edx, dword [esp + 0x10]
jne 0x4d9b4c
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx + eax*4 + 8]
dec ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x14]
jmp 0x4dc010
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
push 0
push 0xffffffffffffffff
push dword [eax + edi*4 + 0xc]
mov edx, dword [eax + edi*4 + 4]
call fcn.004d8730
add esp, 0xc
test eax, eax
je 0x4de746
mov ecx, dword [esp + 0x18]
mov byte [eax + 0x19], 1
mov ecx, dword [ecx + edi*4 + 8]
or dword [eax + 0x1c], 4
mov dword [eax + 0x10], ecx
mov ecx, dword [esp + 0x14]
jmp case.default.0x4d8b9a
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x4db5ae
mov eax, dword [esp + 0x20]
mov edx, esi
mov ecx, dword [eax]
call fcn.004e0280
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x4db577
call fcn.004c7910
jmp 0x4db5ae
mov ecx, dword [esi]
test ecx, ecx
je 0x4db584
call fcn.004c94d0
jmp 0x4db5ae
mov edx, dword [esi + 0x24]
test edx, edx
je 0x4db5ae
mov eax, dword [edx]
mov esi, dword [esp + 0x20]
push edx
mov ecx, dword [eax]
mov eax, dword [esi + 0x58]
and eax, 0xfffffff7
or eax, 4
mov dword [esi + 0x58], eax
mov eax, dword [ecx + 0x1c]
call eax
mov eax, esi
add esp, 4
and dword [eax + 0x58], 0xfffffff3
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov dword [eax + ecx*4], 0
mov ecx, dword [esp + 0x14]
jmp 0x4dc008
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov eax, dword [esp + 0x18]
test byte [esi + 0x1c], 4
movzx edx, byte [eax + edi*4]
mov dword [esp + 0xd8], edx
mov byte [esi + 0x19], 0
je 0x4db6d3
mov eax, dword [eax + edi*4 + 0xc]
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov al, byte [ecx + 8]
and al, 0xe
mov dword [esp + 0x28], ecx
cmp al, 2
jne 0x4db622
xor edx, edx
call fcn.004d8850
mov ecx, dword [esp + 0x28]
call fcn.004d0b30
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], edx
movzx ecx, word [ecx + 8]
test cl, 4
jne 0x4db6a6
test cl, 8
jne 0x4db657
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 8]
dec ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x14]
jmp 0x4dc008
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
call fcn.00725690
mov eax, dword [esp + 0x28]
movsd xmm1, qword [eax]
comisd xmm0, xmm1
jbe 0x4db68d
mov ecx, dword [esp + 0xd8]
test cl, 1
lea eax, [ecx - 1]
cmove eax, ecx
mov ecx, eax
mov dword [esp + 0xd8], ecx
jmp 0x4db6a6
comisd xmm1, xmm0
jbe 0x4db6a6
mov eax, dword [esp + 0xd8]
test al, 1
jne 0x4db6a6
inc eax
mov dword [esp + 0xd8], eax
mov ecx, dword [esi]
lea eax, [esp + 0x1c0]
push eax
push 0
push dword [esp + 0x48]
xor edx, edx
push dword [esp + 0x48]
call fcn.004c9e70
mov ecx, eax
mov eax, dword [esp + 0x4c]
mov dword [esi + 0x30], eax
mov eax, dword [esp + 0x50]
mov dword [esi + 0x34], eax
jmp 0x4db744
mov ecx, dword [eax + edi*4 + 0x10]
test dl, 1
mov eax, dword [esi + 8]
mov dword [esp + 0x14c], eax
sete al
mov word [esp + 0x150], cx
mov ecx, dword [esp + 0x24]
lea eax, [eax*2 - 1]
mov byte [esp + 0x152], al
mov eax, dword [esp + 0x18]
mov eax, dword [eax + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, 0x4000
mov dword [esp + 0x154], ecx
test word [ecx + 8], ax
je 0x4db726
call fcn.004d0790
mov ecx, dword [esi]
lea eax, [esp + 0x1c0]
push eax
push 0
push 0
push 0
lea edx, [esp + 0x15c]
call fcn.004c9e70
mov ecx, eax
add esp, 0x10
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x4dbe1d
mov eax, dword [esp + 0xd8]
mov byte [esi + 0x1a], 0
mov dword [esi + 0x3c], 0
mov ecx, dword [esp + 0x1c0]
cmp eax, 0x40
jl 0x4db7ac
test ecx, ecx
js 0x4db790
jne 0x4db77c
cmp eax, 0x41
je 0x4db790
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1c0], 0
jmp 0x4dc008
lea eax, [esp + 0x1c0]
mov dword [esp + 0x1c0], 0
push eax
push dword [esi]
call fcn.004ca440
jmp 0x4db7e5
test ecx, ecx
jg 0x4db7cb
jne 0x4db7b7
cmp eax, 0x3e
je 0x4db7cb
mov eax, dword [esi]
xor ecx, ecx
cmp byte [eax + 0x49], 1
setne cl
mov dword [esp + 0x1c0], ecx
jmp 0x4db7f6
lea eax, [esp + 0x1c0]
mov dword [esp + 0x1c0], 0
push eax
push dword [esi]
call fcn.004ca5f0
mov ecx, eax
add esp, 8
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x4dbe1d
cmp dword [esp + 0x1c0], 0
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
je 0x4d9b4c
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 8]
dec ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x14]
jmp 0x4dc010
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esp + 0x24]
mov byte [esi + 0x19], 0
mov eax, dword [edx + edi*4 + 8]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.004d0b30
mov ecx, dword [esp + 0x14]
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], edx
mov byte [esi + 0x1a], 1
jmp 0x4dc008
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
mov dword [esp + 0x40], 0
cmp dword [edx + edi*4 + 0x10], 0
mov eax, dword [eax + 0x38]
mov ecx, dword [edx + edi*4 + 4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edx + edi*4 + 0xc]
mov dword [esp + 0x3c], ecx
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov dword [esp + 0x30], esi
jle 0x4db928
mov eax, dword [ecx + 8]
xor ecx, ecx
mov dword [esp + 0x124], eax
mov ax, word [edx + edi*4 + 0x10]
xor edx, edx
mov word [esp + 0x1b8], ax
mov word [esp + 0x128], ax
mov dword [esp + 0x12c], esi
mov dword [esp + 0x28], edx
cmp cx, ax
jae 0x4db91f
mov edi, dword [esp + 0x30]
xor esi, esi
mov edx, 0x4000
lea ecx, [esi + edi]
test word [ecx + 8], dx
mov edx, dword [esp + 0x28]
je 0x4db904
call fcn.004d0790
mov ax, word [esp + 0x128]
mov edi, dword [esp + 0x12c]
mov edx, dword [esp + 0x28]
mov word [esp + 0x1b8], ax
inc edx
movzx eax, ax
add esi, 0x28
mov dword [esp + 0x28], edx
cmp edx, eax
mov ax, word [esp + 0x1b8]
jl 0x4db8d2
mov edi, dword [esp + 0x50]
lea esi, [esp + 0x124]
jmp 0x4db980
mov ecx, dword [ecx + 8]
lea eax, [esp + 0x40]
push eax
push 0xbf
lea edx, [esp + 0x220]
call fcn.004d4b60
add esp, 8
mov dword [esp + 0x30], eax
test eax, eax
je 0x4de746
mov ecx, 0x4000
test word [esi + 8], cx
je 0x4db966
mov ecx, esi
call fcn.004d0790
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esi + 0xc]
push eax
push dword [esi + 0x10]
mov ecx, dword [ecx + 8]
call fcn.004d4bd0
mov esi, dword [esp + 0x38]
add esp, 8
mov eax, dword [esp + 0x18]
mov byte [esi + 6], 0
cmp byte [eax + edi*4], 0x43
jne 0x4db9bc
movzx edx, word [esi + 4]
xor ecx, ecx
test edx, edx
je 0x4db9bc
mov eax, dword [esi + 8]
add eax, 8
nop
test byte [eax], 1
jne 0x4db9af
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x4db9a0
jmp 0x4db9bc
mov eax, dword [esp + 0x18]
mov eax, dword [eax + edi*4 + 8]
dec eax
mov dword [esp + 0x2c], eax
lea eax, [esp + 0xa8]
mov edx, esi
mov esi, dword [esp + 0x3c]
push eax
push 0
push 0
mov ecx, dword [esi]
push 0
call fcn.004c9e70
mov edx, dword [esp + 0x28]
add esp, 0x10
mov ecx, eax
mov dword [esp + 0x10], ecx
cmp dword [edx + edi*4 + 0x10], 0
jne 0x4dba00
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x14]
call fcn.004b4750
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
test ecx, ecx
jne 0x4d8cc4
mov eax, dword [esp + 0xa8]
test eax, eax
mov dword [esi + 0xc], eax
mov al, 1
sete cl
mov byte [esi + 0x1a], 0
sub al, cl
mov dword [esi + 0x3c], 0
mov byte [esi + 0x19], al
cmp byte [edx + edi*4], 0x45
jne 0x4dba68
test ecx, ecx
je 0x4dba4e
mov ecx, dword [edx + edi*4 + 8]
mov esi, dword [esp + 0x1c]
dec ecx
inc ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
jmp 0x4d8b30
mov ecx, dword [esp + 0x2c]
mov esi, dword [esp + 0x1c]
inc ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
jmp 0x4d8b30
test ecx, ecx
jne 0x4dba4e
mov ecx, dword [edx + edi*4 + 8]
mov esi, dword [esp + 0x1c]
dec ecx
inc ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
jmp 0x4d8b30
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x30], 0
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 + 0x24]
mov dword [esp + 0x28], ecx
mov ecx, dword [ecx]
lea eax, [eax + eax*4]
mov esi, dword [edx + eax*8]
mov edi, dword [edx + eax*8 + 4]
lea eax, [esp + 0x30]
push eax
push 0
push edi
push esi
xor edx, edx
call fcn.004c9e70
mov ecx, dword [esp + 0x38]
add esp, 0x10
mov edx, dword [esp + 0x30]
mov dword [esp + 0x10], eax
mov dword [ecx + 0x30], esi
mov dword [ecx + 0x34], edi
mov word [ecx + 0x19], 0
mov dword [ecx + 0x3c], 0
test edx, edx
je 0x4dbb00
mov eax, dword [esp + 0x50]
mov esi, dword [esp + 0x18]
mov esi, dword [esi + eax*4 + 8]
dec esi
mov dword [esp + 0x2c], esi
mov dword [ecx + 0xc], edx
mov ecx, dword [esp + 0x14]
jmp 0x4dc008
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
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], eax
mov eax, dword [ecx + 0x2c]
mov dword [esi + 4], eax
mov eax, dword [esp + 0x20]
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x14]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
jmp case.default.0x4d8b9a
mov eax, dword [esp + 0x18]
xorps xmm0, xmm0
mov edx, dword [esp + 0x20]
movlpd qword [esp + 0x1b8], xmm0
mov dword [esp + 0x38], 0
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [edx + 0x38]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x1b4], ecx
mov esi, dword [ecx]
test esi, esi
je 0x4dbe5d
test byte [ecx + 0x1c], 2
jne 0x4dbcb6
cmp byte [esi + 0x49], 1
jne 0x4dbb95
test byte [esi + 0x48], 8
jne 0x4dbc0b
mov ecx, esi
call fcn.004c9c30
mov ecx, eax
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x4dbe1d
cmp byte [esi + 0x49], al
jne 0x4dbbd9
mov edx, dword [esp + 0x20]
mov eax, 1
xor esi, esi
mov dword [esp + 0x38], 1
mov dword [esp + 0x10], ecx
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x1bc], esi
jmp 0x4dbcc4
add byte [eax], al
mov ecx, esi
mov dword [esp + 0x38], 0
call fcn.004c9e00
mov ecx, eax
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x4dbbf8
or byte [esi + 0x48], 8
jmp 0x4dbc04
and byte [esi + 0x48], 0xf7
test ecx, ecx
jne 0x4dbe1d
mov ecx, dword [esp + 0x1b4]
mov edx, dword [ecx]
mov dword [esp + 0x30], edx
cmp word [edx + 0x2c], 0
jne 0x4dbc60
movsx eax, word [edx + 0x4c]
mov edi, dword [edx + eax*4 + 0x78]
movzx esi, word [edx + eax*2 + 0x4e]
lea eax, [edx + 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 + 0x14]
and edx, eax
add edx, dword [edi + 0x38]
call fcn.004c6390
mov edx, dword [esp + 0x34]
add esp, 4
mov edi, dword [esp + 0x50]
mov ecx, dword [esp + 0x1b4]
or byte [edx + 0x48], 2
mov esi, dword [edx + 0x1c]
mov eax, dword [edx + 0x18]
mov dword [esp + 0xd8], eax
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x1bc], esi
mov dword [esp + 0x10], 0
cmp esi, 0x7fffffff
jl 0x4dbc9c
jg 0x4dbc92
cmp eax, 0xffffffff
jb 0x4dbc9c
or dword [ecx + 0x1c], 2
mov edx, dword [esp + 0x20]
jmp 0x4dbccb
mov edx, dword [esp + 0x20]
add eax, 1
mov dword [esp + 0x1b8], eax
adc esi, 0
mov dword [esp + 0x1bc], esi
jmp 0x4dbcc4
mov esi, dword [esp + 0x1bc]
mov eax, dword [esp + 0x1b8]
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 0xc]
test ecx, ecx
je 0x4dbd86
mov edx, dword [edx + 0xb0]
test edx, edx
je 0x4dbd04
mov eax, dword [edx + 4]
test eax, eax
je 0x4dbcf9
nop dword [eax]
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x4dbcf0
mov eax, dword [edx + 0x10]
lea ecx, [ecx + ecx*4]
lea edi, [eax + ecx*8]
jmp 0x4dbd0e
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0x24]
lea edi, [ecx + eax*8]
mov ecx, edi
mov dword [esp + 0x30], edi
call fcn.004d0ce0
mov eax, dword [edi]
mov ecx, dword [edi + 4]
cmp eax, 0xffffffff
jne 0x4dbd2f
cmp ecx, 0x7fffffff
je 0x4dbe15
mov edx, dword [esp + 0x1b4]
test byte [edx + 0x1c], 2
jne 0x4dbe15
add eax, 1
adc ecx, 0
cmp esi, ecx
jg 0x4dbd74
jl 0x4dbd57
mov edi, dword [esp + 0xd8]
cmp edi, eax
jae 0x4dbd7b
mov edi, eax
mov esi, ecx
mov eax, dword [esp + 0x30]
mov dword [esp + 0x1b8], edi
mov dword [esp + 0x1bc], esi
mov dword [eax], edi
mov dword [eax + 4], esi
jmp 0x4dbd94
mov edi, dword [esp + 0xd8]
mov eax, dword [esp + 0x30]
mov dword [eax], edi
mov dword [eax + 4], esi
jmp 0x4dbd94
mov edi, dword [esp + 0xd8]
mov edx, dword [esp + 0x1b4]
test byte [edx + 0x1c], 2
je 0x4dbe40
mov dword [esp + 0x30], 0
lea eax, [esp + 0x1b8]
push eax
push 8
call fcn.004b68e0
mov esi, dword [esp + 0x1c4]
lea eax, [esp + 0x40]
mov edi, dword [esp + 0x1c0]
and esi, 0x3fffffff
push eax
mov eax, dword [esp + 0x1c0]
add edi, 1
push 0
adc esi, 0
mov dword [esp + 0x1c8], edi
push esi
mov ecx, dword [eax]
xor edx, edx
push edi
mov dword [esp + 0x1d4], esi
call fcn.004c9e70
add esp, 0x18
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4dbe39
cmp dword [esp + 0x38], eax
jne 0x4dbe39
mov eax, dword [esp + 0x30]
inc eax
mov dword [esp + 0x30], eax
cmp eax, 0x64
jl 0x4dbda6
mov dword [esp + 0x10], 0xd
mov ecx, dword [esp + 0x14]
cmp byte [ecx + 0x41], 0
je 0x4de50a
mov ecx, 7
mov dword [esp + 0x10], ecx
jmp 0x4de51a
mov edx, dword [esp + 0x1b4]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov byte [edx + 0x1a], 0
mov dword [edx + 0x3c], 0
mov dword [eax], edi
mov dword [eax + 4], esi
jmp 0x4dc008
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x1bc]
mov edi, dword [esp + 0x1b8]
mov ecx, dword [esp + 0x14]
mov dword [eax], edi
mov dword [eax + 4], esi
jmp 0x4dc008
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + edi*4 + 8]
mov ecx, dword [ecx + edi*4 + 4]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x28], eax
cmp dl, 0x4b
jne 0x4dbec7
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov eax, dword [edx + edi*4 + 0xc]
mov edi, dword [esp + 0x24]
lea eax, [eax + eax*4]
mov ecx, dword [ecx + eax*8]
mov eax, dword [edi + eax*8 + 4]
mov edi, dword [esp + 0x50]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x38], eax
jmp 0x4dbee0
mov eax, dword [esp + 0x18]
mov eax, dword [eax + edi*4 + 0xc]
cdq
mov ecx, eax
mov dword [esp + 0x30], eax
mov eax, edx
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x18]
test byte [edx + edi*4 + 3], 1
je 0x4dbef2
mov eax, dword [esp + 0x20]
inc dword [eax + 0x5c]
mov eax, dword [esp + 0x38]
test byte [edx + edi*4 + 3], 2
je 0x4dbf0f
mov edx, dword [esp + 0x14]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], eax
mov dword [edx + 0x20], ecx
mov dword [edx + 0x24], eax
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
movzx eax, word [ecx + esi*8 + 8]
test al, 1
je 0x4dbf2c
mov dword [ecx + esi*8 + 0x10], 0
mov dword [ecx + esi*8 + 0xc], 0
mov cl, byte [edx + edi*4 + 3]
mov byte [esp + 0x1b8], cl
test cl, 0x10
je 0x4dbf45
mov edx, dword [esp + 0x28]
mov edx, dword [edx + 0xc]
jmp 0x4dbf47
xor edx, edx
test eax, 0x4000
je 0x4dbf57
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + esi*8]
jmp 0x4dbf59
xor ecx, ecx
movzx eax, byte [esp + 0x1b8]
push edx
shr eax, 3
xor edx, edx
and eax, 1
push eax
mov eax, dword [esp + 0x2c]
push ecx
push dword [eax + esi*8 + 0xc]
push dword [eax + esi*8 + 0x10]
mov eax, dword [esp + 0x3c]
push dword [esp + 0x4c]
mov esi, dword [esp + 0x48]
push esi
mov ecx, dword [eax]
call fcn.004cd640
mov ecx, dword [esp + 0x44]
mov edx, eax
add esp, 0x1c
mov dword [esp + 0x10], eax
mov byte [ecx + 0x1a], 0
mov dword [ecx + 0x3c], 0
test edx, edx
jne 0x4de2d6
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0xd0]
test edx, edx
je 0x4de2e3
mov eax, dword [esp + 0x18]
mov eax, dword [eax + edi*4 + 0x10]
test eax, eax
je 0x4d8cc4
push dword [esp + 0x38]
movsx ecx, byte [ecx + 0x18]
push esi
mov esi, dword [esp + 0x1c]
add ecx, ecx
push eax
mov eax, dword [esi + 0x10]
push dword [eax + ecx*8]
mov eax, dword [esp + 0x28]
mov ecx, 0x17
test byte [eax + edi*4 + 3], 4
mov eax, 0x12
cmovne eax, ecx
push eax
push dword [esi + 0xcc]
call edx
add esp, 0x18
mov ecx, esi
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x2c]
inc edi
mov dword [esp + 0x2c], edi
test edx, edx
je 0x4d8b2c
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
push dword [edx + 0x2c]
mov dword [edx + 0x50], ecx
push dword [edx + 0xa8]
push dword [esp + 0x34]
push str.statement_aborts_at__d:___s___s
push ecx
call fcn.004b68a0
mov ecx, dword [esp + 0x34]
add esp, 0x14
call fcn.004d3ed0
cmp dword [esp + 0x10], 0xc0a
jne 0x4dc062
mov byte [edi + 0x41], 1
mov al, byte [esp + 0x5b]
mov edi, 1
test al, al
je 0x4dc0a0
movzx esi, al
mov eax, dword [esp + 0x14]
dec esi
mov ecx, esi
add ecx, ecx
mov eax, dword [eax + 0x10]
push dword [eax + ecx*8 + 0xc]
call fcn.004f43e0
add esp, 4
cmp esi, edi
je 0x4dc0a0
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x10]
push dword [eax + 0x1c]
call fcn.004f43e0
add esp, 4
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x60]
mov dword [eax + 0x20], ecx
mov ecx, dword [esp + 0x64]
mov dword [eax + 0x24], ecx
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x74]
add dword [eax + 0x7c], ecx
mov ecx, eax
call fcn.004d2870
mov ecx, dword [esp + 0x2dc]
mov eax, edi
pop edi
pop esi
xor ecx, esp
call fcn.006a7b19
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esi]
call fcn.004cd860
mov ecx, eax
mov dword [esi + 0x3c], 0
mov dword [esp + 0x10], ecx
test ecx, ecx
mov ecx, dword [esp + 0x14]
jne 0x4dc14a
mov edx, dword [ecx + 0xd0]
test edx, edx
je 0x4dc14a
mov eax, dword [esp + 0x18]
mov eax, dword [eax + edi*4 + 0x10]
test eax, eax
je 0x4dc14a
test byte [esi + 0x1c], 4
je 0x4dc14a
push dword [esi + 0x34]
movsx ecx, byte [esi + 0x18]
push dword [esi + 0x30]
mov esi, dword [esp + 0x1c]
add ecx, ecx
push eax
mov eax, dword [esi + 0x10]
push dword [eax + ecx*8]
push 9
push dword [esi + 0xcc]
call edx
add esp, 0x18
mov ecx, esi
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
test byte [eax + edi*4 + 8], 1
je case.default.0x4d8b9a
mov edx, dword [esp + 0x20]
inc dword [edx + 0x5c]
jmp case.default.0x4d8b9a
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 0x5c]
add dword [ecx + 0x54], eax
mov dword [ecx + 0x50], eax
mov dword [edx + 0x5c], 0
jmp case.default.0x4d8b9a
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x3c], 0
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 + 0x24]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
lea eax, [esp + 0x3c]
push eax
mov eax, dword [esp + 0x1c]
push dword [eax + edi*4 + 0x10]
call fcn.004e1dd0
add esp, 8
mov dword [esp + 0x10], eax
cmp dword [esp + 0x3c], 0
mov edx, eax
je 0x4d9b4c
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 8]
dec ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x14]
jmp 0x4dc010
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov eax, dword [ecx + edi*4 + 8]
mov ecx, dword [ecx + edi*4 + 4]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [esp + 0x20]
mov edx, esi
mov dword [esp + 0x1c], esi
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
call fcn.004e1d30
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 0xc]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x14]
mov dword [eax + 0x3c], 0
jmp case.default.0x4d8b9a
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
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 + 0x20]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x30], eax
test byte [eax + 0x1c], 4
mov edi, dword [eax]
mov dword [esp + 0x38], edi
jne 0x4dc2cd
cmp word [edi + 0x2c], 0
jne 0x4dc2b3
movsx eax, word [edi + 0x4c]
movzx esi, word [edi + eax*2 + 0x4e]
mov edi, dword [edi + eax*4 + 0x78]
mov eax, dword [esp + 0x38]
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 + 0x14]
and edx, eax
add edx, dword [edi + 0x38]
call fcn.004c6390
mov edi, dword [esp + 0x3c]
add esp, 4
or byte [edi + 0x48], 2
mov ecx, dword [esp + 0x14]
mov esi, dword [edi + 0x18]
mov eax, dword [ecx + 0x58]
cdq
cmp dword [edi + 0x1c], edx
jg 0x4de5ce
jl 0x4dc325
cmp esi, eax
jmp 0x4dc31f
cmp word [edi + 0x2c], 0
jne 0x4dc315
movsx eax, word [edi + 0x4c]
movzx esi, word [edi + eax*2 + 0x4e]
mov edi, dword [edi + eax*4 + 0x78]
mov eax, dword [esp + 0x38]
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 + 0x14]
and edx, eax
add edx, dword [edi + 0x38]
call fcn.004c6390
mov edi, dword [esp + 0x3c]
add esp, 4
or byte [edi + 0x48], 2
mov ecx, dword [esp + 0x14]
mov esi, dword [edi + 0x24]
cmp esi, dword [ecx + 0x58]
ja 0x4de5ce
mov ecx, dword [esp + 0x1c]
mov edx, 0x20
cmp esi, edx
cmova edx, esi
call fcn.004d0700
test eax, eax
jne 0x4de746
mov edx, dword [esp + 0x1c]
mov ecx, 0xbe10
mov ax, word [edx + 8]
and ax, cx
mov dword [edx + 0xc], esi
or ax, 0x10
mov word [edx + 8], ax
mov eax, dword [esp + 0x30]
test byte [eax + 0x1c], 4
jne 0x4dc36c
push 0
push dword [edx + 0x10]
jmp 0x4dc3aa
mov eax, dword [edx + 0x10]
mov dword [esp + 0x30], eax
mov al, byte [edi + 0x49]
test al, al
jne 0x4dc38f
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x10], 4
mov byte [edx + 0xa], 1
jmp 0x4dc008
cmp al, 3
jb 0x4dc3a4
mov ecx, edi
call fcn.004c6090
mov ecx, eax
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x4dc3bb
push 0
push dword [esp + 0x34]
push esi
xor edx, edx
mov ecx, edi
call fcn.004c97d0
mov dword [esp + 0x1c], eax
add esp, 0xc
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov byte [edx + 0xa], 1
jmp 0x4dc008
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
cmp byte [esi + 0x19], 0
je 0x4dc3fa
mov esi, dword [esp + 0x1c]
mov eax, 1
mov ecx, dword [esp + 0x14]
mov word [esi + 8], ax
jmp case.default.0x4d8b9a
cmp byte [esi + 0x1a], 0
je 0x4dc42a
mov eax, dword [esi + 0x30]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x1c8], eax
mov ecx, dword [esi + 0x34]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x1cc], ecx
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0x14]
mov dword [esi], eax
jmp 0x4dc010
mov ecx, dword [esi + 0x24]
test ecx, ecx
je 0x4dc479
mov esi, dword [ecx]
lea edx, [esp + 0x1c8]
push edx
push ecx
mov eax, dword [esi]
mov eax, dword [eax + 0x30]
call eax
mov ecx, dword [esp + 0x28]
add esp, 8
mov edx, esi
mov dword [esp + 0x10], eax
call fcn.004d5eb0
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1cc]
mov eax, dword [esp + 0x1c8]
mov edx, dword [esp + 0x10]
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0x14]
mov dword [esi], eax
jmp 0x4dc010
mov eax, dword [esi]
cmp byte [eax + 0x49], 1
je 0x4dc49c
mov ecx, esi
call fcn.004d4730
mov ecx, eax
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x4dbe1d
mov edx, dword [esp + 0x18]
jmp 0x4dc4a4
mov dword [esp + 0x10], 0
cmp byte [esi + 0x19], 0
je 0x4dc4c8
mov esi, dword [esp + 0x1c]
mov eax, 1
inc dword [esp + 0x2c]
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
mov word [esi + 8], ax
jmp 0x4d8b30
mov edx, dword [esi]
mov dword [esp + 0x30], edx
cmp word [edx + 0x2c], 0
jne 0x4dc512
movsx eax, word [edx + 0x4c]
mov edi, dword [edx + eax*4 + 0x78]
movzx esi, word [edx + eax*2 + 0x4e]
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 + 0x14]
and edx, eax
add edx, dword [edi + 0x38]
call fcn.004c6390
mov edx, dword [esp + 0x34]
add esp, 4
or byte [edx + 0x48], 2
mov eax, dword [edx + 0x18]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x1c8], eax
mov ecx, dword [edx + 0x1c]
xor edx, edx
mov dword [esp + 0x1cc], ecx
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x10], edx
mov dword [esi], eax
jmp 0x4dc010
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax]
mov byte [eax + 0x19], 1
mov dword [eax + 0x3c], 0
test ecx, ecx
je 0x4d8bef
call fcn.004c5ec0
mov ecx, dword [esp + 0x14]
jmp case.default.0x4d8b9a
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
xor eax, eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x38], eax
mov esi, dword [ecx]
cmp byte [esi + 0x49], 1
jne 0x4dc5a5
test byte [esi + 0x48], 8
je 0x4dc5a5
xor edx, edx
mov dword [esp + 0x10], edx
jmp 0x4dc5f3
mov ecx, esi
call fcn.004c9c30
mov ecx, eax
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x4dc5e7
cmp byte [esi + 0x49], al
jne 0x4dc5c0
lea eax, [ecx + 1]
jmp 0x4dc5eb
mov ecx, esi
mov dword [esp + 0x38], 0
call fcn.004c9e00
mov dword [esp + 0x10], eax
test eax, eax
mov eax, dword [esp + 0x38]
jne 0x4dc5e1
or byte [esi + 0x48], 8
jmp 0x4dc5eb
and byte [esi + 0x48], 0xf7
jmp 0x4dc5eb
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x10]
mov byte [ecx + 0x19], al
mov byte [ecx + 0x1a], 0
mov dword [ecx + 0x3c], 0
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx + edi*4 + 8]
test ecx, ecx
jle 0x4de2d6
mov esi, dword [esp + 0x1c]
test eax, eax
je 0x4d9b4c
dec ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x14]
jmp 0x4dc010
mov eax, dword [esp + 0x20]
inc dword [eax + 0x74]
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov eax, 1
mov dword [esp + 0x28], ecx
mov dword [esp + 0xd8], eax
mov esi, dword [ecx + 0x38]
test esi, esi
je 0x4dc6c1
cmp byte [esi + 0x38], 0
mov dword [esp + 0x10], 0
jne 0x4dc68d
cmp dword [esi + 0x24], 0
lea edx, [esi + 0x24]
je 0x4dc6b4
xor eax, eax
lea ecx, [esi + 0x40]
mov dword [esp + 0xd8], eax
call fcn.004e0590
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x10], eax
jmp 0x4dc708
mov ecx, esi
call fcn.004e0cc0
mov edx, eax
mov ecx, esi
call fcn.004dfef0
mov ecx, eax
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x4dc6bb
mov ecx, esi
call fcn.004e1b10
mov dword [esp + 0x10], eax
xor eax, eax
mov dword [esp + 0xd8], eax
mov ecx, dword [esp + 0x28]
jmp 0x4dc708
mov esi, dword [ecx]
mov ecx, esi
call fcn.004c9c30
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4dc6f9
cmp byte [esi + 0x49], al
jne 0x4dc6e5
mov eax, 1
mov dword [esp + 0xd8], eax
jmp 0x4dc6f9
xor eax, eax
mov ecx, esi
mov dword [esp + 0xd8], eax
call fcn.004c9d80
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x28]
mov byte [ecx + 0x1a], 0
mov dword [ecx + 0x3c], 0
mov eax, dword [esp + 0xd8]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov byte [ecx + 0x19], al
test eax, eax
je 0x4d9b4c
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 8]
dec ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x14]
jmp 0x4dc010
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov dword [esp + 0x1c4], 0
mov dword [esp + 0x30], esi
mov esi, dword [esi + 0x38]
cmp byte [esi + 0x38], 0
je 0x4dc7ab
cmp byte [esi + 0x39], 0
je 0x4dc78f
mov ecx, dword [esi + 0x10]
call fcn.004dfb70
mov dword [esp + 0x10], eax
xor ecx, ecx
mov eax, dword [esi + 0x10]
mov esi, dword [esp + 0x30]
cmp dword [eax + 0x18], ecx
sete cl
mov dword [esp + 0x1c4], ecx
jmp 0x4dc836
mov ecx, dword [esi + 0x14]
lea edx, [esp + 0x1c4]
call fcn.004e0ae0
mov esi, dword [esp + 0x30]
mov dword [esp + 0x10], eax
jmp 0x4dc836
mov edx, dword [esi + 0x24]
mov eax, dword [edx + 4]
mov dword [esi + 0x24], eax
mov dword [edx + 4], 0
cmp dword [esi + 0x28], 0
jne 0x4dc7ca
mov ecx, dword [esp + 0x14]
call fcn.004dfd80
xor eax, eax
mov dword [esp + 0x10], 0
cmp dword [esi + 0x24], eax
mov esi, dword [esp + 0x30]
sete al
mov dword [esp + 0x1c4], eax
jmp 0x4dc836
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [eax + 0x38]
cmp dword [eax + ecx*4], 0
je 0x4d8bef
jmp 0x4dc806
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
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 + 0x1c4], eax
lea eax, [esp + 0x1c4]
push eax
push dword [esi]
mov eax, dword [edx + edi*4 + 0x10]
call eax
add esp, 8
mov dword [esp + 0x10], eax
mov dword [esi + 0x3c], 0
cmp dword [esp + 0x1c4], 0
jne 0x4dc86a
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
mov byte [esi + 0x19], 0
mov edx, dword [eax + edi*4 + 8]
movzx eax, byte [eax + edi*4 + 3]
dec edx
mov dword [esp + 0x2c], edx
inc dword [ecx + eax*4 + 0x6c]
jmp 0x4ddfad
mov byte [esi + 0x19], 1
jmp 0x4ddfad
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
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 + 0x30], ecx
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, dword [ecx]
mov dword [esp + 0x28], eax
je 0x4dc8ab
mov eax, dword [esp + 0x20]
inc dword [eax + 0x5c]
mov eax, 0x4000
test word [esi + 8], ax
je 0x4dc8d3
mov ecx, esi
call fcn.004d0790
mov ecx, eax
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x4d8cc4
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x18]
cmp dword [ecx + 0x38], 0
je 0x4dc8ed
mov edx, esi
call fcn.004e0dd0
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x10], eax
jmp 0x4dc008
test byte [edx + edi*4 + 3], 0x10
je 0x4dc8f9
mov eax, dword [ecx + 0xc]
jmp 0x4dc8fb
xor eax, eax
mov ecx, dword [esp + 0x28]
push eax
push dword [edx + edi*4 + 0xc]
mov eax, dword [esi + 0xc]
push 0
push 0
cdq
push 0x7838d8
push edx
mov edx, dword [esi + 0x10]
push eax
call fcn.004cd640
mov ecx, dword [esp + 0x30]
add esp, 0x1c
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x30]
mov dword [eax + 0x3c], 0
jmp 0x4dc008
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
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 + 0x138], eax
mov ax, word [edx + edi*4 + 0xc]
mov word [esp + 0x13c], ax
mov eax, dword [edx + edi*4 + 8]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x30], ecx
mov byte [esp + 0x13e], 0
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x140], eax
lea edx, [esp + 0x138]
lea eax, [esp + 0xac]
push eax
push 0
push 0
push 0
call fcn.004c9e70
mov ecx, eax
add esp, 0x10
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x4dc9bf
cmp dword [esp + 0xac], eax
jne 0x4dc9bf
mov ecx, dword [esp + 0x30]
call fcn.004cd860
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x14]
mov dword [esi + 0x3c], 0
jmp 0x4dc008
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov ecx, 1
mov eax, dword [esp + 0x1c]
mov edi, dword [esi]
mov word [eax + 8], cx
mov eax, dword [esi]
cmp byte [eax + 0x49], cl
je 0x4dca0e
mov ecx, esi
call fcn.004d4730
mov ecx, eax
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x4dbe1d
jmp 0x4dca16
mov dword [esp + 0x10], 0
cmp byte [esi + 0x19], 0
jne 0x4dca71
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x68]
xorps xmm0, xmm0
mov edx, edi
push eax
movlpd qword [esp + 0x6c], xmm0
call fcn.004d5b40
mov ecx, eax
add esp, 4
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x4dbe1d
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x68]
inc dword [esp + 0x2c]
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
mov dword [esi], eax
mov eax, dword [esp + 0x6c]
mov dword [esi + 4], eax
mov eax, 4
mov word [esi + 8], ax
jmp 0x4d8b2c
inc dword [esp + 0x2c]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
jmp 0x4d8b2c
mov eax, dword [esp + 0x18]
cmp byte [esp + 0x1b8], 0x73
mov dword [esp + 0x28], 0
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov edx, dword [eax + ecx*4]
mov ecx, dword [esp + 0x18]
mov eax, dword [edx + 8]
mov dword [esp + 0xc4], eax
mov ax, word [ecx + edi*4 + 0x10]
mov word [esp + 0xc8], ax
sbb al, al
mov byte [esp + 0xca], al
mov eax, dword [ecx + edi*4 + 0xc]
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xcc], eax
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0xc8]
push eax
call fcn.004d5cb0
mov ecx, dword [esp + 0x20]
add esp, 8
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x28]
test byte [ecx + edi*4], 1
je 0x4dcb10
neg eax
jmp 0x4dcb11
inc eax
mov edx, dword [esp + 0x10]
test eax, eax
jle 0x4d9b4c
mov ecx, dword [ecx + edi*4 + 8]
dec ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x14]
jmp 0x4dc010
mov eax, dword [ecx + 4]
xor edx, edx
test eax, eax
je 0x4dcb6a
nop dword [eax + eax]
cmp dword [eax + 0x28], 0xbdf20da3
jne 0x4dcb63
mov ecx, dword [eax + 0x58]
test ecx, 0x200
je 0x4dcb63
and cl, 0xc
cmp cl, 8
jae 0x4dcb63
cmp dword [eax + 0x4c], 0
jl 0x4dcb63
inc edx
mov eax, dword [eax + 0x34]
test eax, eax
jne 0x4dcb40
mov eax, 1
mov word [esi + 8], ax
cmp edx, eax
jg 0x4de543
mov eax, dword [esp + 0x18]
mov dword [esp + 0x48], 0
mov ecx, dword [eax + edi*4 + 0xc]
mov eax, dword [eax + edi*4 + 4]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x3c], ecx
shl ecx, 4
mov dword [esp + 0x28], ecx
mov eax, dword [eax + 0x10]
mov esi, dword [ecx + eax + 4]
cmp byte [esi + 9], 0
je 0x4dcbbf
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x4dcbbf
mov ecx, esi
call fcn.004c5a40
mov edx, dword [esp + 0x30]
lea eax, [esp + 0x48]
push eax
mov ecx, esi
call fcn.004ce020
add esp, 4
mov dword [esp + 0x10], eax
cmp byte [esi + 9], 0
je 0x4dcbe9
add dword [esi + 0xc], 0xffffffff
jne 0x4dcbe9
mov ecx, esi
call fcn.004c5a00
cmp dword [esp + 0x10], 0
mov eax, 4
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x48]
mov word [ecx + 8], ax
mov eax, esi
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jne 0x4d8cc4
test esi, esi
je 0x4d8cc4
mov eax, dword [esp + 0x18]
mov edx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x14]
mov edi, dword [eax + 0x10]
add edi, dword [esp + 0x28]
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x4dcc43
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x20], esi
jne 0x4dcc3d
mov dword [ecx + 0x20], edx
mov eax, dword [eax]
test eax, eax
jne 0x4dcc32
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x4dcc61
nop dword [eax]
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x28], esi
jne 0x4dcc5b
mov dword [ecx + 0x28], edx
mov eax, dword [eax]
test eax, eax
jne 0x4dcc50
mov al, byte [esp + 0x3c]
mov ecx, dword [esp + 0x14]
add al, 1
mov byte [esp + 0x5b], al
jmp 0x4dc008
mov edx, dword [esp + 0x18]
lea eax, [esp + 0x1b4]
mov ecx, dword [ecx + 0x10]
mov dword [esp + 0x30], 0
mov dword [esp + 0x1b4], 0
cmp dword [edx + edi*4 + 0xc], 0
cmove eax, dword [esp + 0x30]
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.004cdf80
mov ecx, dword [esp + 0x1c]
add esp, 4
mov dword [esp + 0x10], eax
cmp dword [ecx + edi*4 + 0xc], 0
je 0x4d8bef
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x1b4]
add dword [edx + 0x5c], eax
mov ecx, dword [ecx + edi*4 + 0xc]
test ecx, ecx
jle 0x4d8bef
mov edi, dword [esp + 0x24]
lea ecx, [ecx + ecx*4]
cdq
add dword [edi + ecx*8], eax
adc dword [edi + ecx*8 + 4], edx
mov ecx, dword [esp + 0x14]
jmp case.default.0x4d8b9a
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov edx, dword [ecx + 0x38]
test edx, edx
je 0x4dcd26
mov ecx, dword [esp + 0x14]
call fcn.004e0110
mov ecx, dword [esp + 0x14]
jmp case.default.0x4d8b9a
mov ecx, dword [ecx]
push 0
mov edx, dword [ecx + 0x3c]
mov ecx, dword [ecx]
call fcn.004cdf80
mov ecx, dword [esp + 0x18]
add esp, 4
mov dword [esp + 0x10], eax
jmp case.default.0x4d8b9a
mov eax, dword [esp + 0x18]
mov dword [esp + 0x44], 0
mov eax, dword [eax + edi*4 + 4]
shl eax, 4
add eax, dword [ecx + 0x10]
xor ecx, ecx
cmp dl, 0x79
setne cl
mov esi, dword [eax + 4]
inc ecx
mov dword [esp + 0x30], ecx
cmp byte [esi + 9], 0
je 0x4dcd84
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x4dcd84
mov ecx, esi
call fcn.004c5a40
mov ecx, dword [esp + 0x30]
push ecx
lea edx, [esp + 0x48]
mov ecx, esi
call fcn.004cdad0
add esp, 4
mov dword [esp + 0x10], eax
cmp byte [esi + 9], 0
je 0x4dcdaa
add dword [esi + 0xc], 0xffffffff
jne 0x4dcdaa
mov ecx, esi
call fcn.004c5a00
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x14]
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp case.default.0x4d8b9a
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
add eax, 0x2c
mov dword [esp + 0x118], eax
mov eax, str.sqlite_master
mov ecx, dword [esi + edi*4 + 4]
cmp ecx, 1
push dword [esi + edi*4 + 0x10]
mov esi, str.sqlite_temp_master
mov dword [esp + 0x120], ecx
cmove eax, esi
mov dword [esp + 0x118], edx
push eax
mov eax, dword [edx + 0x10]
add ecx, ecx
push dword [eax + ecx*8]
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
push edx
call fcn.004b64b0
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x4dce28
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x10], 7
jmp 0x4dce7f
mov edi, dword [esp + 0x14]
lea eax, [esp + 0x114]
push 0
push eax
push fcn.00502b00
push esi
push edi
mov byte [edi + 0x91], 1
mov dword [esp + 0x134], 0
call fcn.004fed60
add esp, 0x14
mov edx, esi
test eax, eax
mov ecx, edi
cmove eax, dword [esp + 0x120]
mov dword [esp + 0x10], eax
call fcn.004b4750
mov edx, dword [esp + 0x10]
mov ecx, edi
mov byte [ecx + 0x91], 0
test edx, edx
je 0x4dce8c
call fcn.004ee490
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
cmp edx, 7
je 0x4de74a
mov esi, dword [esp + 0x1c]
jmp 0x4dc010
mov eax, dword [esp + 0x18]
mov edx, dword [eax + edi*4 + 4]
call fcn.004ec820
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x10], eax
jmp case.default.0x4d8b9a
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [eax + 0x10]
add ecx, ecx
mov edx, dword [edx + edi*4 + 0x10]
mov esi, dword [eax + ecx*8 + 0xc]
lea eax, [esp + 0xb0]
push eax
lea ecx, [esi + 8]
call fcn.004b8be0
add esp, 4
test eax, eax
je 0x4dcf01
push dword [esp + 0xb0]
mov edi, dword [eax + 8]
lea ecx, [esi + 8]
mov edx, eax
call fcn.004b8c70
add esp, 4
jmp 0x4dcf03
xor edi, edi
mov ecx, dword [esp + 0x14]
mov edx, edi
call fcn.004ee6f0
mov ecx, dword [esp + 0x14]
or dword [ecx + 0x18], 2
jmp 0x4dc008
mov eax, dword [esp + 0x18]
push dword [eax + edi*4 + 0x10]
mov edx, dword [eax + edi*4 + 4]
call fcn.004ee240
mov ecx, dword [esp + 0x18]
add esp, 4
jmp case.default.0x4d8b9a
mov eax, dword [esp + 0x18]
push dword [eax + edi*4 + 0x10]
mov edx, dword [eax + edi*4 + 4]
call fcn.0050e550
mov ecx, dword [esp + 0x18]
add esp, 4
jmp case.default.0x4d8b9a
mov esi, dword [esp + 0x18]
push 0
mov eax, dword [esi + edi*4 + 8]
mov dword [esp + 0x34], eax
lea eax, [eax*4 + 4]
push eax
call fcn.004b49d0
mov edx, eax
add esp, 8
mov dword [esp + 0x3c], edx
test edx, edx
je 0x4de746
mov ecx, dword [esi + edi*4 + 0xc]
lea eax, [ecx + ecx*4]
mov ecx, dword [esi + edi*4 + 4]
mov dword [esp + 0x40], eax
xor esi, esi
mov eax, dword [esp + 0x24]
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*8]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x28], ecx
test eax, eax
jle 0x4dcfce
mov edi, ecx
nop word [eax + eax]
mov ecx, edi
call fcn.004d0b30
mov edx, dword [esp + 0x3c]
add edi, 0x28
mov dword [edx + esi*4], eax
inc esi
mov eax, dword [esp + 0x30]
cmp esi, eax
jl 0x4dcfb0
mov edi, dword [esp + 0x50]
mov dword [edx + esi*4], 0
lea ecx, [esp + 0x9c]
mov esi, dword [esp + 0x24]
push ecx
mov ecx, dword [esp + 0x44]
push dword [esi + ecx*8]
mov esi, dword [esp + 0x1c]
push eax
mov eax, dword [esp + 0x24]
mov ecx, dword [esi + 0x10]
movzx eax, byte [eax + edi*4 + 3]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.004cef60
mov edx, dword [esp + 0x48]
add esp, 0xc
mov ecx, esi
mov edi, eax
call fcn.004b4750
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x9c]
cdq
sub dword [esi + ecx*8], eax
mov eax, esi
sbb dword [eax + ecx*8 + 4], edx
mov ecx, dword [esp + 0x28]
call fcn.004d0f30
mov esi, dword [esp + 0x9c]
test esi, esi
je 0x4dd060
test edi, edi
je 0x4de746
mov ecx, dword [esp + 0x28]
mov edx, edi
push fcn.004b4670
push 1
push 0xffffffffffffffff
call fcn.004d1160
add esp, 0xc
mov al, byte [esp + 0x4c]
mov ecx, dword [esp + 0x28]
movzx edx, al
call fcn.004d05b0
mov ecx, dword [esp + 0x14]
jmp 0x4dc008
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov eax, dword [ecx + edi*4 + 4]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 8], 0x20
lea esi, [edx + eax*8]
mov eax, dword [ecx + edi*4 + 8]
lea edi, [eax + eax*4]
jne 0x4dd0aa
mov ecx, esi
call fcn.004d0fd0
test byte [esi + 8], 0x20
je 0x4de746
mov eax, dword [esp + 0x24]
mov ecx, dword [esi]
push dword [eax + edi*8 + 4]
push dword [eax + edi*8]
call fcn.004bdc10
mov ecx, dword [esp + 0x1c]
add esp, 8
jmp 0x4dc008
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov eax, dword [eax + edi*4 + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 0x20
lea ecx, [ecx + eax*8]
mov dword [esp + 0x30], ecx
je 0x4dd155
mov esi, dword [ecx]
movzx eax, word [esi + 0x1a]
test al, 2
jne 0x4dd107
test al, 1
jne 0x4dd102
mov ecx, dword [esi + 8]
call fcn.004bdd40
mov ecx, dword [esp + 0x30]
mov dword [esi + 8], eax
or word [esi + 0x1a], 2
mov eax, dword [esi + 8]
test eax, eax
je 0x4dd155
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x28], edx
mov dword [esi + 8], eax
test eax, eax
jne 0x4dd134
mov ecx, esi
call fcn.004bdb80
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
push edx
push ecx
mov ecx, dword [esp + 0x2c]
mov eax, dword [eax + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.004d0f90
add esp, 8
jmp 0x4ddfad
call fcn.004d0f30
jmp 0x4ddfa0
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov eax, dword [ecx + edi*4 + 4]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 8], 0x20
lea esi, [edx + eax*8]
mov eax, dword [ecx + edi*4 + 0xc]
mov ecx, dword [ecx + edi*4 + 0x10]
mov dword [esp + 0x30], ecx
lea eax, [eax + eax*4]
mov dword [esp + 0x28], eax
jne 0x4dd1a8
mov ecx, esi
call fcn.004d0fd0
test byte [esi + 8], 0x20
je 0x4de746
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x24]
test ecx, ecx
je 0x4dd1cd
push dword [edx + eax*8 + 4]
push dword [edx + eax*8]
mov edx, ecx
mov ecx, dword [esi]
call fcn.004bdf70
add esp, 8
test eax, eax
jne 0x4db641
mov ecx, dword [esp + 0x30]
test ecx, ecx
js 0x4d8cc4
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
push dword [ecx + eax*8 + 4]
push dword [ecx + eax*8]
mov ecx, dword [esi]
call fcn.004bdc10
mov ecx, dword [esp + 0x1c]
add esp, 8
jmp 0x4dc008
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov edx, dword [eax + edi*4 + 0x10]
mov eax, dword [eax + edi*4 + 0xc]
mov dword [esp + 0x30], edx
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x38], ecx
cmp byte [eax + edi*4 + 3], 0
je 0x4dd244
mov eax, dword [esp + 0x20]
mov ecx, dword [edx + 0x14]
mov eax, dword [eax + 0xb0]
test eax, eax
je 0x4dd240
nop
cmp dword [eax + 0x1c], ecx
je 0x4d8bef
mov eax, dword [eax + 4]
test eax, eax
jne 0x4dd230
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x14]
mov eax, dword [eax + 0xb8]
cmp eax, dword [edi + 0x80]
jge 0x4de55d
test byte [ecx + 8], 0x40
jne 0x4dd339
mov ecx, dword [edx + 0xc]
mov esi, dword [edx + 8]
add esi, ecx
lea eax, [esi + 2]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*2]
mov eax, dword [edx + 0x10]
lea eax, [eax + ecx*4]
mov ecx, edi
cdq
push edx
push eax
call fcn.004b49a0
mov edi, eax
add esp, 8
mov dword [esp + 0x28], edi
test edi, edi
je 0x4de746
mov ecx, dword [esp + 0x38]
call fcn.004d0b10
mov eax, dword [esp + 0x38]
mov ecx, 0x40
mov edx, dword [esp + 0x30]
mov word [eax + 8], cx
mov ecx, dword [esp + 0x20]
mov dword [eax], edi
mov dword [edi], ecx
mov dword [edi + 0x3c], esi
mov eax, dword [edx + 0xc]
mov dword [edi + 0x40], eax
mov eax, dword [esp + 0x2c]
mov dword [edi + 0x2c], eax
mov eax, dword [ecx + 8]
mov dword [edi + 0x10], eax
mov eax, dword [ecx + 0x1c]
mov dword [edi + 0x34], eax
mov eax, dword [ecx + 0x38]
mov dword [edi + 0x18], 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 + 0x1c], eax
mov eax, dword [ecx + 0xc8]
mov dword [edi + 0x14], eax
mov eax, dword [ecx + 0xc4]
mov dword [edi + 0x38], eax
lea eax, [esi + 2]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
lea eax, [edi + 0x50]
cmp eax, ecx
je 0x4dd33b
mov esi, dword [esp + 0x14]
mov edi, pe_nt_image_headers32
mov word [eax + 8], di
mov dword [eax + 0x20], esi
add eax, 0x28
cmp eax, ecx
jne 0x4dd321
mov edi, dword [esp + 0x28]
mov edx, dword [esp + 0x30]
jmp 0x4dd33b
mov edi, dword [ecx]
mov ecx, dword [esp + 0x20]
lea esi, [edi + 0x28]
mov dword [esp + 0x24], esi
mov dword [esp + 0x2c], 0xffffffff
inc dword [ecx + 0xb8]
mov eax, dword [ecx + 0xb0]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x60]
mov dword [edi + 0x20], eax
mov eax, dword [esp + 0x64]
mov dword [edi + 0x24], eax
mov eax, dword [ecx + 0x5c]
mov dword [edi + 0x44], eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x50]
mov dword [edi + 0x48], 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 + 0x20]
mov dword [esi + 0x38], ecx
mov eax, dword [edx]
mov dword [esp + 0x18], eax
mov dword [esi + 4], 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
push ecx
mov dword [esi + 0xc4], eax
call fcn.006e6ec0
mov ecx, dword [esp + 0x20]
add esp, 0xc
jmp 0x4dc008
mov eax, dword [esp + 0x20]
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 + 0x1c]
add eax, dword [ecx + edi*4 + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x10]
lea edx, [eax + ecx*8]
mov ecx, esi
call fcn.004d10a0
mov ecx, dword [esp + 0x18]
add esp, 4
jmp case.default.0x4d8b9a
test dword [ecx + 0x18], 0x1000000
mov eax, dword [esp + 0x18]
je 0x4dd443
mov eax, dword [eax + edi*4 + 8]
cdq
add dword [ecx + 0x200], eax
adc dword [ecx + 0x204], edx
jmp case.default.0x4d8b9a
cmp dword [eax + edi*4 + 4], 0
mov eax, dword [eax + edi*4 + 8]
cdq
je 0x4dd460
add dword [ecx + 0x1f8], eax
adc dword [ecx + 0x1fc], edx
jmp case.default.0x4d8b9a
mov edi, dword [esp + 0x20]
add dword [edi + 0x90], eax
adc dword [edi + 0x94], edx
jmp case.default.0x4d8b9a
mov edx, dword [esp + 0x18]
cmp dword [edx + edi*4 + 4], 0
je 0x4dd4b2
mov eax, dword [ecx + 0x1f8]
or eax, dword [ecx + 0x1fc]
jne case.default.0x4d8b9a
mov eax, dword [ecx + 0x200]
or eax, dword [ecx + 0x204]
jne case.default.0x4d8b9a
mov edx, dword [edx + edi*4 + 8]
dec edx
mov dword [esp + 0x2c], edx
jmp case.default.0x4d8b9a
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x20]
mov eax, dword [eax + 0x90]
or eax, dword [esi + 0x94]
mov esi, dword [esp + 0x1c]
jmp 0x4dd48c
mov eax, dword [esp + 0x20]
mov edx, dword [eax + 0xb0]
test edx, edx
je 0x4dd4fd
mov eax, dword [edx + 4]
test eax, eax
je 0x4dd4ea
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x4dd4e1
mov eax, dword [esp + 0x18]
mov eax, dword [eax + edi*4 + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x10]
lea ecx, [eax + ecx*8]
jmp 0x4dd50f
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov eax, dword [eax + edi*4 + 4]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov dword [esp + 0x30], ecx
call fcn.004d0ce0
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + edi*4 + 8]
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.004d0ce0
mov eax, dword [esp + 0x30]
mov edx, dword [esi + 4]
mov ecx, dword [esi]
cmp dword [eax + 4], edx
jg 0x4d8cc4
jl 0x4dd54d
cmp dword [eax], ecx
jae 0x4d8cc4
mov dword [eax], ecx
mov ecx, dword [esp + 0x14]
mov dword [eax + 4], edx
jmp 0x4dc008
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x24]
mov eax, dword [edx + edi*4 + 4]
lea eax, [eax + eax*4]
cmp dword [esi + eax*8 + 4], 0
mov esi, dword [esp + 0x1c]
jl case.default.0x4d8b9a
jg 0x4dd4a4
mov esi, dword [esp + 0x24]
cmp dword [esi + eax*8], 0
mov esi, dword [esp + 0x1c]
jbe case.default.0x4d8b9a
mov edx, dword [edx + edi*4 + 8]
dec edx
mov dword [esp + 0x2c], edx
jmp case.default.0x4d8b9a
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x24]
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], eax
mov eax, esi
mov esi, dword [esp + 0x1c]
adc dword [eax + ecx*8 + 4], edx
cmp dword [eax + ecx*8 + 4], 0
jg 0x4d8bef
jl 0x4d8be2
cmp dword [eax + ecx*8], 0
jae 0x4d8bef
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 8]
dec ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x14]
jmp case.default.0x4d8b9a
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x24]
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], eax
mov eax, esi
adc dword [eax + ecx*8 + 4], edx
mov edx, esi
mov eax, dword [eax + ecx*8]
mov esi, dword [esp + 0x1c]
or eax, dword [edx + ecx*8 + 4]
mov edx, dword [esp + 0x10]
jne 0x4d9b4c
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 8]
dec ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x14]
jmp 0x4dc010
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
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 + 0x20]
mov esi, dword [eax + 0xc]
xor eax, eax
test edx, edx
je 0x4dd66b
nop
mov dword [esi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, edx
jl 0x4dd660
mov ecx, dword [esp + 0x18]
push esi
push edx
mov eax, dword [ecx + edi*4 + 0x10]
mov dword [esp + 0x104], eax
mov eax, dword [ecx + edi*4 + 0xc]
mov ecx, dword [esp + 0x2c]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x108], eax
inc dword [eax + 0xc]
mov eax, 1
mov word [esp + 0x1f0], ax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x208], eax
lea eax, [esp + 0x1e8]
mov dword [esp + 0x100], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x10c], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x110], eax
lea eax, [esp + 0x100]
push eax
mov eax, dword [esp + 0x108]
mov dword [esp + 0x204], 0
mov dword [esp + 0x118], 0
mov byte [esp + 0x11c], 0
mov eax, dword [eax + 0x10]
call eax
add esp, 0xc
cmp dword [esp + 0x10c], 0
je 0x4dd744
lea eax, [esp + 0x1e0]
push eax
call fcn.004d6360
add esp, 4
push eax
mov eax, dword [esp + 0x24]
push 0x792294
push dword [esp + 0x1c]
add eax, 0x2c
push eax
call fcn.004b4c70
mov eax, dword [esp + 0x11c]
add esp, 0x10
mov dword [esp + 0x10], eax
cmp byte [esp + 0x110], 0
je 0x4dd770
mov eax, dword [esp + 0x18]
mov eax, dword [eax + edi*4 - 0x10]
test eax, eax
je 0x4dd770
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
push 0
push 1
lea ecx, [ecx + eax*8]
call fcn.004d0f90
add esp, 8
lea ecx, [esp + 0x1e0]
call fcn.004d0b10
mov ecx, dword [esp + 0x14]
jmp 0x4dc008
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
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.004d0930
mov dword [esp + 0x10], eax
test eax, eax
je 0x4dd7cd
push esi
call fcn.004d6360
add esp, 4
push eax
mov eax, dword [esp + 0x24]
push 0x792294
push dword [esp + 0x1c]
add eax, 0x2c
push eax
call fcn.004b4c70
add esp, 0x10
movzx edx, byte [esp + 0x4c]
mov ecx, esi
call fcn.004d05b0
movzx eax, word [esi + 8]
test al, 0x12
je 0x4d8cc4
mov edx, dword [esi + 0xc]
test eax, 0x4000
je 0x4dd7f1
add edx, dword [esi]
mov eax, dword [esi + 0x20]
xor ecx, ecx
cmp edx, dword [eax + 0x58]
setg cl
test ecx, ecx
mov ecx, dword [esp + 0x14]
jne 0x4de5ce
jmp 0x4dc008
mov esi, dword [esp + 0x18]
lea eax, [esp + 0x214]
push eax
lea eax, [esp + 0x214]
mov dword [esp + 0x210], 0
push eax
push dword [esi + edi*4 + 8]
mov edx, dword [esi + edi*4 + 4]
mov dword [esp + 0x220], 0xffffffff
mov dword [esp + 0x21c], 0xffffffff
call fcn.00521610
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x10], ecx
cmp ecx, 5
jne 0x4dd870
mov dword [esp + 0x10], 0
mov dword [esp + 0x20c], 1
mov eax, dword [esi + edi*4 + 0xc]
xor esi, esi
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [esp + esi*4 + 0x20c]
mov ecx, edi
cdq
push edx
push eax
call fcn.004d0f90
inc esi
add esp, 8
add edi, 0x28
cmp esi, 3
jl 0x4dd880
mov ecx, dword [esp + 0x14]
jmp 0x4dc008
mov eax, dword [esp + 0x18]
mov esi, dword [eax + edi*4 + 0xc]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x14]
add ecx, ecx
cmp esi, 0xffffffff
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8 + 4]
mov dword [esp + 0x3c], eax
mov eax, dword [eax + 4]
mov ecx, dword [eax]
mov dword [esp + 0x28], ecx
movzx edx, byte [ecx + 5]
cmove esi, edx
mov dword [esp + 0x40], edx
cmp byte [ecx + 0x10], 3
mov dword [esp + 0x30], esi
jb 0x4dd8e8
xor eax, eax
jmp 0x4dd907
mov eax, dword [ecx + 0x40]
cmp dword [eax], 0
je 0x4dd902
cmp dword [ecx + 0x4c], 0
jl 0x4dd902
jg 0x4dd8fe
cmp dword [ecx + 0x48], 0
jbe 0x4dd902
xor eax, eax
jmp 0x4dd907
mov eax, 1
test eax, eax
mov esi, edx
mov eax, 0x7838d8
cmovne esi, dword [esp + 0x30]
cmp byte [ecx + 0xf], 0
jne 0x4dd921
mov eax, dword [ecx + 0xa8]
cmp esi, 5
jne 0x4dd992
mov ecx, eax
call fcn.004b7300
test eax, eax
je 0x4dd94b
mov ecx, dword [esp + 0x28]
cmp byte [ecx + 4], 0
mov eax, dword [ecx + 0x3c]
mov eax, dword [eax]
jne 0x4dd992
cmp dword [eax], 2
jl 0x4dd94b
cmp dword [eax + 0x34], 0
jne 0x4dd992
mov esi, edx
mov eax, dword [esp + 0x10]
test eax, eax
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x28]
cmove edx, esi
call fcn.004c3040
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov ecx, dword [ecx + edi*4 + 8]
lea ecx, [ecx + ecx*4]
lea edi, [edx + ecx*8]
mov ecx, 0xa02
mov dword [esp + 0x1c], edi
mov word [edi + 8], cx
cmp eax, 6
jne 0x4dda10
xor ecx, ecx
jmp 0x4dda17
cmp esi, edx
je 0x4dd94d
cmp edx, 5
je 0x4dd9a0
cmp esi, 5
jne 0x4dd94d
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x3f], 0
je 0x4de589
cmp dword [eax + 0x98], 1
jg 0x4de589
cmp edx, 5
jne 0x4dd9da
call fcn.004c32e0
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4dd953
mov ecx, dword [esp + 0x28]
mov edx, esi
call fcn.004c3040
jmp 0x4dd9f5
cmp edx, 4
jne 0x4dd9e9
mov edx, 2
call fcn.004c3040
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x4dd953
mov ecx, dword [esp + 0x3c]
xor edx, edx
cmp esi, 5
sete dl
inc edx
call fcn.004cf690
mov dword [esp + 0x10], eax
jmp 0x4dd951
mov ecx, dword [eax*4 + 0x78b084]
mov dword [edi + 0x10], ecx
call fcn.004b7300
mov dword [edi + 0xc], eax
mov ecx, edi
mov al, byte [esp + 0x4c]
movzx edx, al
mov byte [edi + 0xa], 1
call fcn.004d05b0
mov ecx, dword [esp + 0x14]
jmp 0x4dc008
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
lea ecx, [ecx + 0x2c]
call fcn.005112a0
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x10], eax
jmp case.default.0x4d8b9a
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x14]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov ecx, dword [eax + ecx*8 + 4]
call fcn.004c8bc0
mov ecx, eax
mov dword [esp + 0x10], ecx
cmp ecx, 0x65
jne 0x4d8bef
mov eax, dword [esp + 0x18]
mov dword [esp + 0x10], 0
mov ecx, dword [eax + edi*4 + 8]
dec ecx
xor edx, edx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x14]
jmp 0x4dc010
mov eax, dword [esp + 0x18]
cmp dword [eax + edi*4 + 4], 0
jne 0x4ddab8
call fcn.004d5de0
jmp case.default.0x4d8b9a
mov edx, dword [esp + 0x20]
or dword [edx + 0x58], 0x20
jmp case.default.0x4d8b9a
mov edx, dword [esp + 0x18]
mov al, byte [edx + edi*4 + 0xc]
mov byte [esp + 0xb4], al
test al, al
jne 0x4ddae5
test dword [ecx + 0x18], 0x4000
jne case.default.0x4d8b9a
mov eax, dword [edx + edi*4 + 4]
mov ecx, dword [ecx + 0x10]
add eax, eax
push dword [esp + 0xb4]
mov edx, dword [edx + edi*4 + 8]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.004cf560
mov ecx, eax
add esp, 4
mov dword [esp + 0x10], ecx
cmp cl, 6
jne 0x4d8bef
mov eax, dword [esp + 0x18]
push dword [eax + edi*4 + 0x10]
mov eax, dword [esp + 0x24]
push str.database_table_is_locked:__s
push dword [esp + 0x1c]
add eax, 0x2c
push eax
call fcn.004b4c70
mov ecx, dword [esp + 0x24]
add esp, 0x10
jmp case.default.0x4d8b9a
mov eax, dword [esp + 0x18]
mov esi, dword [eax + edi*4 + 0x10]
mov edx, esi
call fcn.00512880
mov dword [esp + 0x10], eax
test esi, esi
je 0x4d8cc4
mov edx, dword [esi + 8]
mov ecx, dword [esp + 0x20]
call fcn.004d5eb0
mov ecx, dword [esp + 0x14]
jmp 0x4dc008
mov eax, dword [esp + 0x20]
add eax, 0x2c
push eax
mov eax, dword [esp + 0x1c]
push dword [eax + edi*4 + 0x10]
mov edx, dword [eax + edi*4 + 4]
call fcn.005123b0
mov ecx, dword [esp + 0x1c]
add esp, 8
mov dword [esp + 0x10], eax
jmp case.default.0x4d8b9a
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov dword [esp + 0x10], 0
mov eax, dword [ecx + 0x58]
and eax, 0xfffffffb
or eax, 8
mov dword [ecx + 0x58], eax
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [esi + 0x10]
add ecx, ecx
mov edx, dword [edx + edi*4 + 0x10]
push dword [eax + ecx*8]
mov ecx, esi
call fcn.004edf00
mov esi, eax
add esp, 4
test esi, esi
je 0x4ddc11
cmp dword [esi + 0x3c], 0
je 0x4ddc11
mov ecx, dword [esp + 0x14]
mov edx, esi
call fcn.00511820
mov edi, eax
mov ecx, dword [edi + 4]
push dword [edi + 8]
mov ecx, dword [ecx]
mov ecx, dword [ecx + 0x14]
call ecx
mov ecx, eax
add esp, 4
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x4ddc11
mov dword [edi + 8], eax
mov ecx, edi
mov dword [esi + 0x3c], eax
call fcn.005117b0
mov ecx, dword [esp + 0x20]
and dword [ecx + 0x58], 0xfffffff3
mov ecx, dword [esp + 0x14]
jmp 0x4dc008
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0xd8]
mov dword [esp + 0xd8], 0
push ecx
mov eax, dword [eax + edi*4 + 0x10]
mov esi, dword [eax + 8]
push esi
mov eax, dword [esi]
mov dword [esp + 0x38], eax
mov eax, dword [eax + 0x18]
call eax
mov ecx, dword [esp + 0x28]
add esp, 8
mov edx, esi
mov dword [esp + 0x10], eax
call fcn.004d5eb0
cmp dword [esp + 0x10], 0
jne 0x4d8cc4
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0x20]
push 0
push 0xffffffffffffffff
mov dword [eax], esi
mov eax, dword [esp + 0x20]
push 0
mov edx, dword [eax + edi*4 + 4]
call fcn.004d8730
add esp, 0xc
test eax, eax
je 0x4ddcaf
mov ecx, dword [esp + 0xd8]
inc dword [esp + 0x2c]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x2c]
mov dword [eax + 0x24], ecx
mov ecx, dword [esp + 0x14]
jmp 0x4d8b2c
mov eax, dword [esp + 0x14]
push dword [esp + 0xd8]
mov byte [eax + 0x41], 1
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0x1c]
call eax
mov ecx, dword [esp + 0x18]
add esp, 4
jmp 0x4dc008
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x24]
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 + 0x20]
lea esi, [esi + edx*8]
movd xmm0, esi
mov dword [esp + 0x28], esi
mov eax, dword [eax + 0x38]
mov esi, dword [esi]
pshufd xmm3, xmm0, 0
mov eax, dword [eax + ecx*4]
xor ecx, ecx
mov dword [esp + 0xd8], eax
mov eax, dword [eax + 0x24]
mov dword [esp + 0x40], eax
mov eax, dword [eax]
mov dword [esp + 0x38], eax
mov eax, dword [eax]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax + edx*8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x20]
mov edx, dword [eax + 0xc]
test esi, esi
jle 0x4ddddb
cmp esi, 8
jb 0x4dddbb
cmp dword [0x82d5b4], 2
jl 0x4dddbb
movaps xmm2, xmmword [0x79c500]
mov eax, esi
and eax, reloc.OLEAUT32.dll_VariantInit
jns 0x4ddd5e
dec eax
or eax, 0xfffffff8
inc eax
movaps xmm1, xmmword [str.____44448888____]
mov edi, esi
sub edi, eax
nop dword [eax]
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx + ecx*4], xmm0
movd xmm0, eax
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx + ecx*4 + 0x10], xmm0
add ecx, 8
cmp ecx, edi
jl 0x4ddd70
mov edi, dword [esp + 0x50]
cmp ecx, esi
jge 0x4ddddb
mov edi, dword [esp + 0x28]
lea eax, [ecx + 1]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov edi, dword [esp + 0x50]
mov dword [edx + ecx*4], eax
inc ecx
add eax, 0x28
cmp ecx, esi
jl 0x4dddd0
mov ecx, dword [esp + 0x20]
push edx
push esi
mov esi, dword [esp + 0x48]
mov eax, dword [ecx + 0x58]
and eax, 0xfffffff7
or eax, 4
mov dword [ecx + 0x58], eax
mov eax, dword [esp + 0x20]
push dword [eax + edi*4 + 0x10]
mov eax, dword [esp + 0x3c]
push dword [esp + 0x48]
push esi
mov eax, dword [eax + 0x20]
call eax
mov edx, dword [esp + 0x4c]
add esp, 0x14
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x20]
mov ecx, eax
and dword [eax + 0x58], 0xfffffff3
call fcn.004d5eb0
cmp dword [esp + 0x10], 0
jne 0x4dde46
mov eax, dword [esp + 0x30]
push esi
mov eax, dword [eax + 0x28]
call eax
add esp, 4
test eax, eax
je 0x4dde46
mov eax, dword [esp + 0x18]
mov eax, dword [eax + edi*4 + 8]
dec eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0x14]
mov byte [eax + 0x19], 0
jmp 0x4dc008
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
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 + 0x24]
mov dword [esp + 0x30], ecx
cmp byte [ecx + 0x19], 0
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov dword [esp + 0x28], edx
je 0x4dde98
mov ecx, edx
call fcn.004d0f30
mov ecx, dword [esp + 0x14]
jmp case.default.0x4d8b9a
mov eax, dword [ecx + 0x24]
xorps xmm0, xmm0
mov esi, dword [eax]
mov ecx, dword [esi]
movaps xmmword [esp + 0x160], xmm0
movq qword [esp + 0x170], xmm0
mov dword [esp + 0x178], 0
mov dword [esp + 0x160], edx
mov ax, word [edx + 8]
and ax, word [esp + 0x5c]
or ax, 1
mov word [edx + 8], ax
mov eax, dword [esp + 0x18]
push dword [eax + edi*4 + 8]
lea eax, [esp + 0x164]
push eax
mov eax, dword [esp + 0x38]
push dword [eax + 0x24]
mov eax, dword [ecx + 0x2c]
call eax
mov ecx, dword [esp + 0x2c]
add esp, 0xc
mov edx, esi
mov dword [esp + 0x10], eax
call fcn.004d5eb0
mov eax, dword [esp + 0x174]
test eax, eax
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x28]
cmovne ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x4dd7cd
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x30], ecx
cmp byte [ecx + 0x19], 0
jne 0x4d8bef
mov eax, dword [ecx + 0x24]
mov edi, dword [esp + 0x20]
mov esi, dword [eax]
mov eax, dword [esp + 0x20]
mov edx, dword [esi]
mov eax, dword [eax + 0x58]
and eax, 0xfffffff7
mov dword [esp + 0x28], edx
or eax, 4
mov dword [edi + 0x58], eax
push dword [ecx + 0x24]
mov eax, dword [edx + 0x24]
call eax
mov dword [esp + 0x14], eax
add esp, 4
mov eax, edi
mov edx, esi
mov ecx, eax
and dword [eax + 0x58], 0xfffffff3
call fcn.004d5eb0
cmp dword [esp + 0x10], 0
mov edi, dword [esp + 0x50]
jne 0x4ddfa0
mov eax, dword [esp + 0x30]
push dword [eax + 0x24]
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x28]
call eax
add esp, 4
test eax, eax
jne 0x4ddfad
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 8]
dec ecx
mov dword [esp + 0x2c], ecx
mov edi, dword [esp + 0x14]
cmp dword [edi + 0xf0], 0
jne 0x4de707
mov ecx, dword [edi + 0x124]
test ecx, ecx
je 0x4ddff9
mov eax, dword [esp + 0x74]
cmp eax, dword [esp + 0x78]
jb 0x4ddff9
mov esi, dword [edi + 0x12c]
xor edx, edx
div esi
push dword [edi + 0x128]
sub esi, edx
add esi, dword [esp + 0x78]
mov dword [esp + 0x7c], esi
call ecx
add esp, 4
test eax, eax
jne 0x4de5f2
mov ecx, edi
jmp 0x4dc008
mov edx, dword [esp + 0x18]
mov eax, dword [edx + edi*4 + 0x10]
mov ecx, dword [eax + 8]
mov eax, dword [edx + edi*4 + 4]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x30], ecx
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 8], 2
lea esi, [edx + eax*8]
je 0x4de045
cmp byte [esi + 0xa], 1
je 0x4de045
mov dl, 1
mov ecx, esi
call fcn.004b6c60
mov ecx, eax
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x4d8cc4
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx]
push dword [esi + 0x10]
push ecx
mov eax, dword [eax + 0x4c]
call eax
mov esi, dword [esp + 0x28]
add esp, 8
mov edx, dword [esp + 0x30]
mov ecx, esi
mov dword [esp + 0x10], eax
call fcn.004d5eb0
and dword [esi + 0x58], 0xffffffdf
mov ecx, dword [esp + 0x14]
jmp 0x4dc008
mov edx, dword [esp + 0x18]
mov eax, dword [edx + edi*4 + 0x10]
mov esi, dword [edx + edi*4 + 8]
mov eax, dword [eax + 8]
mov dword [esp + 0x30], eax
mov eax, dword [eax]
mov dword [esp + 0x28], eax
cmp dword [eax + 0x34], 0
je 0x4dc008
mov al, byte [ecx + 0x45]
mov ecx, dword [esp + 0x24]
mov byte [esp + 0x1b8], al
mov eax, dword [esp + 0x20]
mov edx, dword [eax + 0xc]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
xor eax, eax
test esi, esi
jle 0x4de0cb
nop
mov dword [edx + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, esi
jl 0x4de0c0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov al, byte [eax + edi*4 + 3]
mov byte [ecx + 0x45], al
lea eax, [esp + 0x1d8]
push eax
mov eax, dword [esp + 0x2c]
push edx
push esi
mov esi, dword [esp + 0x3c]
mov eax, dword [eax + 0x34]
push esi
call eax
mov ecx, dword [esp + 0x24]
add esp, 0x10
mov dword [esp + 0x10], eax
mov edx, esi
mov al, byte [esp + 0x1b8]
mov byte [ecx + 0x45], al
mov ecx, dword [esp + 0x20]
call fcn.004d5eb0
cmp dword [esp + 0x10], 0
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
jne 0x4de144
cmp dword [esi + edi*4 + 4], 0
je 0x4de144
mov eax, dword [esp + 0x1d8]
mov edx, dword [esp + 0x1dc]
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], edx
mov dword [ecx + 0x20], eax
mov dword [ecx + 0x24], edx
mov edx, dword [esp + 0x10]
cmp dl, 0x13
jne 0x4de1a4
mov eax, dword [esi + edi*4 + 0x10]
cmp byte [eax + 0x10], 0
je 0x4de1a4
mov al, byte [esi + edi*4 + 3]
cmp al, 4
jne 0x4de178
inc dword [esp + 0x2c]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x10], 0
jmp 0x4d8b2c
cmp al, 5
jne 0x4de191
mov esi, dword [esp + 0x20]
mov eax, 2
mov byte [esi + 0x56], al
mov esi, dword [esp + 0x1c]
jmp 0x4dc010
mov esi, dword [esp + 0x20]
movzx eax, al
mov byte [esi + 0x56], al
mov esi, dword [esp + 0x1c]
jmp 0x4dc010
mov esi, dword [esp + 0x20]
inc dword [esi + 0x5c]
mov esi, dword [esp + 0x1c]
jmp 0x4dc010
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x14]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8 + 4]
mov ecx, dword [esp + 0x14]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x2c]
mov dword [esi], eax
mov dword [esi + 4], 0
jmp case.default.0x4d8b9a
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
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 0x4de20b
mov eax, dword [esi + 4]
mov edi, dword [eax + 0x2c]
cmp edi, ecx
cmovb edi, ecx
jmp 0x4de20d
xor edi, edi
cmp byte [esi + 9], 0
je 0x4de223
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x4de223
mov ecx, esi
call fcn.004c5a40
mov eax, dword [esi + 4]
mov eax, dword [eax]
test edi, edi
jle 0x4de232
mov dword [eax + 0x9c], edi
cmp byte [esi + 9], 0
mov edi, dword [eax + 0x9c]
je 0x4de24b
add dword [esi + 0xc], 0xffffffff
jne 0x4de24b
mov ecx, esi
call fcn.004c5a00
mov esi, dword [esp + 0x1c]
mov eax, edi
mov ecx, dword [esp + 0x14]
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp case.default.0x4d8b9a
mov edx, dword [esp + 0x18]
mov eax, dword [edx + edi*4 + 8]
test eax, eax
je 0x4de271
dec eax
mov dword [esp + 0x2c], eax
cmp dword [ecx + 0xac], 0
je case.default.0x4d8b9a
mov eax, dword [esp + 0x20]
test dword [eax + 0x58], 0x800
jne case.default.0x4d8b9a
mov edx, dword [edx + edi*4 + 0x10]
mov edi, eax
test edx, edx
jne 0x4de2a7
mov edx, dword [edi + 0xa8]
test edx, edx
je case.default.0x4d8b9a
mov ecx, edi
call fcn.004d82b0
mov edi, dword [esp + 0x14]
mov esi, eax
push esi
push dword [edi + 0xb0]
mov ecx, dword [edi + 0xac]
call ecx
add esp, 8
mov edx, esi
mov ecx, edi
call fcn.004b4750
mov ecx, edi
jmp 0x4dc008
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
jmp 0x4dc010
mov ecx, eax
jmp 0x4dc008
mov esi, dword [esp + 0x20]
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 + 0x2c]
mov dword [esi + 0x4c], eax
test ecx, ecx
je 0x4de38f
mov al, byte [edx + edi*4 + 3]
test al, al
je 0x4de342
movzx eax, al
mov eax, dword [eax*4 + 0x789c9c]
test eax, eax
je 0x4de344
mov ecx, dword [edx + edi*4 + 0x10]
test ecx, ecx
je 0x4de344
push ecx
push eax
push str._s_constraint_failed:__s
push dword [esp + 0x20]
add esi, 0x2c
push esi
call fcn.004b4c70
add esp, 0x14
jmp 0x4de36a
xor eax, eax
mov ecx, dword [edx + edi*4 + 0x10]
add esi, 0x2c
test ecx, ecx
je 0x4de357
push ecx
push 0x792294
jmp 0x4de35d
push eax
push str._s_constraint_failed
push dword [esp + 0x1c]
push esi
call fcn.004b4c70
add esp, 0x10
push dword [esi]
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
push dword [esi + 0xa8]
push dword [esp + 0x34]
push str.abort_at__d_in___s_:__s
push dword [eax + edi*4 + 4]
call fcn.004b68a0
add esp, 0x14
mov ecx, esi
call fcn.004d3ed0
cmp eax, 5
jne 0x4de6a1
mov edi, eax
mov dword [esi + 0x50], edi
jmp 0x4dc0a0
mov ecx, 9
mov dword [esp + 0x10], ecx
jmp 0x4dc025
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x24]
mov dword [esp + 0x5c], 0
mov eax, dword [edx + 0x48]
add eax, 2
or eax, 1
mov dword [edx + 0x48], eax
mov eax, dword [ecx + edi*4 + 4]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov dword [edx + 0x14], esi
cmp dword [ecx + edi*4 + 8], 0
jle 0x4de42b
nop dword [eax + eax]
mov eax, 0x1000
test word [esi + 8], ax
je 0x4de40a
mov ecx, esi
call fcn.004d0720
test eax, eax
jne 0x4de746
mov ecx, esi
call fcn.004d0830
mov eax, dword [esp + 0x5c]
add esi, 0x28
mov ecx, dword [esp + 0x18]
inc eax
mov dword [esp + 0x5c], eax
cmp eax, dword [ecx + edi*4 + 8]
jl 0x4de3f0
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
cmp byte [ecx + 0x41], 0
jne 0x4de74a
mov eax, dword [esp + 0x2c]
mov edi, 0x64
inc eax
mov dword [edx + 0x4c], eax
jmp 0x4dc0a0
mov dword [esp + 0x10], 0x14
jmp 0x4dbe1d
mov eax, dword [esp + 0x20]
push str.cannot_open_savepoint___SQL_statements_in_progress
push edx
add eax, 0x2c
push eax
call fcn.004b4c70
mov ecx, 5
add esp, 0xc
inc dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
jmp 0x4dc025
push str.cannot_release_savepoint___SQL_statements_in_progress
push eax
mov eax, dword [esp + 0x28]
add eax, 0x2c
push eax
call fcn.004b4c70
mov ecx, 5
add esp, 0xc
inc dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
jmp 0x4dc025
mov edx, dword [esp + 0x2c]
mov dword [eax + 0x4c], edx
mov byte [edi + 0x3f], 0
mov edi, 5
mov dword [eax + 0x50], edi
jmp 0x4dc0a0
mov dword [esp + 0x10], 8
jmp 0x4dbe21
mov eax, dword [esp + 0x20]
mov edi, 5
mov edx, dword [esp + 0x2c]
mov dword [eax + 0x4c], edx
mov dword [eax + 0x50], edi
jmp 0x4dc0a0
mov ecx, 0x11ee7
call fcn.005229a0
mov dword [esp + 0x10], eax
jmp 0x4dbe1d
inc dword [esp + 0x2c]
mov ecx, 0x204
mov dword [esp + 0x10], ecx
jmp 0x4dc025
mov ecx, dword [esp + 0x10]
cmp ecx, 0xc0a
je 0x4dc025
call fcn.00520bb0
mov edi, dword [esp + 0x14]
push eax
mov eax, dword [esp + 0x24]
push 0x792294
add eax, 0x2c
push edi
push eax
call fcn.004b4c70
mov ecx, dword [esp + 0x20]
add esp, 0x10
jmp 0x4dc029
mov edi, dword [esp + 0x20]
mov ecx, 6
inc dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
mov byte [edi + 0x56], 2
jmp 0x4dc025
mov eax, dword [esp + 0x20]
push str.too_many_levels_of_trigger_recursion
add eax, 0x2c
mov dword [esp + 0x14], 1
push edi
push eax
call fcn.004b4c70
add esp, 0xc
mov ecx, 1
inc dword [esp + 0x2c]
jmp 0x4dc029
mov edi, dword [esp + 0x14]
mov ecx, str.out_of
cmp esi, 5
mov dword [esp + 0x10], 1
mov eax, str.into
cmovne eax, ecx
push eax
mov eax, dword [esp + 0x24]
push str.cannot_change__s_wal_mode_from_within_a_transaction
add eax, 0x2c
push edi
push eax
call fcn.004b4c70
add esp, 0x10
mov ecx, 1
inc dword [esp + 0x2c]
jmp 0x4dc029
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
push str.string_or_blob_too_big
push ecx
add eax, 0x2c
push eax
call fcn.004b4c70
mov ecx, 0x12
add esp, 0xc
mov dword [esp + 0x10], ecx
jmp 0x4dc025
mov ecx, 9
mov dword [esp + 0x10], ecx
jmp 0x4dc029
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 4]
mov edx, dword [eax + edi*4 + 8]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x5c], ecx
test ecx, ecx
je 0x4de634
cmp byte [eax + 0x3f], 0
jne 0x4de634
test edx, edx
jne 0x4de634
cmp dword [eax + 0x9c], edx
jle 0x4de634
push str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x4de485
movzx eax, byte [eax + 0x3f]
cmp ecx, eax
jne 0x4de67e
test ecx, ecx
jne 0x4de647
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x4de656
test edx, edx
mov eax, str.cannot_rollback___no_transaction_is_active
mov ecx, str.cannot_commit___no_transaction_is_active
cmove eax, ecx
mov edi, dword [esp + 0x14]
push eax
mov eax, dword [esp + 0x24]
add eax, 0x2c
push edi
push eax
call fcn.004b4c70
mov ecx, 1
add esp, 0xc
inc dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
jmp 0x4dc029
test edx, edx
je 0x4de6b7
mov edi, dword [esp + 0x14]
mov edx, 0x204
mov ecx, edi
call fcn.00520a60
mov esi, dword [esp + 0x20]
mov byte [edi + 0x3f], 1
mov ecx, edi
call fcn.00520370
cmp dword [esi + 0x50], 0
mov edi, 0x65
mov eax, 1
cmovne edi, eax
jmp 0x4dc0a0
mov esi, dword [esp + 0x20]
mov edx, 1
mov ecx, esi
call fcn.004d3e60
mov edi, eax
test edi, edi
jne 0x4dc0a0
mov edi, dword [esp + 0x14]
mov ecx, esi
mov eax, dword [esp + 0x5c]
mov byte [edi + 0x3f], al
call fcn.004d3ed0
cmp eax, 5
jne 0x4de69a
mov eax, dword [esp + 0x2c]
mov dword [esi + 0x4c], eax
mov al, 1
sub al, byte [esp + 0x5c]
mov byte [edi + 0x3f], al
mov edi, 5
mov dword [esi + 0x50], edi
jmp 0x4dc0a0
mov edi, ecx
mov eax, dword [str.interrupted]
mov ecx, str.unknown_error
mov edx, dword [esp + 0x20]
test eax, eax
mov dword [esp + 0x10], 9
cmovne ecx, eax
push ecx
push 0x792294
lea eax, [edx + 0x2c]
mov dword [edx + 0x50], 9
push edi
push eax
call fcn.004b4c70
add esp, 0x10
mov ecx, 9
jmp 0x4dc029
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
push str.out_of_memory
push ecx
add eax, 0x2c
mov byte [ecx + 0x41], 1
push eax
call fcn.004b4c70
mov ecx, 7
add esp, 0xc
mov dword [esp + 0x10], ecx
jmp 0x4dc025