Function at 0x4d47b0
Capabilities:
Encrypt data using speck
Reference sql statements
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x298
push ebx
mov ebx, dword [esp + 0x2a0]
push ebp
mov ebp, dword [ebx + 0x58]
push esi
mov esi, dword [ebx]
mov cl, byte [esi + 0x42]
xor eax, eax
push edi
mov edi, dword [ebx + 0x5c]
push ebx
mov dword [esp + 0x38], ebp
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], esi
mov byte [esp + 0x4b], al
mov byte [esp + 0x46], cl
mov dword [esp + 0x54], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x4c], edi
call fcn.004ce3b0
add esp, 4
cmp dword [ebx + 0x28], 7
je 0x4d60cc
xor eax, eax
mov dword [ebx + 0x38], eax
mov dword [ebx + 0x3c], eax
mov dword [ebx + 0x68], eax
mov edx, dword [esi + 0xf8]
mov dword [esi + 0x184], eax
test edx, edx
jne 0x4d98e5
cmp dword [esi + 0x130], eax
je 0x4d4841
mov esi, dword [esi + 0x138]
mov eax, dword [ebx + 0xb0]
div esi
sub esi, edx
mov dword [esp + 0xa4], esi
jmp 0x4d484c
mov dword [esp + 0xa4], 0xffffffff
mov eax, dword [ebx + 0x24]
lea eax, [eax + eax*4]
mov ecx, ebp
lea ebp, [ecx + eax*4]
mov dl, byte [ebp]
inc dword [esp + 0x70]
mov ecx, dword [esp + 0x50]
movzx eax, dl
cmp eax, 0xa4
ja case.0x4d4870.74
jmp dword [eax*4 + 0x4d9a64]
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
lea ecx, [edi + edx*8]
mov eax, 4
mov word [ecx + 8], ax
mov edx, ebp
sub edx, dword [esp + 0x34]
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x4d9426
mov ebp, dword [ebp + 4]
lea ecx, [ebp + ebp*4]
lea eax, [edi + ecx*8]
mov ecx, dword [eax]
mov edi, dword [esp + 0x48]
lea edx, [ecx + ecx*4]
mov ecx, dword [esp + 0x34]
lea ebp, [ecx + edx*4]
mov edx, 0x80
mov word [eax + 8], dx
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
mov eax, dword [ebp + 0xc]
dec eax
cdq
mov dword [ecx + 4], edx
mov edx, 4
mov dword [ecx], eax
mov word [ecx + 8], dx
cmp dword [ebp + 8], 0
jne 0x4d9426
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov ebp, dword [ebp + 4]
mov ecx, dword [esp + 0x34]
lea eax, [ebp + ebp*4]
lea edi, [edi + eax*8]
mov eax, dword [edi]
lea edx, [eax + eax*4]
mov eax, dword [ecx + edx*4 + 8]
lea eax, [eax + eax*4]
lea ebp, [ecx + eax*4 - 0x14]
mov ecx, 0x80
mov word [edi + 8], cx
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebp + 4]
mov esi, dword [esp + 0x34]
lea edx, [eax + eax*4]
mov ecx, dword [edi + edx*8]
lea edi, [edi + edx*8]
mov eax, 4
mov word [edi + 8], ax
sub ebp, esi
mov eax, 0x66666667
imul ebp
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
lea ecx, [ecx + ecx*4]
lea ebp, [esi + ecx*4]
mov dword [edi], eax
mov dword [edi + 4], edx
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebp + 0xc]
lea edx, [eax + eax*4]
test byte [edi + edx*8 + 8], 1
je case.0x4d4870.74
mov ecx, ebp
sub ecx, dword [esp + 0x34]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp + 4], 0
mov dword [esp + 0x1c], eax
jne 0x4d94ce
mov ecx, dword [ebx + 0xc4]
test ecx, ecx
je 0x4d94ce
mov eax, dword [ecx + 4]
mov edx, dword [esp + 0x18]
dec dword [ebx + 0xcc]
mov dword [ebx + 0xc4], eax
mov eax, dword [ebx + 0x2c]
add dword [edx + 0x5c], eax
push ecx
mov dword [edx + 0x58], eax
call fcn.004ced80
add esp, 4
cmp dword [ebp + 8], 4
jne 0x4d49f6
mov edx, dword [ebx + 0x58]
lea ecx, [eax + eax*4]
mov eax, dword [edx + ecx*4 + 8]
dec eax
mov ebp, dword [ebx + 0x58]
mov ecx, dword [ebx + 0x5c]
mov dword [esp + 0x34], ebp
lea edx, [eax + eax*4]
lea ebp, [ebp + edx*4]
mov dword [esp + 0x48], ecx
add ebp, 0x14
mov edi, ecx
jmp 0x4d4857
mov eax, ebp
mov edx, ebx
call fcn.004d4780
mov edi, dword [esp + 0x48]
mov ecx, eax
mov eax, dword [ebp + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
add ebp, 0x14
jmp 0x4d4857
mov eax, ebp
mov edx, ebx
call fcn.004d4780
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx]
mov edi, dword [esp + 0x48]
mov dword [eax], edx
mov ecx, dword [ecx + 4]
mov dword [eax + 4], ecx
add ebp, 0x14
jmp 0x4d4857
mov eax, ebp
mov edx, ebx
call fcn.004d4780
mov edi, dword [esp + 0x48]
mov edx, 8
mov word [eax + 8], dx
mov ecx, dword [ebp + 0x10]
fld qword [ecx]
add ebp, 0x14
fstp qword [eax]
jmp 0x4d4857
mov eax, ebp
mov edx, ebx
call fcn.004d4780
mov esi, eax
mov eax, dword [ebp + 0x10]
mov byte [ebp], 0x3a
call fcn.004b24d0
cmp byte [esp + 0x42], 1
mov dword [ebp + 4], eax
je 0x4d4af8
mov eax, dword [ebp + 0x10]
push 0
push 1
push eax
or eax, 0xffffffff
mov ecx, esi
call fcn.004cc8c0
movzx ecx, byte [esp + 0x4e]
mov dword [esp + 0x20], eax
add esp, 0xc
mov eax, esi
call fcn.004cbc80
test eax, eax
jne 0x4d60cc
mov edx, 0x800
or word [esi + 8], dx
mov dword [esi + 0x18], eax
cmp byte [ebp + 1], 0xf9
jne 0x4d4ae8
mov eax, dword [ebp + 0x10]
mov ecx, dword [esp + 0x18]
call fcn.004afaf0
mov byte [ebp + 1], 0xf9
mov eax, dword [esi + 0x10]
mov dword [ebp + 0x10], eax
mov ecx, dword [esi + 0xc]
mov dword [ebp + 4], ecx
mov edx, dword [ebp + 4]
mov eax, dword [esp + 0x18]
cmp edx, dword [eax + 0x60]
jg 0x4d8832
mov eax, ebp
mov edx, ebx
call fcn.004d4780
mov ecx, eax
mov edx, 0xa02
mov word [ecx + 8], dx
mov eax, dword [ebp + 0x10]
mov dword [ecx + 0x10], eax
mov edx, dword [ebp + 4]
mov al, byte [esp + 0x42]
mov dword [ecx + 0xc], edx
mov byte [ecx + 0xa], al
mov eax, dword [ebp + 0xc]
test eax, eax
jle case.0x4d4870.74
lea esi, [eax + eax*4]
movzx eax, word [ebp + 2]
cdq
mov dword [esp + 0x234], edx
mov edx, dword [edi + esi*8]
cmp edx, eax
jne case.0x4d4870.74
mov eax, dword [edi + esi*8 + 4]
cmp eax, dword [esp + 0x234]
jne case.0x4d4870.74
mov edi, dword [esp + 0x48]
mov edx, 0xa10
mov word [ecx + 8], dx
add ebp, 0x14
jmp 0x4d4857
mov eax, ebp
mov edx, ebx
call fcn.004d4780
mov edi, dword [ebp + 0xc]
sub edi, dword [ebp + 8]
mov esi, eax
mov eax, dword [ebp + 4]
neg eax
sbb eax, eax
and eax, 0x100
inc eax
movzx eax, ax
mov dword [esp + 0x1c], eax
mov word [esi + 8], ax
mov dword [esi + 0xc], 0
test edi, edi
jle case.0x4d4870.74
add esi, 0x28
mov eax, esi
call fcn.004cc590
mov cx, word [esp + 0x1c]
dec edi
mov word [esi + 8], cx
mov dword [esi + 0xc], 0
test edi, edi
jg 0x4d4bb2
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
mov cx, word [edi + edx*8 + 8]
lea eax, [edi + edx*8]
mov edi, dword [esp + 0x48]
mov edx, 0xff61
and cx, dx
or cx, 1
mov word [eax + 8], cx
add ebp, 0x14
jmp 0x4d4857
mov eax, ebp
mov edx, ebx
call fcn.004d4780
mov esi, eax
mov eax, dword [ebp + 0x10]
push 0
push 0
push eax
mov eax, dword [ebp + 4]
mov ecx, esi
call fcn.004cc8c0
mov cl, byte [esp + 0x4e]
mov edi, dword [esp + 0x54]
add esp, 0xc
mov byte [esi + 0xa], cl
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebx + 0x74]
lea esi, [eax + edx*8 - 0x28]
mov ecx, esi
call fcn.004cc740
test eax, eax
jne 0x4d8832
mov eax, dword [ebp + 8]
push 0x800
lea ecx, [eax + eax*4]
lea edx, [edi + ecx*8]
push esi
push edx
call fcn.004cc790
mov edi, dword [esp + 0x54]
add esp, 0xc
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
lea esi, [edi + ecx*8]
lea edi, [edi + edx*8]
push esi
mov eax, edi
call fcn.004cc880
mov eax, 0x1000
add esp, 4
test word [edi + 8], ax
je 0x4d4cb8
mov eax, edi
call fcn.004cbe30
test eax, eax
jne 0x4d60cc
add esi, 0x28
add edi, 0x28
sub dword [esp + 0x28], 1
jne 0x4d4c93
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebp + 4]
mov ecx, dword [ebp + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
lea esi, [edi + edx*8]
mov dword [esp + 0x28], ecx
lea edi, [edi + eax*8]
lea ebx, [ebx]
push 0x1000
push esi
push edi
call fcn.004cc790
mov ecx, 0x1000
add esp, 0xc
test word [edi + 8], cx
je 0x4d4d19
mov eax, edi
call fcn.004cbe30
test eax, eax
jne 0x4d60cc
mov eax, dword [esp + 0x28]
mov edx, eax
dec eax
mov dword [esp + 0x28], eax
test edx, edx
je case.0x4d4870.74
add edi, 0x28
add esi, 0x28
jmp 0x4d4cf0
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
mov eax, dword [ebp + 8]
push 0x1000
lea edx, [eax + eax*4]
push ecx
lea eax, [edi + edx*8]
push eax
call fcn.004cc790
mov edi, dword [esp + 0x54]
add esp, 0xc
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
mov ecx, dword [edi + eax*8 + 4]
mov edx, dword [edi + eax*8]
mov eax, dword [ebp + 8]
push ecx
lea eax, [eax + eax*4]
push edx
lea eax, [edi + eax*8]
call fcn.004cc5f0
mov edi, dword [esp + 0x50]
add esp, 8
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebp + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 0xc]
lea ecx, [edi + ecx*8]
lea esi, [edi + edx*8]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
movzx eax, word [ecx + 8]
mov dword [esp + 0x24], ecx
mov cl, byte [esi + 8]
or cl, al
mov dword [esp + 0x20], esi
test cl, 1
je 0x4d4dd1
mov eax, edi
call fcn.004cc590
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
test eax, 0x4000
je 0x4d4ded
mov esi, dword [esp + 0x24]
call fcn.004cbea0
test eax, eax
jne 0x4d60cc
mov esi, dword [esp + 0x20]
mov edx, 0x4000
test word [esi + 8], dx
je 0x4d4e09
mov esi, dword [esp + 0x20]
call fcn.004cbea0
test eax, eax
jne 0x4d60cc
mov eax, dword [esp + 0x24]
test byte [eax + 8], 0x12
jne 0x4d4e30
mov ecx, dword [esp + 0x42]
push 0
push ecx
mov esi, eax
call fcn.004cbf50
add esp, 8
test eax, eax
jne 0x4d60cc
mov esi, dword [esp + 0x20]
test byte [esi + 8], 0x12
jne 0x4d4e51
mov edx, dword [esp + 0x42]
mov esi, dword [esp + 0x20]
push 0
push edx
call fcn.004cbf50
add esp, 8
test eax, eax
jne 0x4d60cc
mov ecx, dword [esp + 0x24]
mov eax, dword [esi + 0xc]
add eax, dword [ecx + 0xc]
cdq
mov ecx, edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x128], eax
mov eax, dword [edx + 0x60]
cdq
cmp ecx, edx
jg 0x4d8832
jl 0x4d4e84
cmp dword [esp + 0x128], eax
ja 0x4d8832
xor eax, eax
cmp edi, esi
sete al
push eax
mov eax, dword [esp + 0x12c]
add eax, 2
push edi
call fcn.004cbca0
add esp, 8
test eax, eax
jne 0x4d60cc
mov cx, word [edi + 8]
mov edx, 0x3e00
and cx, dx
or cx, 2
mov word [edi + 8], cx
cmp edi, esi
je 0x4d4ed3
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
mov edx, dword [edi + 0x10]
push eax
push ecx
push edx
call fcn.00530500
add esp, 0xc
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 0x10]
mov eax, dword [edi + 0x10]
add eax, dword [esi + 0xc]
push ecx
push edx
push eax
call fcn.00530500
mov ecx, dword [edi + 0x10]
mov eax, dword [esp + 0x134]
mov byte [eax + ecx], 0
mov edx, dword [edi + 0x10]
mov byte [edx + eax + 1], 0
mov dl, byte [esp + 0x4e]
mov ecx, 0x200
or word [edi + 8], cx
add esp, 0xc
mov dword [edi + 0xc], eax
mov byte [edi + 0xa], dl
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
mov eax, esi
call fcn.004d4720
movzx ecx, ax
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
lea eax, [edi + edx*8]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x20], eax
call fcn.004d4720
movzx ecx, ax
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edx, [edi + eax*8]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x30], edx
mov dx, word [eax + 8]
or dx, word [esi + 8]
mov dword [esp + 0x1c], ecx
and cl, byte [esp + 0x28]
movzx eax, dx
test cl, 4
je 0x4d508b
mov edx, dword [esp + 0x20]
mov edi, dword [edx]
mov edx, dword [edx + 4]
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov dword [esp + 0x5c], edx
movzx edx, byte [ebp]
add edx, 0xffffffa8
mov dword [esp + 0x58], edi
mov byte [esp + 0x46], 1
cmp edx, 3
ja case.default.0x4d4fa7
jmp dword [edx*4 + 0x4d9cf8]
push ecx
push eax
lea eax, [esp + 0x60]
push eax
call fcn.004b3690
add esp, 0xc
test eax, eax
jne 0x4d5098
jmp 0x4d505a
push ecx
push eax
lea edx, [esp + 0x60]
call fcn.004b3730
add esp, 8
test eax, eax
jne 0x4d5098
jmp 0x4d505a
push ecx
push eax
lea ecx, [esp + 0x60]
push ecx
call fcn.004b3780
add esp, 0xc
test eax, eax
jne 0x4d5098
jmp 0x4d505a
mov edx, eax
or edx, ecx
je 0x4d51a0
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
jne 0x4d501c
test edi, edi
jne 0x4d501c
cmp dword [esp + 0x5c], 0x80000000
je 0x4d5098
push ecx
push eax
mov eax, dword [esp + 0x64]
push eax
push edi
call fcn.00539190
jmp 0x4d5052
mov edx, eax
or edx, ecx
je 0x4d51a0
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
jne 0x4d5045
mov eax, 1
xor ecx, ecx
push ecx
push eax
mov eax, dword [esp + 0x64]
push eax
push edi
call fcn.0053b330
mov dword [esp + 0x5c], edx
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov edi, dword [esp + 0x48]
mov dword [eax], ecx
mov cx, word [eax + 8]
mov dword [eax + 4], edx
mov edx, 0x3e00
and cx, dx
or cx, 4
mov word [eax + 8], cx
add ebp, 0x14
jmp 0x4d4857
test al, 1
jne 0x4d51a0
mov byte [esp + 0x46], 0
mov ecx, esi
call fcn.004cc320
fstp qword [esp + 0x38]
mov ecx, dword [esp + 0x20]
call fcn.004cc320
movzx eax, byte [ebp]
add eax, 0xffffffa8
cmp eax, 3
ja case.default.0x4d50b8
jmp dword [eax*4 + 0x4d9d08]
fadd qword [esp + 0x38]
jmp 0x4d513c
fsub qword [esp + 0x38]
jmp 0x4d513c
fmul qword [esp + 0x38]
jmp 0x4d513c
fldz
fld qword [esp + 0x38]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jnp 0x4d519c
fdivp st(1)
jmp 0x4d513c
fld qword [esp + 0x38]
call fcn.00584356
mov esi, eax
mov edi, edx
call fcn.00584356
mov ecx, esi
or ecx, edi
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], edx
je 0x4d51a0
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x4d511e
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push eax
call fcn.0053b330
mov dword [esp + 0x168], eax
mov dword [esp + 0x16c], edx
fild qword [esp + 0x168]
sub esp, 8
fst qword [esp + 0x40]
fstp qword [esp]
call fcn.004b2490
add esp, 8
test eax, eax
jne 0x4d51a0
mov esi, dword [esp + 0x30]
fld qword [esp + 0x38]
mov dx, word [esi + 8]
fstp qword [esi]
mov eax, 0x3e00
and dx, ax
mov al, byte [esp + 0x1c]
or al, byte [esp + 0x28]
or dx, 8
mov word [esi + 8], dx
test al, 8
jne case.0x4d4870.74
cmp byte [esp + 0x46], 0
jne case.0x4d4870.74
call fcn.004cc340
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
fstp st(0)
fstp st(0)
mov eax, dword [esp + 0x30]
call fcn.004cc590
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebp + 4]
test eax, eax
je case.0x4d4870.74
lea ecx, [eax + eax*4]
push 0
push 0
lea eax, [edi + ecx*8]
call fcn.004cc5f0
mov edi, dword [esp + 0x50]
add esp, 8
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
mov eax, dword [ebp + 0xc]
lea esi, [edi + edx*8]
lea edx, [eax + eax*4]
mov al, byte [ecx + 8]
or al, byte [esi + 8]
lea edi, [edi + edx*8]
mov dword [esp + 0x24], esi
mov dword [esp + 0x30], edi
test al, 1
je 0x4d521e
mov eax, edi
call fcn.004cc590
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
call fcn.004cc2a0
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x78], eax
mov esi, edx
call fcn.004cc2a0
mov edi, eax
mov al, byte [ebp]
cmp al, 0x54
jne 0x4d5246
and dword [esp + 0x78], edi
and esi, edx
jmp 0x4d5328
cmp al, 0x55
jne 0x4d5255
or dword [esp + 0x78], edi
or esi, edx
jmp 0x4d5328
mov ecx, edi
or ecx, edx
je 0x4d5328
test edx, edx
jg 0x4d528d
jl 0x4d5269
test edi, edi
jae 0x4d5282
mov cl, 0xad
sub cl, al
cmp edx, 0xffffffff
mov al, cl
jl 0x4d528d
jg 0x4d527b
cmp edi, 0xffffffc0
jbe 0x4d528d
neg edi
adc edx, 0
neg edx
test edx, edx
jl 0x4d52b5
jg 0x4d528d
cmp edi, 0x40
jb 0x4d52b5
test esi, esi
jg 0x4d52aa
jl 0x4d529a
cmp dword [esp + 0x78], 0
jae 0x4d52aa
cmp al, 0x56
je 0x4d52aa
or eax, 0xffffffff
cdq
mov dword [esp + 0x78], eax
mov esi, edx
jmp 0x4d5328
xor eax, eax
cdq
mov dword [esp + 0x78], eax
mov esi, edx
jmp 0x4d5328
cmp al, 0x56
mov eax, dword [esp + 0x78]
mov edx, esi
mov ecx, edi
jne 0x4d52d6
call fcn.005835c0
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], edx
jmp 0x4d5316
call fcn.00543ea0
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], edx
test esi, esi
jg 0x4d5316
jl 0x4d52f6
cmp dword [esp + 0x78], 0
jae 0x4d5316
mov ecx, 0x40
sub ecx, edi
or eax, 0xffffffff
or edx, 0xffffffff
call fcn.005835c0
or dword [esp + 0xa8], eax
or dword [esp + 0xac], edx
mov edx, dword [esp + 0xa8]
mov esi, dword [esp + 0xac]
mov dword [esp + 0x78], edx
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x78]
mov dx, word [eax + 8]
mov edi, dword [esp + 0x48]
mov dword [eax], ecx
mov ecx, 0x3e00
and dx, cx
or dx, 4
mov dword [eax + 4], esi
mov word [eax + 8], dx
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
lea esi, [edi + edx*8]
call fcn.004cc3b0
mov eax, dword [ebp + 8]
mov edi, dword [esp + 0x48]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
movzx eax, word [esi + 8]
test al, 4
jne 0x4d53c3
test al, 8
jne 0x4d539f
test al, 2
je 0x4d53a4
push 1
mov eax, esi
call fcn.004d45c0
add esp, 4
jmp 0x4d53a4
call fcn.004cc340
movzx eax, word [esi + 8]
test al, 4
jne 0x4d53c3
cmp dword [ebp + 8], 0
jne 0x4d9426
mov dword [esp + 0x14], 0x14
jmp 0x4d8849
mov edi, dword [esp + 0x48]
and eax, 0x3e00
or eax, 4
mov word [esi + 8], ax
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebp + 4]
lea ecx, [eax + eax*4]
test byte [edi + ecx*8 + 8], 4
lea esi, [edi + ecx*8]
je case.0x4d4870.74
call fcn.004cc410
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
lea esi, [edi + edx*8]
mov eax, 0x4000
test word [esi + 8], ax
je 0x4d541f
call fcn.004cbea0
mov dword [esp + 0x14], eax
jmp 0x4d5427
mov dword [esp + 0x14], 0
mov dl, byte [esp + 0x42]
mov cl, byte [ebp + 8]
push esi
call fcn.004cc4e0
add esp, 4
cmp dword [esp + 0x14], 0
jne 0x4d8849
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebp + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebp + 0xc]
lea edx, [eax + eax*4]
movzx eax, word [edi + ecx*8 + 8]
lea ecx, [edi + ecx*8]
lea esi, [edi + edx*8]
movzx edx, word [esi + 8]
mov dword [esp + 0x20], eax
mov eax, edx
or eax, dword [esp + 0x20]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], edx
test al, 1
je 0x4d54f7
movzx eax, word [ebp + 2]
test al, al
jns 0x4d54ad
mov cl, dl
and cl, byte [esp + 0x20]
test cl, 1
je 0x4d556c
test edx, 0x100
jne 0x4d556c
xor eax, eax
jmp 0x4d561f
test al, 0x20
je 0x4d54e3
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
mov ax, word [edi + edx*8 + 8]
lea edi, [edi + edx*8]
mov ecx, 0x3e00
and ax, cx
or ax, 1
mov word [edi + 8], ax
mov edi, dword [esp + 0x48]
mov dword [esp + 0x50], 1
add ebp, 0x14
jmp 0x4d4857
test al, 0x10
jne 0x4d9426
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov dl, byte [ebp + 2]
and dl, 0x47
cmp dl, 0x43
jl 0x4d5590
test al, 2
je 0x4d554a
mov dl, byte [esp + 0x20]
and dl, 0xe
cmp dl, 2
jne 0x4d552e
push 0
mov eax, ecx
call fcn.004d45c0
movzx eax, word [esi + 8]
mov ecx, dword [esp + 0x28]
add esp, 4
mov dword [esp + 0x30], eax
mov dl, byte [esp + 0x30]
and dl, 0xe
cmp dl, 2
jne 0x4d554a
push 0
mov eax, esi
call fcn.004d45c0
mov ecx, dword [esp + 0x28]
add esp, 4
mov al, byte [ecx + 8]
and al, byte [esi + 8]
test al, 4
je 0x4d560b
mov eax, dword [esi]
mov edx, dword [ecx]
mov esi, dword [esi + 4]
mov ecx, dword [ecx + 4]
cmp esi, ecx
jl 0x4d5588
jg 0x4d556c
cmp eax, edx
jbe 0x4d5576
mov eax, 1
jmp 0x4d561f
cmp esi, ecx
jg 0x4d54a6
jl 0x4d5588
cmp eax, edx
jae 0x4d54a6
or eax, 0xffffffff
jmp 0x4d561f
cmp dl, 0x42
jne 0x4d560b
mov al, byte [esp + 0x20]
test al, 2
jne 0x4d55d0
test al, 0xc
je 0x4d55d0
mov ecx, dword [esp + 0x42]
mov esi, dword [esp + 0x24]
push 1
push ecx
call fcn.004cbf50
mov ax, word [esp + 0x28]
mov dx, word [esi + 8]
xor dx, ax
mov ecx, 0x3e00
and dx, cx
add esp, 8
xor ax, dx
mov word [esp + 0x20], ax
mov al, byte [esp + 0x30]
test al, 2
jne 0x4d560b
test al, 0xc
je 0x4d560b
mov edx, dword [esp + 0x42]
mov esi, dword [esp + 0x2c]
push 1
push edx
call fcn.004cbf50
mov ax, word [esp + 0x38]
mov cx, word [esi + 8]
xor cx, ax
mov edx, 0x3e00
and cx, dx
add esp, 8
xor ax, cx
mov word [esp + 0x30], ax
mov edi, dword [ebp + 0x10]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x2c]
call fcn.004d0c30
mov edi, dword [esp + 0x48]
movzx ecx, byte [ebp]
add ecx, 0xffffffb3
cmp ecx, 4
ja case.default.0x4d562b
jmp dword [ecx*4 + 0x4d9d18]
xor ecx, ecx
test eax, eax
sete cl
jmp 0x4d5665
mov esi, eax
jmp 0x4d5667
xor edx, edx
test eax, eax
setl dl
mov esi, edx
jmp 0x4d5667
xor ecx, ecx
test eax, eax
setle cl
jmp 0x4d5665
xor edx, edx
test eax, eax
setg dl
mov esi, edx
jmp 0x4d5667
xor ecx, ecx
test eax, eax
setge cl
mov esi, ecx
movzx edx, word [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov word [ecx + 8], dx
movzx edx, word [esp + 0x30]
mov ecx, dword [esp + 0x2c]
mov word [ecx + 8], dx
movzx edx, word [ebp + 2]
test dl, 0x20
je 0x4d56da
mov ecx, dword [ebp + 8]
mov dword [esp + 0x50], eax
xor eax, eax
test esi, esi
lea ecx, [ecx + ecx*4]
setne al
lea edi, [edi + ecx*8]
test dl, 8
je 0x4d56b4
xor edx, edx
cmp byte [ebp], 0x4e
sete dl
cmp edx, eax
je case.0x4d4870.74
mov cx, word [edi + 8]
mov edx, 0x3e00
and cx, dx
cdq
or cx, 4
mov word [edi + 8], cx
mov dword [edi], eax
mov dword [edi + 4], edx
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
test esi, esi
jne 0x4d9426
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
test byte [ebp + 2], 1
jne 0x4d56fc
xor ecx, ecx
mov dword [esp + 0x2c], ecx
jmp 0x4d5708
mov eax, dword [ebp - 4]
add eax, 4
mov dword [esp + 0x2c], eax
mov ecx, eax
mov esi, dword [ebp + 4]
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x38], esi
mov esi, dword [ebp + 8]
mov dword [esp + 0x28], esi
xor esi, esi
mov dword [esp + 0x24], eax
mov dword [esp + 0x1c], edx
test eax, eax
jle case.0x4d4870.74
add edx, 0x14
mov dword [esp + 0x20], edx
jmp 0x4d573b
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x4d5744
mov ecx, dword [ecx + esi*4]
jmp 0x4d5746
mov ecx, esi
mov eax, dword [esp + 0x20]
mov edx, dword [eax]
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x38]
mov dword [esp + 0x50], edx
mov edx, dword [eax + 0x10]
movzx eax, byte [esi + edx]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x30], eax
lea eax, [ecx + edx]
mov edx, dword [esp + 0x48]
add ecx, edi
mov edi, dword [esp + 0x50]
lea eax, [eax + eax*4]
lea ecx, [ecx + ecx*4]
lea eax, [edx + eax*8]
lea ecx, [edx + ecx*8]
call fcn.004d0c30
mov dword [esp + 0x50], eax
test eax, eax
jne 0x4d57a5
add dword [esp + 0x20], 4
inc esi
cmp esi, dword [esp + 0x24]
jl 0x4d5737
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
cmp dword [esp + 0x30], 0
je case.0x4d4870.74
mov edx, dword [esp + 0x50]
mov edi, dword [esp + 0x48]
neg edx
mov dword [esp + 0x50], edx
add ebp, 0x14
jmp 0x4d4857
test ecx, ecx
jge 0x4d57e5
mov ebp, dword [ebp + 4]
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x48]
lea eax, [ebp + ebp*4]
lea ebp, [ecx + eax*4 - 0x14]
add ebp, 0x14
jmp 0x4d4857
jne 0x4d5802
mov ebp, dword [ebp + 8]
mov eax, dword [esp + 0x34]
mov edi, dword [esp + 0x48]
lea edx, [ebp + ebp*4]
lea ebp, [eax + edx*4 - 0x14]
add ebp, 0x14
jmp 0x4d4857
mov ebp, dword [ebp + 0xc]
jmp 0x4d9429
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 8], 1
lea ecx, [edi + eax*8]
je 0x4d5821
mov esi, 2
jmp 0x4d5833
call fcn.004cc2a0
or eax, edx
je 0x4d5831
mov esi, 1
jmp 0x4d5833
xor esi, esi
mov eax, dword [ebp + 8]
lea ecx, [eax + eax*4]
test byte [edi + ecx*8 + 8], 1
lea ecx, [edi + ecx*8]
je 0x4d584a
mov eax, 2
jmp 0x4d585c
call fcn.004cc2a0
or eax, edx
je 0x4d585a
mov eax, 1
jmp 0x4d585c
xor eax, eax
cmp byte [ebp], 0x47
jne 0x4d586f
lea edx, [eax + esi*2]
movzx eax, byte [esi + edx + 0x59d73c]
jmp 0x4d587a
lea eax, [eax + esi*2]
movzx eax, byte [esi + eax + 0x59d780]
mov ecx, dword [ebp + 0xc]
lea ecx, [ecx + ecx*4]
lea edi, [edi + ecx*8]
cmp eax, 2
jne 0x4d58a8
mov dx, word [edi + 8]
mov eax, 0x3e00
and dx, ax
or dx, 1
mov word [edi + 8], dx
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov cx, word [edi + 8]
cdq
mov dword [edi + 4], edx
mov edx, 0x3e00
and cx, dx
or cx, 4
mov dword [edi], eax
mov word [edi + 8], cx
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
mov eax, dword [ebp + 8]
lea ecx, [eax + eax*4]
lea edi, [edi + ecx*8]
mov eax, edi
call fcn.004cc590
test byte [esi + 8], 1
jne case.0x4d4870.74
mov edx, 4
mov ecx, esi
mov word [edi + 8], dx
call fcn.004cc2a0
or eax, edx
jne 0x4d591c
mov eax, 1
cdq
mov dword [edi], eax
mov dword [edi + 4], edx
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
xor eax, eax
cdq
mov dword [edi], eax
mov dword [edi + 4], edx
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
mov eax, dword [ebp + 8]
lea ecx, [eax + eax*4]
lea edi, [edi + ecx*8]
mov eax, edi
call fcn.004cc590
test byte [esi + 8], 1
jne case.0x4d4870.74
mov edx, 4
mov ecx, esi
mov word [edi + 8], dx
call fcn.004cc2a0
not eax
not edx
mov dword [edi], eax
mov dword [edi + 4], edx
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
cmp dword [ebx + 0xc4], 0
je 0x4d59e2
mov ecx, ebp
sub ecx, dword [ebx + 0x58]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edi, eax
and edi, 7
mov esi, eax
mov eax, dword [ebx + 0xc4]
mov eax, dword [eax + 0x18]
mov edx, 1
mov ecx, edi
shl edx, cl
shr esi, 3
test byte [esi + eax], dl
jne 0x4d9426
mov eax, dword [ebx + 0xc4]
mov eax, dword [eax + 0x18]
mov edi, dword [esp + 0x48]
mov dl, 1
shl dl, cl
add esi, eax
or byte [esi], dl
mov edx, dword [ebx + 0x58]
mov eax, dword [edx + 4]
mov dword [ebp + 4], eax
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebx + 0x58]
mov ecx, dword [eax + 4]
cmp ecx, dword [ebp + 4]
je 0x4d9426
mov edi, dword [esp + 0x48]
mov edx, eax
mov eax, dword [edx + 4]
mov dword [ebp + 4], eax
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebp + 4]
lea ecx, [eax + eax*4]
test byte [edi + ecx*8 + 8], 1
lea ecx, [edi + ecx*8]
je 0x4d5a1a
mov eax, dword [ebp + 0xc]
jmp 0x4d5a44
call fcn.004cc320
fcomp qword [0x5d9750]
fnstsw ax
test ah, 0x44
jnp 0x4d5a33
mov eax, 1
jmp 0x4d5a35
xor eax, eax
cmp byte [ebp], 0x16
jne 0x4d5a44
xor edx, edx
test eax, eax
sete dl
mov eax, edx
test eax, eax
jne 0x4d9426
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 8], 1
jne 0x4d9426
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebp + 4]
lea ecx, [eax + eax*4]
test byte [edi + ecx*8 + 8], 1
je 0x4d9426
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov edx, dword [ebp + 4]
mov eax, dword [ebx + 0x70]
mov ecx, dword [eax + edx*4]
cmp byte [ecx + 2], 0
je case.0x4d4870.74
mov eax, dword [ebp + 0xc]
lea edx, [eax + eax*4]
lea eax, [edi + edx*8]
call fcn.004cc590
jmp 0x4d9426
mov eax, dword [ebp + 4]
mov ecx, dword [ebx + 0x70]
mov edx, dword [ecx + eax*4]
mov eax, dword [ebp + 8]
mov dword [esp + 0xd4], edx
lea ecx, [esp + 0x64]
lea edx, [esp + 0xd4]
mov dword [esp + 0x64], eax
call fcn.004d0320
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4d8849
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x48]
mov edi, dword [esp + 0xd4]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
mov edx, dword [edi + 0x1c]
mov ecx, dword [edi + 0x48]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x20], ecx
cmp edx, dword [ebx + 0x20]
je 0x4d5c0a
cmp byte [edi + 2], 0
je 0x4d5b4a
cmp byte [edi], 3
jne 0x4d4dc0
mov eax, dword [edi + 0x28]
mov ecx, dword [esp + 0x48]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, dword [eax + 0xc]
mov dword [edi + 0x54], ecx
mov dword [edi + 0x50], ecx
mov edx, dword [eax + 0x10]
mov dword [esp + 0xa0], ecx
mov dword [edi + 0x4c], edx
jmp 0x4d5b99
mov esi, dword [edi + 0x28]
mov eax, esi
mov dword [esp + 0x1c], esi
call fcn.004c4a40
mov eax, dword [esi + 0x1c]
mov edx, dword [esp + 0x1c]
lea esi, [esp + 0xa0]
mov dword [edi + 0x50], eax
call fcn.004c4f60
mov dword [edi + 0x4c], eax
mov eax, dword [edi + 0x50]
cmp eax, dword [esp + 0xa0]
ja 0x4d5b82
mov dword [edi + 0x54], eax
jmp 0x4d5b99
mov ecx, dword [esp + 0x18]
cmp eax, dword [ecx + 0x60]
ja 0x4d8832
mov edx, dword [esp + 0xa0]
mov dword [edi + 0x54], edx
mov eax, dword [ebx + 0x20]
mov dword [edi + 0x1c], eax
mov ecx, dword [edi + 0x4c]
mov al, byte [ecx]
cmp al, 0x80
jae 0x4d5bb9
movzx eax, al
mov dword [esp + 0xdc], eax
mov ecx, 1
jmp 0x4d5bcf
lea esi, [esp + 0xdc]
call fcn.004b34d0
movzx ecx, al
mov eax, dword [esp + 0xdc]
movzx ecx, cl
mov dword [edi + 0x30], ecx
mov ecx, dword [esp + 0x20]
xor edx, edx
mov word [edi + 0x3a], dx
mov dword [ecx], eax
cmp dword [esp + 0xa0], eax
jae 0x4d5cac
xor ecx, ecx
mov dword [edi + 0x4c], ecx
mov dword [edi + 0x54], ecx
cmp eax, 0x18003
ja 0x4d9670
cmp eax, dword [edi + 0x50]
ja 0x4d9670
movzx ecx, word [edi + 0x3a]
mov eax, dword [esp + 0x64]
cmp ecx, eax
jg 0x4d5e4a
mov edx, dword [edi + 0x30]
mov ecx, dword [esp + 0x20]
cmp edx, dword [ecx]
jae 0x4d5df1
cmp dword [edi + 0x4c], 0
jne 0x4d5cbd
xor eax, eax
mov dword [esp + 0x178], eax
mov dword [esp + 0x17c], eax
mov dword [esp + 0x180], eax
mov dword [esp + 0x184], eax
mov dword [esp + 0x188], eax
mov dword [esp + 0x18c], eax
mov dword [esp + 0x190], eax
mov dword [esp + 0x194], eax
mov dword [esp + 0x198], eax
mov dword [esp + 0x19c], eax
mov ecx, dword [ecx]
mov edx, dword [edi + 0x28]
lea eax, [esp + 0x178]
push eax
push ecx
xor eax, eax
call fcn.004ccb80
add esp, 8
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4d8849
mov edx, dword [esp + 0x188]
mov dword [esp + 0x24], edx
jmp 0x4d5cc4
test eax, eax
jbe 0x4d5c0a
mov edx, dword [edi + 0x4c]
mov dword [esp + 0x24], edx
jmp 0x4d5cc4
mov eax, dword [edi + 0x4c]
mov dword [esp + 0x24], eax
movzx esi, word [edi + 0x3a]
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + esi*4]
mov edx, dword [esp + 0x24]
mov ebx, dword [edi + 0x30]
mov eax, dword [eax]
add ebx, edx
add eax, edx
lea edx, [edi + esi*4 + 0x58]
mov dword [esp + 0x28], esi
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], 0
mov dword [esp + 0x30], eax
mov dword [esp + 0x38], edx
mov edi, edi
movzx eax, byte [ebx]
mov dword [esp + 0x54], eax
cmp eax, 0x80
jae 0x4d5d2c
movzx eax, al
movzx eax, byte [eax + 0x59d698]
cdq
inc ebx
add ecx, eax
adc dword [esp + 0x84], edx
mov dword [esp + 0x80], ecx
jmp 0x4d5d5f
lea esi, [esp + 0x54]
mov ecx, ebx
call fcn.004b34d0
movzx ecx, al
mov eax, dword [esp + 0x54]
add ebx, ecx
call fcn.004d04a0
add dword [esp + 0x80], eax
mov ecx, dword [esp + 0x80]
mov esi, dword [esp + 0x28]
adc dword [esp + 0x84], 0
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x54]
mov dword [eax], edx
add eax, 4
inc esi
cmp esi, dword [esp + 0x64]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x20]
mov dword [eax + esi*4], ecx
mov eax, dword [esp + 0x30]
mov dword [esp + 0x28], esi
jg 0x4d5d90
cmp ebx, eax
jb 0x4d5d00
jmp 0x4d5d94
cmp ebx, eax
jb 0x4d5db6
cmp ebx, eax
ja 0x4d9683
mov eax, dword [edi + 0x50]
xor edx, edx
cmp ecx, eax
jne 0x4d9683
cmp dword [esp + 0x84], edx
jne 0x4d9683
mov edx, dword [edi + 0x50]
xor eax, eax
cmp dword [esp + 0x84], eax
ja 0x4d9683
jb 0x4d5dd2
cmp ecx, edx
ja 0x4d9683
sub ebx, dword [esp + 0x24]
mov word [edi + 0x3a], si
mov dword [edi + 0x30], ebx
cmp dword [edi + 0x4c], 0
jne 0x4d5df9
lea eax, [esp + 0x178]
call fcn.004cc1f0
jmp 0x4d5df9
mov dword [esp + 0x54], 0
movzx ecx, word [edi + 0x3a]
cmp ecx, dword [esp + 0x64]
jg 0x4d5e52
cmp byte [ebp + 1], 0xf5
mov eax, dword [esp + 0x2c]
jne 0x4d5e32
mov edx, dword [ebp + 0x10]
push 0x800
push edx
push eax
call fcn.004cc790
mov ebx, dword [esp + 0x2b8]
mov edi, dword [esp + 0x54]
add esp, 0xc
add ebp, 0x14
jmp 0x4d4857
call fcn.004cc590
mov ebx, dword [esp + 0x2ac]
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov ecx, dword [edi + eax*4 + 0x58]
mov dword [esp + 0x54], ecx
mov esi, dword [esp + 0x2c]
mov edx, 0x2460
test word [esi + 8], dx
je 0x4d5e68
mov eax, esi
call fcn.004cc590
mov eax, dword [edi + 0x54]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x64]
mov ebx, dword [esp + 0x54]
cmp eax, dword [ecx + edx*4 + 4]
jb 0x4d5f34
mov ecx, dword [edi + 0x4c]
mov eax, dword [esp + 0x20]
add ecx, dword [eax + edx*4]
mov dword [esp + 0x24], ecx
cmp ebx, 0xc
jae 0x4d5eb2
push esi
mov edx, ebx
call fcn.004d05d0
mov ebx, dword [esp + 0x2b0]
mov edi, dword [esp + 0x4c]
add esp, 4
add ebp, 0x14
jmp 0x4d4857
mov al, byte [esp + 0x42]
lea edi, [ebx - 0xc]
shr edi, 1
mov byte [esi + 0xa], al
lea eax, [edi + 2]
cmp dword [esi + 0x18], eax
mov dword [esi + 0xc], edi
jge 0x4d5eeb
mov ecx, 1
push 0
push esi
mov word [esi + 8], cx
call fcn.004cbca0
add esp, 8
test eax, eax
jne 0x4d60cc
mov esi, dword [esp + 0x2c]
jmp 0x4d5ef1
mov edx, dword [esi + 0x14]
mov dword [esi + 0x10], edx
mov eax, dword [esp + 0x24]
mov ecx, dword [esi + 0x10]
push edi
push eax
push ecx
call fcn.00530500
mov edx, dword [esi + 0x10]
mov byte [edi + edx], 0
mov eax, dword [esi + 0x10]
and ebx, 1
mov byte [edi + eax + 1], 0
mov cx, word [ebx*2 + 0x59d78c]
mov ebx, dword [esp + 0x2b8]
mov edi, dword [esp + 0x54]
add esp, 0xc
mov word [esi + 8], cx
add ebp, 0x14
jmp 0x4d4857
mov dl, byte [esp + 0x42]
mov byte [esi + 0xa], dl
movzx eax, word [ebp + 2]
test al, 0xc0
je 0x4d5f51
cmp ebx, 0xc
jb 0x4d5f4d
test bl, 1
je 0x4d5f5c
test al, al
js 0x4d5f5c
mov eax, ebx
call fcn.004d04a0
test eax, eax
jne 0x4d5f7f
push esi
mov edx, ebx
mov ecx, 0x5efa54
call fcn.004d05d0
mov ebx, dword [esp + 0x2b0]
mov edi, dword [esp + 0x4c]
add esp, 4
add ebp, 0x14
jmp 0x4d4857
mov edx, dword [edi + 0x28]
push esi
push eax
mov eax, ecx
mov ecx, dword [esp + 0x6c]
mov eax, dword [eax + ecx*4]
call fcn.004ccb80
add esp, 8
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4d8849
mov ecx, dword [esi + 0x10]
push esi
mov edx, ebx
call fcn.004d05d0
mov ebx, dword [esp + 0x2b0]
mov edi, dword [esp + 0x4c]
add esp, 4
mov edx, 0xefff
and word [esi + 8], dx
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebp + 4]
mov esi, dword [ebp + 0x10]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
mov al, byte [esi]
lea esp, [esp]
mov ecx, dword [esp + 0x42]
push ecx
mov ecx, edi
call fcn.004d4640
mov al, byte [esi + 1]
inc esi
add esp, 4
add edi, 0x28
test al, al
jne 0x4d5fe0
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebp + 4]
mov esi, dword [ebp + 0x10]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8 - 0x28]
mov dword [esp + 0x1c], eax
movzx eax, byte [ebx + 0x8f]
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 0xc]
xor edx, edx
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [esp + 0x98], edx
mov dword [esp + 0x9c], edx
mov dword [esp + 0x24], edx
mov dword [esp + 0x88], edx
mov dword [esp + 0x8c], edx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x30], eax
cmp esi, edx
je 0x4d6080
mov al, byte [esi]
mov edi, ecx
mov ecx, dword [esp + 0x42]
push ecx
mov ecx, edi
call fcn.004d4640
mov al, byte [esi + 1]
inc esi
add esp, 4
add edi, 0x28
test al, al
jne 0x4d6066
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x38]
lea edx, [esp + 0xb4]
push edx
push eax
mov edx, esi
call fcn.004d0370
mov edi, eax
mov ecx, 0x4000
add esp, 8
mov dword [esp + 0x20], edi
mov dword [esi + 0x1c], edi
test word [esi + 8], cx
je 0x4d6135
mov edx, dword [esp + 0x98]
or edx, dword [esp + 0x9c]
je 0x4d6117
call fcn.004cbea0
test eax, eax
je 0x4d6135
mov eax, dword [esp + 0x18]
cmp byte [eax + 0x45], 0
jne 0x4d60f9
cmp byte [eax + 0x46], 0
jne 0x4d60f9
cmp dword [eax + 0xa8], 0
mov byte [eax + 0x45], 1
jle 0x4d60f3
mov dword [eax + 0xf8], 1
inc dword [eax + 0x100]
mov esi, dword [esp + 0x2ac]
push str.out_of_memory
call fcn.004cd1f0
mov dword [esp + 0x18], 7
jmp 0x4d8846
mov ecx, dword [esi]
mov edi, dword [esp + 0x20]
mov eax, ecx
cdq
add dword [esp + 0x88], eax
adc dword [esp + 0x8c], edx
sub dword [esp + 0xb4], ecx
mov eax, dword [esp + 0xb4]
add dword [esp + 0x98], eax
adc dword [esp + 0x9c], 0
cmp edi, 0x7f
ja 0x4d6157
mov eax, 1
jmp 0x4d6162
push 0
push edi
call fcn.004b3550
add esp, 8
add dword [esp + 0x24], eax
cmp esi, dword [esp + 0x28]
je 0x4d6174
sub esi, 0x28
jmp 0x4d6084
cmp dword [esp + 0x24], 0x7e
jle 0x4d61a2
mov eax, dword [esp + 0x24]
cdq
push edx
push eax
call fcn.004b3550
mov esi, eax
mov eax, dword [esp + 0x2c]
add eax, esi
mov dword [esp + 0x2c], eax
cdq
push edx
push eax
call fcn.004b3550
add esp, 0x10
cmp esi, eax
jge 0x4d61a6
inc dword [esp + 0x24]
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x98]
mov ecx, dword [esp + 0x9c]
cdq
add edi, eax
adc ecx, edx
mov dword [esp + 0x134], edx
mov edx, dword [esp + 0x18]
mov esi, edi
add esi, dword [esp + 0x88]
mov dword [esp + 0x130], eax
mov eax, dword [edx + 0x60]
adc ecx, dword [esp + 0x8c]
cdq
cmp ecx, edx
mov dword [esp + 0x238], edi
jg 0x4d8832
jl 0x4d61fc
cmp esi, eax
ja 0x4d8832
mov eax, dword [esp + 0x30]
cmp dword [eax + 0x18], edi
jge 0x4d623a
push 0
push eax
mov eax, edi
call fcn.004cbca0
add esp, 8
test eax, eax
jne 0x4d60cc
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x24]
mov esi, dword [edx + 0x10]
mov dword [esp + 0x38], esi
cmp ecx, 0x80
jae 0x4d6247
mov byte [esi], cl
mov eax, 1
jmp 0x4d6263
mov ecx, dword [eax + 0x14]
and word [eax + 8], 0xd
mov dword [eax + 0x10], ecx
jmp 0x4d621a
mov eax, dword [esp + 0x134]
mov ecx, dword [esp + 0x130]
push eax
push ecx
call fcn.004b3300
mov ecx, dword [esp + 0x2c]
add esp, 8
movzx edx, al
mov eax, dword [esp + 0x28]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], eax
jmp 0x4d6280
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + 0x1c]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x20], eax
cmp eax, 0x80
jae 0x4d62a4
mov edx, dword [esp + 0x2c]
mov byte [edx + ecx], al
mov eax, 1
jmp 0x4d62ba
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x2c]
push 0
push edx
lea esi, [eax + ecx]
call fcn.004b3300
add esp, 8
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x28]
movzx edx, al
mov eax, dword [esp + 0x38]
add dword [esp + 0x2c], edx
lea edi, [ecx + eax]
mov ecx, dword [esp + 0x20]
mov eax, esi
call fcn.004d04c0
add dword [esp + 0x24], eax
add esi, 0x28
mov dword [esp + 0x28], esi
cmp esi, dword [esp + 0x1c]
jbe 0x4d6280
mov edx, dword [esp + 0x238]
mov eax, dword [esp + 0x30]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x88]
or edx, dword [esp + 0x8c]
mov ecx, 0x10
mov word [eax + 8], cx
je case.0x4d4870.74
mov ecx, dword [esp + 0x88]
mov edi, dword [esp + 0x48]
mov edx, 0x4010
mov dword [eax], ecx
mov word [eax + 8], dx
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebp + 4]
mov ecx, dword [ebx + 0x70]
mov edx, dword [ecx + eax*4]
mov eax, dword [edx + 0x28]
lea ecx, [esp + 0x108]
xor esi, esi
push ecx
mov dword [esp + 0x10c], esi
mov dword [esp + 0x110], esi
call fcn.004c9720
add esp, 4
mov dword [esp + 0x14], eax
cmp eax, esi
jne 0x4d8849
mov eax, ebp
mov edx, ebx
call fcn.004d4780
mov edx, dword [esp + 0x108]
mov ecx, dword [esp + 0x10c]
mov edi, dword [esp + 0x48]
mov dword [eax], edx
mov dword [eax + 4], ecx
add ebp, 0x14
jmp 0x4d4857
mov ecx, dword [ebp + 4]
mov eax, dword [ebp + 0x10]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x28], eax
test ecx, ecx
jne 0x4d646d
cmp dword [edi + 0xa4], ecx
jg 0x4d9441
call fcn.004b24d0
mov edx, dword [edi + 0x1b4]
add edx, dword [edi + 0x1b0]
mov dword [esp + 0x1c], eax
push edx
push 0
push edi
call fcn.0050dee0
add esp, 0xc
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4d8849
mov eax, dword [esp + 0x1c]
add eax, 0x21
push 0
push eax
mov eax, edi
call fcn.004afe20
mov esi, eax
add esp, 8
test esi, esi
je 0x4d5437
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x28]
inc ecx
push ecx
lea eax, [esi + 0x20]
push edx
push eax
mov dword [esi], eax
call fcn.00530500
add esp, 0xc
cmp byte [edi + 0x43], 0
je 0x4d642f
mov byte [edi + 0x43], 0
mov byte [edi + 0x4b], 1
jmp 0x4d6435
inc dword [edi + 0x1b0]
mov eax, dword [edi + 0x1a8]
mov dword [esi + 0x18], eax
mov ecx, dword [edi + 0x1b8]
mov dword [edi + 0x1a8], esi
mov dword [esi + 8], ecx
mov edx, dword [edi + 0x1bc]
mov dword [esi + 0xc], edx
mov eax, dword [edi + 0x1c0]
mov dword [esi + 0x10], eax
mov ecx, dword [edi + 0x1c4]
mov dword [esi + 0x14], ecx
jmp 0x4d5437
mov esi, dword [edi + 0x1a8]
mov dword [esp + 0x20], 0
mov dword [esp + 0x30], esi
test esi, esi
je 0x4d64a1
mov eax, dword [esp + 0x28]
mov ecx, dword [esi]
call fcn.004b27e0
test eax, eax
je 0x4d64c2
mov esi, dword [esi + 0x18]
inc dword [esp + 0x20]
mov dword [esp + 0x30], esi
test esi, esi
jne 0x4d6483
mov eax, dword [esp + 0x28]
push eax
push str.no_such_savepoint:__s
mov esi, ebx
call fcn.004cd1f0
add esp, 8
mov dword [esp + 0x14], 1
jmp 0x4d8849
mov eax, dword [esp + 0x2c]
xor ecx, ecx
cmp dword [edi + 0xa4], ecx
jle 0x4d64d9
cmp eax, 1
je 0x4d945a
cmp dword [esi + 0x18], ecx
jne 0x4d6537
cmp byte [edi + 0x4b], 0
je 0x4d6537
mov dword [esp + 0x38], 1
cmp eax, 1
jne 0x4d653b
push eax
mov eax, ebx
call fcn.004cfa20
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4d9a31
mov ebx, dword [esp + 0x2ac]
mov esi, edi
mov edi, ebx
mov byte [esi + 0x43], 1
call fcn.004cfa90
cmp eax, 5
je 0x4d96a8
mov byte [esi + 0x4b], 0
mov edx, dword [ebx + 0x28]
mov dword [esp + 0x14], edx
mov edi, esi
jmp 0x4d6611
mov dword [esp + 0x38], ecx
mov edx, dword [edi + 0x1b0]
sub edx, dword [esp + 0x20]
dec edx
mov dword [esp + 0x20], edx
cmp eax, 2
jne 0x4d65ad
mov eax, dword [edi + 0x18]
shr eax, 0x17
and eax, 1
cmp dword [edi + 0x14], ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], ecx
jle 0x4d65b1
xor eax, eax
cmp dword [esp + 0x28], eax
sete al
xor esi, esi
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x1c]
mov edx, dword [edi + 0x10]
mov eax, dword [esi + edx + 4]
push ecx
push 0x204
push eax
call fcn.004c44d0
add esp, 0xc
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4d8849
mov eax, dword [esp + 0x24]
inc eax
add esi, 0x10
cmp eax, dword [edi + 0x14]
mov dword [esp + 0x24], eax
jl 0x4d6574
jmp 0x4d65b1
mov dword [esp + 0x28], ecx
xor esi, esi
cmp dword [edi + 0x14], esi
mov dword [esp + 0x24], esi
jle 0x4d65f5
lea esp, [esp]
mov ecx, dword [esp + 0x20]
mov edx, dword [edi + 0x10]
mov eax, dword [esp + 0x2c]
push ecx
mov ecx, dword [edx + esi + 4]
call fcn.004c4770
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4d8849
mov eax, dword [esp + 0x24]
inc eax
add esi, 0x10
cmp eax, dword [edi + 0x14]
mov dword [esp + 0x24], eax
jl 0x4d65c0
cmp dword [esp + 0x28], 0
je 0x4d6611
mov eax, edi
call fcn.004d19d0
mov eax, edi
call fcn.004ea8a0
or dword [edi + 0x18], 0x800000
mov eax, dword [esp + 0x30]
cmp dword [edi + 0x1a8], eax
je 0x4d6682
lea ecx, [ecx]
cmp dword [edi + 0x1c8], 0
mov eax, dword [edi + 0x1a8]
mov ecx, dword [eax + 0x18]
mov dword [edi + 0x1a8], ecx
je 0x4d6641
mov ecx, edi
call fcn.004afa70
jmp 0x4d6670
cmp eax, dword [edi + 0x120]
jb 0x4d6667
cmp eax, dword [edi + 0x124]
jae 0x4d6667
mov edx, dword [edi + 0x11c]
mov dword [eax], edx
dec dword [edi + 0x108]
mov dword [edi + 0x11c], eax
jmp 0x4d6670
push eax
call fcn.004afa00
add esp, 4
mov eax, dword [esp + 0x30]
dec dword [edi + 0x1b0]
cmp dword [edi + 0x1a8], eax
jne 0x4d6620
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
cmp ecx, 1
jne 0x4d66b2
mov ecx, dword [eax + 0x18]
mov dword [edi + 0x1a8], ecx
mov ecx, edi
call fcn.004afaf0
cmp dword [esp + 0x38], 0
jne 0x4d5437
dec dword [edi + 0x1b0]
jmp 0x4d66e6
cmp dword [esp + 0x38], 0
mov edx, dword [eax + 8]
mov dword [edi + 0x1b8], edx
mov edx, dword [eax + 0xc]
mov dword [edi + 0x1bc], edx
mov edx, dword [eax + 0x10]
mov dword [edi + 0x1c0], edx
mov eax, dword [eax + 0x14]
mov dword [edi + 0x1c4], eax
je 0x4d66e6
cmp ecx, 2
jne 0x4d5437
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x2c]
push ecx
push edx
push edi
call fcn.0050dee0
add esp, 0xc
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4d8849
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebp + 8]
mov edi, dword [esp + 0x18]
test eax, eax
je 0x4d6729
test dword [edi + 0x18], 0x80000
jne 0x4d97f4
mov ecx, dword [ebp + 4]
mov edx, dword [edi + 0x10]
shl ecx, 4
mov esi, dword [ecx + edx + 4]
test esi, esi
je 0x4d680c
push eax
push esi
call fcn.004c3740
add esp, 8
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4d9801
cmp dword [ebp + 8], eax
je 0x4d67df
test byte [ebx + 0x94], 0x40
je 0x4d67df
cmp byte [edi + 0x43], al
je 0x4d6774
cmp dword [edi + 0xa0], 1
jle 0x4d67df
cmp dword [ebx + 0x30], 0
jne 0x4d6791
inc dword [edi + 0x1b4]
mov eax, dword [edi + 0x1b4]
mov ecx, dword [edi + 0x1b0]
add ecx, eax
mov dword [ebx + 0x30], ecx
mov edx, dword [ebx + 0x30]
dec edx
push edx
push 0
push edi
call fcn.0050dee0
add esp, 0xc
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4d67bb
mov eax, dword [ebx + 0x30]
push eax
mov eax, esi
call fcn.004c4710
add esp, 4
mov dword [esp + 0x14], eax
mov ecx, dword [edi + 0x1b8]
mov dword [ebx + 0x48], ecx
mov edx, dword [edi + 0x1bc]
mov dword [ebx + 0x4c], edx
mov eax, dword [edi + 0x1c0]
mov dword [ebx + 0x50], eax
mov ecx, dword [edi + 0x1c4]
mov dword [ebx + 0x54], ecx
lea edx, [esp + 0xcc]
push edx
push 1
mov eax, esi
call fcn.004c9650
mov eax, dword [ebp + 4]
mov ecx, dword [edi + 0x10]
mov esi, dword [esp + 0xd4]
add esp, 8
shl eax, 4
mov edx, dword [eax + ecx + 0xc]
mov eax, dword [edx + 4]
jmp 0x4d6817
xor esi, esi
mov dword [esp + 0xcc], esi
xor eax, eax
cmp word [ebp + 2], 0
je 0x4d6830
cmp esi, dword [ebp + 0xc]
jne 0x4d9473
cmp eax, dword [ebp + 0x10]
jne 0x4d9473
cmp dword [esp + 0x14], 0
jne 0x4d8849
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 4]
lea eax, [esp + 0x11c]
push eax
mov eax, dword [esp + 0x1c]
push ecx
mov ecx, dword [eax + 0x10]
shl edx, 4
mov eax, dword [edx + ecx + 4]
call fcn.004c9650
add esp, 8
mov eax, ebp
mov edx, ebx
call fcn.004d4780
mov edi, dword [esp + 0x48]
mov ecx, eax
mov eax, dword [esp + 0x11c]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
add ebp, 0x14
jmp 0x4d4857
mov edi, dword [ebp + 4]
mov edx, dword [ebp + 0xc]
mov esi, dword [esp + 0x18]
mov eax, dword [ebp + 8]
shl edi, 4
add edi, dword [esi + 0x10]
push edx
push eax
mov eax, dword [edi + 4]
call fcn.004c96b0
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 8]
add esp, 8
cmp eax, 1
jne 0x4d68cd
mov ecx, dword [edi + 0xc]
mov edx, dword [ebp + 0xc]
mov dword [ecx], edx
or dword [esi + 0x18], 0x800000
jmp 0x4d68db
cmp eax, 2
jne 0x4d68db
mov eax, dword [edi + 0xc]
mov cl, byte [ebp + 0xc]
mov byte [eax + 0x4c], cl
cmp dword [ebp + 4], 1
jne 0x4d68ef
mov eax, esi
call fcn.004d19d0
and dword [ebx + 0x94], 0xfffffffe
cmp dword [esp + 0x14], 0
jne 0x4d8849
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebp + 4]
mov ecx, dword [ebx + 0x70]
mov esi, dword [ecx + eax*4]
test esi, esi
je case.0x4d4870.104
mov eax, dword [esi + 0x34]
cmp eax, dword [ebp + 8]
je 0x4d6a20
test byte [ebx + 0x94], 1
jne 0x4d982e
mov ecx, dword [esp + 0x18]
mov esi, dword [ebp + 8]
xor eax, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x20], eax
shl eax, 4
add eax, dword [ecx + 0x10]
mov dword [esp + 0x1c], esi
mov ecx, dword [eax + 4]
mov dword [esp + 0x24], ecx
cmp dl, 0x69
jne 0x4d697e
movzx ecx, word [ebp + 2]
mov edx, dword [eax + 0xc]
mov al, byte [edx + 0x4c]
and ecx, 8
or ecx, 4
mov dword [esp + 0x2c], ecx
cmp al, byte [ebx + 0x8f]
jae 0x4d6986
mov byte [ebx + 0x8f], al
jmp 0x4d6986
mov dword [esp + 0x2c], 0
test byte [ebp + 2], 0x10
je 0x4d699d
lea eax, [esi + esi*4]
lea esi, [edi + eax*8]
call fcn.004cc3b0
mov ecx, dword [esi]
mov dword [esp + 0x1c], ecx
mov al, byte [ebp + 1]
cmp al, 0xf7
jne 0x4d69b7
mov ecx, dword [ebp + 0x10]
movzx eax, word [ecx + 8]
movzx edx, word [ecx + 6]
mov dword [esp + 0x38], ecx
add eax, edx
jmp 0x4d69be
cmp al, 0xfd
jne 0x4d69c2
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
mov eax, dword [ebp + 4]
push 0
push ecx
push edx
push eax
mov edi, ebx
call fcn.004d44d0
mov esi, eax
add esp, 0x10
test esi, esi
je 0x4d60cc
mov ecx, dword [esi + 0x28]
mov edi, dword [esp + 0x38]
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x1c]
or dword [esi + 8], 4
push ecx
mov ecx, dword [esp + 0x28]
push edi
push edx
mov byte [esi + 2], 1
mov dword [esi + 0x34], eax
call fcn.004c48e0
add esp, 0xc
mov dword [esi + 0x2c], edi
cmp byte [ebp + 1], 0xf7
mov dword [esp + 0x14], eax
setne al
mov byte [esi + 4], al
mov cl, byte [ebp + 2]
mov edx, dword [esi + 0x28]
and cl, 3
cmp dword [esp + 0x14], 0
mov byte [edx + 0x43], cl
jne 0x4d8849
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebp + 8]
mov ecx, dword [ebx + 0x70]
mov esi, dword [ecx + eax*4]
movsx edx, word [esi + 0x38]
mov eax, dword [ebp + 4]
push 0
push 0xffffffffffffffff
push edx
push eax
mov edi, ebx
call fcn.004d44d0
add esp, 0x10
test eax, eax
je 0x4d60cc
or dword [eax + 8], 1
mov byte [eax + 2], 1
mov ecx, dword [esi + 0x2c]
mov dword [eax + 0x2c], ecx
mov dl, byte [esi + 4]
mov ecx, dword [eax + 0x28]
mov byte [eax + 4], dl
mov edx, dword [eax + 0x2c]
push ecx
mov ecx, dword [esi + 0xc]
push edx
push 4
mov eax, 1
call fcn.004c48e0
mov edi, dword [esp + 0x54]
add esp, 0xc
mov dword [esp + 0x14], eax
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 4]
push 0
push 0xffffffffffffffff
push eax
push ecx
mov edi, ebx
call fcn.004d44d0
mov esi, eax
add esp, 0x10
test esi, esi
je 0x4d60cc
or dword [esi + 8], 1
mov byte [esi + 2], 1
movzx edx, word [ebp + 2]
push 0x41e
or edx, 5
push edx
mov edx, dword [esp + 0x20]
mov eax, dword [edx]
lea edi, [esi + 0xc]
push 0
push eax
mov ecx, edi
call fcn.004c2710
add esp, 0x10
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4d8849
mov ecx, dword [edi]
push 1
push ecx
call fcn.004c3740
add esp, 8
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4d8849
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x1c], eax
mov dword [esi + 0x2c], eax
test eax, eax
je 0x4d6b6f
movzx edx, word [ebp + 2]
or edx, 2
push edx
lea eax, [esp + 0x124]
push eax
mov eax, dword [edi]
call fcn.004c9150
add esp, 8
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4d6b69
mov ecx, dword [esi + 0x28]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x120]
push ecx
mov ecx, dword [edi]
push edx
push 4
call fcn.004c48e0
add esp, 0xc
mov dword [esp + 0x14], eax
mov byte [esi + 4], 0
jmp 0x4d6b8e
mov eax, dword [esi + 0x28]
mov ecx, dword [edi]
push eax
push 0
push 4
mov eax, 1
call fcn.004c48e0
add esp, 0xc
mov dword [esp + 0x14], eax
mov byte [esi + 4], 1
cmp dword [esp + 0x14], 0
jne 0x4d8849
mov edi, dword [esp + 0x48]
xor ecx, ecx
cmp word [ebp + 2], 8
setne cl
add ecx, ecx
add ecx, ecx
xor ecx, dword [esi + 8]
and ecx, 4
xor dword [esi + 8], ecx
add ebp, 0x14
jmp 0x4d4857
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 4]
push 1
push 0xffffffffffffffff
push edx
push eax
mov edi, ebx
call fcn.004d44d0
add esp, 0x10
test eax, eax
je 0x4d60cc
mov ecx, dword [ebp + 0x10]
mov dword [eax + 0x2c], ecx
mov edx, dword [ebp + 0xc]
push eax
mov eax, dword [esp + 0x1c]
push edx
push eax
call fcn.004db1a0
add esp, 0xc
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4d8849
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov ecx, dword [ebp + 4]
mov edx, dword [ebx + 0x70]
mov eax, dword [edx + ecx*4]
mov ecx, dword [eax + 0x10]
mov edx, dword [eax + 0x14]
mov esi, ecx
add esi, 1
mov edi, edx
adc edi, 0
mov dword [eax + 0x10], esi
mov dword [eax + 0x14], edi
mov eax, ecx
or eax, edx
je 0x4d9426
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 4]
push 3
push 0xffffffffffffffff
push eax
push ecx
mov edi, ebx
call fcn.004d44d0
add esp, 0x10
test eax, eax
je 0x4d60cc
mov edi, dword [esp + 0x48]
mov byte [eax + 2], 1
mov edx, dword [ebp + 8]
mov dword [eax + 0x28], edx
mov byte [eax + 4], 1
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebp + 4]
mov ecx, dword [ebx + 0x70]
mov eax, dword [ecx + eax*4]
push ebx
call fcn.004cecd0
mov edx, dword [ebp + 4]
mov eax, dword [ebx + 0x70]
mov edi, dword [esp + 0x4c]
add esp, 4
mov dword [eax + edx*4], 0
add ebp, 0x14
jmp 0x4d4857
mov ecx, dword [ebp + 4]
mov edx, dword [ebx + 0x70]
mov esi, dword [edx + ecx*4]
cmp byte [esi + 4], 0
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], 0
mov byte [esi + 2], 0
je 0x4d6d83
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
mov cl, byte [edi + eax*8 + 8]
lea edi, [edi + eax*8]
and cl, 0xe
cmp cl, 2
jne 0x4d6ce6
push 0
mov eax, edi
call fcn.004d45c0
add esp, 4
mov ecx, edi
call fcn.004cc2a0
mov dword [esp + 0xe8], eax
movzx eax, word [edi + 8]
mov dword [esp + 0xec], edx
test al, 4
jne 0x4d6d3e
test al, 8
je 0x4d9426
fild qword [esp + 0xe8]
fcom qword [edi]
fnstsw ax
test ah, 0x41
jne 0x4d6d2a
test byte [esp + 0x20], 1
fstp st(0)
je 0x4d6d3e
dec dword [esp + 0x20]
jmp 0x4d6d3e
fcomp qword [edi]
fnstsw ax
test ah, 5
jp 0x4d6d3e
test byte [esp + 0x20], 1
jne 0x4d6d3e
inc dword [esp + 0x20]
mov eax, dword [esp + 0xec]
mov edi, dword [esp + 0xe8]
mov ecx, dword [esi + 0x28]
lea edx, [esp + 0x4c]
push edx
push 0
push eax
push edi
push 0
push ecx
call fcn.004c5230
mov edx, dword [esp + 0x104]
add esp, 0x18
mov dword [esp + 0x14], eax
mov dword [esi + 0x40], edi
mov dword [esi + 0x44], edx
test eax, eax
jne 0x4d8849
xor edi, edi
jmp 0x4d6e12
mov eax, dword [esi + 0x28]
test byte [eax + 0x43], 2
je 0x4d6d94
mov dword [esp + 0x28], 1
test byte [esp + 0x20], 1
mov ecx, dword [esi + 0x2c]
mov dx, word [ebp + 0x10]
sete al
mov dword [esp + 0x140], ecx
mov word [esp + 0x148], dx
mov byte [esp + 0x14e], 0
lea eax, [eax + eax - 1]
mov byte [esp + 0x14a], al
mov eax, dword [ebp + 0xc]
lea ecx, [eax + eax*4]
lea eax, [esp + 0x4c]
push eax
push 0
lea edx, [edi + ecx*8]
push 0
push 0
lea ecx, [esp + 0x150]
mov dword [esp + 0x154], edx
mov edx, dword [esi + 0x28]
push ecx
push edx
call fcn.004c5230
add esp, 0x18
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4d8849
xor edi, edi
cmp dword [esp + 0x28], edi
je 0x4d6e12
cmp byte [esp + 0x14e], 0
je 0x4d6e85
mov ecx, dword [esp + 0x20]
cmp ecx, 0x1a
mov eax, dword [esp + 0x4c]
mov byte [esi + 3], 0
mov dword [esi + 0x1c], edi
jl 0x4d6e6a
cmp eax, edi
jl 0x4d6e37
jne 0x4d6e31
cmp ecx, 0x1b
je 0x4d6e37
mov dword [esp + 0x4c], edi
jmp 0x4d6e8f
mov eax, dword [esi + 0x28]
push edi
push eax
mov dword [esp + 0x54], edi
call fcn.004c5840
add esp, 8
mov dword [esp + 0x14], eax
cmp eax, edi
je 0x4d6e8f
cmp eax, 0x65
jne 0x4d8849
mov dword [esp + 0x14], edi
mov dword [esp + 0x4c], 1
jmp 0x4d9426
cmp eax, edi
jg 0x4d6ea8
jne 0x4d6e75
cmp ecx, 0x18
je 0x4d6ea8
mov ecx, dword [esi + 0x28]
xor edx, edx
cmp byte [ecx + 0x42], 1
setne dl
mov dword [esp + 0x4c], edx
cmp dword [esp + 0x4c], edi
jne 0x4d9426
cmp dword [esp + 0x28], edi
je case.0x4d4870.74
mov edi, dword [esp + 0x48]
add ebp, 0x14
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [esi + 0x28]
push edi
push eax
mov dword [esp + 0x54], edi
call fcn.004c59b0
jmp 0x4d6e45
cmp dword [ebp + 0x10], 0
mov ecx, dword [ebp + 4]
mov edx, dword [ebx + 0x70]
mov eax, dword [ebp + 0xc]
mov edx, dword [edx + ecx*4]
lea eax, [eax + eax*4]
mov dword [esp + 0x2c], edx
lea edi, [edi + eax*8]
jle 0x4d6f02
mov ecx, dword [edx + 0x2c]
mov ax, word [ebp + 0x10]
mov dword [esp + 0x248], ecx
mov word [esp + 0x250], ax
mov dword [esp + 0x24c], edi
lea esi, [esp + 0x248]
mov dword [esp + 0x1c], 0
jmp 0x4d6f53
mov ecx, 0x4000
test word [edi + 8], cx
je 0x4d6f1c
mov esi, edi
call fcn.004cbea0
test eax, eax
jne 0x4d60cc
mov edx, dword [esp + 0x2c]
mov esi, dword [edx + 0x2c]
call fcn.004d0770
mov esi, eax
mov dword [esp + 0x1c], esi
test esi, esi
je 0x4d60cc
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0xc]
mov edx, dword [esp + 0x2c]
push esi
push eax
mov eax, dword [edx + 0x2c]
push ecx
push eax
call fcn.004d07d0
mov edx, dword [esp + 0x3c]
add esp, 0x10
xor edi, edi
mov byte [esi + 0xa], 0
cmp byte [ebp], 0x1c
mov dword [esp + 0x28], edi
jne 0x4d6f8f
xor eax, eax
xor ecx, ecx
cmp ax, word [esi + 8]
jae 0x4d6f8f
mov eax, dword [esi + 4]
add eax, 8
test byte [eax], 1
jne 0x4d6f8a
movzx edi, word [esi + 8]
inc ecx
add eax, 0x28
cmp ecx, edi
jl 0x4d6f73
mov edi, dword [esp + 0x28]
jmp 0x4d6f8f
mov edi, 1
mov edx, dword [edx + 0x28]
lea ecx, [esp + 0x124]
push ecx
push 0
push 0
push 0
push esi
push edx
call fcn.004c5230
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x34]
add esp, 0x18
test eax, eax
je 0x4d6fbf
mov ecx, dword [esp + 0x18]
call fcn.004afab0
cmp dword [esp + 0x14], 0
jne 0x4d8849
mov ecx, dword [esp + 0x124]
mov esi, dword [esp + 0x2c]
xor eax, eax
test ecx, ecx
mov dword [esi + 0x20], ecx
sete al
mov cl, 1
sub cl, al
mov byte [esi + 2], cl
mov byte [esi + 3], 0
mov dword [esi + 0x1c], 0
cmp byte [ebp], 0x1e
jne 0x4d700b
test eax, eax
jne 0x4d9426
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
test edi, edi
jne 0x4d9426
test eax, eax
je 0x4d9426
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebp + 0xc]
lea edx, [eax + eax*4]
movzx eax, word [edi + edx*8 + 8]
lea esi, [edi + edx*8]
test al, 4
jne case.0x4d4870.32
test al, 8
jne 0x4d704f
test al, 2
je 0x4d7054
push 1
mov eax, esi
call fcn.004d45c0
add esp, 4
jmp 0x4d7054
call fcn.004cc340
test byte [esi + 8], 4
je 0x4d9426
mov eax, dword [ebp + 4]
mov ecx, dword [ebx + 0x70]
mov esi, dword [ecx + eax*4]
mov eax, dword [ebp + 0xc]
mov ecx, dword [esi + 0x28]
lea eax, [eax + eax*4]
mov edx, dword [edi + eax*8]
mov edi, dword [edi + eax*8 + 4]
lea eax, [esp + 0xd8]
push eax
push 0
push edi
push edx
push 0
push ecx
mov dword [esp + 0xf0], 0
mov dword [esp + 0x258], edx
call fcn.004c5230
mov ecx, dword [esp + 0x258]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xf0]
add esp, 0x18
mov dword [esi + 0x40], ecx
mov dword [esi + 0x44], edi
mov byte [esi + 2], 0
mov dword [esi + 0x1c], 0
mov byte [esi + 3], 0
mov dword [esi + 0x20], eax
test eax, eax
je 0x4d70e6
cmp dword [ebp + 8], 0
jne 0x4d9426
mov eax, 0x144af
call fcn.005204b0
mov dword [esp + 0x14], eax
cmp dword [esp + 0x14], 0
jne 0x4d8849
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov eax, ebp
mov edx, ebx
call fcn.004d4780
mov edx, dword [ebp + 4]
mov ecx, dword [ebx + 0x70]
mov ecx, dword [ecx + edx*4]
mov edx, dword [ecx + 0x10]
mov edi, dword [esp + 0x48]
mov dword [eax], edx
mov ecx, dword [ecx + 0x14]
mov dword [eax + 4], ecx
mov edx, dword [ebp + 4]
mov eax, dword [ebx + 0x70]
mov eax, dword [eax + edx*4]
add dword [eax + 0x10], 1
adc dword [eax + 0x14], 0
add ebp, 0x14
jmp 0x4d4857
mov esi, dword [esp + 0x2ac]
xor edi, edi
xor ebx, ebx
mov eax, ebp
mov edx, esi
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], edi
mov dword [esp + 0x90], edi
call fcn.004d4780
mov ecx, dword [ebp + 4]
mov edx, dword [esi + 0x70]
mov esi, dword [edx + ecx*4]
test byte [esi + 8], 2
mov dword [esp + 0x30], eax
mov dword [esp + 0x20], esi
jne 0x4d71d7
mov eax, dword [esi + 0x28]
lea edi, [esp + 0x90]
call fcn.004c51e0
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4d8849
cmp dword [esp + 0x90], eax
je 0x4d719c
lea ebx, [eax + 1]
xor edi, edi
jmp 0x4d71cf
mov edi, dword [esi + 0x28]
mov eax, edi
call fcn.004c4a40
mov ebx, dword [edi + 0x10]
mov edi, dword [edi + 0x14]
cmp edi, 0x7fffffff
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], edi
jl 0x4d71c9
jg 0x4d71c3
cmp ebx, 0xffffffff
jb 0x4d71c9
or dword [esi + 8], 2
jmp 0x4d71d7
add ebx, 1
adc edi, 0
mov dword [esp + 0x6c], edi
mov dword [esp + 0x68], ebx
mov edx, dword [ebp + 0xc]
test edx, edx
je 0x4d726c
mov eax, dword [esp + 0x2ac]
mov ecx, dword [eax + 0xc4]
test ecx, ecx
je 0x4d7214
mov eax, dword [ecx + 4]
test eax, eax
je 0x4d7209
lea ebx, [ebx]
mov ecx, eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x4d7200
mov eax, dword [ecx + 0x10]
lea edx, [edx + edx*4]
lea esi, [eax + edx*8]
jmp 0x4d721e
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0x48]
lea esi, [edx + ecx*8]
call fcn.004cc3b0
mov eax, dword [esi]
mov ecx, dword [esi + 4]
cmp eax, 0xffffffff
jne 0x4d7239
cmp ecx, 0x7fffffff
je 0x4d983b
mov edx, dword [esp + 0x20]
test byte [edx + 8], 2
jne 0x4d983b
add eax, 1
adc ecx, 0
cmp edi, ecx
jg 0x4d7263
jl 0x4d7257
cmp ebx, eax
jae 0x4d7263
mov ebx, eax
mov edi, ecx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], edi
mov dword [esi], ebx
mov dword [esi + 4], edi
mov esi, dword [esp + 0x20]
test byte [esi + 8], 2
je 0x4d72f9
mov dword [esp + 0x1c], 0
mov edi, edi
lea eax, [esp + 0x68]
push eax
push 8
call fcn.004b1ad0
mov edi, dword [esp + 0x74]
mov ebx, dword [esp + 0x70]
mov edx, dword [esi + 0x28]
lea ecx, [esp + 0x98]
push ecx
and edi, 0x3fffffff
add ebx, 1
push 0
adc edi, 0
push edi
push ebx
push 0
push edx
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], edi
call fcn.004c5230
add esp, 0x20
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4d8849
cmp dword [esp + 0x90], eax
jne 0x4d72f5
mov eax, dword [esp + 0x1c]
inc eax
cmp eax, 0x64
mov dword [esp + 0x1c], eax
jge 0x4d983b
mov esi, dword [esp + 0x20]
jmp 0x4d7280
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x30]
mov byte [esi + 3], 0
mov dword [esi + 0x1c], 0
mov dword [eax], ebx
mov ebx, dword [esp + 0x2ac]
mov dword [eax + 4], edi
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
mov eax, dword [ebp + 4]
mov dword [esp + 0x1c], ecx
mov ecx, dword [ebx + 0x70]
mov ecx, dword [ecx + eax*4]
mov eax, dword [ebp + 0xc]
xor esi, esi
mov dword [esp + 0x28], ecx
cmp dl, 0x74
jne 0x4d7350
lea edx, [eax + eax*4]
mov eax, dword [edi + edx*8]
mov edx, dword [edi + edx*8 + 4]
jmp 0x4d7351
cdq
cmp byte [ebp + 1], 0xfa
mov edi, dword [esp + 0x18]
mov dword [esp + 0x1d4], edx
mov dword [esp + 0x1d0], eax
jne 0x4d739f
cmp dword [edi + 0xdc], 0
je 0x4d739f
movsx ecx, byte [ecx + 1]
mov esi, dword [edi + 0x10]
shl ecx, 4
mov ecx, dword [ecx + esi]
mov dword [esp + 0x2c], ecx
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x38], ecx
mov cl, byte [ebp + 2]
and cl, 4
movzx esi, cl
neg esi
sbb esi, esi
and esi, 5
add esi, 0x12
jmp 0x4d73a9
xor ecx, ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x2c], ecx
test byte [ebp + 2], 1
je 0x4d73b2
inc dword [ebx + 0x2c]
test byte [ebp + 2], 0x20
je 0x4d73be
mov dword [edi + 0x20], eax
mov dword [edi + 0x24], edx
mov eax, dword [esp + 0x1c]
movzx ecx, word [eax + 8]
test cl, 1
je 0x4d73d6
xor eax, eax
mov dword [esp + 0x1d8], eax
jmp 0x4d73e3
mov edx, dword [eax + 0x10]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x1d8], edx
mov dword [esp + 0x1e4], eax
movzx eax, word [ebp + 2]
test al, 0x10
je 0x4d73fb
mov edx, dword [esp + 0x28]
mov edx, dword [edx + 0x20]
jmp 0x4d73fd
xor edx, edx
test ecx, 0x4000
je 0x4d7414
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx]
mov dword [esp + 0x1e8], ecx
jmp 0x4d741f
mov dword [esp + 0x1e8], 0
push edx
and eax, 0xa
push eax
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 0x28]
lea edx, [esp + 0x1d0]
push edx
push ecx
mov dword [esp + 0x1d8], 0
call fcn.004c8840
mov ecx, dword [esp + 0x38]
add esp, 0x10
mov dword [esp + 0x14], eax
mov byte [ecx + 3], 0
mov dword [ecx + 0x1c], 0
test eax, eax
jne 0x4d8849
mov eax, dword [edi + 0xdc]
test eax, eax
je case.0x4d4870.74
test esi, esi
je case.0x4d4870.74
mov edx, dword [esp + 0x1d4]
mov ecx, dword [esp + 0x1d0]
push edx
mov edx, dword [esp + 0x3c]
push ecx
mov ecx, dword [edx]
mov edx, dword [esp + 0x34]
push ecx
mov ecx, dword [edi + 0xd8]
push edx
push esi
push ecx
call eax
mov edi, dword [esp + 0x60]
add esp, 0x18
add ebp, 0x14
jmp 0x4d4857
cmp byte [ebp + 1], 0xfa
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 4]
mov ecx, dword [ebx + 0x70]
mov esi, dword [ecx + eax*4]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x2c], edx
jne 0x4d7512
cmp dword [edi + 0xdc], 0
je 0x4d7512
movsx edx, byte [esi + 1]
mov eax, dword [edi + 0x10]
shl edx, 4
test byte [ebp + 2], 2
mov ecx, dword [edx + eax]
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x28], edx
je 0x4d751c
cmp byte [esi + 4], 0
je 0x4d751c
mov eax, dword [esi + 0x28]
mov dword [esp + 0x38], eax
call fcn.004c4a40
mov eax, dword [esp + 0x38]
mov ecx, dword [eax + 0x10]
mov dword [esi + 0x40], ecx
mov edx, dword [eax + 0x14]
mov dword [esi + 0x44], edx
jmp 0x4d751c
xor eax, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x28], eax
mov eax, dword [esi + 0x28]
push eax
mov al, byte [ebp + 2]
call fcn.004c8ba0
xor ecx, ecx
add esp, 4
mov dword [esp + 0x14], eax
mov dword [esi + 0x1c], ecx
mov dword [esi + 0x20], ecx
cmp eax, ecx
jne 0x4d8849
test byte [esp + 0x2c], 1
je case.0x4d4870.74
inc dword [ebx + 0x2c]
mov eax, dword [edi + 0xdc]
test eax, eax
je case.0x4d4870.74
mov ecx, dword [esp + 0x28]
test byte [ecx + 0x24], 0x20
jne case.0x4d4870.74
mov edx, dword [esi + 0x44]
mov ecx, dword [esi + 0x40]
push edx
mov edx, dword [esp + 0x2c]
push ecx
mov ecx, dword [edx]
mov edx, dword [esp + 0x24]
push ecx
mov ecx, dword [edi + 0xd8]
push edx
push 9
push ecx
call eax
mov edi, dword [esp + 0x60]
add esp, 0x18
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebx + 0x2c]
mov ecx, dword [esp + 0x18]
add dword [ecx + 0x5c], eax
mov edi, dword [esp + 0x48]
mov dword [ecx + 0x58], eax
mov dword [ebx + 0x2c], 0
add ebp, 0x14
jmp 0x4d4857
mov edx, dword [ebp + 4]
mov eax, dword [ebx + 0x70]
mov ecx, dword [ebp + 0xc]
mov eax, dword [eax + edx*4]
lea ecx, [ecx + ecx*4]
lea edi, [edi + ecx*8]
mov ecx, dword [ebp + 0x10]
lea edx, [esp + 0xd0]
push edx
push ecx
push edi
mov dword [esp + 0xdc], 0
call fcn.004dd480
add esp, 0xc
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4d8849
cmp dword [esp + 0xd0], eax
jne 0x4d9426
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x48]
mov edx, dword [ebp + 4]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [ebx + 0x70]
mov eax, dword [eax + edx*4]
call fcn.004dd3e0
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4d8849
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebx + 0x70]
mov eax, dword [edx + ecx*4]
mov edi, dword [esp + 0x48]
mov dword [eax + 0x1c], 0
add ebp, 0x14
jmp 0x4d4857
mov eax, ebp
mov edx, ebx
call fcn.004d4780
mov ecx, dword [ebp + 4]
mov edx, dword [ebx + 0x70]
mov edi, eax
mov eax, dword [edx + ecx*4]
mov esi, dword [eax + 0x28]
mov eax, esi
call fcn.004c4a40
mov eax, dword [esi + 0x1c]
mov ecx, dword [esp + 0x18]
cmp eax, dword [ecx + 0x60]
ja 0x4d8832
push edi
push eax
xor eax, eax
mov edx, esi
call fcn.004ccb80
add esp, 8
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4d8849
cmp dword [ebp + 0xc], eax
jne case.0x4d4870.74
mov edx, 0x1000
test word [edi + 8], dx
je case.0x4d4870.74
mov eax, edi
call fcn.004cbe30
test eax, eax
jne 0x4d60cc
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov eax, ebp
mov edx, ebx
call fcn.004d4780
mov ecx, dword [ebx + 0x70]
mov esi, eax
mov eax, dword [ebp + 4]
mov edi, dword [ecx + eax*4]
cmp byte [edi + 2], 0
je 0x4d76fb
mov edi, dword [esp + 0x48]
mov edx, 1
mov word [esi + 8], dx
add ebp, 0x14
jmp 0x4d4857
cmp byte [edi + 3], 0
je 0x4d772f
mov eax, dword [edi + 0x40]
mov dword [esp + 0xc0], eax
mov ecx, dword [edi + 0x44]
mov edi, dword [esp + 0x48]
mov dword [esp + 0xc4], ecx
mov ecx, eax
mov dword [esi], ecx
mov edx, dword [esp + 0xc4]
mov dword [esi + 4], edx
add ebp, 0x14
jmp 0x4d4857
cmp byte [edi], 2
jne 0x4d7780
mov eax, dword [edi + 0x28]
mov edi, dword [eax]
mov ecx, dword [edi]
lea edx, [esp + 0xc0]
push edx
push eax
mov eax, dword [ecx + 0x30]
call eax
push ebx
mov dword [esp + 0x20], eax
call fcn.004d1aa0
add esp, 0xc
cmp dword [esp + 0x14], 0
jne 0x4d8849
mov ecx, dword [esp + 0xc0]
mov edi, dword [esp + 0x48]
mov dword [esi], ecx
mov edx, dword [esp + 0xc4]
mov dword [esi + 4], edx
add ebp, 0x14
jmp 0x4d4857
mov eax, edi
call fcn.004d0300
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4d8849
cmp byte [edi + 2], al
je 0x4d77ad
mov edi, dword [esp + 0x48]
mov ecx, 1
mov word [esi + 8], cx
add ebp, 0x14
jmp 0x4d4857
mov edi, dword [edi + 0x28]
mov eax, edi
call fcn.004c4a40
mov edx, dword [edi + 0x10]
mov dword [esp + 0xc0], edx
mov eax, dword [edi + 0x14]
mov edi, dword [esp + 0x48]
mov dword [esp + 0xc4], eax
mov ecx, edx
mov dword [esi], ecx
mov edx, dword [esp + 0xc4]
mov dword [esi + 4], edx
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebp + 4]
mov ecx, dword [ebx + 0x70]
mov eax, dword [ecx + eax*4]
cmp byte [eax], 0
mov byte [eax + 2], 1
mov dword [eax + 0x1c], 0
jne case.0x4d4870.74
mov esi, dword [eax + 0x28]
call fcn.004c1020
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebx + 0x70]
mov edx, dword [ebp + 4]
mov esi, dword [eax + edx*4]
mov ecx, dword [ebp + 0xc]
mov eax, dword [esi + 0x28]
mov dword [esi + 0x20], ecx
cmp dword [ebp + 0xc], 0
mov dword [esp + 0xe4], 0
je 0x4d7843
cmp byte [eax + 0x42], 1
je case.0x4d4870.74
lea edi, [esp + 0xe4]
call fcn.004c51e0
mov ecx, dword [esp + 0xe4]
mov dword [esp + 0x14], eax
mov byte [esi + 2], cl
mov byte [esi + 3], 0
mov dword [esi + 0x1c], 0
test eax, eax
jne 0x4d8849
cmp dword [ebp + 8], eax
jle case.0x4d4870.74
test ecx, ecx
jne 0x4d9426
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebx + 0x70]
mov edx, dword [ebp + 4]
mov ecx, dword [eax + edx*4]
mov esi, dword [ecx + 0x28]
lea edi, [esp + 0xf8]
mov eax, esi
call fcn.004c51b0
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4d8849
cmp dword [esp + 0xf8], eax
jne 0x4d9426
push esi
call fcn.004c56e0
add esp, 4
test edx, edx
jl case.0x4d4870.74
jg 0x4d78db
test eax, eax
jb case.0x4d4870.74
push edx
push eax
call fcn.004b3900
movsx edx, ax
add esp, 8
cmp edx, dword [ebp + 0xc]
jge case.0x4d4870.74
mov dword [esp + 0xf8], 1
jmp 0x4d9426
inc dword [ebx + 0xa8]
mov eax, dword [ebp + 4]
mov ecx, dword [ebx + 0x70]
mov esi, dword [ecx + eax*4]
cmp byte [esi], 1
mov dword [esp + 0xb0], 1
lea edi, [esp + 0xb0]
jne 0x4d7930
mov ecx, esi
call fcn.004dd2f0
jmp 0x4d7943
mov eax, dword [esi + 0x28]
call fcn.004c51b0
mov byte [esi + 3], 0
mov dword [esi + 0x1c], 0
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4d8849
mov eax, dword [esp + 0xb0]
mov byte [esi + 2], al
test eax, eax
jne 0x4d9426
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebx + 0x70]
mov edx, dword [ebp + 4]
mov esi, dword [eax + edx*4]
mov ecx, dword [esp + 0x18]
push ecx
mov eax, esi
call fcn.004dd350
add esp, 4
jmp 0x4d79b0
mov edx, dword [ebp + 4]
mov eax, dword [ebx + 0x70]
cmp dword [eax + edx*4], 0
je case.0x4d4870.74
mov ecx, dword [ebp + 4]
mov edx, dword [ebx + 0x70]
mov esi, dword [edx + ecx*4]
mov eax, dword [ebp + 0xc]
mov ecx, dword [esi + 0x28]
mov edx, dword [ebp + 0x10]
push eax
push ecx
call edx
add esp, 8
xor ecx, ecx
mov dword [esp + 0x14], eax
mov dword [esi + 0x1c], ecx
cmp eax, ecx
jne 0x4d79d7
mov byte [esi + 2], cl
movzx eax, word [ebp + 2]
inc dword [ebx + eax*4 + 0xa0]
lea eax, [ebx + eax*4 + 0xa0]
jmp case.0x4d4870.13
cmp eax, 0x65
jne 0x4d8849
mov dword [esp + 0x14], ecx
mov byte [esi + 2], 1
jmp 0x4d8f72
test byte [ebp + 2], 1
mov ecx, dword [ebp + 4]
mov edx, dword [ebx + 0x70]
mov eax, dword [ebp + 8]
mov ecx, dword [edx + ecx*4]
lea eax, [eax + eax*4]
mov dword [esp + 0x1c], ecx
lea esi, [edi + eax*8]
je 0x4d7a0c
inc dword [ebx + 0x2c]
mov edx, 0x4000
test word [esi + 8], dx
je 0x4d7a2c
call fcn.004cbea0
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4d8849
mov ecx, dword [esp + 0x1c]
cmp byte [ebp], 0x7d
jne 0x4d7a3f
push esi
mov eax, ecx
call fcn.004dc260
add esp, 4
jmp 0x4d7aaa
mov eax, dword [esi + 0xc]
cdq
mov dword [esp + 0x260], eax
mov eax, dword [esi + 0x10]
mov dword [esp + 0x258], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x264], edx
lea edx, [eax + eax*4]
lea eax, [edi + edx*8]
mov dx, word [ebp + 0x10]
mov dword [esp + 0x26c], eax
movzx eax, word [ebp + 2]
mov word [esp + 0x270], dx
test al, 0x10
je 0x4d7a84
mov edx, dword [ecx + 0x20]
jmp 0x4d7a86
xor edx, edx
mov ecx, dword [ecx + 0x28]
push edx
and eax, 0xa
push eax
lea eax, [esp + 0x260]
push eax
push ecx
call fcn.004c8840
mov edx, dword [esp + 0x2c]
add esp, 0x10
mov dword [edx + 0x1c], 0
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4d8849
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebp + 4]
mov ecx, dword [ebx + 0x70]
mov esi, dword [ecx + eax*4]
mov ecx, dword [esi + 0x28]
mov edx, dword [esi + 0x2c]
mov ax, word [ebp + 0xc]
mov word [esp + 0x218], ax
mov eax, dword [ebp + 8]
mov dword [esp + 0x210], edx
lea edx, [eax + eax*4]
lea eax, [edi + edx*8]
lea edx, [esp + 0x13c]
push edx
xor edi, edi
push edi
push edi
mov dword [esp + 0x220], eax
push edi
lea eax, [esp + 0x220]
push eax
push ecx
mov dword [esp + 0x34], ecx
mov byte [esp + 0x232], 0
call fcn.004c5230
add esp, 0x18
mov dword [esp + 0x14], eax
cmp eax, edi
jne 0x4d8849
cmp dword [esp + 0x13c], edi
jne 0x4d7b4e
mov ecx, dword [esp + 0x1c]
push ecx
mov al, 4
call fcn.004c8ba0
add esp, 4
mov dword [esp + 0x14], eax
cmp eax, edi
jne 0x4d8849
mov dword [esi + 0x1c], edi
mov dword [esi + 0x20], edi
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebx + 0x70]
mov edx, dword [ebp + 4]
mov esi, dword [eax + edx*4]
mov eax, esi
call fcn.004d0300
xor ecx, ecx
mov dword [esp + 0x14], eax
cmp eax, ecx
jne 0x4d8849
cmp byte [esi + 2], cl
jne 0x4d7c21
mov edx, dword [esp + 0x18]
mov eax, dword [esi + 0x28]
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xbc], ecx
lea ecx, [esp + 0xb8]
push ecx
push edx
call fcn.004d17f0
add esp, 8
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4d8849
cmp byte [ebp], 0x80
jne 0x4d7bf9
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebx + 0x70]
mov eax, dword [ecx + eax*4]
mov edx, dword [esp + 0xb8]
mov ecx, dword [esp + 0xbc]
mov edi, dword [esp + 0x48]
mov byte [eax + 2], 0
mov dword [eax + 0x40], edx
mov dword [eax + 0x44], ecx
mov byte [eax + 3], 1
mov edx, dword [ebp + 0x10]
mov dword [eax + 0x18], edx
mov dword [eax + 0x24], esi
add ebp, 0x14
jmp 0x4d4857
mov eax, ebp
mov edx, ebx
call fcn.004d4780
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0xbc]
mov edi, dword [esp + 0x48]
mov dword [eax], ecx
mov dword [eax + 4], edx
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
call fcn.004cc590
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov ecx, dword [ebp + 4]
mov eax, dword [ebx + 0x70]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax + 0x2c]
mov dword [esp + 0x220], ecx
mov cx, word [ebp + 0x10]
cmp dl, 0x28
mov word [esp + 0x228], cx
mov ecx, dword [ebp + 0xc]
sbb dl, dl
mov byte [esp + 0x22a], dl
mov edx, dword [esp + 0x48]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
lea edx, [esp + 0x220]
mov dword [esp + 0x224], ecx
mov ecx, dword [esp + 0x18]
push edx
push ecx
lea edi, [esp + 0x7c]
mov dword [esp + 0x7c], 0
call fcn.004d1910
add esp, 8
test byte [ebp], 1
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x74]
jne 0x4d7cad
neg eax
jmp 0x4d7cae
inc eax
cmp dword [esp + 0x14], 0
mov dword [esp + 0x74], eax
jne 0x4d8849
test eax, eax
jg 0x4d9426
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov eax, ebp
mov edx, ebx
call fcn.004d4780
mov edi, eax
mov eax, dword [esp + 0x18]
mov edx, 1
mov word [edi + 8], dx
mov ecx, dword [eax + 0xac]
inc ecx
cmp dword [eax + 0xa0], ecx
jg 0x4d9848
mov ecx, dword [ebp + 0xc]
mov eax, dword [eax + 0x10]
lea edx, [esp + 0xe0]
push edx
mov edx, dword [ebp + 4]
mov dword [esp + 0x20], ecx
shl ecx, 4
mov eax, dword [ecx + eax + 4]
push edx
mov dword [esp + 0xe8], 0
call fcn.004c9600
mov esi, dword [esp + 0xe8]
mov ecx, eax
mov edx, 4
mov eax, esi
mov word [edi + 8], dx
cdq
add esp, 8
mov dword [esp + 0x14], ecx
mov dword [edi], eax
mov dword [edi + 4], edx
test ecx, ecx
jne 0x4d8849
test esi, esi
je case.0x4d4870.74
mov edi, dword [ebp + 4]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
call fcn.004ecf50
mov al, byte [esp + 0x1c]
mov edi, dword [esp + 0x48]
inc al
mov byte [esp + 0x47], al
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 4]
neg eax
sbb eax, eax
lea ecx, [esp + 0xf4]
and eax, ecx
mov ecx, dword [esp + 0x18]
push eax
mov eax, dword [ebp + 8]
push edx
mov edx, dword [ecx + 0x10]
shl eax, 4
mov dword [esp + 0xfc], 0
mov eax, dword [eax + edx + 4]
call fcn.004c9350
add esp, 8
cmp dword [ebp + 0xc], 0
mov dword [esp + 0x14], eax
je 0x4d7de1
mov eax, dword [esp + 0xf4]
add dword [ebx + 0x2c], eax
mov ecx, dword [ebp + 0xc]
test ecx, ecx
jle 0x4d7de1
lea ecx, [ecx + ecx*4]
cdq
add dword [edi + ecx*8], eax
lea edi, [edi + ecx*8]
adc dword [edi + 4], edx
cmp dword [esp + 0x14], 0
jne 0x4d8849
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov edx, dword [ebp + 4]
mov eax, dword [ebx + 0x70]
mov eax, dword [eax + edx*4]
cmp byte [eax], 1
jne 0x4d7e22
mov ecx, dword [esp + 0x18]
mov esi, dword [eax + 0x28]
push ecx
call fcn.004db670
mov edi, dword [esp + 0x4c]
add esp, 4
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [eax + 0x28]
mov edx, dword [eax + 0x34]
mov eax, dword [eax]
push 0
push edx
call fcn.004c9350
add esp, 8
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4d8849
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov eax, ebp
mov edx, ebx
call fcn.004d4780
mov ecx, dword [esp + 0x18]
mov esi, eax
mov eax, dword [ebp + 4]
shl eax, 4
add eax, dword [ecx + 0x10]
xor ecx, ecx
cmp byte [ebp], 0x87
mov eax, dword [eax + 4]
setne cl
lea edx, [esp + 0xfc]
mov dword [esp + 0xfc], 0
inc ecx
push ecx
push edx
call fcn.004c9150
add esp, 8
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4d8849
mov eax, dword [esp + 0xfc]
mov edi, dword [esp + 0x48]
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
add ebp, 0x14
jmp 0x4d4857
mov esi, dword [esp + 0x18]
inc byte [esi + 0x4e]
mov eax, dword [ebp + 0x10]
push 0
push 0
push 0
push eax
push esi
call fcn.004fa810
dec byte [esi + 0x4e]
add esp, 0x14
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4d8849
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebp + 4]
mov edi, dword [esp + 0x18]
mov edx, dword [ebp + 0x10]
lea ecx, [ebx + 0x6c]
push edx
mov dword [esp + 0x15c], eax
mov dword [esp + 0x158], ecx
mov ecx, dword [edi + 0x10]
shl eax, 4
mov dword [esp + 0x154], edi
mov edx, dword [eax + ecx]
push str.sqlite_master
push edx
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
call fcn.004b1850
mov esi, eax
add esp, 0x10
test esi, esi
je 0x4d94c1
push 0
lea eax, [esp + 0x154]
push eax
push fcn.004fe6c0
push esi
push edi
mov byte [edi + 0x99], 1
mov dword [esp + 0x170], 0
call fcn.004fa810
add esp, 0x14
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4d7f6f
mov ecx, dword [esp + 0x15c]
mov dword [esp + 0x14], ecx
mov eax, esi
mov ecx, edi
call fcn.004afab0
cmp dword [esp + 0x14], 0
mov byte [edi + 0x99], 0
je case.0x4d4870.74
mov eax, edi
call fcn.004ea8a0
cmp dword [esp + 0x14], 7
je 0x4d60cc
jmp 0x4d8849
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x18]
call fcn.004e8ba0
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4d8849
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov edx, dword [ebp + 0x10]
mov eax, dword [esp + 0x18]
push edx
push eax
mov eax, dword [ebp + 4]
call fcn.004eac10
mov edi, dword [esp + 0x50]
add esp, 8
add ebp, 0x14
jmp 0x4d4857
mov ecx, dword [ebp + 0x10]
mov edx, dword [esp + 0x18]
mov eax, dword [ebp + 4]
push ecx
push edx
call fcn.004ea660
mov edi, dword [esp + 0x50]
add esp, 8
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebp + 0x10]
mov ecx, dword [esp + 0x18]
push eax
mov eax, dword [ebp + 4]
push ecx
call fcn.0050a0d0
mov edi, dword [esp + 0x50]
add esp, 8
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0x10]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
lea eax, [esp + 0x138]
push eax
mov eax, dword [esi]
inc eax
push eax
push ecx
movzx ecx, word [ebp + 2]
push edx
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 0x10]
shl ecx, 4
mov ecx, dword [ecx + eax + 4]
push ecx
call fcn.004ca240
mov dword [esp + 0x30], eax
add esp, 0x14
mov eax, edi
call fcn.004cc590
mov eax, dword [esp + 0x138]
test eax, eax
je 0x4d80a4
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x4d60cc
dec eax
cdq
sub dword [esi], eax
push fcn.004afa00
push 1
sbb dword [esi + 4], edx
push ecx
or eax, 0xffffffff
mov ecx, edi
call fcn.004cc8c0
add esp, 0xc
movzx ecx, byte [esp + 0x42]
mov eax, edi
call fcn.004cbc80
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
test byte [edi + edx*8 + 8], 0x20
mov eax, dword [ebp + 8]
lea esi, [edi + edx*8]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
jne 0x4d80e4
call fcn.004cc690
test byte [esi + 8], 0x20
je 0x4d60cc
mov ecx, dword [edi + 4]
mov edx, dword [edi]
mov esi, dword [esi]
push ecx
push edx
call fcn.004b8f90
mov edi, dword [esp + 0x50]
add esp, 8
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 8], 0x20
lea eax, [edi + eax*8]
mov dword [esp + 0x24], eax
je 0x4d8153
mov ecx, eax
mov eax, dword [ecx]
lea esi, [esp + 0x170]
call fcn.004b92a0
test eax, eax
je 0x4d814f
mov edx, dword [esp + 0x174]
mov eax, dword [esp + 0x170]
push edx
push eax
mov eax, dword [ebp + 0xc]
lea ecx, [eax + eax*4]
lea eax, [edi + ecx*8]
call fcn.004cc5f0
add esp, 8
jmp 0x4d8f72
mov eax, dword [esp + 0x24]
call fcn.004cc590
jmp case.0x4d4870.13
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
test byte [edi + edx*8 + 8], 0x20
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea esi, [edi + edx*8]
lea edi, [edi + eax*8]
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x1c], eax
jne 0x4d8190
call fcn.004cc690
test byte [esi + 8], 0x20
je 0x4d60cc
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x4d81ba
mov ecx, dword [edi + 4]
mov edx, dword [edi]
push ecx
push edx
push eax
mov eax, dword [esi]
call fcn.004b92f0
add esp, 0xc
test eax, eax
jne 0x4d9426
mov eax, dword [esp + 0x1c]
test eax, eax
jl case.0x4d4870.74
mov eax, dword [edi + 4]
mov ecx, dword [edi]
mov esi, dword [esi]
push eax
push ecx
call fcn.004b8f90
mov edi, dword [esp + 0x50]
add esp, 8
add ebp, 0x14
jmp 0x4d4857
cmp word [ebp + 2], 0
mov eax, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x48]
lea edx, [eax + edx*8]
mov dword [esp + 0x28], edx
je 0x4d8214
mov eax, dword [ebx + 0xc4]
mov ecx, dword [edi + 0x14]
test eax, eax
je 0x4d8214
nop
cmp dword [eax + 0x1c], ecx
je case.0x4d4870.74
mov eax, dword [eax + 4]
test eax, eax
jne 0x4d8200
mov edx, dword [esp + 0x28]
mov ecx, dword [ebx + 0xcc]
mov eax, dword [esp + 0x18]
cmp ecx, dword [eax + 0x88]
jge 0x4d985c
test byte [edx + 8], 0x40
jne 0x4d8315
mov ecx, dword [edi + 0xc]
mov eax, dword [edi + 8]
add eax, ecx
mov dword [esp + 0x38], eax
test ecx, ecx
jne 0x4d8249
inc eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x38]
mov edx, dword [edi + 0xc]
lea ecx, [eax + eax*4 + 0xa]
mov eax, dword [edi + 4]
add eax, 7
lea ecx, [edx + ecx*2]
cdq
and edx, 7
add eax, edx
sar eax, 3
lea eax, [eax + ecx*4]
cdq
push edx
push eax
mov eax, dword [esp + 0x20]
call fcn.004afd40
mov esi, eax
add esp, 8
test esi, esi
je 0x4d60cc
mov eax, dword [esp + 0x28]
call fcn.004cc1f0
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x38]
sub ebp, dword [esp + 0x34]
mov dword [eax], esi
mov edx, 0x40
mov word [eax + 8], dx
mov dword [esi + 0x3c], ecx
mov dword [esi], ebx
mov eax, dword [edi + 0xc]
mov dword [esi + 0x40], eax
mov eax, 0x66666667
imul ebp
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x30], eax
mov edx, dword [ebx + 0x5c]
mov dword [esi + 0x10], edx
mov eax, dword [ebx + 0x18]
mov dword [esi + 0x38], eax
mov edx, dword [ebx + 0x70]
mov dword [esi + 0x14], edx
mov eax, dword [ebx + 0x1c]
mov dword [esi + 0x2c], eax
mov edx, dword [ebx + 0x58]
mov dword [esi + 8], edx
mov eax, dword [ebx + 0x88]
mov dword [esi + 0x34], eax
mov edx, dword [edi + 0x14]
lea eax, [ecx + ecx*4 + 0xa]
lea ecx, [esi + eax*8]
lea eax, [esi + 0x50]
mov dword [esi + 0x1c], edx
cmp eax, ecx
je 0x4d8317
mov edx, dword [esp + 0x18]
mov ebp, 0x80
mov word [eax + 8], bp
mov dword [eax + 0x20], edx
add eax, 0x28
cmp eax, ecx
jne 0x4d8300
jmp 0x4d8317
mov esi, dword [edx]
inc dword [ebx + 0xcc]
mov ecx, dword [ebx + 0xc4]
mov eax, dword [esp + 0x18]
mov dword [esi + 4], ecx
mov edx, dword [eax + 0x20]
mov dword [esi + 0x20], edx
mov eax, dword [eax + 0x24]
mov dword [esi + 0x24], eax
mov ecx, dword [ebx + 0x2c]
mov dword [esi + 0x44], ecx
mov edx, dword [ebx]
mov eax, dword [edx + 0x58]
mov dword [esi + 0x48], eax
mov ecx, dword [ebx + 0xd8]
mov dword [esi + 0x28], ecx
mov dword [ebx + 0xc4], esi
lea ecx, [esi + 0x50]
mov dword [ebx + 0x5c], ecx
xor ebp, ebp
mov dword [ebx + 0xd8], ebp
mov dword [ebx + 0x2c], ebp
mov edx, dword [esi + 0x3c]
mov dword [ebx + 0x18], edx
movzx eax, word [esi + 0x40]
mov dword [ebx + 0x1c], eax
mov eax, edx
lea edx, [eax + eax*4]
lea eax, [ecx + edx*8]
mov dword [ebx + 0x70], eax
mov dword [esp + 0x48], ecx
mov ecx, dword [edi + 0xc]
lea ecx, [eax + ecx*4]
mov dword [esi + 0x18], ecx
mov eax, dword [edi + 4]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
push eax
push ebp
push ecx
call fcn.0052e300
mov ebp, dword [edi]
mov dword [ebx + 0x58], ebp
mov edx, dword [edi + 4]
mov edi, dword [esp + 0x54]
mov dword [esp + 0x40], ebp
add ebp, 0xffffffec
add esp, 0xc
mov dword [ebx + 0x88], edx
add ebp, 0x14
jmp 0x4d4857
mov eax, ebp
mov edx, ebx
call fcn.004d4780
mov edx, dword [ebx + 0xc4]
mov ecx, dword [edx + 0x30]
mov esi, dword [edx + 8]
mov edx, dword [edx + 0x10]
lea ecx, [ecx + ecx*4]
mov ecx, dword [esi + ecx*4 + 4]
add ecx, dword [ebp + 4]
push 0x1000
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
push ecx
push eax
call fcn.004cc790
mov edi, dword [esp + 0x54]
add esp, 0xc
add ebp, 0x14
jmp 0x4d4857
mov ecx, dword [esp + 0x18]
test dword [ecx + 0x18], 0x40000
mov eax, dword [ebp + 8]
cdq
je 0x4d8430
add dword [ecx + 0x1c0], eax
mov edi, dword [esp + 0x48]
adc dword [ecx + 0x1c4], edx
add ebp, 0x14
jmp 0x4d4857
cmp dword [ebp + 4], 0
je 0x4d844e
add dword [ecx + 0x1b8], eax
mov edi, dword [esp + 0x48]
adc dword [ecx + 0x1bc], edx
add ebp, 0x14
jmp 0x4d4857
add dword [ebx + 0x40], eax
mov edi, dword [esp + 0x48]
adc dword [ebx + 0x44], edx
add ebp, 0x14
jmp 0x4d4857
cmp dword [ebp + 4], 0
je 0x4d847e
mov eax, dword [esp + 0x18]
mov edx, dword [eax + 0x1b8]
or edx, dword [eax + 0x1bc]
jne case.0x4d4870.74
jmp 0x4d848e
mov edx, dword [ebx + 0x40]
or edx, dword [ebx + 0x44]
jne case.0x4d4870.74
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x1c0]
or ecx, dword [eax + 0x1c4]
je 0x4d9426
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov ecx, dword [ebx + 0xc4]
test ecx, ecx
je 0x4d84db
mov eax, dword [ecx + 4]
test eax, eax
je 0x4d84c9
lea ecx, [ecx]
mov ecx, eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x4d84c0
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
mov eax, dword [ecx + 0x10]
lea ecx, [eax + edx*8]
mov dword [esp + 0x24], ecx
jmp 0x4d84e8
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
lea eax, [edi + edx*8]
mov dword [esp + 0x24], eax
mov esi, dword [esp + 0x24]
call fcn.004cc3b0
mov eax, dword [ebp + 8]
lea ecx, [eax + eax*4]
lea esi, [edi + ecx*8]
call fcn.004cc3b0
mov edx, dword [esp + 0x24]
mov eax, dword [esi]
mov esi, dword [esi + 4]
mov ecx, dword [edx + 4]
cmp ecx, esi
jg case.0x4d4870.74
jl 0x4d851f
mov ecx, dword [edx]
cmp ecx, eax
jae case.0x4d4870.74
mov ecx, dword [esp + 0x24]
mov edi, dword [esp + 0x48]
mov dword [ecx], eax
mov dword [ecx + 4], esi
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
mov ecx, dword [edi + edx*8 + 4]
mov esi, dword [edi + edx*8]
lea edi, [edi + edx*8]
test ecx, ecx
jl case.0x4d4870.74
jg 0x4d8556
test esi, esi
jbe case.0x4d4870.74
mov eax, dword [ebp + 0xc]
cdq
sub esi, eax
sbb ecx, edx
mov dword [edi], esi
mov dword [edi + 4], ecx
jmp 0x4d9426
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
mov eax, dword [ebp + 0xc]
lea ecx, [eax + eax*4]
mov eax, ebp
mov edx, ebx
lea edi, [edi + ecx*8]
call fcn.004d4780
mov ecx, dword [esi]
mov esi, dword [esi + 4]
mov dword [esp + 0x30], eax
mov dword [esp + 0x100], ecx
mov dword [esp + 0x104], esi
test esi, esi
jl 0x4d85f0
jg 0x4d85a4
test ecx, ecx
jbe 0x4d85f0
mov eax, dword [edi]
mov edi, dword [edi + 4]
test edi, edi
jl 0x4d85b3
jg 0x4d85b7
test eax, eax
ja 0x4d85b7
xor eax, eax
xor edi, edi
push edi
push eax
lea edx, [esp + 0x108]
push edx
call fcn.004b3690
add esp, 0xc
test eax, eax
mov eax, dword [esp + 0x30]
jne 0x4d85f0
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x104]
mov edi, dword [esp + 0x48]
mov dword [eax], ecx
mov dword [eax + 4], edx
add ebp, 0x14
jmp 0x4d4857
mov edi, dword [esp + 0x48]
mov dword [eax], 0xffffffff
mov dword [eax + 4], 0xffffffff
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
mov ecx, dword [edi + eax*8 + 4]
lea edx, [edi + eax*8]
mov eax, dword [edx]
mov esi, eax
or esi, ecx
je case.0x4d4870.74
test ecx, ecx
jl 0x4d9426
jg 0x4d8634
test eax, eax
jbe 0x4d9426
sub eax, 1
sbb ecx, 0
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x4d9426
mov eax, dword [ebp + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edi + ecx*8 + 4]
cmp eax, 0x80000000
lea edi, [edi + ecx*8]
mov ecx, dword [edi]
jl 0x4d866b
jg 0x4d8660
test ecx, ecx
jbe 0x4d866b
sub ecx, 1
sbb eax, 0
mov dword [edi], ecx
mov dword [edi + 4], eax
mov edx, dword [edi]
or edx, dword [edi + 4]
je 0x4d9426
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
movzx eax, word [ebp + 2]
mov dword [esp + 0x1c], eax
lea eax, [eax*4 + 0x1c]
push 0
push eax
mov eax, dword [esp + 0x20]
call fcn.004afe20
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x4d60cc
mov dword [ecx + 8], 0
mov edx, dword [ebp + 0x10]
mov dword [ecx + 4], edx
mov edx, ebp
sub edx, dword [esp + 0x34]
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dl, byte [esp + 0x1c]
mov dword [ecx + 0x10], eax
mov dword [ecx + 0xc], ebx
mov byte [ecx + 0x1a], dl
mov byte [ebp + 1], 0xf0
mov dword [ebp + 0x10], ecx
mov byte [ebp], 0x95
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 0x10]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x28], eax
cmp dword [esi + 8], eax
je 0x4d8729
movzx ecx, byte [esi + 0x1a]
sub ecx, 1
mov dword [esi + 8], eax
js 0x4d8729
lea edx, [esi + ecx*4 + 0x1c]
nop
mov eax, dword [ebp + 8]
add eax, ecx
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [edx], eax
dec ecx
sub edx, 4
test ecx, ecx
jge 0x4d8710
mov eax, dword [esp + 0x28]
inc dword [eax + 0xc]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x2a0], edx
mov dword [esp + 0x298], 0
mov ecx, 1
mov word [esp + 0x288], cx
mov ecx, dword [esi + 4]
lea eax, [esp + 0x280]
mov dword [esi], eax
movzx eax, byte [esi + 0x1a]
lea edx, [esi + 0x1c]
push edx
push eax
mov byte [esi + 0x19], 0
mov byte [esi + 0x18], 0
mov ecx, dword [ecx + 0xc]
push esi
call ecx
add esp, 0xc
cmp byte [esi + 0x19], 0
je 0x4d87c5
cmp dword [esi + 0x14], 0
je 0x4d87ae
lea edx, [esp + 0x280]
push edx
call fcn.004d2040
add esp, 4
push eax
push 0x5a2f30
mov esi, ebx
call fcn.004cd1f0
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x14]
add esp, 8
mov dword [esp + 0x14], ecx
mov esi, eax
lea eax, [esp + 0x280]
call fcn.004cc1f0
cmp dword [esp + 0x14], 0
jne 0x4d8849
cmp byte [esi + 0x18], 0
je case.0x4d4870.74
mov eax, dword [ebp - 0x10]
test eax, eax
je case.0x4d4870.74
lea edx, [eax + eax*4]
push 0
push 1
lea eax, [edi + edx*8]
call fcn.004cc5f0
mov edi, dword [esp + 0x50]
add esp, 8
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebp + 4]
mov ecx, dword [ebp + 0x10]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
mov eax, esi
call fcn.004cc030
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4d9875
movzx ecx, byte [esp + 0x42]
mov eax, esi
call fcn.004cbc80
mov ecx, esi
call fcn.004cc740
test eax, eax
je case.0x4d4870.74
push str.string_or_blob_too_big
mov esi, ebx
call fcn.004cd1f0
mov dword [esp + 0x18], 0x12
add esp, 4
mov edi, dword [esp + 0x18]
cmp byte [edi + 0x45], 0
mov ebx, 7
jne 0x4d885c
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x2ac]
cmp dword [esi + 0x6c], 0
jne 0x4d994e
cmp ebx, 0xc0a
je 0x4d994e
mov ecx, str.unknown_error
cmp ebx, 0x204
je 0x4d993b
mov eax, ebx
and eax, 0xff
cmp eax, 0x1a
ja 0x4d9940
mov eax, dword [eax*4 + 0x5a0810]
test eax, eax
je 0x4d9940
mov ecx, eax
jmp 0x4d9940
mov edx, dword [ebp + 8]
mov esi, dword [esp + 0x18]
or eax, 0xffffffff
lea ecx, [esp + 0x118]
push ecx
mov dword [esp + 0x11c], eax
mov dword [esp + 0x118], eax
mov eax, dword [ebp + 4]
push edx
push eax
lea ecx, [esp + 0x120]
mov dword [esp + 0x11c], 0
call fcn.0051f140
add esp, 0xc
mov dword [esp + 0x14], eax
test eax, eax
je 0x4d8913
cmp eax, 5
jne 0x4d8849
mov dword [esp + 0x14], 0
mov dword [esp + 0x110], 1
mov eax, dword [ebp + 0xc]
lea ecx, [eax + eax*4]
xor esi, esi
lea edi, [edi + ecx*8]
mov edi, edi
mov eax, dword [esp + esi*4 + 0x110]
cdq
push edx
push eax
mov eax, edi
call fcn.004cc5f0
inc esi
add esp, 8
add edi, 0x28
cmp esi, 3
jl 0x4d8920
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov eax, ebp
mov edx, ebx
call fcn.004d4780
mov edx, dword [ebp + 4]
mov esi, dword [ebp + 0xc]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x10]
shl edx, 4
mov eax, dword [edx + ecx + 4]
mov edx, dword [eax + 4]
mov edi, dword [edx]
mov dword [esp + 0x1c], eax
movzx eax, byte [edi + 5]
mov dword [esp + 0x2c], eax
cmp esi, 0xffffffff
jne 0x4d8982
mov esi, eax
cmp byte [edi + 0x11], 3
jae 0x4d899e
mov ecx, dword [edi + 0x44]
cmp dword [ecx], 0
je 0x4d89a2
cmp dword [edi + 0x54], 0
jl 0x4d89a2
jg 0x4d899e
cmp dword [edi + 0x50], 0
jbe 0x4d89a2
mov esi, dword [esp + 0x2c]
cmp byte [edi + 0x10], 0
mov eax, 0x59b313
jne 0x4d89b3
mov eax, dword [edi + 0xb0]
cmp esi, 5
jne 0x4d89d5
call fcn.004b24d0
test eax, eax
je 0x4d89cc
mov eax, edi
call fcn.004be070
test eax, eax
jne 0x4d89d5
mov esi, dword [esp + 0x2c]
jmp 0x4d8a50
mov ecx, dword [esp + 0x2c]
cmp esi, ecx
je 0x4d8a50
cmp ecx, 5
je 0x4d89e7
cmp esi, 5
jne 0x4d8a50
mov eax, dword [esp + 0x18]
cmp byte [eax + 0x43], 0
je 0x4d9893
cmp dword [eax + 0xa0], 1
jg 0x4d9893
cmp ecx, 5
jne 0x4d8a20
mov edx, eax
push edx
mov eax, edi
call fcn.004be1e0
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4d8a57
mov eax, esi
jmp 0x4d8a28
cmp ecx, 4
jne 0x4d8a2f
lea eax, [ecx - 2]
mov ecx, edi
call fcn.004bde80
cmp dword [esp + 0x14], 0
jne 0x4d8a57
xor eax, eax
cmp esi, 5
sete al
inc eax
push eax
mov eax, dword [esp + 0x20]
call fcn.004ca890
add esp, 4
mov dword [esp + 0x14], eax
cmp dword [esp + 0x14], 0
je 0x4d8a5b
mov esi, dword [esp + 0x2c]
mov eax, esi
mov ecx, edi
call fcn.004bde80
mov edx, dword [esp + 0x30]
mov ecx, 0xa02
mov word [edx + 8], cx
cmp eax, 6
jne 0x4d8a7a
xor eax, eax
jmp 0x4d8a81
mov eax, dword [eax*4 + 0x59e088]
mov esi, dword [esp + 0x30]
mov dword [esi + 0x10], eax
call fcn.004b24d0
movzx ecx, byte [esp + 0x42]
mov dword [esi + 0xc], eax
mov eax, esi
mov byte [esi + 0xa], 1
call fcn.004cbc80
cmp dword [esp + 0x14], 0
jne 0x4d8849
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov ecx, dword [esp + 0x18]
lea eax, [ebx + 0x6c]
push eax
mov eax, dword [ebp + 4]
call fcn.0050c820
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4d8849
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov ecx, dword [ebp + 4]
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x10]
shl ecx, 4
mov eax, dword [ecx + eax + 4]
push eax
call fcn.004c4030
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
je case.0x4d4870.74
cmp eax, 0x65
jne 0x4d8849
mov dword [esp + 0x14], 0
jmp 0x4d9426
cmp dword [ebp + 4], 0
jne 0x4d8b39
mov eax, dword [esp + 0x18]
call fcn.004d19d0
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
or dword [ebx + 0x94], 1
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov cl, byte [ebp + 0xc]
test cl, cl
jne 0x4d8b64
mov edx, dword [esp + 0x18]
test dword [edx + 0x18], 0x400
jne case.0x4d4870.74
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 4]
push edx
mov edx, dword [esp + 0x1c]
mov edx, dword [edx + 0x10]
shl eax, 4
mov eax, dword [eax + edx + 4]
call fcn.004ca7b0
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
je case.0x4d4870.74
cmp al, 6
jne 0x4d8849
mov ecx, dword [ebp + 0x10]
push ecx
push str.database_table_is_locked:__s
mov esi, ebx
call fcn.004cd1f0
add esp, 8
jmp 0x4d8849
mov edi, dword [ebp + 0x10]
mov eax, dword [esp + 0x18]
call fcn.0050de20
mov dword [esp + 0x14], eax
test edi, edi
je 0x4d8bcd
mov edi, dword [edi + 8]
push ebx
call fcn.004d1aa0
add esp, 4
cmp dword [esp + 0x14], 0
jne 0x4d8849
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov ecx, dword [esp + 0x48]
mov esi, dword [esp + 0x18]
xor eax, eax
mov dword [esp + 0x1c0], eax
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x1a8], eax
mov dword [esp + 0x1ac], eax
mov dword [esp + 0x1b0], eax
mov dword [esp + 0x1b4], eax
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x1bc], eax
mov dword [esp + 0x1c4], eax
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
lea eax, [esp + 0x1a0]
mov dword [esp + 0x1c0], esi
call fcn.004cc800
lea edx, [esp + 0x1a0]
push edx
mov dword [esp + 0x18], eax
call fcn.004d2040
add esp, 4
test eax, eax
je 0x4d8c7e
lea ecx, [ebx + 0x6c]
push ecx
push eax
mov eax, dword [ebp + 4]
mov ecx, esi
call fcn.0050d970
add esp, 8
mov dword [esp + 0x14], eax
lea eax, [esp + 0x1a0]
call fcn.004cc1f0
cmp dword [esp + 0x14], 0
jne 0x4d8849
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov esi, dword [esp + 0x18]
inc dword [esi + 0xac]
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 4]
push edx
mov ecx, esi
call fcn.0050dc60
dec dword [esi + 0xac]
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4d8849
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x94], 0
mov esi, dword [eax + 8]
test esi, esi
je 0x4d98d8
mov eax, dword [esi]
mov dword [esp + 0x1c], eax
test eax, eax
je 0x4d98d8
lea ecx, [esp + 0x94]
push ecx
mov edx, eax
mov eax, dword [edx + 0x18]
push esi
call eax
push ebx
mov edi, esi
mov dword [esp + 0x20], eax
call fcn.004d1aa0
add esp, 0xc
cmp dword [esp + 0x14], 0
jne 0x4d8849
mov ecx, dword [esp + 0x94]
push 2
push 0xffffffffffffffff
mov dword [ecx], esi
mov edx, dword [ebp + 4]
push 0
push edx
mov edi, ebx
call fcn.004d44d0
add esp, 0x10
test eax, eax
je 0x4d98bf
mov ecx, dword [esp + 0x94]
mov edi, dword [esp + 0x48]
mov dword [eax + 0x28], ecx
inc dword [esi + 4]
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebx + 0x70]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 4]
mov eax, dword [ecx + eax*4]
mov esi, dword [eax + 0x28]
mov ecx, dword [edi + edx*8 + 0x28]
lea edx, [edi + edx*8]
mov edi, dword [esi]
mov dword [esp + 0x20], eax
mov eax, dword [edi]
mov dword [esp + 0x28], eax
mov eax, dword [edx]
mov dword [esp + 0x2c], eax
mov eax, dword [ebx + 0x60]
mov dword [esp + 0x1c], eax
xor eax, eax
mov dword [esp + 0x38], edi
test ecx, ecx
jle 0x4d8dbf
mov edi, dword [esp + 0x1c]
add edx, 0x50
lea esp, [esp]
mov dword [edi + eax*4], edx
inc eax
add edx, 0x28
cmp eax, ecx
jl 0x4d8db0
mov edi, dword [esp + 0x38]
mov edx, dword [esp + 0x1c]
mov eax, dword [ebp + 0x10]
push edx
mov edx, dword [esp + 0x2c]
push ecx
mov ecx, dword [esp + 0x34]
push eax
mov eax, dword [edx + 0x20]
push ecx
push esi
call eax
add esp, 0x14
push ebx
mov dword [esp + 0x18], eax
call fcn.004d1aa0
add esp, 4
cmp dword [esp + 0x14], 0
jne 0x4d8849
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx + 0x28]
push esi
call edx
mov ecx, dword [esp + 0x24]
add esp, 4
mov byte [ecx + 2], 0
test eax, eax
jne 0x4d9426
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov edx, dword [ebp + 4]
mov eax, dword [ebx + 0x70]
mov ecx, dword [eax + edx*4]
cmp byte [ecx + 2], 0
mov eax, dword [ebp + 0xc]
lea edx, [eax + eax*4]
lea esi, [edi + edx*8]
je 0x4d8e47
mov eax, esi
call fcn.004cc590
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ecx + 0x28]
mov edi, dword [eax]
mov edx, dword [edi]
xor eax, eax
mov dword [esp + 0x1f0], eax
mov dword [esp + 0x1f4], eax
mov dword [esp + 0x1f8], eax
mov dword [esp + 0x1fc], eax
mov dword [esp + 0x200], eax
mov dword [esp + 0x204], eax
mov dword [esp + 0x208], eax
mov dword [esp + 0x20c], eax
mov dword [esp + 0x1c], edx
mov dword [esp + 0x1f0], esi
mov ax, word [esi + 8]
mov edx, 0x3e00
and ax, dx
or ax, 1
mov word [esi + 8], ax
mov eax, dword [ebp + 8]
push eax
mov eax, dword [ecx + 0x28]
mov ecx, dword [esp + 0x20]
lea edx, [esp + 0x1f4]
push edx
mov edx, dword [ecx + 0x2c]
push eax
call edx
add esp, 0xc
push ebx
mov dword [esp + 0x18], eax
call fcn.004d1aa0
mov eax, dword [esp + 0x208]
add esp, 4
test eax, eax
je 0x4d8edf
mov dword [esp + 0x14], eax
movzx ecx, byte [esp + 0x42]
mov eax, esi
call fcn.004cbc80
mov ecx, esi
call fcn.004cc740
test eax, eax
jne 0x4d8832
cmp dword [esp + 0x14], eax
jne 0x4d8849
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebp + 4]
mov ecx, dword [ebx + 0x70]
mov esi, dword [ecx + eax*4]
cmp byte [esi + 2], 0
jne case.0x4d4870.74
mov eax, dword [esi + 0x28]
mov edi, dword [eax]
mov ecx, dword [edi]
mov edx, dword [ecx + 0x24]
push eax
mov dword [esp + 0x20], ecx
call edx
add esp, 4
push ebx
mov dword [esp + 0x18], eax
call fcn.004d1aa0
add esp, 4
cmp dword [esp + 0x14], 0
jne 0x4d8849
mov eax, dword [esi + 0x28]
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + 0x28]
push eax
call edx
add esp, 4
test eax, eax
jne 0x4d8f72
mov ebp, dword [ebp + 8]
mov ecx, dword [esp + 0x34]
lea eax, [ebp + ebp*4]
lea ebp, [ecx + eax*4 - 0x14]
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0xf8]
test eax, eax
jne 0x4d98e5
mov ecx, dword [esp + 0xa4]
cmp dword [esp + 0x70], ecx
jb case.0x4d4870.74
mov esi, dword [edx + 0x130]
test esi, esi
je case.0x4d4870.74
mov edi, dword [esp + 0x70]
mov eax, edx
mov ecx, dword [eax + 0x138]
xor edx, edx
mov eax, edi
div ecx
sub ecx, edx
add ecx, edi
mov dword [esp + 0xa4], ecx
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 0x134]
push edx
call esi
add esp, 4
test eax, eax
jne 0x4d95a6
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov eax, dword [ebp + 0x10]
mov esi, dword [eax + 8]
mov eax, dword [ebp + 4]
lea ecx, [eax + eax*4]
lea edi, [edi + ecx*8]
mov ecx, 1
mov eax, edi
call fcn.004cbc80
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4d8849
mov eax, dword [edi + 0x10]
mov edx, dword [esi]
mov ecx, dword [edx + 0x4c]
push eax
push esi
call ecx
push ebx
mov edi, esi
mov dword [esp + 0x20], eax
call fcn.004d1aa0
add esp, 0xc
jmp 0x4d68e8
mov edx, dword [ebp + 0x10]
mov eax, dword [edx + 8]
mov dword [esp + 0x1c], eax
test eax, eax
je 0x4d98d8
mov edx, dword [eax]
test edx, edx
je 0x4d98d8
cmp dword [edx + 0x34], 0
mov ecx, dword [ebp + 8]
je case.0x4d4870.74
mov eax, dword [esp + 0x18]
mov al, byte [eax + 0x4a]
mov esi, dword [ebx + 0x60]
mov byte [esp + 0x46], al
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
xor eax, eax
test ecx, ecx
jle 0x4d907c
mov dword [esi + eax*4], edi
inc eax
add edi, 0x28
cmp eax, ecx
jl 0x4d9071
movzx eax, byte [ebp + 2]
mov edi, dword [esp + 0x18]
mov byte [edi + 0x4a], al
mov edx, dword [edx + 0x34]
lea eax, [esp + 0x160]
push eax
push esi
push ecx
mov ecx, dword [esp + 0x28]
push ecx
call edx
mov dword [esp + 0x24], eax
movzx eax, byte [esp + 0x56]
mov byte [edi + 0x4a], al
mov edi, dword [esp + 0x2c]
push ebx
call fcn.004d1aa0
add esp, 0x14
cmp dword [esp + 0x14], 0
jne 0x4d90d9
cmp dword [ebp + 4], 0
je 0x4d90d9
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x160]
mov edx, dword [esp + 0x164]
mov dword [eax + 0x20], ecx
mov dword [eax + 0x24], edx
mov ecx, dword [esp + 0x14]
cmp cl, 0x13
jne 0x4d9127
mov eax, dword [ebp + 0x10]
cmp byte [eax + 0x10], 0
je 0x4d9127
movzx eax, word [ebp + 2]
cmp ax, 4
jne 0x4d9109
mov edi, dword [esp + 0x48]
mov dword [esp + 0x14], 0
add ebp, 0x14
jmp 0x4d4857
cmp ax, 5
jne 0x4d911c
mov eax, 2
mov byte [ebx + 0x8e], al
jmp 0x4d912a
movzx eax, ax
mov byte [ebx + 0x8e], al
jmp 0x4d912a
inc dword [ebx + 0x2c]
test ecx, ecx
jne 0x4d8849
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov eax, ebp
mov edx, ebx
call fcn.004d4780
mov ecx, dword [ebp + 4]
mov edx, dword [esp + 0x18]
mov edx, dword [edx + 0x10]
mov edi, dword [esp + 0x48]
shl ecx, 4
mov ecx, dword [ecx + edx + 4]
mov edx, dword [ecx + 4]
mov ecx, dword [edx + 0x2c]
mov dword [eax], ecx
mov dword [eax + 4], 0
add ebp, 0x14
jmp 0x4d4857
mov eax, ebp
mov edx, ebx
call fcn.004d4780
mov edx, dword [ebp + 4]
mov esi, eax
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x10]
shl edx, 4
mov eax, dword [edx + ecx + 4]
mov ecx, dword [ebp + 0xc]
xor edx, edx
test ecx, ecx
je 0x4d91a4
mov edx, dword [eax + 4]
mov edx, dword [edx + 0x2c]
cmp edx, ecx
jae 0x4d91a4
mov edx, ecx
push edx
call fcn.004c3260
mov edi, dword [esp + 0x4c]
cdq
add esp, 4
mov dword [esi], eax
mov dword [esi + 4], edx
add ebp, 0x14
jmp 0x4d4857
movzx eax, word [ebp + 2]
mov dword [esp + 0x1c], eax
lea eax, [eax*4 + 0x1c]
push 0
push eax
mov eax, dword [esp + 0x20]
call fcn.004afe20
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x4d60cc
mov dword [ecx], 0
mov edx, dword [ebp + 0x10]
mov dword [ecx + 4], edx
mov edx, ebp
sub edx, dword [esp + 0x34]
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dl, byte [esp + 0x1c]
mov dword [ecx + 0x10], eax
mov dword [ecx + 0xc], ebx
mov byte [ecx + 0x1a], dl
add byte [ebp], 2
mov byte [ebp + 1], 0xf0
mov dword [ebp + 0x10], ecx
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 0x10]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x30], eax
cmp dword [esi], eax
je 0x4d9265
movzx ecx, byte [esi + 0x1a]
sub ecx, 1
mov dword [esi], eax
js 0x4d9265
lea edx, [esi + ecx*4 + 0x1c]
lea esp, [esp]
mov eax, dword [ebp + 8]
add eax, ecx
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [edx], eax
dec ecx
sub edx, 4
test ecx, ecx
jge 0x4d9250
mov eax, dword [esp + 0x30]
mov cx, word [eax + 8]
mov edx, 0x3e00
and cx, dx
or cx, 1
mov word [eax + 8], cx
movzx edx, byte [esi + 0x1a]
mov eax, dword [esi + 4]
lea ecx, [esi + 0x1c]
push ecx
push edx
mov byte [esi + 0x19], 0
mov eax, dword [eax + 0xc]
push esi
call eax
add esp, 0xc
cmp byte [esi + 0x19], 0
je 0x4d92f2
cmp dword [esi + 0x14], 0
je 0x4d92cc
mov ecx, dword [esp + 0x30]
push ecx
call fcn.004d2040
add esp, 4
push eax
push 0x5a2f30
mov esi, ebx
call fcn.004cd1f0
mov edx, dword [esp + 0x24]
mov eax, dword [edx + 0x14]
add esp, 8
mov dword [esp + 0x14], eax
mov esi, edx
mov ecx, dword [ebp + 4]
mov edx, dword [esi + 0x10]
mov edi, dword [esp + 0x18]
push ecx
push edx
lea eax, [ebx + 0xd8]
push eax
call fcn.004cff20
add esp, 0xc
cmp dword [esp + 0x14], 0
jne 0x4d8849
mov esi, dword [esp + 0x30]
test byte [esi + 8], 0x12
je case.0x4d4870.74
movzx ecx, byte [esp + 0x42]
mov eax, esi
call fcn.004cbc80
mov ecx, esi
call fcn.004cc740
test eax, eax
jne 0x4d8832
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
mov ecx, dword [esp + 0x18]
mov cl, byte [ecx + 0x4c]
test cl, 0x81
je 0x4d93de
test byte [ebx + 0x94], 2
jne 0x4d93de
mov eax, dword [ebp + 0x10]
test eax, eax
jne 0x4d9359
mov eax, dword [ebx + 0xbc]
test eax, eax
je 0x4d93de
push eax
test cl, cl
jns 0x4d938d
mov edx, dword [esp + 0x1c]
mov edi, dword [edx + 0xb8]
mov ecx, ebx
call fcn.004d4010
mov esi, eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0xbc]
add esp, 4
push esi
push ecx
call edi
push esi
call fcn.004afa00
add esp, 0xc
jmp 0x4d93de
mov ecx, dword [esp + 0x1c]
cmp dword [ecx + 0xa8], 1
jle 0x4d93c9
push str.____s
mov edi, ecx
call fcn.004b1850
mov edx, dword [edi + 0xbc]
mov esi, eax
mov eax, dword [edi + 0xb8]
push esi
push ebx
push edx
push 1
call eax
add esp, 0x18
mov eax, esi
mov ecx, edi
call fcn.004afaf0
jmp 0x4d93de
mov edx, dword [ecx + 0xbc]
mov eax, dword [ecx + 0xb8]
push ebx
push edx
push 1
call eax
add esp, 0x10
mov ecx, dword [ebp + 4]
cmp ecx, dword [0x5ebaf0]
mov esi, 1
jl 0x4d941d
xor edi, edi
cmp dword [ebx + 0x88], esi
mov edx, esi
jle 0x4d941a
mov ecx, 0x14
nop
mov eax, dword [ebx + 0x58]
add eax, ecx
cmp byte [eax], 0x14
jne 0x4d940d
mov dword [eax + 4], edi
add edx, esi
add ecx, 0x14
cmp edx, dword [ebx + 0x88]
jl 0x4d9400
mov dword [ebp + 4], edi
add dword [ebp + 4], esi
add dword [ebx + 0xb8], esi
mov ebp, dword [ebp + 8]
mov edx, dword [esp + 0x34]
lea ecx, [ebp + ebp*4]
lea ebp, [edx + ecx*4 - 0x14]
mov edi, dword [esp + 0x48]
add ebp, 0x14
jmp 0x4d4857
push str.cannot_open_savepoint___SQL_statements_in_progress
mov esi, ebx
call fcn.004cd1f0
mov dword [esp + 0x18], 5
jmp 0x4d8846
push str.cannot_release_savepoint___SQL_statements_in_progress
mov esi, ebx
call fcn.004cd1f0
mov dword [esp + 0x18], 5
jmp 0x4d8846
mov eax, dword [ebx + 0x6c]
mov ecx, edi
call fcn.004afaf0
push str.database_schema_has_changed
mov eax, edi
call fcn.004b0040
mov dword [ebx + 0x6c], eax
mov eax, dword [ebp + 4]
mov edx, dword [edi + 0x10]
mov ecx, eax
shl ecx, 4
mov ecx, dword [ecx + edx + 0xc]
add esp, 4
cmp dword [ecx], esi
je 0x4d94ad
mov edi, dword [esp + 0x18]
mov esi, eax
call fcn.004ea870
or dword [ebx + 0x94], 1
mov dword [esp + 0x14], 0x11
jmp 0x4d8849
mov dword [esp + 0x14], 7
jmp 0x4d7f8a
mov edx, dword [ebp + 4]
mov dword [ebx + 0x28], edx
mov cl, byte [ebp + 8]
mov byte [ebx + 0x8e], cl
mov dword [ebx + 0x24], eax
test edx, edx
je 0x4d955f
movzx eax, word [ebp + 2]
mov esi, ebx
test ax, ax
je 0x4d952d
movzx edx, ax
mov eax, dword [edx*4 + 0x59d76c]
push eax
push str._s_constraint_failed
call fcn.004cd1f0
mov eax, dword [ebp + 0x10]
add esp, 8
test eax, eax
je 0x4d953e
mov ecx, dword [ebx + 0x6c]
mov edi, dword [esp + 0x18]
push eax
push ecx
push str._z:__s
call fcn.004b1850
add esp, 0xc
mov dword [ebx + 0x6c], eax
jmp 0x4d953e
mov edx, dword [ebp + 0x10]
push edx
push 0x5a2f30
call fcn.004cd1f0
add esp, 8
mov eax, dword [ebx + 0x6c]
mov ecx, dword [ebx + 0xbc]
mov edx, dword [esp + 0x1c]
push eax
mov eax, dword [ebp + 4]
push ecx
push edx
push str.abort_at__d_in___s_:__s
push eax
call fcn.004b1a80
add esp, 0x14
mov edi, ebx
call fcn.004cfa90
mov dword [esp + 0x14], eax
cmp eax, 5
jne 0x4d979d
mov dword [ebx + 0x28], eax
jmp 0x4d9a31
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x130]
test eax, eax
je 0x4d95b3
mov edx, dword [esp + 0xa4]
cmp dword [esp + 0x70], edx
jb 0x4d95b3
mov ecx, dword [ecx + 0x134]
push ecx
call eax
add esp, 4
test eax, eax
je 0x4d95b3
mov dword [esp + 0x14], 9
jmp 0x4d8849
push 0
mov eax, ebx
call fcn.004cfa20
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4d8849
lea edx, [eax + 1]
mov eax, ebx
call fcn.004cfa00
mov edx, dword [ebx + 0x20]
add edx, 2
or edx, 1
mov dword [ebx + 0x20], edx
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
xor esi, esi
mov dword [ebx + 0x68], edi
cmp dword [ebp + 8], esi
jle 0x4d961e
mov ecx, 0x1000
test word [edi + 8], cx
je 0x4d960e
mov eax, edi
call fcn.004cbe30
test eax, eax
jne 0x4d60cc
mov eax, edi
call fcn.004cbf30
inc esi
add edi, 0x28
cmp esi, dword [ebp + 8]
jl 0x4d95f4
mov eax, dword [esp + 0x18]
cmp byte [eax + 0x45], 0
jne 0x4d60cc
test byte [eax + 0x4c], 4
je 0x4d9649
mov edx, dword [eax + 0xbc]
mov eax, dword [eax + 0xb8]
push 0
push ebx
push edx
push 4
call eax
add esp, 0x10
sub ebp, dword [esp + 0x34]
mov eax, 0x66666667
imul ebp
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
lea edx, [edx + ecx + 1]
mov dword [ebx + 0x24], edx
mov dword [esp + 0x14], 0x64
jmp 0x4d9a31
mov eax, 0x13e1b
call fcn.005204b0
mov dword [esp + 0x14], eax
jmp 0x4d8849
cmp dword [edi + 0x4c], 0
jne 0x4d9695
lea eax, [esp + 0x178]
call fcn.004cc1f0
mov eax, 0x13e56
call fcn.005204b0
mov dword [esp + 0x14], eax
jmp 0x4d8849
sub ebp, dword [esp + 0x34]
mov eax, 0x66666667
imul ebp
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebx + 0x24], eax
mov byte [esi + 0x43], 0
mov dword [esp + 0x14], 5
mov dword [ebx + 0x28], 5
jmp 0x4d9a31
mov esi, dword [esp + 0x18]
movzx edx, byte [esi + 0x43]
mov eax, dword [ebp + 4]
mov ecx, dword [ebp + 8]
mov dword [esp + 0x1c], eax
cmp eax, edx
je 0x4d97b3
test ecx, ecx
je 0x4d970b
push 0x204
mov eax, esi
call fcn.0051e610
add esp, 4
mov byte [esi + 0x43], 1
jmp 0x4d9759
test eax, eax
je 0x4d9731
cmp dword [esi + 0xa4], 0
jle 0x4d9731
push str.cannot_commit_transaction___SQL_statements_in_progress
mov esi, ebx
call fcn.004cd1f0
mov dword [esp + 0x18], 5
jmp 0x4d8846
push 1
mov eax, ebx
call fcn.004cfa20
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4d9a31
mov al, byte [esp + 0x1c]
mov ebx, dword [esp + 0x2ac]
mov ecx, esi
mov byte [ecx + 0x43], al
mov edi, ebx
call fcn.004cfa90
mov ecx, 5
cmp eax, ecx
jne 0x4d9798
sub ebp, dword [esp + 0x34]
mov eax, 0x66666667
imul ebp
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dl, 1
sub dl, byte [esp + 0x1c]
mov dword [ebx + 0x24], eax
mov eax, esi
mov byte [eax + 0x43], dl
mov dword [esp + 0x14], ecx
mov dword [ebx + 0x28], ecx
jmp 0x4d9a31
call fcn.0051db30
mov ebx, dword [ebx + 0x28]
neg ebx
sbb ebx, ebx
and ebx, 0xffffff9c
add ebx, 0x65
mov dword [esp + 0x14], ebx
jmp 0x4d9a31
test eax, eax
jne 0x4d97d1
mov eax, str.cannot_start_a_transaction_within_a_transaction
push eax
mov esi, ebx
call fcn.004cd1f0
mov dword [esp + 0x18], 1
jmp 0x4d8846
mov eax, str.cannot_rollback___no_transaction_is_active
test ecx, ecx
jne 0x4d97df
mov eax, str.cannot_commit___no_transaction_is_active
push eax
mov esi, ebx
call fcn.004cd1f0
mov dword [esp + 0x18], 1
jmp 0x4d8846
mov dword [esp + 0x14], 8
jmp 0x4d8849
mov ecx, dword [esp + 0x14]
cmp cl, 5
jne 0x4d8849
sub ebp, dword [esp + 0x34]
mov eax, 0x66666667
imul ebp
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebx + 0x24], eax
mov dword [ebx + 0x28], ecx
jmp 0x4d9a31
mov dword [esp + 0x14], 0x204
jmp 0x4d8849
mov dword [esp + 0x14], 0xd
jmp 0x4d8849
mov dword [esp + 0x14], 6
mov byte [ebx + 0x8e], 2
jmp 0x4d8849
push str.too_many_levels_of_trigger_recursion
mov esi, ebx
mov dword [esp + 0x18], 1
call fcn.004cd1f0
jmp 0x4d8846
push esi
call fcn.004d2040
add esp, 4
push eax
push 0x5a2f30
mov esi, ebx
call fcn.004cd1f0
add esp, 8
jmp 0x4d8849
mov dword [esp + 0x14], 1
mov eax, str.into
cmp esi, 5
je 0x4d98aa
mov eax, str.out_of
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
mov esi, ebx
call fcn.004cd1f0
add esp, 8
jmp 0x4d8849
mov edx, dword [esp + 0x94]
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x1c]
push edx
call ecx
add esp, 4
jmp 0x4d60cc
mov dword [esp + 0x14], 6
jmp 0x4d8849
mov edx, dword [esp + 0x18]
xor eax, eax
cmp byte [edx + 0x45], al
mov ecx, str.unknown_error
sete al
lea eax, [eax + eax + 7]
mov dword [esp + 0x14], eax
mov dword [ebx + 0x28], eax
cmp eax, 0x204
je 0x4d9921
and eax, 0xff
cmp eax, 0x1a
ja 0x4d9926
mov eax, dword [eax*4 + 0x5a0810]
test eax, eax
je 0x4d9926
mov ecx, eax
jmp 0x4d9926
mov ecx, str.abort_due_to_ROLLBACK
push ecx
push 0x5a2f30
mov esi, ebx
call fcn.004cd1f0
add esp, 8
jmp 0x4d8849
mov ecx, str.abort_due_to_ROLLBACK
push ecx
push 0x5a2f30
call fcn.004cd1f0
add esp, 8
mov dword [esi + 0x28], ebx
cmp ebx, 0xc0a
je 0x4d9984
mov eax, ebx
and eax, 0xff
cmp eax, 0xe
je 0x4d996a
cmp eax, 0xa
jne 0x4d9984
mov eax, dword [edi]
mov ecx, dword [eax + 0x44]
test ecx, ecx
je 0x4d997f
push 0
push 0
push eax
call ecx
add esp, 0xc
jmp 0x4d9981
xor eax, eax
mov dword [edi + 0x3c], eax
mov eax, dword [esi + 0x6c]
sub ebp, dword [esp + 0x34]
mov ecx, dword [esi + 0xbc]
push eax
mov eax, 0x66666667
imul ebp
sar edx, 3
mov eax, edx
push ecx
shr eax, 0x1f
add eax, edx
push eax
push str.statement_aborts_at__d:___s___s
push ebx
call fcn.004b1a80
add esp, 0x14
mov edi, esi
call fcn.004cfa90
cmp ebx, 0xc0a
jne 0x4d99ef
mov eax, dword [esp + 0x18]
cmp byte [eax + 0x45], 0
jne 0x4d99ef
cmp byte [eax + 0x46], 0
jne 0x4d99ef
cmp dword [eax + 0xa8], 0
mov byte [eax + 0x45], 1
jle 0x4d99e9
mov dword [eax + 0xf8], 1
inc dword [eax + 0x100]
cmp byte [esp + 0x47], 0
mov dword [esp + 0x14], 1
jbe 0x4d9a31
movzx esi, byte [esp + 0x47]
mov edi, dword [esp + 0x18]
mov edx, dword [edi + 0x10]
dec esi
mov ecx, esi
shl ecx, 4
mov eax, dword [ecx + edx + 0xc]
push eax
call fcn.004f0a70
add esp, 4
cmp esi, 1
je 0x4d9a31
mov ecx, dword [edi + 0x10]
mov edx, dword [ecx + 0x1c]
push edx
call fcn.004f0a70
add esp, 4
mov eax, dword [esp + 0x2ac]
mov ecx, dword [esp + 0x70]
add dword [eax + 0xb0], ecx
cmp dword [eax + 0x9c], 0
je 0x4d9a54
push eax
call fcn.004ce430
add esp, 4
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x298
ret