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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2e4
mov eax, dword [0x708c34]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
xor ecx, ecx
mov esi, ecx
mov dword [ebp - 0x1c], edi
xorps xmm0, xmm0
mov dword [ebp - 0x11c], ecx
mov dword [ebp - 0x14], esi
mov edx, dword [edi]
mov eax, dword [edi + 0x68]
mov ebx, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x20], edx
mov al, byte [edx + 0x54]
mov byte [ebp - 0x60], al
mov eax, dword [edi + 0x58]
mov byte [ebp - 0x79], cl
mov dword [ebp - 0x78], ecx
movlpd qword [ebp - 0xac], xmm0
mov dword [ebp - 0x24], eax
mov dword [ebp - 0xb0], ecx
cmp dword [edi + 0xa0], ecx
je 0x4a51a0
push edi
call fcn.004a50ad
mov edx, dword [ebp - 0x20]
pop ecx
xor ecx, ecx
cmp dword [edx + 0x174], ecx
je 0x4a51cd
mov ecx, dword [edx + 0x17c]
xor edx, edx
mov eax, dword [edi + 0xb4]
div ecx
sub ecx, edx
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x84], ecx
xor ecx, ecx
mov dword [ebp - 0x88], ecx
jmp 0x4a51dd
or eax, 0xffffffff
or dword [ebp - 0x88], 0xffffffff
mov dword [ebp - 0x84], eax
cmp dword [edi + 0x24], 7
mov dword [ebp - 0x128], 0x14
je 0x4aad4c
mov dword [edi + 0x24], ecx
mov dword [edi + 0x38], ecx
mov dword [edi + 0x3c], ecx
mov dword [edx + 0x1c8], ecx
cmp dword [edx + 0x128], ecx
jne 0x4aad2f
imul ebx, dword [edi + 0x20], 0x14
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0xa8]
mov ecx, dword [ebp - 0xac]
add ebx, eax
add ecx, 1
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x9c], ecx
push 0
pop ecx
adc edx, ecx
mov dword [ebp - 0xa4], edx
mov dl, byte [ebx]
movzx ecx, dl
mov dword [ebp - 0x38], ecx
cmp ecx, 0xb8
ja case.0x4a524c.89
jmp dword [ecx*4 + 0x4aae73]
imul ecx, dword [ebx + 4], 0x28
push 4
pop eax
add ecx, dword [ebp - 0x24]
mov word [ecx + 0x10], ax
mov eax, ebx
sub eax, dword [ebp - 0x18]
cdq
idiv dword [ebp - 0x128]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x4a524c.9
imul eax, dword [ebx + 4], 0x28
push 4
pop ecx
add eax, dword [ebp - 0x24]
test byte [eax + 0x10], cl
je 0x4a5dd3
imul ebx, dword [eax], 0x14
mov eax, dword [ebp - 0x18]
add ebx, eax
jmp case.0x4a524c.89
imul ecx, dword [ebx + 4], 0x28
mov eax, dword [ebx + 0xc]
push 4
add ecx, dword [ebp - 0x24]
dec eax
cdq
mov dword [ecx], eax
pop eax
mov word [ecx + 0x10], ax
xor eax, eax
mov dword [ecx + 4], edx
cmp dword [ebx + 8], eax
jne 0x4aa86b
jmp 0x4a5dd3
imul ecx, dword [ebx + 4], 0x28
mov edx, dword [ebp - 0x18]
add ecx, dword [ebp - 0x24]
lea ebx, [edx - 0x14]
imul eax, dword [ecx], 0x14
imul eax, dword [eax + edx + 8], 0x14
add ebx, eax
xor eax, eax
mov word [ecx + 0x10], ax
jmp 0x4a5dd3
imul esi, dword [ebx + 4], 0x28
sub ebx, eax
push 4
pop ecx
mov eax, ebx
cdq
push 0x14
pop ebx
idiv ebx
add esi, dword [ebp - 0x24]
cdq
mov word [esi + 0x10], cx
mov ecx, dword [esi]
imul ebx, ecx, 0x14
mov dword [esi], eax
mov eax, dword [ebp - 0x18]
mov dword [esi + 4], edx
mov esi, dword [ebp - 0x14]
add ebx, eax
jmp case.0x4a524c.89
imul eax, dword [ebx + 0xc], 0x28
xor edx, edx
mov ecx, dword [ebp - 0x24]
inc edx
test byte [eax + ecx + 0x10], dl
je 0x4a5dd3
mov edx, dword [edi + 0xd0]
test edx, edx
je 0x4aa87c
xor eax, eax
cmp dword [ebx + 4], eax
jne 0x4aa87c
mov eax, dword [edx + 4]
dec dword [edi + 0xd8]
mov ecx, dword [edi + 0x2c]
mov dword [edi + 0xd0], eax
mov eax, dword [edi + 0x28]
mov edi, dword [ebp - 0x20]
push edx
add dword [edi + 0x70], eax
mov dword [edi + 0x68], eax
mov eax, edi
mov dword [edi + 0x6c], ecx
adc dword [eax + 0x74], ecx
call fcn.004ab581
mov edi, dword [ebp - 0x1c]
pop ecx
push 4
pop ecx
cmp dword [ebx + 8], ecx
jne 0x4a5382
imul ecx, eax, 0x14
mov eax, dword [edi + 0x68]
mov eax, dword [ecx + eax + 8]
dec eax
mov ecx, dword [edi + 0x68]
mov dword [ebp - 0x18], ecx
mov ecx, dword [edi + 0x58]
mov dword [ebp - 0x24], ecx
imul ebx, eax, 0x14
jmp 0x4a528e
push ebx
push edi
call fcn.0047783e
pop ecx
pop ecx
mov ecx, eax
mov eax, dword [ebx + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x4a5dd3
push ebx
push edi
call fcn.0047783e
pop ecx
pop ecx
mov ecx, dword [ebx + 0x10]
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [eax], edx
mov dword [eax + 4], ecx
jmp 0x4a5dd3
push ebx
push edi
call fcn.0047783e
pop ecx
pop ecx
push 8
pop ecx
mov word [eax + 0x10], cx
mov ecx, dword [ebx + 0x10]
movsd xmm0, qword [ecx]
movsd qword [eax], xmm0
jmp 0x4a5dd3
push ebx
push edi
call fcn.0047783e
push dword [ebx + 0x10]
mov dword [ebp - 0x40], eax
call fcn.004a156e
xor ecx, ecx
mov dword [ebx + 4], eax
inc ecx
add esp, 0xc
cmp byte [ebp - 0x60], cl
je 0x4a547e
xor eax, eax
push eax
push ecx
push 0xffffffffffffffff
push 0xffffffffffffffff
push dword [ebx + 0x10]
push dword [ebp - 0x40]
call fcn.004ac8ee
mov esi, eax
add esp, 0x18
mov dword [ebp - 0x14], esi
test esi, esi
jne 0x4aaa44
movzx ecx, byte [ebp - 0x60]
push ecx
push dword [ebp - 0x40]
call fcn.004a4ad9
pop ecx
pop ecx
test eax, eax
jne 0x4a6909
mov ecx, dword [ebp - 0x40]
mov dword [ecx + 0x18], eax
mov eax, 0x2000
or word [ecx + 0x10], ax
cmp byte [ebx + 1], 0xfa
jne 0x4a546e
cmp dword [ebx + 0x10], esi
je 0x4a546e
push dword [ebx + 0x10]
push dword [ebp - 0x20]
call fcn.00489ef9
pop ecx
pop ecx
mov ecx, dword [ebp - 0x40]
mov byte [ebx + 1], 0xfa
mov eax, dword [ecx + 8]
mov dword [ebx + 0x10], eax
mov eax, dword [ecx + 0xc]
mov dword [ebx + 4], eax
mov ecx, dword [ebp - 0x20]
cmp eax, dword [ecx + 0x78]
jg 0x4aaa44
mov byte [ebx], 0x49
push ebx
push edi
call fcn.0047783e
pop ecx
pop ecx
mov ecx, 0x2202
mov dword [ebp - 0x28], eax
mov word [eax + 0x10], cx
mov ecx, dword [ebx + 0x10]
mov dword [eax + 8], ecx
mov ecx, dword [ebx + 4]
mov dword [eax + 0xc], ecx
mov cl, byte [ebp - 0x60]
mov byte [eax + 0x12], cl
mov eax, dword [ebx + 0xc]
test eax, eax
jle 0x4a5dd0
mov edi, dword [ebp - 0x24]
imul ecx, eax, 0x28
movzx eax, word [ebx + 2]
cdq
cmp dword [ecx + edi], eax
mov edi, dword [ebp - 0x1c]
jne 0x4a5dd0
mov eax, dword [ebp - 0x24]
cmp dword [ecx + eax + 4], edx
jne 0x4a5dd0
mov eax, dword [ebp - 0x28]
mov ecx, 0x2210
mov word [eax + 0x10], cx
jmp 0x4a5dd3
push ebx
push edi
call fcn.0047783e
mov edx, dword [ebx + 8]
pop ecx
pop ecx
mov ecx, dword [ebx + 0xc]
mov dword [ebp - 0x58], ecx
xor ecx, ecx
inc ecx
mov dword [ebp - 0x28], 0x101
cmp dword [ebx + 4], 0
cmovne ecx, dword [ebp - 0x28]
movzx ecx, cx
mov word [eax + 0x10], cx
add eax, 0xc
mov dword [ebp - 0x30], ecx
xor ecx, ecx
mov dword [ebp - 0x28], eax
mov dword [eax], ecx
mov eax, dword [ebp - 0x58]
sub eax, edx
mov dword [ebp - 0x58], eax
test eax, eax
jle 0x4a5dd0
mov edi, dword [ebp - 0x28]
mov esi, eax
mov ebx, dword [ebp - 0x30]
lea edi, [edi + 0x28]
lea eax, [edi - 0xc]
push eax
call fcn.004ac811
xor eax, eax
mov word [edi + 4], bx
dec esi
mov dword [edi], eax
pop ecx
test esi, esi
jg 0x4a5544
mov ebx, dword [ebp - 0x54]
mov esi, dword [ebp - 0x14]
mov edi, dword [ebp - 0x1c]
jmp 0x4a5dd3
imul ecx, dword [ebx + 4], 0x28
mov edx, 0xffc1
add ecx, dword [ebp - 0x24]
mov ax, word [ecx + 0x10]
and ax, dx
xor edx, edx
inc edx
or ax, dx
jmp 0x4a52d9
push ebx
push edi
call fcn.0047783e
cmp dword [ebx + 0x10], 0
pop ecx
pop ecx
mov ecx, eax
mov dword [ebp - 0x30], ecx
jne 0x4a55bc
push dword [ebx + 4]
push ecx
call fcn.004acabf
push dword [ebp - 0x30]
call fcn.004ac2f6
add esp, 0xc
test eax, eax
jne 0x4a6909
jmp 0x4a55d2
xor eax, eax
push eax
push eax
mov eax, dword [ebx + 4]
cdq
push edx
push eax
push dword [ebx + 0x10]
push ecx
call fcn.004ac8ee
add esp, 0x18
mov eax, dword [ebp - 0x30]
mov cl, byte [ebp - 0x60]
mov byte [eax + 0x12], cl
jmp 0x4a5dd3
imul ecx, dword [ebx + 4], 0x28
mov eax, dword [edi + 0x64]
add ecx, 0xffffffd8
add eax, ecx
push eax
mov dword [ebp - 0x28], eax
call fcn.004acba8
pop ecx
test eax, eax
jne 0x4aaa44
imul eax, dword [ebx + 8], 0x28
mov ecx, 0x9000
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x30], eax
test word [eax + 0x10], cx
je 0x4a561d
push eax
call fcn.004ac811
mov eax, dword [ebp - 0x30]
pop ecx
push 0x14
pop ecx
push ecx
push dword [ebp - 0x28]
push eax
call fcn.006269d0
mov ecx, dword [ebp - 0x30]
mov edx, 0xafff
add esp, 0xc
mov ax, word [ecx + 0x10]
and ax, dx
mov edx, 0x2040
jmp 0x4a5582
mov eax, dword [ebx + 0xc]
imul ecx, dword [ebx + 4], 0x28
mov dword [ebp - 0x3c], eax
imul eax, dword [ebx + 8], 0x28
add ecx, dword [ebp - 0x24]
mov dword [ebp - 0x30], ecx
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x58], eax
push ecx
push eax
call fcn.004ac66f
mov eax, dword [ebp - 0x58]
pop ecx
pop ecx
mov ecx, 0x4000
test word [eax + 0x10], cx
je 0x4a5689
push eax
call fcn.004ac622
pop ecx
test eax, eax
jne 0x4a6909
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x30]
add eax, 0x28
add ecx, 0x28
mov dword [ebp - 0x58], eax
sub dword [ebp - 0x3c], 1
mov dword [ebp - 0x30], ecx
jne 0x4a5660
jmp 0x4a5dd3
mov eax, dword [ebx + 0xc]
imul esi, dword [ebx + 8], 0x28
mov dword [ebp - 0x30], eax
imul eax, dword [ebx + 4], 0x28
add eax, dword [ebp - 0x24]
add esi, dword [ebp - 0x24]
mov ecx, 0x4000
mov dword [ebp - 0x3c], eax
push ecx
push eax
push esi
call fcn.004acaf0
mov eax, 0x4000
add esp, 0xc
test word [esi + 0x10], ax
je 0x4a56e4
push esi
call fcn.004ac622
pop ecx
test eax, eax
jne 0x4a6909
movzx eax, word [esi + 0x10]
bt eax, 0xb
jae 0x4a5701
push 2
pop ecx
test byte [ebx + 2], cl
je 0x4a5701
mov ecx, 0xf7ff
and eax, ecx
mov word [esi + 0x10], ax
mov ecx, dword [ebp - 0x30]
mov eax, ecx
dec ecx
mov dword [ebp - 0x30], ecx
test eax, eax
je 0x4a5dd0
mov eax, dword [ebp - 0x3c]
add esi, 0x28
add eax, 0x28
jmp 0x4a56b7
mov eax, 0x4000
push eax
imul eax, dword [ebx + 4], 0x28
add eax, dword [ebp - 0x24]
push eax
imul eax, dword [ebx + 8], 0x28
add eax, dword [ebp - 0x24]
push eax
call fcn.004acaf0
add esp, 0xc
jmp 0x4a5dd3
imul eax, dword [ebx + 4], 0x28
mov ecx, dword [ebp - 0x24]
push dword [eax + ecx + 4]
push dword [eax + ecx]
imul eax, dword [ebx + 8], 0x28
add eax, ecx
push eax
call fcn.004ac7db
jmp 0x4a5738
xor eax, eax
push eax
push edi
call fcn.004a4bd6
jmp 0x4a8bc8
imul eax, dword [ebx + 4], 0x28
imul ecx, dword [ebx + 8], 0x28
imul edx, dword [ebx + 0xc], 0x28
mov edi, dword [ebp - 0x1c]
add eax, dword [ebp - 0x24]
add ecx, dword [ebp - 0x24]
add edx, dword [ebp - 0x24]
mov dword [ebp - 0x48], eax
movzx eax, word [eax + 0x10]
mov dword [ebp - 0x6c], eax
mov al, byte [ecx + 0x10]
or al, byte [ebp - 0x6c]
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x40], edx
test al, 1
je 0x4a57a8
push edx
call fcn.004ac811
pop ecx
jmp 0x4a5dd3
mov edx, dword [ebp - 0x6c]
test dl, 0x12
jne 0x4a57e0
xor eax, eax
push eax
push dword [ebp - 0x60]
push dword [ebp - 0x48]
call fcn.004acb46
add esp, 0xc
test eax, eax
jne 0x4a6909
mov eax, dword [ebp - 0x48]
mov ecx, 0xfffd
mov ax, word [eax + 0x10]
and ax, cx
movzx edx, ax
mov dword [ebp - 0x6c], edx
jmp 0x4a580c
bt edx, 0xa
jae 0x4a580f
push dword [ebp - 0x48]
call fcn.004ac2f6
pop ecx
test eax, eax
jne 0x4a6909
mov eax, dword [ebp - 0x48]
mov ecx, 0xfffd
mov ax, word [eax + 0x10]
and ax, cx
movzx eax, ax
mov dword [ebp - 0x6c], eax
mov ecx, dword [ebp - 0x38]
movzx eax, word [ecx + 0x10]
mov dword [ebp - 0x58], eax
test al, 0x12
jne 0x4a582b
xor eax, eax
push eax
push dword [ebp - 0x60]
push ecx
call fcn.004acb46
add esp, 0xc
jmp 0x4a5838
bt eax, 0xa
jae 0x4a5855
push ecx
call fcn.004ac2f6
pop ecx
test eax, eax
jne 0x4a6909
mov ecx, dword [ebp - 0x38]
mov ax, word [ecx + 0x10]
mov ecx, 0xfffd
and ax, cx
movzx eax, ax
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x48]
mov ecx, dword [eax + 0xc]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
add eax, ecx
mov dword [ebp - 0x28], eax
cdq
mov ecx, eax
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x3c], ecx
mov eax, dword [eax + 0x78]
cdq
cmp dword [ebp - 0x30], edx
jg 0x4aaa44
jl 0x4a5889
cmp ecx, eax
ja 0x4aaa44
mov edx, dword [ebp - 0x40]
xor eax, eax
cmp edx, dword [ebp - 0x38]
sete al
push eax
mov eax, dword [ebp - 0x28]
add eax, 2
push eax
push edx
call fcn.004ac494
add esp, 0xc
test eax, eax
jne 0x4a6909
mov ecx, dword [ebp - 0x40]
mov edx, 0xf242
push 2
mov ax, word [ecx + 0x10]
and ax, dx
pop edx
or ax, dx
mov word [ecx + 0x10], ax
mov eax, dword [ebp - 0x38]
cmp ecx, eax
je 0x4a58eb
push dword [eax + 0xc]
push dword [eax + 8]
push dword [ecx + 8]
call fcn.006269d0
mov eax, dword [ebp - 0x38]
add esp, 0xc
mov ecx, dword [ebp - 0x58]
mov word [eax + 0x10], cx
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x48]
mov eax, dword [eax + 0xc]
add eax, dword [ecx + 8]
push dword [edx + 0xc]
push dword [edx + 8]
push eax
call fcn.006269d0
mov eax, dword [ebp - 0x48]
add esp, 0xc
mov ecx, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x3c]
mov word [eax + 0x10], cx
xor eax, eax
inc eax
cmp byte [ebp - 0x60], al
jbe 0x4a5921
mov eax, dword [ebp - 0x30]
and edx, 0xfffffffe
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x40]
mov eax, dword [ecx + 8]
mov byte [edx + eax], 0
mov eax, dword [ecx + 8]
mov byte [eax + edx + 1], 0
mov eax, 0x200
or word [ecx + 0x10], ax
mov al, byte [ebp - 0x60]
mov dword [ecx + 0xc], edx
mov byte [ecx + 0x12], al
jmp 0x4a5dd3
imul eax, dword [ebx + 4], 0x28
mov edi, dword [ebp - 0x1c]
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x64], eax
movzx edx, word [eax + 0x10]
mov eax, edx
mov dword [ebp - 0x30], eax
imul eax, dword [ebx + 8], 0x28
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x6c], eax
movzx ecx, word [eax + 0x10]
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x50], eax
mov al, cl
and al, dl
test al, 4
jne 0x4a59d2
xor eax, eax
or cl, dl
inc eax
test al, cl
jne 0x4a5b9f
push 0x2d
pop eax
and edx, eax
je 0x4a599c
movzx edx, dx
mov dword [ebp - 0x30], edx
jmp 0x4a59ab
push dword [ebp - 0x64]
call fcn.00466881
movzx eax, ax
pop ecx
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x6c]
push 0x2d
pop edx
mov ax, word [ecx + 0x10]
and ax, dx
jne 0x4a59c1
push ecx
call fcn.00466881
pop ecx
movzx eax, ax
and al, byte [ebp - 0x30]
push 4
pop ecx
test cl, al
je 0x4a5ac1
mov eax, dword [ebp - 0x64]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0x6c]
mov edi, dword [eax]
mov dword [ebp - 0x40], edi
mov edi, dword [eax + 4]
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0xc0], eax
movzx eax, byte [ebx]
mov dword [ebp - 0x58], edi
mov dword [ebp - 0xbc], edi
mov edi, dword [ebp - 0x1c]
sub eax, 0x6a
je 0x4a5a8c
sub eax, 1
je 0x4a5a7c
sub eax, 1
je 0x4a5a6c
sub eax, 1
mov eax, ecx
je 0x4a5a3e
or eax, edx
je 0x4a5b9f
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
jne 0x4a5a2f
xor eax, eax
mov edx, eax
lea ecx, [eax + 1]
push edx
push ecx
push dword [ebp - 0x58]
push dword [ebp - 0x40]
call fcn.005fef40
jmp 0x4a5aad
or eax, edx
je 0x4a5b9f
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
mov eax, dword [ebp - 0x40]
jne 0x4a5a5f
test eax, eax
jne 0x4a5a5f
cmp dword [ebp - 0x58], 0x80000000
je 0x4a5ac1
push edx
push ecx
push dword [ebp - 0x58]
push eax
call fcn.005fedb0
jmp 0x4a5aad
push edx
push ecx
lea eax, [ebp - 0xc0]
push eax
call fcn.00496957
jmp 0x4a5a9a
push edx
push ecx
lea eax, [ebp - 0xc0]
push eax
call fcn.004a158b
jmp 0x4a5a9a
push edx
push ecx
lea eax, [ebp - 0xc0]
push eax
call fcn.00481f08
add esp, 0xc
test eax, eax
jne 0x4a5ac1
mov edx, dword [ebp - 0xbc]
mov eax, dword [ebp - 0xc0]
mov ecx, dword [ebp - 0x50]
push 4
mov dword [ecx + 4], edx
mov edx, 0xf244
mov dword [ecx], eax
jmp 0x4a5bbb
push dword [ebp - 0x64]
call fcn.004ad2dc
push dword [ebp - 0x6c]
fstp qword [ebp - 0x34]
call fcn.004ad2dc
movzx eax, byte [ebx]
pop ecx
fstp qword [ebp - 0x2c]
pop ecx
sub eax, 0x6a
je 0x4a5b7e
sub eax, 1
je 0x4a5b72
sub eax, 1
je 0x4a5b66
sub eax, 1
je 0x4a5b48
push dword [ebp - 0x64]
call fcn.004abc13
push dword [ebp - 0x6c]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x30], edx
call fcn.004abc13
pop ecx
pop ecx
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x28]
mov ecx, eax
mov dword [ebp - 0x3c], edx
mov edx, dword [ebp - 0x30]
or ecx, edx
je 0x4a5b9f
mov ecx, eax
and ecx, edx
cmp ecx, 0xffffffff
jne 0x4a5b32
xor eax, eax
inc eax
xor ecx, ecx
mov edx, ecx
push edx
push eax
push dword [ebp - 0x3c]
push dword [ebp - 0x58]
call fcn.005fef40
mov ecx, eax
call fcn.005ff250
jmp 0x4a5b88
movsd xmm1, qword [ebp - 0x34]
ucomisd xmm1, qword [0x69be08]
lahf
test ah, 0x44
jnp 0x4a5b9f
movsd xmm0, qword [ebp - 0x2c]
divsd xmm0, xmm1
jmp 0x4a5b88
movsd xmm0, qword [ebp - 0x2c]
mulsd xmm0, qword [ebp - 0x34]
jmp 0x4a5b88
movsd xmm0, qword [ebp - 0x2c]
subsd xmm0, qword [ebp - 0x34]
jmp 0x4a5b88
movsd xmm0, qword [ebp - 0x2c]
addsd xmm0, qword [ebp - 0x34]
push ecx
push ecx
movsd qword [ebp - 0x2c], xmm0
movsd qword [esp], xmm0
call fcn.00495465
pop ecx
pop ecx
test eax, eax
je 0x4a5ba8
mov ecx, dword [ebp - 0x50]
push ecx
jmp 0x4a579d
mov ecx, dword [ebp - 0x50]
mov edx, 0xf248
movsd xmm0, qword [ebp - 0x2c]
push 8
movsd qword [ecx], xmm0
mov ax, word [ecx + 0x10]
and ax, dx
pop edx
or ax, dx
movzx eax, ax
jmp 0x4a52d9
mov eax, dword [ebx + 4]
test eax, eax
je 0x4a5dd3
xor ecx, ecx
imul eax, eax, 0x28
push ecx
push ecx
add eax, dword [ebp - 0x24]
jmp 0x4a5754
imul edx, dword [ebx + 8], 0x28
imul ecx, dword [ebx + 4], 0x28
imul eax, dword [ebx + 0xc], 0x28
mov edi, dword [ebp - 0x1c]
add edx, dword [ebp - 0x24]
add ecx, dword [ebp - 0x24]
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x30], eax
mov al, byte [edx + 0x10]
or al, byte [ecx + 0x10]
mov dword [ebp - 0x28], ecx
xor ecx, ecx
inc ecx
test cl, al
je 0x4a5c1b
mov edx, dword [ebp - 0x30]
jmp 0x4a579c
push edx
call fcn.004abc13
push dword [ebp - 0x28]
mov dword [ebp - 0x90], eax
mov dword [ebp - 0x8c], edx
call fcn.004abc13
pop ecx
pop ecx
mov ecx, eax
mov al, byte [ebx]
mov dword [ebp - 0x40], ecx
mov byte [ebp - 0x49], al
cmp al, 0x66
jne 0x4a5c56
and dword [ebp - 0x90], ecx
and dword [ebp - 0x8c], edx
jmp 0x4a5d8d
cmp al, 0x67
jne 0x4a5c6b
or dword [ebp - 0x90], ecx
or dword [ebp - 0x8c], edx
jmp 0x4a5d8d
mov eax, ecx
or eax, edx
je 0x4a5d8d
xor eax, eax
cmp edx, eax
jg 0x4a5ca1
jl 0x4a5c81
cmp ecx, eax
jae 0x4a5ca1
mov al, 0xd1
sub al, byte [ebp - 0x49]
mov byte [ebp - 0x49], al
cmp edx, 0xffffffff
jl 0x4a5caf
jg 0x4a5c95
cmp ecx, 0xffffffc0
jbe 0x4a5caf
neg ecx
mov dword [ebp - 0x40], ecx
adc edx, 0
neg edx
jmp 0x4a5ca4
mov al, byte [ebp - 0x49]
test edx, edx
jl 0x4a5ced
jg 0x4a5caf
cmp ecx, 0x40
jb 0x4a5ced
xor ecx, ecx
cmp dword [ebp - 0x8c], ecx
jg 0x4a5cce
jl 0x4a5cc3
cmp dword [ebp - 0x90], ecx
jae 0x4a5cce
cmp al, 0x68
je 0x4a5cce
or eax, 0xffffffff
or ecx, eax
jmp 0x4a5cdc
xorps xmm0, xmm0
movlpd qword [ebp - 0x2c], xmm0
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x90], eax
mov dword [ebp - 0x8c], ecx
jmp 0x4a5d8d
push 8
pop eax
push eax
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp - 0xb8]
push eax
call fcn.006269d0
mov eax, dword [ebp - 0xb8]
add esp, 0xc
cmp byte [ebp - 0x49], 0x68
mov edx, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0x40]
jne 0x4a5d23
call fcn.005ff000
jmp 0x4a5d67
call fcn.005ff130
mov dword [ebp - 0x28], eax
mov ecx, edx
mov dword [ebp - 0xb8], eax
xor eax, eax
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0xb4], ecx
cmp dword [ebp - 0x8c], eax
jg 0x4a5d73
jl 0x4a5d50
cmp dword [ebp - 0x90], eax
jae 0x4a5d73
push 0x40
pop ecx
sub ecx, dword [ebp - 0x40]
or eax, 0xffffffff
or edx, 0xffffffff
call fcn.005ff000
or eax, dword [ebp - 0x28]
or edx, dword [ebp - 0x3c]
mov dword [ebp - 0xb4], edx
mov dword [ebp - 0xb8], eax
push 8
pop eax
push eax
lea eax, [ebp - 0xb8]
push eax
lea eax, [ebp - 0x90]
push eax
call fcn.006269d0
add esp, 0xc
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x90]
mov ecx, dword [ebp - 0x8c]
push 4
mov dword [edx], eax
mov ax, word [edx + 0x10]
mov dword [edx + 4], ecx
mov ecx, 0xf244
and ax, cx
pop ecx
or ax, cx
mov word [edx + 0x10], ax
jmp 0x4a5dd3
imul esi, dword [ebx + 4], 0x28
add esi, dword [ebp - 0x24]
push esi
call fcn.004ac5f6
mov eax, dword [ebx + 8]
cdq
add dword [esi], eax
pop ecx
adc dword [esi + 4], edx
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0xa4]
push 0x14
pop ecx
add ebx, ecx
mov ecx, dword [ebp - 0x9c]
jmp 0x4a5221
imul edx, dword [ebx + 4], 0x28
add edx, dword [ebp - 0x24]
mov dword [ebp - 0x28], edx
movzx eax, word [edx + 0x10]
mov ecx, eax
test al, 4
jne 0x4a5e46
push dword [ebp - 0x60]
push 0x43
push edx
call fcn.0045fd9c
mov edx, dword [ebp - 0x28]
add esp, 0xc
movzx eax, word [edx + 0x10]
mov ecx, eax
test al, 4
jne 0x4a5e46
xor eax, eax
cmp dword [ebx + 8], eax
jne 0x4aa86b
push 0x14
pop eax
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov esi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
cmp byte [eax + 0x57], 0
je 0x4aad70
push 7
pop ecx
jmp 0x4aad85
mov eax, 0xf244
and ecx, eax
push 4
pop eax
or ecx, eax
mov word [edx + 0x10], cx
jmp 0x4a5dd3
imul eax, dword [ebx + 4], 0x28
add eax, dword [ebp - 0x24]
test byte [eax + 0x10], 0x24
je 0x4a5dd3
push eax
call fcn.004ac75c
jmp 0x4a57a2
imul esi, dword [ebx + 4], 0x28
mov eax, 0x400
add esi, dword [ebp - 0x24]
test word [esi + 0x10], ax
je 0x4a5e99
push esi
call fcn.004ac2f6
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
test ecx, ecx
jne 0x4a5e2e
push dword [ebp - 0x60]
movzx eax, byte [ebx + 8]
push eax
push esi
call fcn.004ac196
add esp, 0xc
mov ecx, eax
mov dword [ebp - 0x14], ecx
test ecx, ecx
jne 0x4a5e2e
jmp 0x4a5dd0
imul eax, dword [ebx + 4], 0x28
imul edx, dword [ebx + 0xc], 0x28
mov edi, dword [ebp - 0x1c]
push 4
add eax, dword [ebp - 0x24]
add edx, dword [ebp - 0x24]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x44], edx
movzx eax, word [eax + 0x10]
movzx edx, word [edx + 0x10]
mov dword [ebp - 0x30], eax
movzx eax, ax
mov dword [ebp - 0x40], edx
and dword [ebp - 0x40], eax
mov dword [ebp - 0x64], eax
pop eax
mov dword [ebp - 0x48], edx
test byte [ebp - 0x40], al
je 0x4a5f7c
mov eax, dword [ebp - 0x44]
mov edx, dword [eax]
mov dword [ebp - 0x30], edx
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0x38]
mov edi, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x3c], edi
mov edi, dword [ebp - 0x1c]
cmp edx, eax
jl 0x4a5f4b
jg 0x4a5f23
mov edi, dword [ebp - 0x30]
cmp edi, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x1c]
jbe 0x4a5f3d
mov eax, dword [0x706438]
cmp byte [ecx + eax], 0
jne 0x4aa86b
xor ecx, ecx
inc ecx
mov dword [ebp - 0x78], ecx
jmp 0x4a5dd3
cmp edx, eax
jg 0x4a5f63
jl 0x4a5f4b
mov eax, dword [ebp - 0x30]
cmp eax, dword [ebp - 0x3c]
jae 0x4a5f63
mov eax, dword [0x706430]
cmp byte [ecx + eax], 0
jne 0x4aa86b
or dword [ebp - 0x78], 0xffffffff
jmp 0x4a5dd3
mov eax, dword [0x706434]
cmp byte [ecx + eax], 0
jne 0x4aa86b
xor eax, eax
mov dword [ebp - 0x78], eax
jmp 0x4a5dd3
mov ecx, dword [ebp - 0x64]
mov eax, edx
or eax, ecx
mov dword [ebp - 0x28], eax
test al, 1
je 0x4a5ffb
movzx eax, word [ebx + 2]
test al, al
jns 0x4a5fe8
xor ecx, ecx
inc ecx
test byte [ebp - 0x40], cl
je 0x4a5fd9
test edx, 0x100
jne 0x4a5fd9
xor eax, eax
mov dword [ebp - 0x78], eax
movzx ecx, byte [ebx]
test eax, eax
mov eax, dword [0x706434]
je 0x4a5fb8
mov eax, dword [0x706438]
mov cl, byte [ecx + eax]
mov eax, dword [ebp - 0x44]
mov word [eax + 0x10], dx
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x64]
mov word [edx + 0x10], ax
test cl, cl
je 0x4a5dd3
jmp 0x4aa86b
mov eax, edx
not eax
and eax, ecx
lea eax, [eax*2 - 1]
jmp 0x4a6061
push 0x10
pop ecx
test cl, al
jne 0x4aa86b
xor eax, eax
inc eax
jmp 0x4a5f74
mov al, byte [ebx + 2]
and al, 0x47
mov byte [ebp - 0x49], al
cmp al, 0x43
mov eax, dword [ebp - 0x28]
jb 0x4a6079
test al, 2
je 0x4a604c
mov al, cl
push 2
and al, 0x2e
pop ecx
cmp al, cl
jne 0x4a6033
mov edx, dword [ebp - 0x38]
xor eax, eax
push eax
push edx
call fcn.0045fe02
pop ecx
pop ecx
mov ecx, dword [ebp - 0x44]
movzx edx, word [ecx + 0x10]
mov dword [ebp - 0x48], edx
jmp 0x4a6036
mov ecx, dword [ebp - 0x44]
mov al, dl
push 2
and al, 0x2e
pop edx
cmp al, dl
jne 0x4a604c
xor eax, eax
push eax
push ecx
call fcn.0045fe02
pop ecx
pop ecx
mov edx, dword [ebp - 0x44]
push dword [ebx + 0x10]
push dword [ebp - 0x38]
push edx
call fcn.00496834
mov edx, dword [ebp - 0x48]
add esp, 0xc
mov dword [ebp - 0x78], eax
test eax, eax
jns 0x4a5fa7
movzx ecx, byte [ebx]
mov eax, dword [0x706430]
jmp 0x4a5fb8
cmp byte [ebp - 0x49], 0x42
jne 0x4a604c
test al, 2
je 0x4a604c
push 2
pop eax
test al, cl
je 0x4a60b0
mov ecx, dword [ebp - 0x30]
mov eax, 0xffd3
and ecx, eax
mov eax, dword [ebp - 0x38]
mov word [eax + 0x10], cx
mov eax, dword [ebp - 0x44]
push 2
pop ecx
test cl, dl
je 0x4a60fc
mov ecx, 0xffd3
and word [eax + 0x10], cx
jmp 0x4a604c
test cl, 0x2c
je 0x4a609b
xor eax, eax
inc eax
push eax
push dword [ebp - 0x60]
push dword [ebp - 0x38]
call fcn.004acb46
mov edx, dword [ebp - 0x38]
add esp, 0xc
mov ecx, dword [ebp - 0x64]
movzx eax, word [edx + 0x10]
xor ecx, eax
and ecx, 0xdbf
xor ecx, eax
mov eax, dword [ebp - 0x44]
movzx ecx, cx
mov dword [ebp - 0x64], ecx
cmp edx, eax
jne 0x4a60f7
push 2
pop edx
mov eax, ecx
or eax, edx
movzx edx, ax
mov dword [ebp - 0x48], edx
jmp 0x4a609b
mov edx, dword [ebp - 0x48]
jmp 0x4a609e
test dl, 0x2c
je 0x4a604c
xor ecx, ecx
inc ecx
push ecx
push dword [ebp - 0x60]
push eax
call fcn.004acb46
mov edx, dword [ebp - 0x44]
add esp, 0xc
mov ecx, dword [ebp - 0x48]
movzx eax, word [edx + 0x10]
xor ecx, eax
and ecx, 0xdbf
xor ecx, eax
movzx ecx, cx
mov dword [ebp - 0x48], ecx
jmp 0x4a604f
cmp dword [ebp - 0x78], 0
je 0x4aa86b
jmp case.0x4a524c.89
xor eax, eax
inc eax
test byte [ebx + 2], al
jne 0x4a614f
xor eax, eax
jmp 0x4a6157
mov eax, dword [ebx - 4]
push 4
pop ecx
add eax, ecx
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebx + 0x10]
mov dword [ebp - 0x30], ecx
mov ecx, dword [ebx + 4]
mov dword [ebp - 0x64], ecx
mov ecx, dword [ebx + 8]
mov dword [ebp - 0x28], ecx
xor ecx, ecx
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x68], edx
mov dword [ebp - 0x50], ecx
cmp dword [ebp - 0x30], ecx
jle 0x4a5dd3
add edx, 0x14
mov dword [ebp - 0x58], edx
test eax, eax
je 0x4a618f
mov edx, dword [eax + ecx*4]
jmp 0x4a6191
mov edx, ecx
mov eax, dword [ebp - 0x68]
mov eax, dword [eax + 0x10]
movzx eax, byte [eax + ecx]
xor ecx, ecx
inc ecx
and eax, ecx
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x28]
add eax, edx
imul eax, eax, 0x28
add eax, ecx
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x64]
add eax, edx
imul eax, eax, 0x28
add ecx, eax
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x6c], ecx
push dword [eax]
push dword [ebp - 0x40]
push ecx
call fcn.00496834
mov ecx, dword [ebp - 0x50]
mov edx, eax
add esp, 0xc
mov dword [ebp - 0x78], edx
test edx, edx
jne 0x4a61f4
push 4
pop eax
add dword [ebp - 0x58], eax
inc ecx
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x50], ecx
cmp ecx, dword [ebp - 0x30]
jl 0x4a6186
jmp 0x4a5dd3
mov eax, dword [ebp - 0x68]
mov eax, dword [eax + 0x10]
test byte [ecx + eax], 2
je 0x4a6218
mov eax, dword [ebp - 0x6c]
xor ecx, ecx
inc ecx
test byte [eax + 0x10], cl
jne 0x4a6213
mov eax, dword [ebp - 0x40]
test byte [eax + 0x10], cl
je 0x4a6218
neg edx
mov dword [ebp - 0x78], edx
cmp dword [ebp - 0x38], 0
je 0x4a5dd0
neg edx
mov dword [ebp - 0x78], edx
jmp 0x4a5dd3
mov edx, dword [ebp - 0x78]
test edx, edx
jns 0x4a6239
imul ebx, dword [ebx + 4], 0x14
jmp 0x4a6245
jne 0x4a6241
imul ebx, dword [ebx + 8], 0x14
jmp 0x4a6245
imul ebx, dword [ebx + 0xc], 0x14
add ebx, eax
add ebx, 0xffffffec
jmp case.0x4a524c.89
push 2
pop eax
push eax
imul eax, dword [ebx + 4], 0x28
add eax, dword [ebp - 0x24]
push eax
call fcn.004a4a93
imul ecx, dword [ebx + 8], 0x28
mov esi, eax
push 2
pop eax
push eax
add ecx, dword [ebp - 0x24]
push ecx
call fcn.004a4a93
add esp, 0x10
imul ecx, esi, 3
cmp byte [ebx], 0x2c
jne 0x4a6287
mov al, byte [ecx + eax + 0x6911c4]
jmp 0x4a628e
mov al, byte [ecx + eax + 0x6911d0]
imul esi, dword [ebx + 0xc], 0x28
push 2
pop edx
add esi, dword [ebp - 0x24]
movzx ecx, word [esi + 0x10]
cmp al, dl
jne 0x4a62ac
mov eax, 0xf241
and ecx, eax
xor eax, eax
inc eax
jmp 0x4a62bf
movzx eax, al
cdq
mov dword [esi], eax
mov eax, 0xf244
push 4
and ecx, eax
mov dword [esi + 4], edx
pop eax
or ecx, eax
mov word [esi + 0x10], cx
jmp 0x4a5dd0
imul eax, dword [ebx + 4], 0x28
push dword [ebx + 0xc]
add eax, dword [ebp - 0x24]
push eax
call fcn.004a4a93
xor eax, dword [ebx + 0x10]
cdq
push edx
push eax
imul eax, dword [ebx + 8], 0x28
add eax, dword [ebp - 0x24]
push eax
call fcn.004ac7db
add esp, 0x14
jmp 0x4a5dd3
imul ecx, dword [ebx + 4], 0x28
xor edx, edx
imul eax, dword [ebx + 8], 0x28
inc edx
add ecx, dword [ebp - 0x24]
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x28], eax
test byte [ecx + 0x10], dl
jne 0x4a64bb
xor eax, eax
push eax
push ecx
call fcn.004a4a93
neg eax
sbb eax, eax
inc eax
xor ecx, ecx
push ecx
push eax
push dword [ebp - 0x28]
jmp 0x4a62e8
imul eax, dword [ebx + 4], 0x28
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x28], eax
imul eax, dword [ebx + 8], 0x28
add eax, dword [ebp - 0x24]
push eax
mov dword [ebp - 0x30], eax
call fcn.004ac811
pop ecx
mov ecx, dword [ebp - 0x28]
xor eax, eax
inc eax
test byte [ecx + 0x10], al
jne 0x4a5dd0
mov eax, dword [ebp - 0x30]
push 4
pop edx
push ecx
mov word [eax + 0x10], dx
call fcn.004abc13
pop ecx
mov ecx, dword [ebp - 0x30]
not eax
not edx
jmp 0x4a53a5
cmp dword [edi + 0xd0], 0
je 0x4a63ba
mov eax, ebx
sub eax, dword [edi + 0x68]
cdq
push 0x14
pop ecx
idiv ecx
mov edx, dword [edi + 0xd0]
mov ecx, eax
shr eax, 3
mov dword [ebp - 0x28], eax
and ecx, 7
mov edx, dword [edx + 0x14]
mov dword [ebp - 0x30], edx
movzx eax, byte [eax + edx]
xor edx, edx
inc edx
shl edx, cl
test eax, edx
jne 0x4aa86b
mov edx, dword [ebp - 0x30]
bts eax, ecx
mov ecx, dword [ebp - 0x28]
mov byte [ecx + edx], al
jmp 0x4a63c9
mov eax, dword [edi + 0x68]
mov eax, dword [eax + 4]
cmp eax, dword [ebx + 4]
je 0x4aa86b
mov eax, dword [edi + 0x68]
mov eax, dword [eax + 4]
mov dword [ebx + 4], eax
jmp 0x4a5dd3
imul eax, dword [ebx + 4], 0x28
push dword [ebx + 0xc]
add eax, dword [ebp - 0x24]
push eax
call fcn.004a4a93
pop ecx
pop ecx
test eax, eax
jmp 0x4a52b5
xor eax, eax
xor ecx, ecx
cmp dword [ebx + 0xc], ecx
sete al
push eax
imul eax, dword [ebx + 4], 0x28
add eax, dword [ebp - 0x24]
push eax
call fcn.004a4a93
pop ecx
pop ecx
test eax, eax
jne 0x4a5dd3
jmp 0x4aa86b
imul eax, dword [ebx + 4], 0x28
xor edx, edx
mov ecx, dword [ebp - 0x24]
inc edx
test byte [eax + ecx + 0x10], dl
jmp 0x4a52b5
mov ecx, dword [ebx + 4]
test ecx, ecx
js 0x4a6469
mov eax, dword [edi + 0x60]
mov edx, dword [ebx + 0xc]
mov ecx, dword [eax + ecx*4]
movzx eax, word [ecx + 0x3e]
cmp edx, eax
jge 0x4a6464
mov eax, dword [ecx + edx*4 + 0x5c]
cmp eax, 0xc
jb 0x4a645b
xor ecx, ecx
inc ecx
push 4
test cl, al
pop eax
push 8
pop ecx
cmove eax, ecx
jmp 0x4a6486
movzx eax, byte [eax + 0x6911dc]
jmp 0x4a6489
mov ecx, dword [ebx + 0x10]
jmp 0x4a647f
imul eax, dword [ebx + 0xc], 0x28
mov ecx, dword [ebp - 0x24]
movzx eax, word [eax + ecx + 0x10]
and eax, 0x3f
movzx ecx, byte [eax + 0x691138]
xor eax, eax
dec ecx
inc eax
shl ax, cl
movzx eax, ax
test word [ebx + 2], ax
jmp 0x4a52b5
imul eax, dword [ebx + 4], 0x28
xor edx, edx
mov ecx, dword [ebp - 0x24]
inc edx
test byte [eax + ecx + 0x10], dl
jne 0x4a64b5
imul eax, dword [ebx + 0xc], 0x28
test byte [eax + ecx + 0x10], dl
jne 0x4a64b5
xor eax, eax
push eax
push eax
jmp 0x4a574e
imul eax, dword [ebx + 8], 0x28
add eax, ecx
push eax
jmp 0x4a579d
imul eax, dword [ebx + 4], 0x28
xor edx, edx
mov ecx, dword [ebp - 0x24]
inc edx
test byte [eax + ecx + 0x10], dl
je 0x4aa86b
jmp 0x4a5dd3
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x4a5dd3
cmp byte [eax + 2], 0
je 0x4a5dd3
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0x24]
push eax
call fcn.004ac811
pop ecx
jmp 0x4aa86b
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
mov ecx, dword [ebx + 8]
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x30], esi
mov eax, dword [esi + 0x20]
mov edx, dword [esi + 0x48]
mov dword [ebp - 0x48], edx
cmp eax, dword [edi + 0x1c]
je 0x4a655c
cmp byte [esi + 2], 0
jne 0x4a65bb
cmp byte [esi + 3], 0
mov eax, dword [esi + 0x2c]
mov dword [ebp - 0x3c], eax
je 0x4a6555
mov eax, dword [esi + 0x10]
test eax, eax
je 0x4a6581
mov eax, dword [eax + ecx*4 + 4]
test eax, eax
je 0x4a6581
mov esi, dword [esi + 0x28]
lea ecx, [eax - 1]
jmp 0x4a6514
cmp byte [eax], 0
je 0x4a6598
jmp 0x4a6568
mov eax, dword [esi + 0x2c]
cmp byte [eax], 0
je 0x4a6670
push esi
call fcn.004aba4f
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
test ecx, ecx
jne 0x4a5e2e
mov ecx, dword [ebp - 0x38]
jmp 0x4a651a
push esi
call fcn.004ab526
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
test ecx, ecx
jne 0x4a5e2e
mov eax, dword [ebp - 0x3c]
push eax
call fcn.0046e92b
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ecx + 0x2c]
mov dword [esi + 0x50], eax
lea eax, [esi + 0x54]
push eax
push ecx
call fcn.00486924
mov edx, dword [ebp - 0x48]
add esp, 0xc
mov ecx, eax
jmp 0x4a65e1
cmp byte [esi], 3
jne 0x4a665d
mov eax, dword [esi + 0x24]
test eax, eax
jle 0x4a665d
imul ecx, eax, 0x28
add ecx, dword [ebp - 0x24]
mov eax, dword [ecx + 0xc]
mov dword [esi + 0x54], eax
mov dword [esi + 0x50], eax
mov ecx, dword [ecx + 8]
mov dword [esi + 0x4c], ecx
mov eax, dword [edi + 0x1c]
mov dword [esi + 0x20], eax
movzx eax, byte [ecx]
lea ecx, [esi + 0x34]
mov dword [edx], eax
mov dword [ebp - 0x40], ecx
cmp eax, 0x80
jae 0x4a6601
xor eax, eax
inc eax
jmp 0x4a6612
push edx
push dword [esi + 0x4c]
call fcn.0049384b
pop ecx
pop ecx
mov ecx, dword [ebp - 0x40]
movzx eax, al
mov edi, dword [ebp - 0x48]
lea edx, [esi + 0x3e]
mov dword [ecx], eax
xor eax, eax
mov word [edx], ax
mov eax, dword [esi + 0x54]
cmp eax, dword [edi]
mov edi, dword [ebp - 0x1c]
mov dword [ebp - 0x44], edx
jae 0x4a6652
xor eax, eax
mov dword [esi + 0x4c], eax
mov dword [esi + 0x54], eax
mov eax, dword [ebp - 0x48]
mov eax, dword [eax]
cmp eax, 0x18003
ja 0x4a67e5
cmp eax, dword [esi + 0x50]
ja 0x4a67e5
mov ecx, dword [ebp - 0x38]
jmp 0x4a6676
mov eax, dword [esi + 0x4c]
mov dword [ebp - 0x58], eax
jmp 0x4a66e8
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0x24]
push eax
call fcn.004ac811
pop ecx
jmp 0x4a5dd0
lea edx, [esi + 0x3e]
mov dword [ebp - 0x44], edx
movzx edx, word [edx]
cmp edx, ecx
ja 0x4a6872
mov edi, dword [ebp - 0x48]
lea ecx, [esi + 0x34]
mov eax, dword [ecx]
mov dword [ebp - 0x40], ecx
cmp eax, dword [edi]
mov edi, dword [ebp - 0x1c]
jae 0x4a6839
mov eax, dword [esi + 0x4c]
mov dword [ebp - 0x58], eax
test eax, eax
jne 0x4a66df
push 0x28
push eax
lea eax, [ebp - 0x26c]
push eax
call fcn.00626f50
lea eax, [ebp - 0x26c]
push eax
mov eax, dword [ebp - 0x48]
push dword [eax]
push dword [esi + 0x2c]
call fcn.004ac44b
mov ecx, eax
add esp, 0x18
mov dword [ebp - 0x14], ecx
test ecx, ecx
jne 0x4a69db
mov eax, dword [ebp - 0x264]
mov dword [ebp - 0x58], eax
jmp 0x4a66e2
mov dword [ebp - 0x40], ecx
mov edx, dword [ebp - 0x44]
mov dword [ebp - 0x44], edx
movzx ebx, word [edx]
lea edx, [esi + 0x5c]
mov eax, dword [ebp - 0x48]
lea edx, [edx + ebx*4]
mov ecx, dword [eax + ebx*4]
xor eax, eax
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x40]
mov esi, dword [ebp - 0x64]
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0x50], edx
mov edi, dword [eax]
mov eax, dword [ebp - 0x48]
add edi, dword [ebp - 0x58]
mov eax, dword [eax]
add eax, dword [ebp - 0x58]
mov dword [ebp - 0x28], eax
movzx eax, byte [edi]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x3c], eax
mov dword [edx], eax
cmp eax, 0x80
jae 0x4a673f
movzx eax, al
inc edi
movzx eax, byte [eax + 0x6910b0]
cdq
add ecx, eax
adc esi, edx
mov edx, dword [ebp - 0x50]
jmp 0x4a676c
lea eax, [ebp - 0x3c]
push eax
push edi
call fcn.0049384b
mov edx, dword [ebp - 0x50]
movzx eax, al
add edi, eax
mov eax, dword [ebp - 0x3c]
push eax
mov dword [ebp - 0x6c], eax
mov dword [edx], eax
call fcn.004adb03
mov ecx, dword [ebp - 0x68]
add esp, 0xc
add ecx, eax
push 0
pop eax
adc esi, eax
push 4
pop eax
add edx, eax
mov dword [ebp - 0x68], ecx
mov eax, dword [ebp - 0x48]
inc ebx
mov dword [ebp - 0x50], edx
mov dword [eax + ebx*4], ecx
cmp ebx, dword [ebp - 0x38]
ja 0x4a6788
cmp edi, dword [ebp - 0x28]
jb 0x4a6718
mov edx, dword [ebp - 0x28]
cmp edi, edx
mov dword [ebp - 0x3c], ebx
mov ebx, dword [ebp - 0x54]
mov dword [ebp - 0x64], esi
mov esi, dword [ebp - 0x30]
mov dword [ebp - 0x50], edi
mov edi, dword [ebp - 0x1c]
jb 0x4a67b8
mov ecx, dword [ebp - 0x50]
cmp ecx, edx
ja 0x4a67c6
mov eax, dword [ebp - 0x68]
cmp eax, dword [esi + 0x50]
jne 0x4a67c6
cmp dword [ebp - 0x64], 0
jne 0x4a67c6
jmp 0x4a6803
mov eax, dword [ebp - 0x64]
test eax, eax
jb 0x4a6800
ja 0x4a67c6
cmp ecx, dword [esi + 0x50]
jbe 0x4a6800
mov ecx, dword [ebp - 0x48]
xor eax, eax
cmp dword [ecx], eax
jne 0x4a67d3
mov ecx, edx
jmp 0x4a6806
cmp dword [esi + 0x4c], eax
jne 0x4a67e5
lea eax, [ebp - 0x26c]
push eax
call fcn.004ac785
pop ecx
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx + 0xc]
test eax, eax
jle 0x4aa935
imul ebx, eax, 0x14
add ebx, 0xffffffec
add ebx, ecx
jmp 0x4a5dd0
mov ecx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x44]
sub ecx, dword [ebp - 0x58]
movzx eax, ax
mov word [edx], ax
mov edx, dword [ebp - 0x40]
mov dword [edx], ecx
xor ecx, ecx
cmp dword [esi + 0x4c], ecx
jne 0x4a6831
lea eax, [ebp - 0x26c]
push eax
call fcn.004ac785
mov eax, dword [ebp - 0x44]
pop ecx
movzx eax, word [eax]
mov ecx, dword [ebp - 0x6c]
movzx eax, ax
jmp 0x4a6842
xor eax, eax
mov ecx, eax
mov eax, edx
mov dword [ebp - 0x6c], ecx
movzx eax, ax
cmp eax, dword [ebp - 0x38]
ja 0x4a6879
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0x24]
cmp byte [ebx + 1], 0xf6
jne 0x4a6664
mov ecx, 0x2000
push ecx
push dword [ebx + 0x10]
push eax
call fcn.004acaf0
add esp, 0xc
jmp 0x4a5dd0
mov ecx, dword [esi + ecx*4 + 0x5c]
mov dword [ebp - 0x6c], ecx
imul edi, dword [ebx + 0xc], 0x28
mov eax, 0x9000
add edi, dword [ebp - 0x24]
test word [edi + 0x10], ax
je 0x4a6895
push edi
call fcn.004ac811
pop ecx
mov ecx, dword [ebp - 0x6c]
mov eax, dword [esi + 0x54]
mov esi, dword [ebp - 0x38]
mov edx, dword [ebp - 0x48]
cmp eax, dword [edx + esi*4 + 4]
mov esi, dword [ebp - 0x30]
jb 0x4a6963
mov eax, dword [esi + 0x4c]
mov esi, dword [ebp - 0x38]
add eax, dword [edx + esi*4]
mov dword [ebp - 0x28], eax
cmp ecx, 0xc
jae 0x4a68cc
push edi
push ecx
push eax
call fcn.004ad993
add esp, 0xc
jmp 0x4a5561
mov al, byte [ebp - 0x60]
lea esi, [ecx - 0xc]
shr esi, 1
mov byte [edi + 0x12], al
mov dword [edi + 0xc], esi
lea eax, [esi + 2]
cmp dword [edi + 0x18], eax
jge 0x4a6928
mov ecx, dword [ebp - 0x20]
cmp esi, dword [ecx + 0x78]
jg 0x4aaa41
xor ecx, ecx
inc ecx
mov word [edi + 0x10], cx
xor ecx, ecx
push ecx
push eax
push edi
call fcn.004ac494
add esp, 0xc
test eax, eax
je 0x4a692e
mov edi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
push eax
call fcn.00496cbd
mov dword [esp], str.out_of_memory
push edi
call fcn.004a5103
pop ecx
pop ecx
push 7
jmp 0x4a840e
mov eax, dword [edi + 0x20]
mov dword [edi + 8], eax
push esi
push dword [ebp - 0x28]
push dword [edi + 8]
call fcn.006269d0
mov eax, dword [edi + 8]
xor ecx, ecx
add esp, 0xc
mov byte [esi + eax], cl
mov eax, dword [edi + 8]
mov byte [esi + eax + 1], cl
inc ecx
mov eax, dword [ebp - 0x6c]
and eax, ecx
mov ax, word [eax*2 + 0x6911e8]
mov word [edi + 0x10], ax
jmp 0x4a5561
mov al, byte [ebp - 0x60]
mov byte [edi + 0x12], al
mov al, byte [ebx + 2]
and al, 0xc0
je 0x4a6982
cmp al, 0x80
je 0x4a698f
cmp ecx, 0xc
jb 0x4a6982
test cl, 1
je 0x4a698f
cmp al, 0xc0
je 0x4a698f
push ecx
call fcn.004adb03
add esp, 4
test eax, eax
jne 0x4a699b
push edi
push ecx
push 0x68fd68
jmp 0x4a68bf
push edi
push dword [ebp - 0xb0]
mov edi, dword [ebp - 0x1c]
xor eax, eax
push dword [edi + 0x1c]
push eax
mov eax, dword [ebp - 0x38]
push dword [edx + eax*4]
push ecx
push eax
push esi
call fcn.004b6f26
mov ecx, eax
add esp, 0x20
mov dword [ebp - 0x14], ecx
test ecx, ecx
je 0x4a5dd0
cmp ecx, 7
je 0x4a6909
cmp ecx, 0x12
je 0x4aaa44
mov esi, edi
jmp 0x4a5e31
mov edx, dword [ebx + 0x10]
xor edi, edi
xor ecx, ecx
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x30], ecx
mov eax, dword [edx + 4]
mov dword [ebp - 0x28], eax
imul eax, dword [ebx + 4], 0x28
add eax, dword [ebp - 0x24]
cmp di, word [edx + 0x22]
mov edi, dword [ebp - 0x1c]
mov dword [ebp - 0x44], eax
jge 0x4a5dd3
mov edx, dword [ebp - 0x28]
add edx, 8
mov dword [ebp - 0x58], edx
movzx edx, word [edx + 6]
test dl, 0x60
je 0x4a6a32
test dl, 0x20
jne 0x4a6b0f
xor edx, edx
cmp dword [ebx + 0xc], edx
jne 0x4a6b09
mov eax, dword [ebp - 0x58]
push dword [ebp - 0x60]
movzx eax, byte [eax]
push eax
push dword [ebp - 0x44]
call fcn.0045fd9c
mov ecx, dword [ebp - 0x44]
xor eax, eax
inc eax
add esp, 0xc
movzx ecx, word [ecx + 0x10]
mov dword [ebp - 0x40], ecx
movzx edx, cx
test al, cl
jne 0x4a6b03
mov eax, dword [ebp - 0x58]
mov eax, dword [eax - 4]
shr eax, 4
and eax, 0xf
mov dword [ebp - 0x50], eax
dec eax
sub eax, 1
je 0x4a6af8
sub eax, 1
je 0x4a6af4
sub eax, 1
je 0x4a6af4
sub eax, 1
je 0x4a6a90
sub eax, 1
jne 0x4a6b03
push 2
jmp 0x4a6afa
push 4
pop eax
test al, cl
je 0x4a6aef
mov eax, dword [ebp - 0x44]
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x68], edx
add edx, 0
mov dword [ebp - 0x50], eax
adc eax, 0x8000
cmp eax, 0xffff
ja 0x4a6ac3
jb 0x4a6abb
cmp edx, 0xffffffff
ja 0x4a6ac3
or ecx, 0x20
movzx ecx, cx
jmp 0x4a6ae0
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x68]
call fcn.005ff250
mov eax, dword [ebp - 0x44]
push 8
pop ecx
movsd qword [eax], xmm0
mov eax, dword [ebp - 0x40]
or eax, ecx
movzx ecx, ax
mov eax, dword [ebp - 0x44]
and ecx, 0xfffb
mov word [eax + 0x10], cx
jmp 0x4a6b06
test cl, 0x28
jmp 0x4a6afd
push 4
jmp 0x4a6afa
push 0x10
pop eax
test al, cl
je 0x4aa945
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x30]
add eax, 0x28
mov dword [ebp - 0x44], eax
mov edx, dword [ebp - 0x58]
inc ecx
push 0x10
pop eax
add edx, eax
mov dword [ebp - 0x30], ecx
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x58], edx
movsx eax, word [eax + 0x22]
cmp ecx, eax
mov eax, dword [ebp - 0x44]
jl 0x4a6a15
jmp 0x4a5dd3
mov eax, dword [ebx + 0x10]
imul esi, dword [ebx + 4], 0x28
mov dword [ebp - 0x30], eax
mov al, byte [eax]
add esi, dword [ebp - 0x24]
push dword [ebp - 0x60]
mov byte [ebp - 0xd0], al
push dword [ebp - 0xd0]
push esi
call fcn.0045fd9c
mov edx, dword [ebp - 0x30]
add esp, 0xc
cmp byte [edx], 0x45
jne 0x4a6bc2
movzx ecx, word [esi + 0x10]
push 4
pop eax
mov dword [ebp - 0x3c], ecx
test al, cl
je 0x4a6bc2
mov eax, dword [esi]
add eax, 0
mov dword [ebp - 0x28], eax
mov eax, dword [esi + 4]
adc eax, 0x8000
cmp eax, 0xffff
ja 0x4a6ba0
jb 0x4a6b91
cmp dword [ebp - 0x28], 0xffffffff
ja 0x4a6ba0
and ecx, 0xfffb
or ecx, 0x20
mov word [esi + 0x10], cx
jmp 0x4a6bc2
mov edx, dword [esi + 4]
mov ecx, dword [esi]
call fcn.005ff250
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x30]
and eax, 0xfff9
push 8
pop ecx
or eax, ecx
movsd qword [esi], xmm0
mov word [esi + 0x10], ax
inc edx
mov dword [ebp - 0x30], edx
mov al, byte [edx]
test al, al
je 0x4a5dd0
add esi, 0x28
jmp 0x4a6b44
imul ecx, dword [ebx + 4], 0x28
xor eax, eax
mov esi, dword [ebx + 0x10]
xorps xmm0, xmm0
mov dword [ebp - 0x44], eax
imul eax, dword [ebx + 8], 0x28
movlpd qword [ebp - 0x2c], xmm0
add ecx, dword [ebp - 0x24]
movlpd qword [ebp - 0x34], xmm0
mov dword [ebp - 0x3c], ecx
add eax, ecx
mov dword [ebp - 0x64], eax
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x50], eax
test esi, esi
je 0x4a6c5f
mov al, byte [esi]
lea edi, [ecx + 0x10]
mov ebx, dword [ebp - 0x60]
mov byte [ebp - 0xd4], al
push ebx
push dword [ebp - 0xd4]
lea eax, [edi - 0x10]
push eax
call fcn.0045fd9c
add esp, 0xc
cmp byte [esi], 0x45
jne 0x4a6c49
movzx eax, word [edi]
push 4
pop ecx
test cl, al
je 0x4a6c49
and eax, 0xfffb
or eax, 0x20
mov word [edi], ax
inc esi
add edi, 0x28
mov al, byte [esi]
mov byte [ebp - 0xd4], al
test al, al
jne 0x4a6c1c
mov ebx, dword [ebp - 0x54]
mov edi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x64]
mov esi, dword [ebp - 0x28]
add eax, 0xfffffff4
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x40], ecx
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x68], ecx
movzx ecx, word [eax - 0xc]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x58], ecx
test cl, 1
je 0x4a6cae
mov eax, 0x400
and ecx, eax
movzx eax, cx
mov ecx, dword [ebp - 0x38]
neg eax
sbb eax, eax
and eax, 0xa
mov dword [ecx], eax
mov ecx, dword [ebp - 0x44]
inc ecx
mov dword [ebp - 0x44], ecx
jmp 0x4a6e8e
test cl, 0x24
je 0x4a6dea
mov edx, dword [eax - 0x1c]
mov eax, dword [eax - 0x18]
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x28], eax
test eax, eax
jg 0x4a6cd1
jl 0x4a6ccd
test edx, edx
jae 0x4a6cd1
not edx
not eax
inc dword [ebp - 0x44]
test eax, eax
ja 0x4a6d7c
jb 0x4a6ce3
cmp edx, 0x7f
ja 0x4a6d1c
mov eax, dword [ebp - 0x30]
and eax, 1
cmp eax, dword [ebp - 0x30]
jne 0x4a6d08
xor eax, eax
cmp eax, dword [ebp - 0x28]
jne 0x4a6d0a
push 4
pop ecx
cmp byte [edi + 0x95], cl
jb 0x4a6d0a
lea eax, [edx + 8]
jmp 0x4a6e83
xor eax, eax
xor ecx, ecx
inc ecx
add dword [ebp - 0x54], ecx
adc esi, eax
mov eax, ecx
mov dword [ebp - 0x48], esi
jmp 0x4a6e83
test eax, eax
ja 0x4a6d7c
jb 0x4a6d2a
cmp edx, 0x7fff
ja 0x4a6d2e
push 2
jmp 0x4a6d64
test eax, eax
ja 0x4a6d7c
jb 0x4a6d3c
cmp edx, 0x7fffff
ja 0x4a6d54
mov edx, dword [ebp - 0x54]
push 0
add edx, 3
pop eax
adc esi, eax
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x48], esi
push 3
jmp 0x4a6de4
test eax, eax
ja 0x4a6d7c
jb 0x4a6d62
cmp edx, 0x7fffffff
ja 0x4a6d7c
push 4
mov edx, dword [ebp - 0x54]
pop ecx
add edx, ecx
push 0
pop eax
adc esi, eax
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x48], esi
mov eax, ecx
jmp 0x4a6e86
cmp eax, 0x7fff
ja 0x4a6d9f
jb 0x4a6d8a
cmp edx, 0xffffffff
ja 0x4a6d9f
mov edx, dword [ebp - 0x54]
push 0
add edx, 6
pop eax
adc esi, eax
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x48], esi
push 5
jmp 0x4a6de4
mov edx, dword [ebp - 0x54]
push 8
pop eax
add edx, eax
push 0
pop eax
adc esi, eax
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x48], esi
test cl, 0x20
je 0x4a6de2
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x30]
call fcn.005ff250
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x58]
push 8
pop ecx
and eax, 0xffdf
movsd qword [edx - 0x1c], xmm0
or eax, ecx
mov word [edx - 0xc], ax
mov edx, dword [ebp - 0x54]
push 7
jmp 0x4a6de4
push 6
pop eax
jmp 0x4a6e86
test cl, 8
je 0x4a6e0d
mov ecx, dword [ebp - 0x44]
inc ecx
mov dword [eax], 7
add edx, 8
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x54], edx
adc esi, 0
mov dword [ebp - 0x48], esi
jmp 0x4a6e91
mov edx, dword [eax - 0x10]
mov eax, ecx
shr eax, 1
and eax, 1
mov dword [ebp - 0x28], edx
lea eax, [eax + edx*2]
add eax, 0xc
mov dword [ebp - 0x58], eax
test ecx, 0x400
je 0x4a6e69
mov esi, dword [ebp - 0x38]
add esi, 0xffffffe4
mov ecx, dword [esi]
lea eax, [eax + ecx*2]
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x54]
or eax, dword [ebp - 0x48]
je 0x4a6e57
push esi
call fcn.004ac2f6
pop ecx
test eax, eax
jne 0x4a6909
mov edx, dword [ebp - 0x28]
add edx, dword [esi]
jmp 0x4a6e63
mov eax, ecx
cdq
add dword [ebp - 0x68], eax
adc dword [ebp - 0x40], edx
mov edx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x48]
mov eax, dword [ebp - 0x58]
add dword [ebp - 0x54], edx
push 0
pop ecx
push ecx
adc esi, ecx
push eax
mov dword [ebp - 0x48], esi
call fcn.004a46cc
add dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x58]
pop ecx
pop ecx
mov edx, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x38]
mov dword [ecx], eax
mov ecx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x38]
add eax, 0xffffffe4
cmp eax, dword [ebp - 0x3c]
je 0x4a6ea4
mov eax, dword [ebp - 0x38]
sub eax, 0x28
jmp 0x4a6c7d
cmp ecx, 0x7e
jle 0x4a6ed2
mov eax, ecx
cdq
push edx
push eax
call fcn.004a46cc
mov esi, eax
mov eax, dword [ebp - 0x44]
add eax, esi
mov dword [ebp - 0x44], eax
cdq
push edx
push eax
call fcn.004a46cc
mov ecx, dword [ebp - 0x44]
add esp, 0x10
cmp esi, eax
mov esi, dword [ebp - 0x48]
jge 0x4a6ed6
inc ecx
mov dword [ebp - 0x44], ecx
mov eax, ecx
cdq
mov ecx, eax
mov dword [ebp - 0x28], edx
mov eax, dword [ebp - 0x54]
add eax, ecx
mov dword [ebp - 0x30], ecx
mov ecx, eax
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x50]
adc esi, edx
add ecx, dword [ebp - 0x68]
adc esi, dword [ebp - 0x40]
mov eax, dword [eax + 0x18]
cdq
cmp esi, edx
jg 0x4a6f0f
jl 0x4a6f04
cmp ecx, eax
ja 0x4a6f0f
mov ecx, dword [ebp - 0x50]
mov eax, dword [ecx + 0x20]
mov dword [ecx + 8], eax
jmp 0x4a6f44
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x78]
cdq
cmp esi, edx
jg 0x4aaa44
jl 0x4a6f28
cmp ecx, eax
ja 0x4aaa44
mov eax, dword [ebp - 0x54]
push eax
push dword [ebp - 0x50]
mov dword [ebp - 0x54], eax
call fcn.004ac25d
pop ecx
pop ecx
test eax, eax
jne 0x4a6909
mov ecx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x54]
mov edx, dword [ebp - 0x68]
mov dword [ecx + 0xc], eax
push 0x10
pop eax
mov word [ecx + 0x10], ax
mov eax, edx
or eax, dword [ebp - 0x40]
je 0x4a6f66
mov eax, 0x410
mov dword [ecx], edx
mov word [ecx + 0x10], ax
mov ecx, dword [ecx + 8]
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x38], ecx
lea esi, [ecx + eax]
cmp eax, 0x80
jge 0x4a6f7e
mov byte [ecx], al
inc ecx
jmp 0x4a6f92
push dword [ebp - 0x28]
push dword [ebp - 0x30]
push ecx
call fcn.0049c8b3
mov ecx, dword [ebp - 0x38]
add esp, 0xc
add ecx, eax
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x38], ecx
add eax, 0xc
mov dword [ebp - 0x48], eax
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x28], eax
cmp eax, 7
ja 0x4a70b5
mov byte [ecx], al
inc ecx
mov dword [ebp - 0x38], ecx
test eax, eax
je 0x4a7104
mov edx, dword [ebp - 0x48]
add edx, 0xfffffff4
cmp eax, 7
jne 0x4a6fdc
push 8
pop eax
push eax
push edx
lea eax, [ebp - 0x74]
push eax
call fcn.006269d0
mov ecx, dword [ebp - 0x74]
add esp, 0xc
jmp 0x4a6fe7
mov ecx, dword [edx]
mov eax, dword [edx + 4]
mov dword [ebp - 0x74], ecx
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x28]
movzx edx, byte [eax + 0x6910b0]
mov eax, edx
sub eax, 1
je 0x4a70af
sub eax, 1
je 0x4a7099
sub eax, 1
je 0x4a7083
sub eax, 1
je 0x4a706d
dec eax
sub eax, 1
je 0x4a7041
mov byte [esi + 7], cl
mov ecx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x70]
shrd ecx, eax, 8
shr eax, 8
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x74], ecx
mov byte [esi + 6], cl
mov ecx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x70]
shrd ecx, eax, 8
shr eax, 8
mov dword [ebp - 0x74], ecx
mov dword [ebp - 0x70], eax
mov byte [esi + 5], cl
mov ecx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x70]
shrd ecx, eax, 8
shr eax, 8
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x74], ecx
mov byte [esi + 4], cl
mov ecx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x70]
shrd ecx, eax, 8
shr eax, 8
mov dword [ebp - 0x74], ecx
mov dword [ebp - 0x70], eax
mov byte [esi + 3], cl
mov ecx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x70]
shrd ecx, eax, 8
shr eax, 8
mov dword [ebp - 0x74], ecx
mov dword [ebp - 0x70], eax
mov byte [esi + 2], cl
mov ecx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x70]
shrd ecx, eax, 8
shr eax, 8
mov dword [ebp - 0x74], ecx
mov dword [ebp - 0x70], eax
mov byte [esi + 1], cl
mov ecx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x70]
shrd ecx, eax, 8
shr eax, 8
mov dword [ebp - 0x74], ecx
mov dword [ebp - 0x70], eax
mov byte [esi], cl
add esi, edx
jmp 0x4a7101
cmp eax, 0x80
jae 0x4a70d1
mov byte [ecx], al
inc ecx
mov dword [ebp - 0x38], ecx
cmp eax, 0xe
jb 0x4a7104
mov eax, dword [ebp - 0x48]
cmp dword [eax], 0
jle 0x4a7104
jmp 0x4a70ee
xor edx, edx
push edx
push eax
push ecx
call fcn.0049c8b3
mov ecx, dword [ebp - 0x38]
add esp, 0xc
add ecx, eax
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x38], ecx
cmp dword [eax], 0
je 0x4a7104
push dword [eax]
push dword [eax - 4]
push esi
call fcn.006269d0
mov eax, dword [ebp - 0x48]
add esp, 0xc
add esi, dword [eax]
mov ecx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x64]
add eax, 0xffffffe4
cmp dword [ebp - 0x48], eax
je 0x4a5dd0
mov eax, dword [ebp - 0x48]
add eax, 0x28
jmp 0x4a6f9b
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
xor ecx, ecx
mov eax, dword [eax + 0x2c]
cmp dword [ebx + 0xc], ecx
je 0x4a713d
push eax
call fcn.00486a84
pop ecx
mov dword [ebp - 0x30], edx
jmp 0x4a716d
lea ecx, [ebp - 0x2c]
xorps xmm0, xmm0
push ecx
push eax
push dword [ebp - 0x20]
movlpd qword [ebp - 0x2c], xmm0
call fcn.00484f40
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0x14], ecx
test ecx, ecx
jne 0x4a5e2e
mov eax, dword [ebp - 0x28]
mov esi, ecx
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x2c]
push ebx
push edi
mov dword [ebp - 0x28], eax
call fcn.0047783e
pop ecx
pop ecx
mov ecx, dword [ebp - 0x28]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x30]
mov dword [eax + 4], ecx
xor edx, edx
mov ecx, dword [ebp - 0x20]
cmp dword [ecx + 0x128], edx
jne 0x4aabd3
mov eax, dword [ebp - 0xa4]
cmp eax, dword [ebp - 0x88]
jb 0x4a5dd0
mov edx, dword [ebp - 0x84]
ja 0x4a71bb
cmp dword [ebp - 0x9c], edx
jb 0x4a5dd0
mov eax, dword [ecx + 0x174]
test eax, eax
je 0x4a5dd0
add edx, dword [ecx + 0x17c]
push 0
mov dword [ebp - 0x84], edx
pop edx
push dword [ecx + 0x178]
adc dword [ebp - 0x88], edx
call eax
pop ecx
test eax, eax
jne 0x4aabc3
mov eax, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x84]
cmp eax, dword [ebp - 0x88]
ja 0x4a71bb
jb 0x4a5dd3
cmp dword [ebp - 0x9c], edx
jae 0x4a71bb
jmp 0x4a5dd3
mov ecx, dword [ebx + 4]
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x30], eax
test ecx, ecx
jne 0x4a72f4
mov ecx, dword [ebp - 0x20]
xor edx, edx
cmp dword [ecx + 0xc4], edx
jg 0x4aa98b
push eax
call fcn.004a156e
mov esi, eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x28], esi
mov ecx, dword [eax + 0x1fc]
add ecx, dword [eax + 0x1f8]
push ecx
xor ecx, ecx
push ecx
push eax
call fcn.004aed4e
mov ecx, eax
add esp, 0x10
mov dword [ebp - 0x14], ecx
test ecx, ecx
jne 0x4a5e2e
push ecx
lea eax, [esi + 0x21]
push eax
push dword [ebp - 0x20]
call fcn.00489fc0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x4a758e
mov ecx, dword [ebp - 0x28]
lea edx, [esi + 0x20]
inc ecx
mov dword [esi], edx
push ecx
push dword [ebp - 0x30]
push edx
call fcn.006269d0
mov edx, dword [ebp - 0x20]
add esp, 0xc
cmp byte [edx + 0x55], 0
je 0x4a72b6
xor eax, eax
mov byte [edx + 0x55], al
inc eax
mov byte [edx + 0x5d], al
jmp 0x4a72bc
inc dword [edx + 0x1f8]
mov eax, dword [edx + 0x1ec]
mov dword [esi + 0x18], eax
mov eax, dword [edx + 0x200]
mov ecx, dword [edx + 0x204]
mov dword [edx + 0x1ec], esi
mov dword [esi + 8], eax
mov dword [esi + 0xc], ecx
mov eax, dword [edx + 0x208]
mov ecx, dword [edx + 0x20c]
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], ecx
jmp 0x4a758e
xor ecx, ecx
mov dword [ebp - 0x38], ecx
mov ecx, dword [ebp - 0x20]
mov esi, dword [ecx + 0x1ec]
push eax
test esi, esi
je 0x4aa9c9
push dword [esi]
call fcn.004a14f6
pop ecx
pop ecx
test eax, eax
je 0x4a7323
inc dword [ebp - 0x38]
mov esi, dword [esi + 0x18]
mov eax, dword [ebp - 0x30]
jmp 0x4a7302
mov edx, dword [ebp - 0x20]
xor eax, eax
mov ecx, dword [ebp - 0x64]
cmp dword [edx + 0xc4], eax
jle 0x4a733c
inc eax
cmp ecx, eax
je 0x4aa99f
lea eax, [esi + 0x18]
cmp dword [eax], 0
mov dword [ebp - 0x68], eax
jne 0x4a73b3
cmp byte [edx + 0x5d], 0
je 0x4a73b3
xor eax, eax
inc eax
mov dword [ebp - 0x58], eax
cmp ecx, eax
jne 0x4a73be
push eax
push edi
call fcn.004a4bd6
mov edi, eax
pop ecx
pop ecx
test edi, edi
jne 0x4a759e
mov eax, dword [ebp - 0x20]
xor ecx, ecx
mov edi, dword [ebp - 0x1c]
inc ecx
push edi
mov byte [eax + 0x55], cl
call fcn.004ab6fa
pop ecx
push 5
pop ecx
cmp eax, ecx
je 0x4aa9a6
mov ecx, dword [edi + 0x24]
xor eax, eax
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x14], ecx
test ecx, ecx
je 0x4a739c
mov byte [edx + 0x55], al
jmp 0x4a739f
mov byte [edx + 0x5d], al
lea eax, [edx + 0x1f8]
mov dword [ebp - 0x40], eax
xor eax, eax
inc eax
mov dword [ebp - 0x58], eax
jmp 0x4a74c9
xor eax, eax
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x38], eax
lea eax, [edx + 0x1f8]
mov dword [ebp - 0x40], eax
mov eax, dword [eax]
sub eax, dword [ebp - 0x38]
dec eax
push 2
mov dword [ebp - 0x38], eax
pop eax
cmp ecx, eax
jne 0x4a743b
mov eax, dword [edx + 0x18]
xor ecx, ecx
inc ecx
and eax, ecx
xor ecx, ecx
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x28], ecx
cmp dword [edx + 0x14], ecx
jle 0x4a7442
xor eax, 1
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x50], eax
push eax
mov eax, dword [edx + 0x10]
push 0x204
push dword [ecx + eax + 4]
call fcn.004872ec
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0x14], ecx
test ecx, ecx
jne 0x4a5e2e
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x28]
push 0x10
pop edx
add ecx, edx
inc eax
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x3c], ecx
cmp eax, dword [edx + 0x14]
mov eax, dword [ebp - 0x50]
jl 0x4a73f5
mov eax, dword [ebp - 0x30]
xor ecx, ecx
jmp 0x4a7442
xor ecx, ecx
mov eax, ecx
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x28], ecx
cmp dword [edx + 0x14], ecx
jle 0x4a74c1
mov edx, ecx
mov dword [ebp - 0x3c], ecx
mov eax, dword [ebp - 0x20]
push dword [ebp - 0x38]
push dword [ebp - 0x64]
mov eax, dword [eax + 0x10]
push dword [edx + eax + 4]
call fcn.00486ae3
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0x14], ecx
test ecx, ecx
jne 0x4a5e2e
mov edi, dword [ebp - 0x20]
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x3c]
inc eax
add edx, 0x10
mov dword [ebp - 0x28], eax
cmp eax, dword [edi + 0x14]
mov edi, dword [ebp - 0x1c]
mov dword [ebp - 0x3c], edx
jl 0x4a744f
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x20]
test eax, eax
je 0x4a74c6
xor eax, eax
push eax
push edx
call fcn.0048be29
push dword [ebp - 0x20]
call fcn.0049d52d
mov edx, dword [ebp - 0x20]
xor eax, eax
mov ecx, dword [ebp - 0x14]
inc eax
add esp, 0xc
or dword [edx + 0x18], eax
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x40], eax
jmp 0x4a74c9
mov ecx, dword [ebp - 0x14]
jmp 0x4a7495
mov edx, dword [ebp - 0x20]
test ecx, ecx
jne 0x4a5e2e
mov ecx, dword [edx + 0x1ec]
cmp ecx, esi
je 0x4a7505
mov edi, dword [ebp - 0x40]
mov ebx, dword [ebp - 0x20]
mov eax, dword [ecx + 0x18]
push ecx
push ebx
mov dword [ebx + 0x1ec], eax
call fcn.00489ef9
dec dword [edi]
pop ecx
pop ecx
mov ecx, dword [ebx + 0x1ec]
cmp ecx, esi
jne 0x4a74e1
mov ebx, dword [ebp - 0x54]
mov edi, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x64]
xor eax, eax
inc eax
cmp edx, eax
jne 0x4a7539
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x68]
push esi
push ecx
mov eax, dword [eax]
mov dword [ecx + 0x1ec], eax
call fcn.00489ef9
cmp dword [ebp - 0x58], 0
pop ecx
pop ecx
jne 0x4a758e
mov eax, dword [ebp - 0x40]
mov edx, dword [ebp - 0x64]
mov esi, dword [ebp - 0x20]
dec dword [eax]
jmp 0x4a7574
cmp dword [ebp - 0x58], 0
mov edi, dword [ebp - 0x20]
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov dword [edi + 0x200], eax
mov eax, edi
mov dword [eax + 0x204], ecx
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
mov esi, edi
mov edi, dword [ebp - 0x1c]
mov dword [esi + 0x208], eax
mov dword [esi + 0x20c], ecx
je 0x4a7574
push 2
pop eax
cmp edx, eax
jne 0x4a758e
push dword [ebp - 0x38]
push edx
push esi
call fcn.004aed4e
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0x14], ecx
test ecx, ecx
jne 0x4a5e2e
cmp byte [edi + 0x97], 3
jne 0x4a5dd0
push 0x65
pop edi
mov esi, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0xa4]
cmp eax, dword [ebp - 0x88]
jb 0x4aae42
mov ecx, dword [ebp - 0x84]
ja 0x4a75ca
cmp dword [ebp - 0x9c], ecx
jb 0x4aae42
mov eax, dword [edx + 0x174]
test eax, eax
je 0x4aae42
add ecx, dword [edx + 0x17c]
push 0
mov dword [ebp - 0x84], ecx
pop ecx
push dword [edx + 0x178]
adc dword [ebp - 0x88], ecx
call eax
mov edx, dword [ebp - 0x20]
pop ecx
test eax, eax
je 0x4a75a4
or eax, 0xffffffff
or dword [ebp - 0x88], 0xffffffff
mov dword [ebp - 0x84], eax
push 9
jmp 0x4aa9f9
xor eax, eax
mov esi, eax
mov dword [ebp - 0x30], esi
cmp dword [ebx + 8], eax
je 0x4a763b
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 0x24]
mov edx, dword [eax + 0x20]
and ecx, 2
mov eax, edx
and eax, 0x100000
or eax, ecx
jne 0x4aa9e1
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebx + 4]
shl eax, 4
add eax, dword [ecx + 0x10]
mov dword [ebp - 0x3c], eax
mov eax, dword [eax + 4]
mov dword [ebp - 0x28], eax
test eax, eax
je 0x4a7728
lea ecx, [ebp - 0x30]
push ecx
push dword [ebx + 8]
push eax
call fcn.00484b6c
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0x14], ecx
test ecx, ecx
jne 0x4aaa02
test byte [edi + 0x98], 0x20
je 0x4a77b8
cmp dword [ebx + 8], ecx
je 0x4a77b8
mov esi, dword [ebp - 0x20]
cmp byte [esi + 0x55], cl
je 0x4a76a0
inc eax
cmp dword [esi + 0xc0], eax
jle 0x4a77b8
mov eax, dword [edi + 0x30]
test eax, eax
jne 0x4a76bc
mov eax, dword [esi + 0x1f8]
inc dword [esi + 0x1fc]
add eax, dword [esi + 0x1fc]
mov dword [edi + 0x30], eax
dec eax
push eax
push ecx
push esi
call fcn.004aed4e
mov edi, eax
add esp, 0xc
mov dword [ebp - 0x14], edi
test edi, edi
jne 0x4a76fe
mov eax, dword [ebp - 0x28]
mov esi, dword [ebp - 0x1c]
push eax
mov edi, dword [eax + 4]
mov esi, dword [esi + 0x30]
call fcn.00485447
push esi
push dword [edi]
call fcn.00498001
push dword [ebp - 0x28]
mov edi, eax
mov dword [ebp - 0x14], edi
call fcn.004861d6
mov esi, dword [ebp - 0x20]
add esp, 0x10
mov edi, dword [ebp - 0x1c]
mov eax, dword [esi + 0x200]
mov ecx, dword [esi + 0x204]
mov dword [edi + 0x48], eax
mov dword [edi + 0x4c], ecx
mov eax, dword [esi + 0x208]
mov ecx, dword [esi + 0x20c]
mov esi, dword [ebp - 0x30]
mov dword [edi + 0x50], eax
mov dword [edi + 0x54], ecx
mov ecx, dword [ebp - 0x14]
test ecx, ecx
jne 0x4a5e2e
xor eax, eax
cmp word [ebx + 2], ax
je 0x4a5dd0
cmp esi, dword [ebx + 0xc]
jne 0x4a7756
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 4]
cmp eax, dword [ebx + 0x10]
je 0x4a5dd0
cmp dword [edi + 0x7c], 0
je 0x4a7769
push dword [edi + 0x7c]
push dword [ebp - 0x20]
call fcn.00489ef9
pop ecx
pop ecx
push str.database_schema_has_changed
push dword [ebp - 0x20]
call fcn.0048a265
mov edx, dword [ebp - 0x20]
pop ecx
mov dword [edi + 0x7c], eax
pop ecx
mov ecx, dword [ebx + 4]
mov eax, dword [edx + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
cmp dword [eax], esi
je 0x4a7799
push dword [ebx + 4]
push edx
call fcn.0049d592
pop ecx
pop ecx
mov eax, dword [edi + 0x98]
xor edx, edx
push 0x11
and eax, 0xffffffed
inc edx
pop ecx
or eax, edx
mov dword [ebp - 0x14], ecx
mov dword [edi + 0x98], eax
jmp 0x4a5e2e
mov esi, dword [ebp - 0x30]
jmp 0x4a7733
mov ecx, dword [ebx + 4]
lea eax, [ebp - 0x10c]
push eax
mov eax, dword [ebp - 0x20]
add ecx, ecx
push dword [ebx + 0xc]
mov eax, dword [eax + 0x10]
push dword [eax + ecx*8 + 4]
call fcn.004854da
push ebx
push edi
call fcn.0047783e
mov ecx, eax
add esp, 0x14
mov eax, dword [ebp - 0x10c]
jmp 0x4a53a4
mov eax, dword [ebp - 0x20]
mov esi, dword [ebx + 4]
push dword [ebx + 0xc]
shl esi, 4
add esi, dword [eax + 0x10]
push dword [ebx + 8]
push dword [esi + 4]
call fcn.00487366
xor edx, edx
add esp, 0xc
inc edx
mov edi, eax
mov dword [ebp - 0x14], edi
cmp dword [ebx + 8], edx
jne 0x4a7843
movzx eax, word [ebx + 2]
mov ecx, dword [ebx + 0xc]
sub ecx, eax
mov eax, dword [esi + 0xc]
mov esi, dword [ebp - 0x20]
mov dword [eax], ecx
or dword [esi + 0x18], edx
push dword [ebx + 4]
push esi
call fcn.00490b6f
pop ecx
xor edx, edx
pop ecx
inc edx
jmp 0x4a7857
push 2
pop eax
cmp dword [ebx + 8], eax
jne 0x4a7854
mov ecx, dword [esi + 0xc]
mov al, byte [ebx + 0xc]
mov byte [ecx + 0x4c], al
mov esi, dword [ebp - 0x20]
cmp dword [ebx + 4], edx
jne 0x4a7873
xor eax, eax
push eax
push esi
call fcn.0048be29
mov edi, dword [ebp - 0x1c]
pop ecx
pop ecx
and dword [edi + 0x98], 0xfffffffc
jmp 0x4a7876
mov edi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x14]
jmp 0x4a5eaf
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
test esi, esi
je case.0x4a524c.112
mov eax, dword [esi + 0x38]
cmp eax, dword [ebx + 8]
jne case.0x4a524c.112
push dword [esi + 0x2c]
call fcn.00484bdc
pop ecx
jmp 0x4a79a3
mov eax, dword [edi + 0x98]
xor ecx, ecx
and al, 3
inc ecx
cmp al, cl
je 0x4aaa24
mov esi, dword [ebp - 0x20]
xor eax, eax
mov ecx, dword [ebx + 8]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x3c], eax
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x50], eax
shl eax, 4
add eax, dword [esi + 0x10]
mov dword [ebp - 0x30], ecx
mov esi, dword [eax + 4]
mov dword [ebp - 0x68], esi
cmp dl, 0x71
jne 0x4a7906
mov eax, dword [eax + 0xc]
movzx ecx, word [ebx + 2]
push 8
pop edx
mov al, byte [eax + 0x4c]
and ecx, edx
push 4
pop edx
or ecx, edx
mov dword [ebp - 0x28], ecx
cmp al, byte [edi + 0x95]
jae 0x4a7901
mov byte [edi + 0x95], al
mov ecx, dword [ebp - 0x30]
jmp 0x4a790b
xor eax, eax
mov dword [ebp - 0x28], eax
push 0x10
pop eax
test byte [ebx + 2], al
je 0x4a7925
imul esi, ecx, 0x28
add esi, dword [ebp - 0x24]
push esi
call fcn.004ac5f6
mov eax, dword [esi]
pop ecx
mov dword [ebp - 0x30], eax
mov al, byte [ebx + 1]
cmp al, 0xf8
jne 0x4a7938
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x3c], eax
movzx eax, word [eax + 8]
jmp 0x4a7944
cmp al, 0xfd
jne 0x4a7941
mov eax, dword [ebx + 0x10]
jmp 0x4a7944
mov eax, dword [ebp - 0x58]
xor ecx, ecx
push ecx
push eax
push dword [ebx + 4]
push edi
call fcn.0045edb2
mov esi, eax
add esp, 0x10
test esi, esi
je 0x4a6909
mov eax, dword [ebp - 0x50]
mov byte [esi + 1], al
xor eax, eax
push 4
inc eax
mov byte [esi + 2], al
pop eax
push dword [esi + 0x2c]
or dword [esi + 8], eax
push dword [ebp - 0x3c]
mov eax, dword [ebp - 0x30]
push dword [ebp - 0x28]
mov dword [esi + 0x38], eax
push eax
push dword [ebp - 0x68]
call fcn.00485055
mov edi, eax
add esp, 0x14
mov eax, dword [ebp - 0x3c]
mov dword [esi + 0x30], eax
cmp byte [ebx + 1], 0xf8
mov dword [ebp - 0x14], edi
mov edi, dword [ebp - 0x1c]
setne al
mov byte [esi + 4], al
mov cl, byte [ebx + 2]
mov eax, dword [esi + 0x2c]
and cl, 3
mov byte [eax + 3], cl
jmp 0x4a7876
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 8]
mov edx, dword [eax + ecx*4]
xor eax, eax
push eax
mov dword [ebp - 0x28], edx
movsx eax, word [edx + 0x3c]
push eax
push dword [ebx + 4]
push edi
call fcn.0045edb2
mov esi, eax
add esp, 0x10
test esi, esi
je 0x4a6909
mov edx, dword [esi + 8]
xor eax, eax
mov ecx, dword [ebp - 0x28]
inc eax
or edx, eax
mov byte [esi + 2], al
mov dword [esi + 8], edx
push 4
mov eax, dword [ecx + 0x30]
mov dword [esi + 0x30], eax
mov al, byte [ecx + 4]
mov byte [esi + 4], al
mov eax, dword [ecx + 0x38]
mov dword [esi + 0x38], eax
mov ecx, dword [ecx + 8]
pop eax
xor ecx, edx
and ecx, eax
xor ecx, edx
mov edx, dword [ebp - 0x28]
push 8
mov dword [esi + 8], ecx
mov eax, dword [edx + 0x10]
mov dword [esi + 0x10], eax
pop eax
or ecx, eax
mov dword [esi + 8], ecx
or dword [edx + 8], eax
push dword [esi + 0x2c]
push dword [esi + 0x30]
push 4
pop eax
push eax
push dword [esi + 0x38]
push dword [esi + 0x10]
call fcn.00485055
add esp, 0x14
mov esi, eax
mov dword [ebp - 0x14], esi
jmp 0x4a5dd3
mov eax, dword [ebx + 0xc]
xor edx, edx
test eax, eax
jle 0x4a7a65
mov ecx, dword [ebp - 0x24]
imul eax, eax, 0x28
mov dword [eax + ecx + 0xc], edx
imul eax, dword [ebx + 0xc], 0x28
mov dword [eax + ecx + 8], 0x66ae5d
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov edi, dword [eax + ecx*4]
test edi, edi
je 0x4a7ab0
test byte [edi + 8], 8
jne 0x4a7ab0
movsx eax, word [edi + 0x3c]
cmp dword [ebx + 8], eax
jg 0x4a7ab0
push edx
push dword [edi + 0x38]
mov dword [edi + 0x18], edx
push dword [edi + 0x10]
mov dword [edi + 0x1c], edx
mov dword [edi + 0x20], edx
call fcn.00484bf6
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x28], ecx
test ecx, ecx
jne 0x4a5e2e
mov esi, eax
jmp 0x4a7bb4
mov esi, dword [ebp - 0x1c]
push edx
push dword [ebx + 8]
push ecx
push esi
call fcn.0045edb2
mov edi, eax
add esp, 0x10
test edi, edi
je 0x4aad69
push 0x41e
xor eax, eax
lea ecx, [edi + 0x10]
inc eax
mov dword [ebp - 0x30], ecx
or dword [edi + 8], eax
movzx eax, word [ebx + 2]
push 5
pop edx
or eax, edx
push eax
mov eax, dword [ebp - 0x20]
push ecx
push eax
xor ecx, ecx
push ecx
push dword [eax]
call fcn.004862e9
mov ecx, eax
add esp, 0x18
mov dword [ebp - 0x14], ecx
test ecx, ecx
jne 0x4a5e31
push eax
inc eax
push eax
push dword [edi + 0x10]
call fcn.00484b6c
mov esi, eax
add esp, 0xc
mov dword [ebp - 0x14], esi
test esi, esi
jne 0x4a7b92
mov eax, dword [ebx + 0x10]
lea ecx, [edi + 0x38]
mov dword [ebp - 0x28], eax
mov dword [edi + 0x30], eax
test eax, eax
je 0x4a7b6c
movzx eax, word [ebx + 2]
push 2
pop edx
or eax, edx
push eax
push ecx
push dword [edi + 0x10]
call fcn.00485029
mov esi, eax
add esp, 0xc
mov dword [ebp - 0x14], esi
test esi, esi
jne 0x4a7b68
push dword [edi + 0x2c]
push dword [ebp - 0x28]
push 4
pop eax
push eax
push dword [edi + 0x38]
push dword [edi + 0x10]
call fcn.00485055
mov esi, eax
add esp, 0x14
mov dword [ebp - 0x14], esi
xor eax, eax
jmp 0x4a7b8f
push dword [edi + 0x2c]
xor eax, eax
xor edx, edx
push eax
push 4
pop eax
inc edx
push eax
push edx
push dword [edi + 0x10]
mov dword [ecx], edx
call fcn.00485055
mov esi, eax
add esp, 0x14
xor eax, eax
mov dword [ebp - 0x14], esi
inc eax
mov byte [edi + 4], al
push 8
pop eax
xor ecx, ecx
cmp word [ebx + 2], ax
push 4
pop eax
cmovne ecx, eax
mov eax, dword [edi + 8]
and eax, 0xfffffffb
or ecx, eax
mov dword [edi + 8], ecx
test esi, esi
jne 0x4aaa2e
xor eax, eax
inc eax
mov byte [edi + 2], al
jmp 0x4a5564
xor eax, eax
inc eax
push eax
push dword [ebx + 8]
push dword [ebx + 4]
push edi
call fcn.0045edb2
add esp, 0x10
test eax, eax
je 0x4a6909
mov ecx, dword [ebx + 0x10]
push eax
mov dword [eax + 0x30], ecx
push dword [ebx + 0xc]
push dword [ebp - 0x20]
call fcn.004adcb1
jmp 0x4a5ea7
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 4]
mov edx, dword [eax + ecx*4]
xor eax, eax
inc eax
mov edi, dword [edx + 0x18]
mov ecx, edi
mov esi, dword [edx + 0x1c]
add ecx, eax
mov eax, esi
mov dword [edx + 0x18], ecx
adc eax, 0
or edi, esi
mov esi, dword [ebp - 0x14]
mov edi, dword [ebp - 0x1c]
mov dword [edx + 0x1c], eax
jmp 0x4a640c
push 3
push dword [ebx + 0xc]
push dword [ebx + 4]
push edi
call fcn.0045edb2
add esp, 0x10
test eax, eax
je 0x4a6909
xor edx, edx
inc edx
mov byte [eax + 2], dl
mov ecx, dword [ebx + 8]
mov dword [eax + 0x24], ecx
mov byte [eax + 4], dl
mov dword [eax + 0x2c], 0x73e5f4
jmp 0x4a5dd3
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
cmp dword [eax + ecx*4], 0
je 0x4a7c6a
push dword [eax + ecx*4]
push edi
call fcn.004ab604
pop ecx
pop ecx
mov ecx, dword [ebx + 4]
xor edx, edx
mov eax, dword [edi + 0x60]
mov dword [eax + ecx*4], edx
jmp 0x4a5dd3
mov ecx, dword [ebx + 4]
xor edx, edx
mov eax, dword [edi + 0x60]
mov dword [ebp - 0x58], edx
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0x30], ecx
mov word [ecx + 2], dx
mov dword [ecx + 0x20], edx
cmp byte [ecx + 4], dl
je 0x4a7db5
imul ecx, dword [ebx + 0xc], 0x28
add ecx, dword [ebp - 0x24]
mov dword [ebp - 0x28], ecx
movzx eax, word [ecx + 0x10]
mov dword [ebp - 0x68], eax
and al, 0x2e
cmp al, 2
jne 0x4a7cbe
push edx
push ecx
call fcn.0045fe02
pop ecx
pop ecx
mov ecx, dword [ebp - 0x28]
push ecx
call fcn.004abc13
pop ecx
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x50], edx
mov edx, dword [ebp - 0x68]
movzx eax, word [ecx + 0x10]
mov word [ecx + 0x10], dx
test al, 0x24
jne 0x4a7d77
test al, 8
jne 0x4a7d3b
xor ecx, ecx
inc ecx
test cl, al
jne 0x4aa86b
push 0x17
pop ecx
cmp dword [ebp - 0x38], ecx
jae 0x4aa86b
mov esi, dword [ebp - 0x30]
lea eax, [ebp - 0x80]
push eax
push dword [esi + 0x2c]
call fcn.004861ae
pop ecx
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
test ecx, ecx
jne 0x4a5e2e
mov esi, dword [ebp - 0x14]
cmp dword [ebp - 0x80], 0
jne 0x4aa86b
cmp dword [ebp - 0x58], 0
je 0x4a5dd0
push 0x14
pop eax
add ebx, eax
jmp 0x4a5dd0
movsd xmm0, qword [ecx]
mov edx, dword [ebp - 0x50]
push ecx
push ecx
movsd qword [esp], xmm0
push edx
mov edx, dword [ebp - 0x3c]
push edx
call fcn.004952fa
add esp, 0x10
test eax, eax
jle 0x4a7d67
mov eax, dword [ebp - 0x38]
xor ecx, ecx
inc ecx
test cl, al
jne 0x4a7d77
dec eax
jmp 0x4a7d74
jns 0x4a7d77
mov eax, dword [ebp - 0x38]
xor ecx, ecx
inc ecx
test cl, al
je 0x4a7d77
inc eax
mov dword [ebp - 0x38], eax
mov esi, dword [ebp - 0x30]
lea eax, [ebp - 0x80]
push eax
xor eax, eax
add esi, 0x2c
push eax
push dword [ebp - 0x50]
push dword [ebp - 0x3c]
push dword [esi]
call fcn.00486e29
mov edx, dword [ebp - 0x3c]
mov ecx, eax
mov eax, dword [ebp - 0x30]
add esp, 0x14
mov dword [ebp - 0x14], ecx
mov dword [eax + 0x40], edx
mov edx, dword [ebp - 0x50]
mov dword [eax + 0x44], edx
test ecx, ecx
jne 0x4a5e2e
jmp 0x4a7e42
lea esi, [ecx + 0x2c]
mov eax, dword [esi]
push 0
mov al, byte [eax + 3]
and al, 2
mov byte [ebp - 0x49], al
pop eax
setne al
mov dword [ebp - 0x58], eax
mov eax, dword [ecx + 0x30]
xor ecx, ecx
mov dword [ebp - 0x1b4], eax
inc ecx
mov ax, word [ebx + 0x10]
mov word [ebp - 0x1a0], ax
mov eax, dword [ebp - 0x38]
dec eax
mov byte [ebp - 0x19a], dl
and al, cl
neg al
sbb al, al
and al, 0xfe
inc al
mov byte [ebp - 0x19e], al
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x1b0], eax
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp - 0x1b4]
push eax
push dword [esi]
call fcn.00485619
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0x14], ecx
test ecx, ecx
jne 0x4a5e2e
cmp byte [ebp - 0x49], al
je 0x4a7e42
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x58], eax
cmp byte [ebp - 0x19a], cl
je 0x4a7d1a
mov eax, dword [ebp - 0x38]
push 0x17
pop ecx
cmp eax, ecx
mov ecx, dword [ebp - 0x80]
jl 0x4a7e99
test ecx, ecx
js 0x4a7e64
jne 0x4a7e5a
cmp eax, 0x18
je 0x4a7e64
xor eax, eax
mov dword [ebp - 0x80], eax
jmp 0x4a7d27
xor eax, eax
push eax
push dword [esi]
mov dword [ebp - 0x80], eax
call fcn.00486257
pop ecx
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
test ecx, ecx
je 0x4a7d27
cmp ecx, 0x65
jne 0x4a5e2e
xor eax, eax
mov esi, eax
inc eax
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x80], eax
jmp 0x4aa86b
test ecx, ecx
jg 0x4a7eb5
jne 0x4a7ea4
cmp eax, 0x15
je 0x4a7eb5
mov eax, dword [esi]
xor ecx, ecx
cmp byte [eax], cl
setne cl
mov dword [ebp - 0x80], ecx
jmp 0x4a7d1a
xor eax, eax
push eax
push dword [esi]
mov dword [ebp - 0x80], eax
call fcn.00486950
pop ecx
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
test ecx, ecx
je 0x4a7d27
cmp ecx, 0x65
jne 0x4a5e2e
xor eax, eax
mov esi, eax
inc eax
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x80], eax
jmp 0x4a7d1d
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 0x18]
mov edx, dword [eax + ecx*4]
mov dword [ebp - 0x30], edx
mov eax, dword [edx + 0x2c]
cmp byte [eax], 0
jne 0x4a5dd3
mov eax, dword [edx + 0x30]
xor ecx, ecx
mov esi, dword [ebx + 4]
mov dword [ebp - 0x108], eax
mov ax, word [ebx + 0x24]
mov word [ebp - 0xf4], ax
imul eax, dword [ebx + 0x20], 0x28
mov byte [ebp - 0xf2], cl
mov dword [ebp - 0x28], ecx
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x104], eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x108]
push eax
push edx
push dword [ebp - 0x20]
call fcn.004aba8c
mov ecx, eax
add esp, 0x10
mov dword [ebp - 0x14], ecx
test ecx, ecx
jne 0x4a5e2e
mov eax, dword [ebp - 0x28]
xor edx, edx
test eax, eax
jle 0x4a7f66
cmp word [ebx + 2], dx
je 0x4a7fa4
test eax, eax
jns 0x4a89ef
test esi, esi
jle 0x4a5dd0
mov eax, dword [ebp - 0x30]
dec esi
push edx
push dword [eax + 0x2c]
mov dword [eax + 0x20], edx
call fcn.00486257
mov edx, dword [ebp - 0x30]
pop ecx
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
test ecx, ecx
je 0x4a7f31
cmp ecx, 0x65
jne 0x4a5e2e
xor eax, eax
mov esi, eax
mov dword [ebp - 0x14], esi
jmp 0x4a7fa7
mov esi, dword [ebp - 0x14]
push 0x14
pop eax
add ebx, eax
jmp 0x4aa86b
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 4]
mov ecx, dword [eax + ecx*4]
movzx eax, word [ecx + 0xc]
cmp eax, dword [ebx + 8]
jge 0x4a7fd0
mov ax, word [ebx + 8]
mov word [ecx + 0xc], ax
jmp 0x4a5dd3
cmp eax, dword [ebx + 0xc]
jle 0x4a5dd3
mov ax, word [ebx + 0xc]
jmp 0x4a7fc7
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
test eax, eax
je case.0x4a524c.9
cmp byte [eax + 2], 0
je 0x4a5dd3
jmp case.0x4a524c.9
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
movzx eax, word [eax + 0xc]
cmp eax, dword [ebx + 0x10]
jge 0x4a5dd3
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
imul eax, dword [ebx + 0xc], 0x28
mov ecx, dword [ebp - 0x24]
add ecx, eax
movzx eax, word [ebx + 0x10]
mov dword [ebp - 0x168], ecx
mov word [ebp - 0x158], ax
test ax, ax
je 0x4a806b
mov eax, dword [esi + 0x30]
mov dword [ebp - 0x16c], eax
xor eax, eax
mov byte [ebp - 0x156], al
lea eax, [esi + 0x24]
push eax
lea eax, [ebp - 0x16c]
push eax
push dword [esi + 0x2c]
call fcn.00485619
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0x14], ecx
jmp 0x4a80db
mov eax, 0x400
test word [ecx + 0x10], ax
je 0x4a8085
push ecx
call fcn.004ac2f6
pop ecx
test eax, eax
jne 0x4a6909
push dword [esi + 0x30]
call fcn.004a4a0c
mov dword [ebp - 0x28], eax
pop ecx
test eax, eax
je 0x4a6909
mov ecx, dword [ebp - 0x168]
push eax
push dword [ecx + 8]
push dword [ecx + 0xc]
push dword [esi + 0x30]
call fcn.004ad7a0
mov eax, dword [ebp - 0x28]
xor ecx, ecx
mov byte [eax + 0x16], cl
lea ecx, [esi + 0x24]
push ecx
push eax
push dword [esi + 0x2c]
call fcn.00485619
push dword [ebp - 0x28]
mov edi, eax
push dword [ebp - 0x20]
mov dword [ebp - 0x14], edi
call fcn.00489ef9
mov ecx, edi
add esp, 0x24
mov edi, dword [ebp - 0x1c]
test ecx, ecx
jne 0x4a5e2e
mov ecx, dword [esi + 0x24]
test ecx, ecx
setne al
xor edx, edx
mov byte [esi + 2], al
mov byte [esi + 3], dl
mov dword [esi + 0x20], edx
mov al, byte [ebx]
cmp al, 0x1d
jne 0x4a8106
mov esi, dword [ebp - 0x14]
test ecx, ecx
jmp 0x4a64cf
test ecx, ecx
jne 0x4a89ef
cmp al, 0x1b
jne 0x4a8142
mov ecx, edx
movzx edx, word [ebp - 0x158]
test edx, edx
je 0x4a5dd0
mov eax, dword [ebp - 0x168]
add eax, 0x10
test byte [eax], 1
jne 0x4a89ef
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x4a812c
jmp 0x4a5dd0
cmp al, 0x1a
jne 0x4a5dd0
mov ax, word [ebx + 0x10]
mov word [esi + 0xc], ax
jmp 0x4a5dd0
imul esi, dword [ebx + 0xc], 0x28
mov ecx, dword [ebp - 0x24]
add esi, ecx
test byte [esi + 0x10], 0x24
jne 0x4a81a8
push 0xa
pop ecx
push dword [ebp - 0x60]
lea eax, [ebp - 0x294]
lea edi, [ebp - 0x294]
push 0x43
rep movsd dword es:[edi], dword [esi]
push eax
call fcn.0045fd9c
mov edi, dword [ebp - 0x1c]
add esp, 0xc
push 4
pop eax
test byte [ebp - 0x284], al
je 0x4a89ef
mov edx, dword [ebp - 0x294]
mov eax, dword [ebp - 0x290]
jmp 0x4a81b3
mov ecx, dword [ebp - 0x24]
imul eax, dword [ebx + 0xc], 0x28
mov edx, dword [eax + ecx]
mov eax, dword [eax + ecx + 4]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x28], edx
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
lea eax, [ebp - 0x3c]
push eax
xor ecx, ecx
push ecx
push dword [ebp - 0x30]
mov dword [ebp - 0x3c], ecx
push edx
push dword [esi + 0x2c]
call fcn.00486e29
mov ecx, eax
xor edx, edx
mov eax, dword [ebp - 0x28]
add esp, 0x14
mov dword [esi + 0x40], eax
mov eax, dword [ebp - 0x30]
mov dword [esi + 0x44], eax
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x14], ecx
mov word [esi + 2], dx
mov dword [esi + 0x20], edx
mov dword [esi + 0x24], eax
test eax, eax
je 0x4a5eaf
cmp dword [ebx + 8], edx
jne 0x4a89ef
push 0x17f3e
call fcn.00488b68
pop ecx
jmp 0x4a5eaa
push ebx
push edi
call fcn.0047783e
mov edx, dword [ebx + 4]
pop ecx
pop ecx
mov ecx, dword [edi + 0x60]
push 0
mov ecx, dword [ecx + edx*4]
mov edx, dword [ecx + 0x18]
mov ecx, dword [ecx + 0x1c]
mov dword [eax + 4], ecx
mov dword [eax], edx
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
xor ecx, ecx
inc ecx
add dword [eax + 0x18], ecx
pop ecx
adc dword [eax + 0x1c], ecx
jmp 0x4a5dd3
xorps xmm0, xmm0
xor eax, eax
push ebx
push edi
movlpd qword [ebp - 0x98], xmm0
mov dword [ebp - 0x58], eax
call fcn.0047783e
mov edx, dword [ebx + 4]
pop ecx
pop ecx
mov ecx, dword [edi + 0x60]
push 2
mov dword [ebp - 0x30], eax
pop eax
mov esi, dword [ecx + edx*4]
mov dword [ebp - 0x40], esi
test byte [esi + 8], al
jne 0x4a8300
lea eax, [ebp - 0x58]
push eax
push dword [esi + 0x2c]
call fcn.004861ae
pop ecx
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
test ecx, ecx
jne 0x4a5e2e
cmp dword [ebp - 0x58], eax
je 0x4a82b4
inc eax
mov dword [ebp - 0x98], eax
xor eax, eax
mov dword [ebp - 0x94], eax
jmp 0x4a8300
mov esi, dword [esi + 0x2c]
push esi
call fcn.0046e92b
mov eax, dword [esi + 0x20]
pop ecx
mov ecx, dword [esi + 0x24]
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x94], ecx
cmp ecx, 0x7fffffff
jl 0x4a82ea
jg 0x4a82df
cmp eax, 0xffffffff
jb 0x4a82ea
mov eax, dword [ebp - 0x40]
push 2
pop ecx
or dword [eax + 8], ecx
jmp 0x4a8300
xor edx, edx
inc edx
add eax, edx
push 0
pop edx
adc ecx, edx
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x94], ecx
mov edx, dword [ebx + 0xc]
test edx, edx
je 0x4a8397
mov eax, dword [edi + 0xd0]
test eax, eax
jne 0x4a837a
imul esi, edx, 0x28
add esi, dword [ebp - 0x24]
push esi
call fcn.004ac5f6
mov edx, dword [esi + 4]
pop ecx
mov ecx, dword [esi]
cmp ecx, 0xffffffff
jne 0x4a8338
cmp edx, 0x7fffffff
je 0x4a840c
mov eax, dword [ebp - 0x40]
test byte [eax + 8], 2
jne 0x4a840c
xor eax, eax
inc eax
add ecx, eax
push 0
pop eax
adc edx, eax
mov eax, dword [ebp - 0x94]
mov dword [ebp - 0x28], eax
cmp eax, edx
jg 0x4a8389
jl 0x4a8368
mov eax, dword [ebp - 0x98]
cmp eax, ecx
jae 0x4a838f
mov eax, ecx
mov dword [ebp - 0x94], edx
mov dword [ebp - 0x98], eax
jmp 0x4a8392
mov eax, ecx
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x4a8378
imul esi, edx, 0x28
add esi, dword [eax + 0xc]
jmp 0x4a831b
mov eax, dword [ebp - 0x98]
mov edx, dword [ebp - 0x28]
mov dword [esi], eax
mov dword [esi + 4], edx
mov eax, dword [ebp - 0x40]
push 2
pop ecx
test byte [eax + 8], cl
je 0x4a8417
xor eax, eax
mov esi, eax
lea eax, [ebp - 0x98]
push eax
push 8
pop eax
push eax
call fcn.0045bd0f
mov eax, dword [ebp - 0x94]
xor edx, edx
mov ecx, dword [ebp - 0x98]
inc edx
push 0
and eax, 0x3fffffff
add ecx, edx
pop edx
adc eax, edx
mov dword [ebp - 0x98], ecx
lea edx, [ebp - 0x58]
mov dword [ebp - 0x94], eax
push edx
xor edx, edx
push edx
push eax
mov eax, dword [ebp - 0x40]
push ecx
push dword [eax + 0x2c]
call fcn.00486e29
mov ecx, eax
add esp, 0x1c
mov dword [ebp - 0x14], ecx
test ecx, ecx
jne 0x4a5e2e
cmp dword [ebp - 0x58], eax
jne 0x4a8414
inc esi
cmp esi, 0x64
jl 0x4a83a6
push 0xd
pop ecx
jmp 0x4a5e2b
mov eax, dword [ebp - 0x40]
mov edx, dword [ebp - 0x30]
xor ecx, ecx
mov byte [eax + 3], cl
mov dword [eax + 0x20], ecx
mov eax, dword [ebp - 0x98]
mov ecx, dword [ebp - 0x94]
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x4a5dd0
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 4]
imul edx, dword [ebx + 8], 0x28
mov edi, dword [ebp - 0x24]
mov esi, dword [eax + ecx*4]
imul eax, dword [ebx + 0xc], 0x28
mov ecx, dword [ebp - 0x24]
add edx, dword [ebp - 0x24]
cmp byte [ebx + 1], 0xfb
mov ecx, dword [eax + ecx]
mov eax, dword [eax + edi + 4]
mov edi, dword [ebp - 0x1c]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x18c], ecx
mov dword [ebp - 0x188], eax
jne 0x4a84a3
mov edi, dword [ebp - 0x20]
cmp dword [edi + 0xfc], 0
mov edi, dword [ebp - 0x1c]
je 0x4a84a3
mov eax, dword [ebp - 0x20]
movsx ecx, byte [esi + 1]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8]
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x58]
jmp 0x4a84ab
and dword [ebp - 0x30], 0
and dword [ebp - 0x3c], 0
test byte [ebx + 2], 1
je 0x4a84cd
add dword [edi + 0x28], 1
adc dword [edi + 0x2c], 0
test byte [ebx + 2], 0x20
je 0x4a84cd
mov edi, dword [ebp - 0x20]
mov dword [edi + 0x28], ecx
mov ecx, edi
mov edi, dword [ebp - 0x1c]
mov dword [ecx + 0x2c], eax
mov eax, dword [edx + 8]
movzx ecx, word [ebx + 2]
mov dword [ebp - 0x184], eax
mov eax, dword [edx + 0xc]
push 0x10
mov dword [ebp - 0x178], eax
pop eax
test al, cl
je 0x4a84ef
mov eax, dword [esi + 0x24]
jmp 0x4a84f1
xor eax, eax
mov dword [ebp - 0x28], eax
mov eax, 0x400
test word [edx + 0x10], ax
push 0
pop eax
je 0x4a850e
mov eax, dword [edx]
mov dword [ebp - 0x174], eax
xor eax, eax
jmp 0x4a8514
mov dword [ebp - 0x174], eax
push dword [ebp - 0x28]
mov dword [ebp - 0x194], eax
and ecx, 0x8a
push ecx
lea eax, [ebp - 0x194]
push eax
push dword [esi + 0x2c]
call fcn.00485996
xor edx, edx
add esp, 0x10
inc dword [ebp - 0xb0]
mov ecx, eax
mov dword [ebp - 0x14], ecx
mov byte [esi + 3], dl
mov dword [esi + 0x20], edx
test ecx, ecx
jne 0x4a5e2e
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x4a5dd0
push dword [ebp - 0x188]
push dword [ebp - 0x18c]
push dword [eax]
push dword [ebp - 0x3c]
push 4
pop eax
test byte [ebx + 2], al
push 0x12
pop eax
push 0x17
pop ecx
cmovne eax, ecx
push eax
mov eax, dword [ebp - 0x20]
push dword [eax + 0xf8]
call dword [eax + 0xfc]
add esp, 0x18
jmp 0x4a5dd0
mov ecx, dword [edi + 0x60]
mov eax, dword [ebx + 4]
mov edx, dword [ecx + eax*4]
mov eax, dword [ebx + 8]
mov esi, dword [ecx + eax*4]
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x4a85bf
mov ecx, dword [ebp - 0x24]
mov edi, dword [ebp - 0x24]
imul eax, eax, 0x28
mov ecx, dword [eax + ecx]
mov eax, dword [eax + edi + 4]
mov edi, dword [ebp - 0x1c]
jmp 0x4a85cd
xorps xmm0, xmm0
movlpd qword [ebp - 0x2c], xmm0
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x2c]
push eax
push ecx
push dword [esi + 0x2c]
push dword [edx + 0x2c]
call fcn.0048701d
add esp, 0x10
jmp 0x4a5eaa
cmp byte [ebx + 1], 0xfb
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 4]
mov dword [ebp - 0x50], eax
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
mov dword [ebp - 0x58], esi
jne 0x4a864a
mov edx, dword [ebp - 0x20]
xor ecx, ecx
lea eax, [edx + 0xfc]
mov dword [ebp - 0x28], eax
cmp dword [eax], ecx
je 0x4a8654
movsx ecx, byte [esi + 1]
mov eax, dword [edx + 0x10]
add ecx, ecx
push 2
mov eax, dword [eax + ecx*8]
mov ecx, dword [ebx + 0x10]
mov dword [ebp - 0x3c], eax
pop eax
mov dword [ebp - 0x30], ecx
test byte [ebx + 2], al
je 0x4a865d
cmp byte [esi + 4], 0
je 0x4a865d
mov esi, dword [esi + 0x2c]
push esi
call fcn.0046e92b
mov eax, dword [esi + 0x20]
pop ecx
mov ecx, dword [esi + 0x24]
mov esi, dword [ebp - 0x58]
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], ecx
jmp 0x4a865d
mov eax, dword [ebp - 0x20]
add eax, 0xfc
xor ecx, ecx
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x28], eax
movzx eax, byte [ebx + 2]
push eax
push dword [esi + 0x2c]
call fcn.004850a3
pop ecx
xor edx, edx
inc dword [ebp - 0xb0]
pop ecx
mov ecx, eax
mov dword [esi + 0x20], edx
mov dword [ebp - 0x14], ecx
mov dword [esi + 0x24], edx
test ecx, ecx
jne 0x4a5e2e
inc ecx
test byte [ebp - 0x50], cl
je 0x4a5dd0
add dword [edi + 0x28], ecx
mov eax, dword [ebp - 0x28]
adc dword [edi + 0x2c], edx
mov ecx, dword [eax]
test ecx, ecx
je 0x4a5dd0
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x4a5dd0
test byte [eax + 0x1c], 0x80
jne 0x4a5dd0
push dword [esi + 0x44]
push dword [esi + 0x40]
push dword [eax]
mov eax, dword [ebp - 0x20]
push dword [ebp - 0x3c]
push 9
push dword [eax + 0xf8]
call ecx
jmp 0x4a858c
mov edx, dword [ebp - 0x20]
mov eax, dword [edi + 0x28]
mov ecx, dword [edi + 0x2c]
add dword [edx + 0x70], eax
mov dword [edx + 0x68], eax
adc dword [edx + 0x74], ecx
xor eax, eax
mov dword [edx + 0x6c], ecx
mov dword [edi + 0x28], eax
mov dword [edi + 0x2c], eax
jmp 0x4a5dd3
mov eax, dword [edi + 0x60]
xor edx, edx
mov ecx, dword [ebx + 4]
mov dword [ebp - 0x28], edx
lea edx, [ebp - 0x28]
push edx
push dword [ebx + 0x10]
mov ecx, dword [eax + ecx*4]
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0x24]
push eax
push ecx
call fcn.004adc22
mov ecx, eax
add esp, 0x10
mov dword [ebp - 0x14], ecx
test ecx, ecx
jne 0x4a5e2e
cmp dword [ebp - 0x28], eax
mov esi, eax
jmp 0x4a52b5
imul edx, dword [ebx + 8], 0x28
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
add edx, dword [ebp - 0x24]
push edx
push dword [eax + ecx*4]
call fcn.004ae047
pop ecx
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
test ecx, ecx
jne 0x4a5e2e
mov ecx, dword [ebx + 0xc]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
xor ecx, ecx
mov dword [eax + 0x20], ecx
jmp 0x4a5dd0
push ebx
push edi
call fcn.0047783e
mov edx, dword [ebx + 4]
mov ecx, dword [edi + 0x60]
mov dword [ebp - 0x28], eax
mov ecx, dword [ecx + edx*4]
mov esi, dword [ecx + 0x2c]
push esi
call fcn.0046e92b
mov ecx, dword [ebp - 0x20]
add esp, 0xc
mov eax, dword [esi + 0x2c]
cmp eax, dword [ecx + 0x78]
ja 0x4aaa44
push dword [ebp - 0x28]
push eax
push esi
call fcn.004ac44b
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0x14], ecx
test ecx, ecx
jne 0x4a5e2e
cmp dword [ebx + 0xc], eax
jne 0x4a5dd0
mov eax, dword [ebp - 0x28]
mov ecx, 0x4000
test word [eax + 0x10], cx
je 0x4a5dd0
push eax
call fcn.004ac622
pop ecx
test eax, eax
jne 0x4a6909
jmp 0x4a5dd0
push ebx
push edi
call fcn.0047783e
mov edx, dword [ebx + 4]
pop ecx
pop ecx
mov ecx, dword [edi + 0x60]
mov dword [ebp - 0x28], eax
mov ecx, dword [ecx + edx*4]
mov dword [ebp - 0x30], ecx
cmp byte [ecx + 2], 0
je 0x4a880a
xor ecx, ecx
inc ecx
jmp 0x4a54eb
cmp byte [ecx + 3], 0
je 0x4a881b
mov eax, dword [ecx + 0x40]
mov ecx, dword [ecx + 0x44]
jmp 0x4a88b0
push 2
pop eax
cmp byte [ecx], al
jne 0x4a8862
mov ecx, dword [ecx + 0x2c]
lea edx, [ebp - 0xac]
push edx
push ecx
mov esi, dword [ecx]
mov eax, dword [esi]
call dword [eax + 0x30]
mov edi, eax
mov dword [ebp - 0x14], edi
mov edi, dword [ebp - 0x1c]
push esi
push edi
call fcn.004aeba5
mov ecx, dword [ebp - 0x14]
add esp, 0x10
test ecx, ecx
jne 0x4a69db
mov ecx, dword [ebp - 0xa8]
mov eax, dword [ebp - 0xac]
mov esi, dword [ebp - 0x14]
jmp 0x4a88bc
mov eax, dword [ecx + 0x2c]
cmp byte [eax], 0
je 0x4a8885
push ecx
call fcn.004aba4f
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
test ecx, ecx
jne 0x4a5e2b
mov ecx, dword [ebp - 0x30]
mov esi, eax
jmp 0x4a888c
xor eax, eax
mov esi, eax
mov dword [ebp - 0x14], esi
cmp byte [ecx + 2], 0
je 0x4a889d
mov edx, dword [ebp - 0x28]
xor eax, eax
inc eax
jmp 0x4a5db3
mov esi, dword [ecx + 0x2c]
push esi
call fcn.0046e92b
mov eax, dword [esi + 0x20]
pop ecx
mov ecx, dword [esi + 0x24]
mov esi, dword [ebp - 0x14]
mov dword [ebp - 0xa8], ecx
mov dword [ebp - 0xac], eax
mov edx, dword [ebp - 0x28]
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x4a5dd3
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
test eax, eax
jne 0x4a8904
push 3
inc eax
push eax
push ecx
push edi
call fcn.0045edb2
add esp, 0x10
test eax, eax
je 0x4a6909
xor ecx, ecx
mov dword [eax + 0x2c], 0x73e5f4
xor edx, edx
inc ecx
or dword [eax + 8], 8
mov dword [eax + 0x24], edx
mov byte [eax + 4], cl
jmp 0x4a8909
xor ecx, ecx
xor edx, edx
inc ecx
cmp byte [eax], 0
mov byte [eax + 2], cl
mov dword [eax + 0x20], edx
jne 0x4a5dd3
push dword [eax + 0x2c]
call fcn.00484bdc
jmp 0x4a57a2
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
and dword [ebp - 0x28], 0
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x30], eax
mov ecx, dword [eax + 0x2c]
cmp dl, 0x89
jne 0x4a894a
or dword [eax + 0x24], 0xffffffff
cmp byte [ecx], 0
je 0x4a5dd3
lea eax, [ebp - 0x28]
push eax
push ecx
call fcn.004861ae
mov edx, dword [ebp - 0x28]
pop ecx
pop ecx
mov ecx, eax
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x14], ecx
and dword [eax + 0x20], 0
mov byte [eax + 2], dl
mov byte [eax + 3], 0
test ecx, ecx
jne 0x4a5e2e
xor eax, eax
cmp dword [ebx + 8], eax
jle 0x4a5dd0
mov esi, ecx
test edx, edx
jmp 0x4a52b5
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov esi, dword [eax + 0x2c]
lea eax, [ebp - 0xd8]
push eax
push esi
call fcn.0048547a
pop ecx
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
test ecx, ecx
jne 0x4a5e2e
cmp dword [ebp - 0xd8], eax
jne 0x4a89ef
push esi
call fcn.00486a84
pop ecx
xor ecx, ecx
cmp edx, ecx
jl 0x4a5dd0
jg 0x4a89d3
cmp eax, ecx
jb 0x4a5dd0
push edx
push eax
call fcn.00496219
cwde
pop ecx
pop ecx
cmp eax, dword [ebx + 0xc]
jge 0x4a5dd0
xor eax, eax
inc eax
mov dword [ebp - 0xd8], eax
mov esi, dword [ebp - 0x14]
jmp 0x4aa86b
inc dword [edi + 0xac]
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 4]
mov esi, dword [eax + ecx*4]
xor eax, eax
inc eax
mov dword [ebp - 0x30], eax
cmp byte [esi], al
lea eax, [ebp - 0x30]
push eax
jne 0x4a8a1e
push esi
call fcn.004adfe4
xor edx, edx
jmp 0x4a8a2e
push dword [esi + 0x2c]
call fcn.0048547a
xor edx, edx
mov byte [esi + 3], dl
mov dword [esi + 0x20], edx
pop ecx
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
test ecx, ecx
jne 0x4a5e2e
mov eax, dword [ebp - 0x30]
mov byte [esi + 2], al
cmp dword [ebx + 8], edx
jle 0x4a5dd0
mov esi, ecx
jmp 0x4a63e9
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
push esi
push dword [ebp - 0x20]
mov dword [ebp - 0x30], esi
call fcn.004ade6b
jmp 0x4a8a9a
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
push dword [ebx + 0xc]
mov esi, dword [eax + ecx*4]
mov dword [ebp - 0x30], esi
push dword [esi + 0x2c]
call fcn.00486950
jmp 0x4a8a9a
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
push dword [ebx + 0xc]
mov esi, dword [eax + ecx*4]
mov dword [ebp - 0x30], esi
push dword [esi + 0x2c]
call fcn.00486257
pop ecx
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
xor edx, edx
mov dword [esi + 0x20], edx
test ecx, ecx
jne 0x4a8abf
mov byte [esi + 2], dl
mov esi, ecx
movzx eax, word [ebx + 2]
inc dword [edi + eax*4 + 0xa4]
jmp 0x4aa302
cmp ecx, 0x65
jne 0x4a5e2e
mov eax, dword [ebp - 0x30]
xor ecx, ecx
mov esi, edx
inc ecx
mov dword [ebp - 0x14], esi
mov byte [eax + 2], cl
jmp 0x4a7186
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 4]
imul esi, dword [ebx + 8], 0x28
mov ecx, dword [eax + ecx*4]
xor eax, eax
inc eax
mov dword [ebp - 0x28], ecx
add esi, dword [ebp - 0x24]
test byte [ebx + 2], al
je 0x4a8aff
add dword [edi + 0x28], eax
push 0
pop eax
adc dword [edi + 0x2c], eax
mov eax, 0x400
test word [esi + 0x10], ax
je 0x4a8b21
push esi
call fcn.004ac2f6
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
test ecx, ecx
jne 0x4a5e2e
mov ecx, dword [ebp - 0x28]
mov eax, dword [esi + 0xc]
cdq
mov dword [ebp - 0x23c], eax
mov dword [ebp - 0x238], edx
mov eax, dword [esi + 8]
mov dword [ebp - 0x244], eax
imul eax, dword [ebx + 0xc], 0x28
push 0x10
pop edx
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x230], eax
mov ax, word [ebx + 0x10]
mov word [ebp - 0x22c], ax
movzx eax, word [ebx + 2]
test dl, al
je 0x4a8b62
mov ecx, dword [ecx + 0x24]
jmp 0x4a8b64
xor ecx, ecx
mov esi, dword [ebp - 0x28]
and eax, 0x8a
push ecx
push eax
lea eax, [ebp - 0x244]
push eax
push dword [esi + 0x2c]
call fcn.00485996
add esp, 0x10
mov ecx, eax
xor eax, eax
mov dword [esi + 0x20], eax
jmp 0x4a5eac
imul esi, dword [ebx + 8], 0x28
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
add esi, dword [ebp - 0x24]
mov eax, dword [eax + ecx*4]
mov ecx, 0x400
mov dword [ebp - 0x28], eax
test word [esi + 0x10], cx
je 0x4a8bc1
push esi
call fcn.004ac2f6
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
test ecx, ecx
jne 0x4a5e2e
mov eax, dword [ebp - 0x28]
push esi
push eax
call fcn.004ae0a3
pop ecx
jmp 0x4a8216
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esi + 0x2c]
mov eax, dword [esi + 0x30]
mov dword [ebp - 0x21c], eax
mov ax, word [ebx + 0xc]
mov word [ebp - 0x208], ax
xor eax, eax
mov byte [ebp - 0x206], al
imul eax, dword [ebx + 8], 0x28
mov dword [ebp - 0x28], ecx
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x218], eax
lea eax, [ebp - 0x110]
push eax
lea eax, [ebp - 0x21c]
push eax
push ecx
call fcn.00485619
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0x14], ecx
test ecx, ecx
jne 0x4a5e2e
cmp dword [ebp - 0x110], eax
jne 0x4a8c4f
push 4
pop eax
push eax
push dword [ebp - 0x28]
call fcn.004850a3
pop ecx
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
test ecx, ecx
jne 0x4a5e2e
jmp 0x4a8c68
xor edx, edx
cmp word [ebx + 2], dx
je 0x4a8c6a
push dword [ebp - 0x20]
call fcn.004b4802
pop ecx
test eax, eax
je 0x4aaa58
xor edx, edx
mov dword [esi + 0x20], edx
mov dword [esi + 0x24], edx
jmp 0x4a5dd0
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 4]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0x28], ecx
mov eax, dword [ecx + 0x2c]
cmp byte [eax], 0
je 0x4a8ca4
push ecx
call fcn.004aba4f
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
test ecx, ecx
jne 0x4a5e2b
mov ecx, dword [ebp - 0x28]
mov esi, eax
jmp 0x4a8cab
xor eax, eax
mov esi, eax
mov dword [ebp - 0x14], esi
cmp byte [ecx + 2], 0
jne 0x4a8d2c
lea eax, [ebp - 0x34]
xorps xmm0, xmm0
push eax
push dword [ecx + 0x2c]
movlpd qword [ebp - 0x34], xmm0
push dword [ebp - 0x20]
call fcn.004abb1c
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0x14], ecx
test ecx, ecx
jne 0x4a5e2e
cmp byte [ebx], 0x8d
jne 0x4a8d13
mov ecx, dword [ebx + 0xc]
mov eax, dword [edi + 0x60]
mov edx, dword [eax + ecx*4]
xor eax, eax
mov ecx, dword [ebp - 0x30]
mov byte [edx + 2], al
mov eax, dword [ebp - 0x34]
mov dword [edx + 0x40], eax
xor eax, eax
inc eax
mov dword [edx + 0x44], ecx
mov byte [edx + 3], al
xor eax, eax
mov dword [edx + 0x20], eax
mov eax, dword [ebx + 0x10]
mov dword [edx + 0x10], eax
mov eax, dword [ebp - 0x28]
mov dword [edx + 0x28], eax
jmp 0x4a5dd0
push ebx
push edi
call fcn.0047783e
mov edx, dword [ebp - 0x30]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x34]
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp 0x4a5dd0
imul eax, dword [ebx + 8], 0x28
add eax, dword [ebp - 0x24]
jmp 0x4a64bb
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
cmp byte [eax + 3], 0
je 0x4a5dd3
push eax
call fcn.004ab526
jmp 0x4a8216
mov eax, dword [edi + 0x60]
cmp dl, 0x2a
mov ecx, dword [ebx + 4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 0x30]
mov esi, dword [ecx + 0x2c]
mov dword [ebp - 0x108], eax
mov ax, word [ebx + 0x10]
mov word [ebp - 0xf4], ax
sbb al, al
mov byte [ebp - 0xf2], al
imul eax, dword [ebx + 0xc], 0x28
push esi
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x104], eax
call fcn.0046e92b
mov eax, dword [esi + 0x2c]
pop ecx
test eax, eax
je 0x4aaa74
cmp eax, 0x7fffffff
ja 0x4aaa74
xor ecx, ecx
mov word [ebp - 0x1ec], cx
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x1e8], ecx
xor ecx, ecx
mov dword [ebp - 0x1e4], ecx
lea ecx, [ebp - 0x1fc]
push ecx
push eax
push esi
call fcn.004ac44b
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0x14], ecx
test ecx, ecx
jne 0x4a5e2e
push eax
lea eax, [ebp - 0x108]
push eax
push dword [ebp - 0x1f4]
push dword [ebp - 0x1f0]
call fcn.004ad334
add esp, 0x10
mov esi, eax
cmp dword [ebp - 0x1e4], 0
je 0x4a8e17
lea eax, [ebp - 0x1fc]
push eax
call fcn.004b7a74
pop ecx
xor eax, eax
inc eax
test byte [ebx], al
jne 0x4a8e22
neg esi
jmp 0x4a8e23
inc esi
test esi, esi
mov esi, dword [ebp - 0x14]
jg 0x4aa86b
jmp 0x4a5dd3
push ebx
push edi
call fcn.0047783e
mov esi, dword [ebp - 0x20]
pop ecx
pop ecx
xor ecx, ecx
mov dword [ebp - 0x30], eax
inc ecx
mov word [eax + 0x10], cx
mov ecx, dword [esi + 0xcc]
inc ecx
cmp dword [esi + 0xc0], ecx
jg 0x4aaa7e
mov eax, dword [ebx + 0xc]
xor ecx, ecx
mov edi, dword [ebx + 4]
mov dword [ebp - 0x28], ecx
mov ecx, eax
mov dword [ebp - 0x58], eax
mov eax, dword [esi + 0x10]
shl ecx, 4
mov dword [ebp - 0x3c], ecx
mov esi, dword [ecx + eax + 4]
push esi
call fcn.00485447
lea eax, [ebp - 0x28]
push eax
push edi
push esi
call fcn.00462818
mov edi, eax
push esi
mov dword [ebp - 0x14], edi
call fcn.004861d6
mov ecx, dword [ebp - 0x30]
add esp, 0x14
mov esi, dword [ebp - 0x28]
push 4
pop eax
mov word [ecx + 0x10], ax
mov eax, esi
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov ecx, edi
test ecx, ecx
jne 0x4a5e2e
test esi, esi
je 0x4aa64a
mov eax, dword [ebp - 0x20]
mov edi, dword [ebx + 4]
mov edx, dword [eax + 0x10]
add edx, dword [ebp - 0x3c]
mov eax, dword [edx + 0xc]
mov eax, dword [eax + 0x10]
jmp 0x4a8ee0
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x14], esi
jne 0x4a8ede
mov dword [ecx + 0x14], edi
mov eax, dword [eax]
test eax, eax
jne 0x4a8ed3
mov eax, dword [edx + 0xc]
mov eax, dword [eax + 0x20]
jmp 0x4a8ef9
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x2c], esi
jne 0x4a8ef7
mov dword [ecx + 0x2c], edi
mov eax, dword [eax]
test eax, eax
jne 0x4a8eec
mov al, byte [ebp - 0x58]
inc al
mov byte [ebp - 0x79], al
jmp 0x4a5561
mov ecx, dword [ebx + 8]
lea eax, [ebp - 0xe0]
push eax
mov eax, dword [ebp - 0x20]
add ecx, ecx
push dword [ebx + 4]
xorps xmm0, xmm0
movlpd qword [ebp - 0xe0], xmm0
mov eax, dword [eax + 0x10]
push dword [eax + ecx*8 + 4]
call fcn.00484bf6
mov ecx, eax
add esp, 0xc
xor eax, eax
mov dword [ebp - 0x14], ecx
cmp dword [ebx + 0xc], eax
je 0x4a5eaf
mov edx, dword [ebp - 0xe0]
add dword [edi + 0x28], edx
mov eax, dword [ebp - 0xdc]
adc dword [edi + 0x2c], eax
mov eax, dword [ebx + 0xc]
test eax, eax
jle 0x4a5eaf
imul ecx, eax, 0x28
mov eax, dword [ebp - 0x24]
add dword [ecx + eax], edx
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0xdc]
adc dword [ecx + edx + 4], eax
jmp 0x4a7876
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
xor ecx, ecx
inc ecx
cmp byte [eax], cl
jne 0x4a8f9f
push dword [eax + 0x2c]
push dword [ebp - 0x20]
call fcn.004adee4
pop ecx
jmp 0x4a57a2
mov eax, dword [eax + 0x2c]
xor ecx, ecx
push ecx
push dword [eax + 0x40]
push dword [eax + 8]
call fcn.00484bf6
jmp 0x4a5ea7
push ebx
push edi
call fcn.0047783e
mov ecx, dword [ebx + 4]
mov esi, eax
push dword [ebx + 0xc]
xor eax, eax
shl ecx, 4
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x20]
add ecx, dword [eax + 0x10]
lea eax, [ebp - 0x28]
push eax
push dword [ecx + 4]
call fcn.00485029
mov ecx, eax
add esp, 0x14
mov dword [ebp - 0x14], ecx
test ecx, ecx
jne 0x4a5e2e
mov eax, dword [ebp - 0x28]
mov dword [esi], eax
xor eax, eax
mov dword [esi + 4], eax
jmp 0x4a5dd0
mov ecx, dword [ebp - 0x20]
xor edx, edx
mov dword [ebp - 0xc4], edx
inc byte [ecx + 0x60]
mov al, byte [ecx + 0x5e]
mov esi, dword [ecx + 0x16c]
mov byte [ebp - 0x49], al
cmp dword [ebx + 4], edx
je 0x4a9025
mov dword [ecx + 0x16c], edx
mov byte [ecx + 0x5e], dl
lea eax, [ebp - 0xc4]
push eax
push edx
push edx
push dword [ebx + 0x10]
push ecx
call fcn.0045b0eb
mov edx, dword [ebp - 0x20]
mov ecx, eax
mov eax, dword [ebp - 0x20]
add esp, 0x14
mov dword [ebp - 0x14], ecx
dec byte [eax + 0x60]
cmp dword [ebp - 0xc4], 0
mov dword [eax + 0x16c], esi
mov al, byte [ebp - 0x49]
mov byte [edx + 0x5e], al
jne 0x4a9065
test ecx, ecx
je 0x4a5dd0
push dword [ebp - 0xc4]
push 0x66bf70
push edi
call fcn.004a5103
mov esi, dword [ebp - 0xc4]
add esp, 0xc
test esi, esi
je 0x4aaa9a
cmp dword [0x705e80], 0
je 0x4aaa92
mov eax, dword [0x73e5f8]
test eax, eax
je 0x4a90a5
push eax
call dword [0x705ed0]
pop ecx
push esi
call dword [0x705eac]
sub dword [0x73e590], eax
dec dword [0x73e5b4]
push esi
call dword [0x705ea4]
mov eax, dword [0x73e5f8]
pop ecx
pop ecx
test eax, eax
je 0x4aaa9a
push eax
call dword [0x705ed8]
jmp 0x4aaa99
cmp dword [ebx + 0x10], 0
mov esi, dword [ebx + 4]
mov eax, dword [ebp - 0x20]
jne 0x4a9129
mov eax, dword [eax + 0x10]
mov ecx, esi
add ecx, ecx
push dword [eax + ecx*8 + 0xc]
call fcn.0049e699
mov ecx, dword [ebp - 0x20]
and dword [ecx + 0x18], 0xffffffef
movzx eax, word [ebx + 2]
push eax
lea eax, [edi + 0x7c]
push eax
push esi
mov esi, ecx
push esi
call fcn.00494146
mov ecx, eax
add esp, 0x14
xor eax, eax
mov dword [ebp - 0x14], ecx
inc eax
or dword [esi + 0x18], eax
and dword [edi + 0x98], 0xfffffffc
jmp 0x4a91f7
push dword [ebx + 0x10]
mov dword [ebp - 0x14c], eax
lea eax, [edi + 0x7c]
mov edi, dword [ebp - 0x20]
mov dword [ebp - 0x144], esi
add esi, esi
mov dword [ebp - 0x148], eax
xor eax, eax
mov dword [ebp - 0x13c], eax
mov ecx, dword [edi + 0x10]
push str.sqlite_master
mov eax, dword [ecx + esi*8 + 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x134], eax
push dword [ecx + esi*8]
push str.SELECTFROM__w_._s_WHERE__s_ORDER_BY_rowid
push edi
call fcn.00496482
mov esi, eax
add esp, 0x14
test esi, esi
je 0x4aaaab
xor eax, eax
inc eax
mov byte [edi + 0xb1], al
xor eax, eax
push eax
mov dword [ebp - 0x140], eax
mov dword [ebp - 0x138], eax
lea eax, [ebp - 0x14c]
push eax
push fcn.00493f1f
push esi
push edi
call fcn.0045b0eb
mov edi, eax
add esp, 0x14
mov dword [ebp - 0x14], edi
test edi, edi
jne 0x4a91dd
mov edi, dword [ebp - 0x140]
mov dword [ebp - 0x14], edi
test edi, edi
jne 0x4a91dd
cmp dword [ebp - 0x138], edi
jne 0x4a91dd
push 0x1855d
call fcn.00488b68
mov edi, eax
pop ecx
mov dword [ebp - 0x14], edi
push esi
mov esi, dword [ebp - 0x20]
push esi
call fcn.00489ef9
mov edi, dword [ebp - 0x1c]
xor eax, eax
pop ecx
pop ecx
mov ecx, dword [ebp - 0x14]
mov byte [esi + 0xb1], al
test ecx, ecx
jne 0x4aaab1
jmp 0x4a5dd0
push dword [ebx + 4]
push dword [ebp - 0x20]
call fcn.00483075
jmp 0x4a8bc8
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebx + 4]
shl eax, 4
add eax, dword [ecx + 0x10]
xor ecx, ecx
push ecx
push dword [ebx + 0x10]
mov eax, dword [eax + 0xc]
push 8
pop ecx
add eax, ecx
push eax
call fcn.004939e3
push eax
push dword [ebp - 0x20]
call fcn.0048acf7
mov ecx, dword [ebp - 0x20]
xor eax, eax
inc eax
add esp, 0x14
or dword [ecx + 0x18], eax
jmp 0x4a5dd3
push dword [ebx + 0x10]
push dword [ebx + 4]
push dword [ebp - 0x20]
call fcn.004a2830
jmp 0x4a5738
push dword [ebx + 0x10]
push dword [ebx + 4]
push dword [ebp - 0x20]
call fcn.004a2893
jmp 0x4a5738
imul edx, dword [ebx + 4], 0x28
imul eax, dword [ebx + 0xc], 0x28
mov ecx, dword [ebx + 0x10]
add edx, dword [ebp - 0x24]
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x30], edx
lea edx, [ebp - 0xcc]
push edx
mov dword [ebp - 0x28], eax
lea edx, [ebp - 0x114]
mov eax, dword [eax]
push edx
mov edx, dword [ebp - 0x20]
inc eax
push eax
push dword [ebx + 8]
lea eax, [ecx + 4]
movzx ecx, word [ebx + 2]
push eax
mov eax, dword [edx + 0x10]
add ecx, ecx
push dword [eax + ecx*8 + 4]
push edx
call fcn.00485dea
push dword [ebp - 0x30]
mov esi, eax
mov dword [ebp - 0x14], esi
call fcn.004ac811
mov eax, dword [ebp - 0x114]
add esp, 0x20
test eax, eax
je 0x4a9305
test esi, esi
jne 0x4aaacb
mov ecx, dword [ebp - 0x28]
dec eax
cdq
sub dword [ecx], eax
mov eax, fcn.0045bc52
push eax
sbb dword [ecx + 4], edx
xor eax, eax
inc eax
push eax
push 0xffffffffffffffff
push 0xffffffffffffffff
push dword [ebp - 0xcc]
push dword [ebp - 0x30]
call fcn.004ac8ee
add esp, 0x18
movzx eax, byte [ebp - 0x60]
push eax
push dword [ebp - 0x30]
call fcn.004a4ad9
pop ecx
pop ecx
jmp 0x4a7184
imul eax, dword [ebx + 4], 0x28
imul ecx, dword [ebx + 8], 0x28
push 0x10
pop edx
add eax, dword [ebp - 0x24]
add ecx, dword [ebp - 0x24]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x30], ecx
test byte [eax + 0x10], dl
jne 0x4a934a
push eax
call fcn.004ac877
pop ecx
test eax, eax
jne 0x4a6909
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x30]
push dword [ecx + 4]
push dword [ecx]
push dword [eax + 8]
call fcn.0049dbb8
jmp 0x4a5738
imul eax, dword [ebx + 4], 0x28
push 0x10
pop ecx
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x28], eax
test byte [eax + 0x10], cl
je 0x4a93a7
lea ecx, [ebp - 0x130]
push ecx
push dword [eax + 8]
call fcn.0049dc04
pop ecx
pop ecx
test eax, eax
je 0x4a93a4
imul eax, dword [ebx + 0xc], 0x28
push dword [ebp - 0x12c]
push dword [ebp - 0x130]
add eax, dword [ebp - 0x24]
push eax
call fcn.004ac7db
add esp, 0xc
jmp 0x4a7184
mov eax, dword [ebp - 0x28]
push eax
call fcn.004ac811
pop ecx
jmp case.0x4a524c.9
imul eax, dword [ebx + 4], 0x28
imul ecx, dword [ebx + 0xc], 0x28
mov edx, dword [ebx + 0x10]
mov dword [ebp - 0x28], edx
add eax, dword [ebp - 0x24]
add ecx, dword [ebp - 0x24]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x30], ecx
test byte [eax + 0x10], 0x10
jne 0x4a93eb
push eax
call fcn.004ac877
pop ecx
test eax, eax
jne 0x4a6909
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x28]
test edx, edx
je 0x4a940d
push dword [ecx + 4]
push dword [ecx]
push edx
push dword [eax + 8]
call fcn.0049dc5a
add esp, 0x10
test eax, eax
jne 0x4aa86b
mov edx, dword [ebp - 0x28]
test edx, edx
js 0x4a5dd3
mov eax, dword [ebp - 0x30]
push dword [eax + 4]
push dword [eax]
mov eax, dword [ebp - 0x3c]
jmp 0x4a934f
imul ecx, dword [ebx + 0xc], 0x28
xor eax, eax
mov edx, dword [ebx + 0x10]
mov dword [ebp - 0x38], edx
add ecx, dword [ebp - 0x24]
mov dword [ebp - 0x28], ecx
cmp word [ebx + 2], ax
je 0x4a9459
mov edx, dword [edx + 0x14]
mov eax, dword [edi + 0xd0]
test eax, eax
je 0x4a9456
cmp dword [eax + 0x18], edx
je 0x4a5dd3
mov eax, dword [eax + 4]
jmp 0x4a9444
mov edx, dword [ebp - 0x38]
mov eax, dword [edi + 0xd8]
mov edi, dword [ebp - 0x20]
cmp eax, dword [edi + 0xa0]
mov edi, dword [ebp - 0x1c]
jge 0x4aaadb
push 0x10
pop eax
test byte [ecx + 0x10], al
jne 0x4a956e
mov eax, dword [ebp - 0x38]
mov edx, dword [edx + 0xc]
mov eax, dword [eax + 8]
add eax, edx
test edx, edx
lea ecx, [eax + 1]
cmovne ecx, eax
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x3c], ecx
imul ecx, ecx, 0xa
mov eax, dword [eax + 4]
add eax, 7
add ecx, edx
mov eax, eax
test eax, eax
jns 0x4a94aa
add eax, 7
sar eax, 3
lea eax, [eax + ecx*4]
add eax, 0x58
mov dword [ebp - 0x58], eax
cdq
push edx
push eax
push dword [ebp - 0x20]
call fcn.0048a0b3
add esp, 0xc
mov dword [ebp - 0x30], eax
test eax, eax
je 0x4a6909
push dword [ebp - 0x28]
call fcn.004ac785
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x58]
sub ebx, dword [ebp - 0x18]
pop ecx
mov dword [eax + 0xc], edx
mov ecx, 0x1010
mov word [eax + 0x10], cx
mov ecx, dword [ebp - 0x30]
mov dword [eax + 8], ecx
mov dword [eax + 0x24], 0x4ab568
mov eax, dword [ebp - 0x3c]
mov dword [ecx + 0x3c], eax
mov eax, dword [ebp - 0x38]
mov dword [ecx], edi
push 0x14
mov eax, dword [eax + 0xc]
mov dword [ecx + 0x40], eax
mov eax, ebx
cdq
pop ecx
idiv ecx
mov edx, dword [ebp - 0x30]
imul ecx, dword [ebp - 0x3c], 0x28
mov ebx, dword [ebp - 0x38]
mov dword [edx + 0x30], eax
mov eax, dword [edi + 0x58]
mov dword [edx + 0xc], eax
add ecx, 0x58
mov eax, dword [edi + 0x14]
add ecx, edx
mov dword [edx + 0x38], eax
mov eax, dword [edi + 0x60]
mov dword [edx + 0x10], eax
mov eax, dword [edi + 0x18]
mov dword [edx + 0x2c], eax
mov eax, dword [edi + 0x68]
mov dword [edx + 8], eax
mov eax, dword [edi + 0x6c]
mov dword [edx + 0x34], eax
mov eax, dword [ebx + 0x14]
mov dword [edx + 0x18], eax
lea eax, [edx + 0x58]
cmp eax, ecx
je 0x4a9574
mov edi, dword [ebp - 0x20]
xor ebx, ebx
mov dword [eax + 0x14], edi
mov word [eax + 0x10], bx
add eax, 0x28
cmp eax, ecx
jne 0x4a9559
mov edi, dword [ebp - 0x1c]
jmp 0x4a9571
mov edx, dword [ecx + 8]
mov ebx, dword [ebp - 0x38]
inc dword [edi + 0xd8]
mov eax, dword [edi + 0xd0]
mov ecx, dword [ebp - 0x20]
mov dword [edx + 4], eax
mov eax, dword [ecx + 0x28]
mov ecx, dword [ecx + 0x2c]
mov dword [edx + 0x20], eax
mov dword [edx + 0x24], ecx
mov eax, dword [edi + 0x28]
mov ecx, dword [edi + 0x2c]
mov dword [edx + 0x48], eax
mov dword [edx + 0x4c], ecx
mov eax, dword [edi]
mov ecx, dword [eax + 0x68]
mov eax, dword [eax + 0x6c]
mov dword [edx + 0x54], eax
mov dword [edx + 0x50], ecx
mov eax, dword [edi + 0xe4]
mov dword [edx + 0x28], eax
xor eax, eax
mov dword [edi + 0xe4], eax
mov dword [edi + 0x28], eax
mov dword [edi + 0x2c], eax
lea eax, [edx + 0x58]
mov dword [edi + 0x58], eax
mov dword [edi + 0xd0], edx
mov ecx, dword [edx + 0x3c]
mov dword [ebp - 0x24], eax
mov dword [edi + 0x14], ecx
movzx eax, word [edx + 0x40]
mov dword [edi + 0x18], eax
lea eax, [edx + 0x58]
imul ecx, ecx, 0x28
add ecx, eax
mov dword [edi + 0x60], ecx
mov eax, dword [ebx + 0xc]
lea ecx, [ecx + eax*4]
mov dword [edx + 0x14], ecx
mov eax, dword [ebx + 4]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
push eax
xor eax, eax
push eax
push ecx
call fcn.00626f50
mov ecx, dword [ebx]
add esp, 0xc
mov dword [edi + 0x68], ecx
mov eax, dword [ebx + 4]
mov dword [ebp - 0x18], ecx
mov dword [edi + 0x6c], eax
lea ebx, [ecx - 0x14]
jmp 0x4a7184
push ebx
push edi
call fcn.0047783e
mov esi, dword [edi + 0xd0]
mov ecx, 0x4000
push ecx
imul edx, dword [esi + 0x30], 0x14
mov ecx, dword [esi + 8]
mov ecx, dword [edx + ecx + 4]
add ecx, dword [ebx + 4]
imul ecx, ecx, 0x28
add ecx, dword [esi + 0xc]
push ecx
push eax
call fcn.004acaf0
add esp, 0x14
jmp 0x4a5dd0
mov ecx, dword [ebp - 0x20]
xor edx, edx
mov eax, dword [ecx + 0x20]
and eax, 0x80000
or eax, edx
mov eax, dword [ebx + 8]
je 0x4a9681
cdq
add dword [ecx + 0x208], eax
adc dword [ecx + 0x20c], edx
jmp 0x4a5dd3
cmp dword [ebx + 4], edx
cdq
je 0x4a9698
add dword [ecx + 0x200], eax
adc dword [ecx + 0x204], edx
jmp 0x4a5dd3
add dword [edi + 0x40], eax
adc dword [edi + 0x44], edx
jmp 0x4a5dd3
xor eax, eax
cmp dword [ebx + 4], eax
je 0x4a96d0
mov ecx, dword [ebp - 0x20]
mov eax, dword [ecx + 0x200]
or eax, dword [ecx + 0x204]
jne 0x4a5dd3
mov eax, dword [ecx + 0x208]
or eax, dword [ecx + 0x20c]
jmp 0x4a64cf
mov eax, dword [edi + 0x40]
or eax, dword [edi + 0x44]
jne 0x4a5dd3
mov ecx, dword [ebp - 0x20]
jmp 0x4a96bf
mov ecx, dword [edi + 0xd0]
test ecx, ecx
jne 0x4a9730
imul eax, dword [ebx + 4], 0x28
add eax, dword [ebp - 0x24]
push eax
mov dword [ebp - 0x28], eax
call fcn.004ac5f6
imul esi, dword [ebx + 8], 0x28
add esi, dword [ebp - 0x24]
push esi
call fcn.004ac5f6
mov eax, dword [ebp - 0x28]
mov edx, dword [esi + 4]
pop ecx
pop ecx
mov ecx, dword [esi]
cmp dword [eax + 4], edx
jg 0x4a5dd0
jl 0x4a8d22
cmp dword [eax], ecx
jae 0x4a5dd0
jmp 0x4a8d22
mov ecx, eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x4a972e
imul eax, dword [ebx + 4], 0x28
add eax, dword [ecx + 0xc]
jmp 0x4a96f2
imul ecx, dword [ebx + 4], 0x28
add ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 4]
mov eax, dword [ecx]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x3c], edx
test edx, edx
jl 0x4a5dd3
jg 0x4a9766
xor edx, edx
cmp eax, edx
jbe 0x4a5dd3
mov eax, dword [ebx + 0xc]
cdq
sub dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
sbb dword [ebp - 0x3c], edx
mov dword [ecx], eax
mov eax, dword [ebp - 0x3c]
mov dword [ecx + 4], eax
jmp 0x4aa86b
imul eax, dword [ebx + 0xc], 0x28
imul esi, dword [ebx + 4], 0x28
push ebx
push edi
add eax, dword [ebp - 0x24]
add esi, dword [ebp - 0x24]
mov dword [ebp - 0x30], eax
call fcn.0047783e
mov edx, dword [esi]
pop ecx
pop ecx
mov ecx, dword [esi + 4]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0xe8], edx
mov dword [ebp - 0xe4], ecx
test ecx, ecx
jl 0x4a9808
jg 0x4a97ba
xor ecx, ecx
cmp edx, ecx
jbe 0x4a9808
mov eax, dword [ebp - 0x30]
xor edx, edx
mov ecx, dword [eax]
mov eax, dword [eax + 4]
cmp eax, edx
jl 0x4a97ce
jg 0x4a97dc
cmp ecx, edx
ja 0x4a97dc
xorps xmm0, xmm0
movlpd qword [ebp - 0x34], xmm0
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x34]
push eax
push ecx
lea eax, [ebp - 0xe8]
push eax
call fcn.00481f08
add esp, 0xc
test eax, eax
jne 0x4a9805
mov eax, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0xe4]
mov edx, dword [ebp - 0x28]
jmp 0x4a842e
mov eax, dword [ebp - 0x28]
or dword [eax], 0xffffffff
or dword [eax + 4], 0xffffffff
jmp 0x4a5dd0
imul ecx, dword [ebx + 4], 0x28
add ecx, dword [ebp - 0x24]
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
mov dword [ebp - 0x28], eax
mov eax, edx
or eax, dword [ebp - 0x28]
je 0x4a5dd3
mov eax, dword [ebp - 0x28]
test eax, eax
jl 0x4aa86b
jg 0x4a9843
test edx, edx
je 0x4aa86b
sub edx, 1
mov dword [ecx], edx
sbb eax, 0
jmp 0x4a9778
imul edx, dword [ebx + 4], 0x28
add edx, dword [ebp - 0x24]
mov ecx, dword [edx + 4]
mov eax, dword [edx]
cmp ecx, 0x80000000
jl 0x4a9875
jg 0x4a986a
test eax, eax
je 0x4a9875
sub eax, 1
mov dword [edx], eax
sbb ecx, 0
mov dword [edx + 4], ecx
or eax, ecx
jmp 0x4a64cf
movzx eax, word [ebx + 2]
xor ecx, ecx
mov dword [ebp - 0x28], eax
push ecx
lea eax, [eax*4 + 0x44]
push eax
push dword [ebp - 0x20]
call fcn.00489fc0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x4a6909
mov eax, dword [ebp - 0x28]
xor edx, edx
add eax, 7
mov dword [esi + 8], edx
push 0x14
lea ecx, [esi + eax*4]
xor eax, eax
inc eax
mov dword [esi], ecx
mov word [ecx + 0x10], ax
mov eax, dword [ebp - 0x20]
mov dword [ecx + 0x14], eax
mov dword [ecx + 0x18], edx
mov eax, dword [ebx + 0x10]
mov dword [esi + 4], eax
mov eax, ebx
sub eax, dword [ebp - 0x18]
cdq
pop ecx
idiv ecx
mov dword [esi + 0xc], edi
mov dword [esi + 0x10], eax
xor eax, eax
mov byte [esi + 0x19], al
mov dword [esi + 0x14], eax
mov al, byte [ebp - 0x60]
mov byte [esi + 0x18], al
mov eax, dword [ebp - 0x28]
mov byte [esi + 0x1a], al
mov word [ebx], 0xf1a3
mov dword [ebx + 0x10], esi
imul edx, dword [ebx + 0xc], 0x28
mov esi, dword [ebx + 0x10]
add edx, dword [ebp - 0x24]
mov dword [ebp - 0x28], edx
cmp dword [esi + 8], edx
je 0x4a9937
movzx ecx, byte [esi + 0x1a]
sub ecx, 1
mov dword [esi + 8], edx
js 0x4a9937
lea edi, [ecx + 7]
push 4
lea edi, [esi + edi*4]
pop edx
mov eax, dword [ebx + 8]
add eax, ecx
imul eax, eax, 0x28
add eax, dword [ebp - 0x24]
mov dword [edi], eax
sub edi, edx
sub ecx, 1
jns 0x4a991d
mov edi, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x28]
inc dword [edx + 0xc]
lea eax, [esi + 0x1c]
cmp dword [ebx + 4], 0
movzx edx, byte [esi + 0x1a]
mov ecx, dword [esi + 4]
push eax
push edx
push esi
je 0x4a9952
call dword [ecx + 0x1c]
jmp 0x4a9955
call dword [ecx + 0x10]
mov eax, dword [esi + 0x14]
add esp, 0xc
test eax, eax
je 0x4a5dd0
jle 0x4a9984
push dword [esi]
call fcn.0045d661
push eax
push 0x66bf70
push edi
call fcn.004a5103
mov edi, dword [esi + 0x14]
add esp, 0x10
mov dword [ebp - 0x14], edi
mov edi, dword [ebp - 0x1c]
cmp byte [esi + 0x19], 0
je 0x4a99aa
mov eax, dword [ebx - 0x10]
test eax, eax
je 0x4a99a5
xor ecx, ecx
imul eax, eax, 0x28
push ecx
inc ecx
push ecx
add eax, dword [ebp - 0x24]
push eax
call fcn.004ac7db
add esp, 0xc
xor eax, eax
mov byte [esi + 0x19], al
push dword [esi]
call fcn.004ac785
mov eax, dword [esi]
pop ecx
xor ecx, ecx
inc ecx
mov word [eax + 0x10], cx
xor eax, eax
mov dword [esi + 0x14], eax
jmp 0x4a7876
imul eax, dword [ebx + 4], 0x28
mov edx, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x10]
mov dword [ebp - 0x30], ecx
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x28], eax
test edx, edx
je 0x4a9a39
xor eax, eax
imul esi, edx, 0x28
push 0x20
push eax
lea eax, [ebp - 0x108]
push eax
add esi, dword [ebp - 0x24]
call fcn.00626f50
push esi
call fcn.004ac811
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x100], eax
mov dword [ebp - 0x108], esi
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x104], ecx
mov al, byte [eax + 0x54]
mov byte [ebp - 0xf0], al
lea eax, [ebp - 0x108]
push eax
call dword [ecx + 0x18]
imul ecx, dword [ebx + 0xc], 0x28
add esp, 0x14
mov esi, dword [ebp - 0xf4]
add ecx, dword [ebp - 0x24]
jmp 0x4a9a47
push ecx
push eax
call fcn.004ac34c
pop ecx
pop ecx
mov ecx, dword [ebp - 0x28]
mov esi, eax
mov dword [ebp - 0x14], esi
test esi, esi
jne 0x4aaafb
movzx eax, byte [ebp - 0x60]
push eax
push ecx
call fcn.004a4ad9
jmp 0x4a8f99
or dword [ebp - 8], 0xffffffff
xor eax, eax
or dword [ebp - 0xc], 0xffffffff
mov dword [ebp - 0x10], eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0xc]
push eax
push dword [ebx + 8]
push dword [ebx + 4]
push dword [ebp - 0x20]
call fcn.00487510
mov ecx, eax
add esp, 0x14
mov dword [ebp - 0x14], ecx
test ecx, ecx
je 0x4a9aab
push 5
pop eax
cmp ecx, eax
jne 0x4a5e2e
xor eax, eax
xor ecx, ecx
mov esi, eax
inc ecx
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x10], ecx
jmp 0x4a9aad
xor eax, eax
imul edi, dword [ebx + 0xc], 0x28
mov esi, eax
add edi, dword [ebp - 0x24]
mov eax, dword [ebp + esi*4 - 0x10]
cdq
push edx
push eax
push edi
call fcn.004ac7db
add esp, 0xc
add edi, 0x28
inc esi
cmp esi, 3
jl 0x4a9ab6
jmp 0x4a5561
push ebx
push edi
call fcn.0047783e
mov edx, dword [ebx + 4]
mov dword [ebp - 0x30], eax
add edx, edx
mov eax, dword [ebp - 0x20]
cmp dword [ebx + 0xc], 0xffffffff
pop ecx
pop ecx
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx + edx*8 + 4]
mov dword [ebp - 0x28], eax
mov ecx, dword [eax + 4]
mov edi, dword [ecx]
mov dword [ebp - 0x38], edi
movzx edx, byte [edi + 5]
mov ecx, edx
mov dword [ebp - 0x48], edx
cmovne ecx, dword [ebx + 0xc]
cmp byte [edi + 0x11], 3
mov dword [ebp - 0x40], ecx
jae 0x4a9b2a
mov eax, dword [edi + 0x44]
cmp dword [eax], 0
je 0x4a9b2f
xor eax, eax
cmp dword [edi + 0x54], eax
jg 0x4a9b2a
jl 0x4a9b2f
cmp dword [edi + 0x50], eax
jbe 0x4a9b2f
mov ecx, edx
mov dword [ebp - 0x40], edx
xor eax, eax
inc eax
push eax
push edi
call fcn.0049780a
add esp, 8
cmp ecx, 5
jne 0x4a9b67
push eax
call fcn.004a156e
pop ecx
test eax, eax
je 0x4a9b57
push edi
call fcn.0049873c
pop ecx
test eax, eax
jne 0x4a9b61
mov eax, dword [ebp - 0x48]
mov ecx, eax
jmp 0x4a9c05
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x48]
cmp ecx, edx
je 0x4a9c02
push 5
pop eax
cmp edx, eax
je 0x4a9b7e
cmp ecx, eax
jne 0x4a9c02
mov eax, dword [ebp - 0x20]
cmp byte [eax + 0x55], 0
je 0x4aab15
cmp dword [eax + 0xc0], 1
jg 0x4aab15
push 5
pop ecx
cmp edx, ecx
jne 0x4a9bc2
push eax
push edi
call fcn.0049752a
mov edi, eax
pop ecx
mov dword [ebp - 0x14], edi
test edi, edi
mov edi, dword [ebp - 0x38]
pop ecx
jne 0x4a9c0e
mov esi, dword [ebp - 0x40]
push esi
push edi
call fcn.004982bd
pop ecx
pop ecx
jmp 0x4a9bdf
push 4
pop eax
cmp edx, eax
jne 0x4a9bd5
push 2
pop eax
push eax
push edi
call fcn.004982bd
pop ecx
pop ecx
mov edi, dword [ebp - 0x38]
test esi, esi
jne 0x4a9c0e
mov esi, dword [ebp - 0x40]
push 5
pop ecx
xor eax, eax
cmp esi, ecx
sete al
inc eax
push eax
push dword [ebp - 0x28]
call fcn.00486da6
pop ecx
mov esi, eax
mov eax, dword [ebp - 0x48]
pop ecx
mov ecx, dword [ebp - 0x40]
mov dword [ebp - 0x14], esi
jmp 0x4a9c08
mov eax, dword [ebp - 0x48]
mov edi, dword [ebp - 0x38]
test esi, esi
je 0x4a9c13
jmp 0x4a9c11
mov eax, dword [ebp - 0x48]
mov ecx, eax
push ecx
push edi
call fcn.004982bd
mov esi, dword [ebp - 0x30]
pop ecx
pop ecx
mov ecx, 0x2202
mov word [esi + 0x10], cx
cmp eax, 6
jne 0x4a9c31
xor eax, eax
jmp 0x4a9c38
mov eax, dword [eax*4 + 0x691260]
push eax
mov dword [esi + 8], eax
call fcn.004a156e
mov dword [esi + 0xc], eax
xor eax, eax
inc eax
mov byte [esi + 0x12], al
movzx eax, byte [ebp - 0x60]
push eax
push esi
call fcn.004a4ad9
mov ecx, dword [ebp - 0x14]
add esp, 0xc
test ecx, ecx
jne 0x4a5e2e
jmp 0x4a5561
mov eax, dword [ebx + 8]
test eax, eax
je 0x4a9c77
imul eax, eax, 0x28
add eax, dword [ebp - 0x24]
jmp 0x4a9c79
xor eax, eax
push eax
push dword [ebx + 4]
lea eax, [edi + 0x7c]
push dword [ebp - 0x20]
push eax
call fcn.0049e1a1
jmp 0x4a85da
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebx + 4]
add ecx, ecx
mov eax, dword [eax + 0x10]
push dword [eax + ecx*8 + 4]
call fcn.00485553
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
test ecx, ecx
je 0x4a5dd0
cmp ecx, 0x65
jne 0x4a5e2e
xor eax, eax
mov esi, eax
mov dword [ebp - 0x14], esi
jmp 0x4aa86b
xor eax, eax
cmp dword [ebx + 4], eax
jne 0x4a9cdc
push dword [ebx + 8]
push dword [ebp - 0x20]
call fcn.0048be29
jmp 0x4a8f99
mov ecx, dword [ebx + 8]
mov eax, dword [edi + 0x98]
inc ecx
xor ecx, eax
and ecx, 3
xor ecx, eax
mov dword [edi + 0x98], ecx
jmp 0x4a5dd3
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + 0x2c]
or byte [eax + 1], 0x40
jmp 0x4a5dd3
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + 0x2c]
and byte [eax + 1], 0xbf
jmp 0x4a5dd3
mov al, byte [ebx + 0xc]
mov edx, dword [ebp - 0x20]
mov byte [ebp - 0x118], al
test al, al
jne 0x4a9d44
mov eax, dword [edx + 0x24]
push 4
pop ecx
and eax, ecx
xor ecx, ecx
cmp eax, ecx
jne 0x4a5dd3
mov ecx, dword [ebx + 4]
push dword [ebp - 0x118]
mov eax, dword [edx + 0x10]
add ecx, ecx
push dword [ebx + 8]
push dword [eax + ecx*8 + 4]
call fcn.00486206
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0x14], ecx
test ecx, ecx
je 0x4a5dd0
cmp cl, 6
jne 0x4a5e2e
push dword [ebx + 0x10]
push str.database_table_is_locked:__s
push edi
call fcn.004a5103
add esp, 0xc
jmp 0x4aaa39
mov esi, dword [ebx + 0x10]
push esi
push dword [ebp - 0x20]
call fcn.004ae4e6
pop ecx
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
test esi, esi
je 0x4a5eaf
push dword [esi + 8]
push edi
call fcn.004aeba5
pop ecx
pop ecx
jmp 0x4a7876
xor eax, eax
push 0x28
push eax
lea eax, [ebp - 0x2bc]
push eax
call fcn.00626f50
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x2a8], eax
imul eax, dword [ebx + 8], 0x28
add eax, dword [ebp - 0x24]
push eax
lea eax, [ebp - 0x2bc]
push eax
call fcn.004ac288
mov edi, eax
xor eax, eax
inc eax
mov dword [ebp - 0x14], edi
push eax
lea eax, [ebp - 0x2bc]
push eax
call fcn.004a468d
mov esi, dword [ebp - 0x1c]
add esp, 0x1c
test eax, eax
je 0x4a9e1d
lea ecx, [esi + 0x7c]
push ecx
push eax
push dword [ebx + 4]
push dword [ebp - 0x20]
call fcn.004ae6e2
mov edi, eax
add esp, 0x10
mov dword [ebp - 0x14], edi
lea eax, [ebp - 0x2bc]
push eax
call fcn.004ac785
pop ecx
mov ecx, dword [ebp - 0x14]
test ecx, ecx
jne 0x4a5e31
jmp 0x4a5561
mov esi, dword [ebp - 0x20]
inc dword [esi + 0xcc]
push dword [ebx + 0x10]
push dword [ebx + 4]
push esi
call fcn.004ae79a
add esp, 0xc
dec dword [esi + 0xcc]
jmp 0x4a5eaa
xor eax, eax
mov dword [ebp - 0xc8], eax
mov eax, dword [ebx + 0x10]
mov esi, dword [eax + 8]
test esi, esi
je 0x4aab53
mov eax, dword [esi]
mov dword [ebp - 0x28], eax
test eax, eax
je 0x4aab53
lea ecx, [ebp - 0xc8]
push ecx
push esi
call dword [eax + 0x18]
mov edi, eax
mov dword [ebp - 0x14], edi
mov edi, dword [ebp - 0x1c]
push esi
push edi
call fcn.004aeba5
mov ecx, dword [ebp - 0x14]
add esp, 0x10
test ecx, ecx
jne 0x4a69db
mov eax, dword [ebp - 0xc8]
push 2
mov dword [eax], esi
pop eax
push eax
xor eax, eax
push eax
push dword [ebx + 4]
push edi
call fcn.0045edb2
add esp, 0x10
test eax, eax
je 0x4aab41
mov ecx, dword [ebp - 0xc8]
mov dword [eax + 0x2c], ecx
inc dword [esi + 4]
jmp 0x4a5dd0
xor eax, eax
mov dword [ebp - 0xa0], eax
imul eax, dword [ebx + 8], 0x28
add eax, dword [ebp - 0x24]
push eax
mov dword [ebp - 0x30], eax
call fcn.004ac811
pop ecx
mov ecx, dword [ebx + 0x10]
mov dword [ebp - 0x28], ecx
mov eax, dword [ecx + 0x34]
test eax, eax
je 0x4a5dd3
mov edx, dword [eax + 8]
mov esi, dword [edx]
inc dword [eax + 0xc]
lea eax, [ebp - 0xa0]
push eax
push dword [ebx + 0xc]
mov eax, dword [ebp - 0x20]
push dword [ecx]
mov ecx, dword [ebx + 4]
add ecx, ecx
mov eax, dword [eax + 0x10]
push dword [eax + ecx*8]
push edx
call dword [esi + 0x60]
mov edi, eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x14], edi
push dword [eax + 0x34]
call fcn.004aee0d
mov ecx, edi
add esp, 0x18
test ecx, ecx
jne 0x4aab5a
mov edi, dword [ebp - 0xa0]
test edi, edi
je 0x4aa64a
mov esi, dword [ebp - 0x30]
mov eax, dword [esi + 0x14]
test eax, eax
je 0x4a9f69
mov eax, dword [eax + 0x78]
mov dword [ebp - 0x28], eax
jmp 0x4a9f70
mov dword [ebp - 0x28], 0x3b9aca00
push edi
call fcn.00631510
pop ecx
mov ecx, eax
mov dword [ebp - 0x30], 0x202
mov eax, dword [ebp - 0x28]
cdq
mov dword [ebp - 0x3c], ecx
cmp dword [ebp - 0x11c], edx
jl 0x4aa01f
jg 0x4a9f9d
cmp ecx, eax
jbe 0x4aa01f
mov eax, fcn.0045bc52
cmp eax, 0xffffffff
je 0x4aa00a
cmp eax, fcn.00496c85
jne 0x4a9fba
push edi
push dword [esi + 0x14]
call fcn.00489ef9
pop ecx
jmp 0x4aa009
cmp dword [0x705e80], 0
je 0x4aa002
mov eax, dword [0x73e5f8]
test eax, eax
je 0x4a9fd4
push eax
call dword [0x705ed0]
pop ecx
push edi
call dword [0x705eac]
sub dword [0x73e590], eax
dec dword [0x73e5b4]
push edi
call dword [0x705ea4]
mov eax, dword [0x73e5f8]
pop ecx
pop ecx
test eax, eax
je 0x4aa00a
push eax
call dword [0x705ed8]
jmp 0x4aa009
push edi
call dword [0x705ea4]
pop ecx
push esi
call fcn.004ac811
push 0x12
push dword [esi + 0x14]
call fcn.0048bb9c
jmp 0x4a68c4
mov eax, fcn.0045bc52
cmp eax, 0xffffffff
jne 0x4aa06e
mov eax, ecx
xor ecx, ecx
inc ecx
push 0
add eax, ecx
pop edx
mov ecx, edx
mov dword [ebp - 0x28], eax
adc ecx, edx
jne 0x4aa049
cmp eax, 0x20
ja 0x4aa049
push 0x20
pop eax
mov dword [ebp - 0x58], edx
jmp 0x4aa04c
mov dword [ebp - 0x58], ecx
push eax
push esi
call fcn.004ac25d
pop ecx
pop ecx
test eax, eax
jne 0x4aa64a
push dword [ebp - 0x28]
push edi
push dword [esi + 8]
call fcn.006269d0
add esp, 0xc
jmp 0x4aa0a1
push esi
call fcn.004ac785
mov eax, fcn.0045bc52
mov dword [esi + 8], edi
pop ecx
cmp eax, fcn.00496c85
jne 0x4aa097
push edi
push dword [esi + 0x14]
mov dword [esi + 0x20], edi
call fcn.0048a074
pop ecx
pop ecx
mov dword [esi + 0x18], eax
jmp 0x4aa0a1
mov dword [esi + 0x24], eax
mov dword [ebp - 0x30], 0x1202
mov eax, dword [ebp - 0x3c]
and eax, 0x7fffffff
mov dword [esi + 0xc], eax
mov eax, dword [ebp - 0x30]
mov word [esi + 0x10], ax
xor eax, eax
inc eax
mov byte [esi + 0x12], al
jmp 0x4a5561
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x28], eax
xor eax, eax
push eax
push 8
pop eax
push eax
call fcn.0045bbe7
mov dword [ebp - 0x30], eax
pop ecx
pop ecx
test eax, eax
je 0x4a6909
mov ecx, dword [ebp - 0x28]
push ebx
push edi
mov ecx, dword [ecx + 0x2c]
mov dword [eax], ecx
imul ecx, dword [ebx + 0xc], 0x28
add ecx, dword [ebp - 0x24]
mov dword [eax + 4], ecx
call fcn.0047783e
push 0x4ae450
push str.ValueList
push dword [ebp - 0x30]
xor ecx, ecx
inc ecx
push eax
mov word [eax + 0x10], cx
call fcn.004ac834
add esp, 0x18
jmp 0x4a5dd3
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
imul edx, dword [ebx + 0xc], 0x28
mov edi, dword [edi + 0x5c]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x58], eax
add edx, dword [ebp - 0x24]
mov esi, dword [eax + 0x2c]
mov ecx, dword [edx + 0x28]
mov eax, dword [esi]
mov dword [ebp - 0x3c], eax
mov eax, dword [eax]
mov dword [ebp - 0x28], eax
mov eax, dword [edx]
mov dword [ebp - 0x30], eax
xor eax, eax
test ecx, ecx
jle 0x4aa15d
add edx, 0x50
mov dword [edi + eax*4], edx
inc eax
add edx, 0x28
cmp eax, ecx
jl 0x4aa152
mov eax, dword [ebp - 0x28]
push edi
push ecx
push dword [ebx + 0x10]
push dword [ebp - 0x30]
push esi
call dword [eax + 0x20]
push dword [ebp - 0x3c]
mov edi, eax
mov dword [ebp - 0x14], edi
mov edi, dword [ebp - 0x1c]
push edi
call fcn.004aeba5
mov ecx, dword [ebp - 0x14]
add esp, 0x1c
test ecx, ecx
jne 0x4a69db
mov eax, dword [ebp - 0x28]
push esi
call dword [eax + 0x28]
pop ecx
mov ecx, dword [ebp - 0x58]
xor edx, edx
mov byte [ecx + 2], dl
test eax, eax
je 0x4a5dd0
jmp 0x4a89ef
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 4]
mov ecx, dword [eax + ecx*4]
imul eax, dword [ebx + 0xc], 0x28
mov dword [ebp - 0x30], ecx
add eax, dword [ebp - 0x24]
cmp byte [ecx + 2], 0
mov dword [ebp - 0x28], eax
jne 0x4a64bb
mov eax, dword [ecx + 0x2c]
push 0x20
mov eax, dword [eax]
mov dword [ebp - 0x3c], eax
mov edi, dword [eax]
xor eax, eax
push eax
lea eax, [ebp - 0x1d4]
push eax
call fcn.00626f50
mov al, byte [ebp - 0x60]
xor ecx, ecx
mov esi, dword [ebp - 0x28]
inc ecx
mov byte [ebp - 0x1bc], al
add esp, 0xc
xor eax, eax
mov dword [ebp - 0x1d4], esi
mov dword [ebp - 0x2dc], eax
lea eax, [ebp - 0x2e4]
mov dword [ebp - 0x2e0], 0x1000000
mov dword [ebp - 0x1d0], eax
test byte [ebx + 2], cl
je 0x4aa230
push esi
call fcn.004ac811
xor eax, eax
mov dword [esi], eax
mov eax, 0x401
pop ecx
jmp 0x4aa242
mov ax, word [esi + 0x10]
mov edx, 0xf241
and ax, dx
or ax, cx
movzx eax, ax
mov word [esi + 0x10], ax
lea eax, [ebp - 0x1d4]
push dword [ebx + 8]
push eax
mov eax, dword [ebp - 0x30]
push dword [eax + 0x2c]
call dword [edi + 0x2c]
push dword [ebp - 0x3c]
mov edi, eax
mov dword [ebp - 0x14], edi
mov edi, dword [ebp - 0x1c]
push edi
call fcn.004aeba5
add esp, 0x14
cmp dword [ebp - 0x1c0], 0
jle 0x4aa297
push esi
call fcn.0045d661
push eax
push 0x66bf70
push edi
call fcn.004a5103
mov edi, dword [ebp - 0x1c0]
add esp, 0x10
mov dword [ebp - 0x14], edi
mov edi, dword [ebp - 0x1c]
movzx eax, byte [ebp - 0x60]
push eax
push esi
call fcn.004a4ad9
jmp 0x4a9db1
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x28], eax
cmp byte [eax + 2], 0
jne 0x4a5dd3
mov eax, dword [eax + 0x2c]
push eax
mov esi, dword [eax]
mov ecx, dword [esi]
mov dword [ebp - 0x30], ecx
call dword [ecx + 0x24]
mov edi, eax
mov dword [ebp - 0x14], edi
mov edi, dword [ebp - 0x1c]
push esi
push edi
call fcn.004aeba5
mov ecx, dword [ebp - 0x14]
add esp, 0xc
test ecx, ecx
jne 0x4a69db
mov eax, dword [ebp - 0x28]
push dword [eax + 0x2c]
mov eax, dword [ebp - 0x30]
call dword [eax + 0x28]
mov esi, dword [ebp - 0x14]
pop ecx
test eax, eax
jne 0x4a7184
xor edx, edx
imul eax, dword [ebx + 8], 0x14
mov ebx, dword [ebp - 0x18]
add ebx, 0xffffffec
add ebx, eax
jmp 0x4a7186
mov ecx, dword [ebp - 0x20]
mov edx, 0x4000000
mov eax, dword [ecx + 0x20]
or dword [ecx + 0x20], edx
and eax, edx
mov dword [ebp - 0x28], eax
mov eax, dword [ecx + 0x24]
mov dword [ecx + 0x24], eax
mov eax, dword [ebx + 0x10]
imul esi, dword [ebx + 4], 0x28
mov edi, dword [eax + 8]
xor eax, eax
inc eax
mov dword [ebp - 0x30], edi
add esi, dword [ebp - 0x24]
push eax
push esi
call fcn.004a4ad9
pop ecx
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
test ecx, ecx
jne 0x4a5e2e
push dword [esi + 8]
mov eax, dword [edi]
push edi
call dword [eax + 0x4c]
cmp dword [ebp - 0x28], 0
mov edi, eax
pop ecx
pop ecx
mov dword [ebp - 0x14], edi
jne 0x4aa37b
mov ecx, dword [ebp - 0x20]
mov eax, dword [ecx + 0x24]
and dword [ecx + 0x20], 0xfbffffff
mov dword [ecx + 0x24], eax
push dword [ebp - 0x30]
mov edi, dword [ebp - 0x1c]
push edi
call fcn.004aeba5
and dword [edi + 0x98], 0xfffffffc
pop ecx
pop ecx
mov ecx, dword [ebp - 0x14]
test ecx, ecx
jne 0x4a69db
jmp 0x4a5dd0
mov eax, dword [ebp - 0x20]
xorps xmm0, xmm0
movlpd qword [ebp - 0x124], xmm0
cmp byte [eax + 0x57], 0
jne 0x4a690c
mov eax, dword [ebx + 0x10]
mov edx, dword [eax + 8]
mov dword [ebp - 0x3c], edx
test edx, edx
je 0x4aab53
mov ecx, dword [edx]
mov dword [ebp - 0x30], ecx
test ecx, ecx
je 0x4aab53
mov eax, dword [ebx + 8]
mov dword [ebp - 0x28], eax
xor eax, eax
cmp dword [ecx + 0x34], eax
je 0x4a5dd3
mov eax, dword [ebp - 0x20]
xor ecx, ecx
mov esi, dword [ebp - 0x28]
mov edi, dword [edi + 0x5c]
mov al, byte [eax + 0x5c]
mov byte [ebp - 0x49], al
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0x24]
test esi, esi
jle 0x4aa40e
mov dword [edi + ecx*4], eax
add eax, 0x28
inc ecx
cmp ecx, esi
jl 0x4aa403
mov ecx, dword [ebp - 0x20]
mov al, byte [ebx + 2]
mov byte [ecx + 0x5c], al
lea eax, [ebp - 0x124]
push eax
mov eax, dword [ebp - 0x30]
push edi
push esi
push edx
call dword [eax + 0x34]
mov esi, dword [ebp - 0x20]
mov edi, eax
push dword [ebp - 0x3c]
mov al, byte [ebp - 0x49]
mov dword [ebp - 0x14], edi
mov edi, dword [ebp - 0x1c]
push edi
mov byte [esi + 0x5c], al
call fcn.004aeba5
mov ecx, dword [ebp - 0x14]
add esp, 0x18
test ecx, ecx
jne 0x4aa469
xor edx, edx
cmp dword [ebx + 4], edx
je 0x4aa490
mov ecx, dword [ebp - 0x120]
mov eax, dword [ebp - 0x124]
mov dword [esi + 0x2c], ecx
mov ecx, dword [ebp - 0x14]
mov dword [esi + 0x28], eax
jmp 0x4aa490
cmp cl, 0x13
jne 0x4aa48e
mov eax, dword [ebx + 0x10]
cmp byte [eax + 0x10], 0
je 0x4aa48e
movzx edx, word [ebx + 2]
push 4
pop eax
cmp dx, ax
jne 0x4aabda
xor eax, eax
jmp 0x4a7a3c
xor edx, edx
xor eax, eax
inc eax
add dword [edi + 0x28], eax
adc dword [edi + 0x2c], edx
jmp 0x4aa393
push ebx
push edi
call fcn.0047783e
mov edx, dword [ebx + 4]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x20]
add edx, edx
mov ecx, dword [ecx + 0x10]
mov ecx, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + 4]
mov ecx, dword [ecx + 0x30]
mov dword [eax], ecx
xor ecx, ecx
jmp 0x4a53c2
push ebx
push edi
call fcn.0047783e
mov edx, dword [ebx + 4]
mov dword [ebp - 0x30], eax
add edx, edx
mov eax, dword [ebp - 0x20]
pop ecx
pop ecx
mov ecx, dword [eax + 0x10]
xor eax, eax
mov esi, eax
mov ecx, dword [ecx + edx*8 + 4]
mov edx, dword [ebx + 0xc]
mov dword [ebp - 0x28], ecx
test edx, edx
je 0x4aa4f9
mov eax, dword [ecx + 4]
mov esi, dword [eax + 0x30]
cmp esi, edx
cmovb esi, edx
push ecx
call fcn.00485447
pop ecx
mov ecx, dword [ebp - 0x28]
mov eax, dword [ecx + 4]
mov eax, dword [eax]
test esi, esi
je 0x4aa512
mov dword [eax + 0xa0], esi
mov esi, dword [eax + 0xa0]
push ecx
call fcn.004861d6
mov eax, dword [ebp - 0x30]
pop ecx
xor ecx, ecx
mov dword [eax], esi
mov dword [eax + 4], ecx
jmp 0x4a5dd0
imul edx, dword [ebx + 0xc], 0x28
mov esi, dword [ebx + 0x10]
mov dword [ebp - 0x58], esi
add edx, dword [ebp - 0x24]
mov dword [ebp - 0x28], edx
cmp dword [esi], edx
je 0x4aa579
movzx ecx, byte [esi + 0x1a]
sub ecx, 1
mov al, byte [ebp - 0x60]
mov dword [esi + 0xc], edi
mov dword [esi], edx
mov byte [esi + 0x18], al
js 0x4aa579
lea edi, [ecx + 7]
push 4
lea edi, [esi + edi*4]
pop edx
mov eax, dword [ebx + 8]
add eax, ecx
imul eax, eax, 0x28
add eax, dword [ebp - 0x24]
mov dword [edi], eax
sub edi, edx
sub ecx, 1
jns 0x4aa55f
mov edi, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x28]
mov ax, word [edx + 0x10]
mov ecx, 0xf241
and ax, cx
xor ecx, ecx
inc ecx
or ax, cx
mov word [edx + 0x10], ax
lea eax, [esi + 0x1c]
mov ecx, dword [esi + 4]
push eax
movzx eax, byte [esi + 0x1a]
push eax
push esi
call dword [ecx + 0x10]
mov eax, dword [esi + 0x14]
add esp, 0xc
test eax, eax
je 0x4a5dd0
jle 0x4aa5cf
push dword [ebp - 0x28]
call fcn.0045d661
push eax
push 0x66bf70
push edi
call fcn.004a5103
mov edi, dword [esi + 0x14]
add esp, 0x10
mov dword [ebp - 0x14], edi
mov edi, dword [ebp - 0x1c]
mov eax, dword [esi + 0x10]
mov edx, dword [ebx + 4]
mov dword [ebp - 0x30], eax
lea eax, [edi + 0xe4]
mov esi, dword [eax]
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x28], eax
test esi, esi
je 0x4aa63d
mov ebx, dword [ebp - 0x30]
mov edi, eax
test ebx, ebx
js 0x4aa611
cmp dword [esi], ebx
jne 0x4aa60c
mov ecx, dword [esi + 4]
test ecx, ecx
js 0x4aa60c
cmp ecx, 0x1f
jg 0x4aa611
xor eax, eax
inc eax
shl eax, cl
test edx, eax
je 0x4aa611
lea edi, [esi + 0x10]
jmp 0x4aa631
mov eax, dword [esi + 0xc]
test eax, eax
je 0x4aa61e
push dword [esi + 8]
call eax
pop ecx
mov eax, dword [esi + 0x10]
push esi
push dword [ebp - 0x20]
mov dword [edi], eax
call fcn.00489ef9
mov edx, dword [ebp - 0x3c]
pop ecx
pop ecx
mov esi, dword [edi]
test esi, esi
jne 0x4aa5ef
mov ebx, dword [ebp - 0x54]
mov edi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x58]
xor ecx, ecx
mov dword [eax + 0x14], ecx
jmp 0x4a7876
mov edi, dword [ebp - 0x1c]
jmp 0x4a5dd0
imul eax, dword [ebx + 4], 0x28
mov ecx, 0xf7ff
add eax, dword [ebp - 0x24]
and word [eax + 0x10], cx
jmp 0x4a5dd3
imul eax, dword [ebx + 4], 0x28
mov edx, 0x800
imul ecx, dword [ebx + 8], 0x28
add eax, dword [ebp - 0x24]
add ecx, dword [ebp - 0x24]
test word [eax + 0x10], dx
je 0x4a5ba2
movzx eax, byte [eax + 0x13]
cdq
push edx
push eax
push ecx
jmp 0x4a5755
imul eax, dword [ebx + 4], 0x28
xor edx, edx
imul ecx, dword [ebx + 8], 0x28
inc edx
add eax, dword [ebp - 0x24]
add ecx, dword [ebp - 0x24]
test byte [eax + 0x10], dl
je 0x4aa6b5
mov eax, 0xf7ff
and word [ecx + 0x10], ax
jmp 0x4a5dd3
mov edx, 0x800
or word [ecx + 0x10], dx
mov al, byte [eax]
mov byte [ecx + 0x13], al
jmp 0x4a5dd3
imul edi, dword [ebx + 4], 0x28
mov eax, dword [ebp - 0x24]
push ebx
push eax
add edi, eax
call fcn.0046ba47
pop ecx
mov esi, eax
mov eax, dword [edi + 0xc]
pop ecx
mov ecx, edx
shl eax, 3
cdq
push edx
push eax
push ecx
push esi
call fcn.005feba0
mov esi, eax
and eax, 7
shrd esi, edx, 3
mov edx, dword [edi + 8]
movsx ecx, byte [esi + edx]
bts ecx, eax
mov byte [esi + edx], cl
jmp 0x4a5561
imul ebx, dword [ebx + 4], 0x28
mov eax, dword [ebp - 0x24]
push dword [ebp - 0x54]
push eax
add ebx, eax
call fcn.0046ba47
pop ecx
mov esi, eax
mov eax, dword [ebx + 0xc]
pop ecx
mov ecx, edx
shl eax, 3
cdq
push edx
push eax
push ecx
push esi
call fcn.005feba0
mov ecx, dword [ebx + 8]
mov edi, eax
mov ebx, dword [ebp - 0x54]
mov esi, edi
shrd esi, edx, 3
and edi, 7
xor eax, eax
inc eax
movsx edx, byte [esi + ecx]
mov ecx, edi
mov edi, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x14]
shl eax, cl
test eax, edx
jne 0x4aa762
inc dword [edi + 0xc4]
jmp 0x4aa86b
inc dword [edi + 0xc0]
jmp 0x4a5dd3
mov eax, dword [ebp - 0x20]
mov cl, byte [eax + 0x5e]
test cl, 0x41
je 0x4aa823
cmp byte [edi + 0x95], 0xfe
je 0x4aa823
mov eax, dword [ebx + 0x10]
test eax, eax
jne 0x4aa79e
mov eax, dword [edi + 0xc8]
test eax, eax
je 0x4aa823
push eax
test cl, 0x40
je 0x4aa7ca
push edi
call fcn.004ab157
mov esi, eax
mov eax, dword [ebp - 0x20]
push esi
push dword [eax + 0xdc]
call dword [eax + 0xd8]
push esi
call fcn.0045bc52
mov esi, dword [ebp - 0x14]
add esp, 0x14
jmp 0x4aa823
mov ecx, dword [ebp - 0x20]
xor edx, edx
inc edx
cmp dword [ecx + 0xc8], edx
jle 0x4aa812
push str.____s
push ecx
call fcn.00496482
push eax
mov dword [ebp - 0x28], eax
xor ecx, ecx
mov eax, dword [ebp - 0x20]
inc ecx
push edi
push dword [eax + 0xdc]
push ecx
call dword [eax + 0xd8]
mov eax, dword [ebp - 0x28]
add esp, 0x1c
test eax, eax
je 0x4aa823
push eax
push dword [ebp - 0x20]
call fcn.00489ef9
pop ecx
pop ecx
jmp 0x4aa823
push edi
push dword [ecx + 0xdc]
push edx
call dword [ecx + 0xd8]
add esp, 0x10
mov eax, dword [ebx + 4]
cmp eax, dword [0x705f8c]
jl 0x4aa861
cmp byte [ebx], 0xb8
je 0x4a5dd3
xor eax, eax
inc eax
mov ecx, eax
cmp dword [edi + 0x6c], eax
jle 0x4aa85f
push 0x14
pop eax
push eax
pop esi
mov edx, dword [edi + 0x68]
cmp byte [eax + edx], 0xf
jne 0x4aa854
and dword [eax + edx + 4], 0
inc ecx
add eax, esi
cmp ecx, dword [edi + 0x6c]
jl 0x4aa846
mov esi, dword [ebp - 0x14]
xor eax, eax
inc eax
mov dword [ebx + 4], eax
inc dword [edi + 0xbc]
imul eax, dword [ebx + 8], 0x14
mov ebx, dword [ebp - 0x18]
add ebx, 0xffffffec
add ebx, eax
jmp 0x4a5dd3
mov ecx, dword [ebx + 4]
mov dword [edi + 0x24], ecx
mov al, byte [ebx + 8]
mov byte [edi + 0x94], al
test ecx, ecx
je 0x4aa904
movzx eax, word [ebx + 2]
test ax, ax
je 0x4aa8ce
push dword [eax*4 + 0x6911b0]
push str._s_constraint_failed
push edi
call fcn.004a5103
add esp, 0xc
cmp dword [ebx + 0x10], 0
je 0x4aa8df
push dword [ebx + 0x10]
push dword [edi + 0x7c]
push str._z:__s
push dword [ebp - 0x20]
call fcn.00496482
add esp, 0x10
mov dword [edi + 0x7c], eax
jmp 0x4aa8df
push dword [ebx + 0x10]
push 0x66bf70
push edi
call fcn.004a5103
add esp, 0xc
push dword [edi + 0x7c]
mov eax, ebx
push dword [edi + 0xc8]
sub eax, dword [ebp - 0x18]
push 0x14
pop ecx
cdq
idiv ecx
push eax
push str.abort_at__d_in___s_:__s
push dword [ebx + 4]
call fcn.004529fd
add esp, 0x14
push edi
call fcn.004ab6fa
mov esi, dword [ebp - 0x1c]
mov edi, eax
mov edx, dword [ebp - 0x20]
pop ecx
push 5
pop eax
cmp edi, eax
jne 0x4aa922
mov dword [esi + 0x24], eax
jmp 0x4a75a4
push 0x65
pop edi
xor eax, eax
cmp dword [esi + 0x24], eax
push 1
pop eax
cmovne edi, eax
jmp 0x4a75a4
push 0x17676
call fcn.00488b68
pop ecx
jmp 0x4a5e29
mov eax, dword [ebp - 0x30]
and edx, 0x3f
mov ecx, dword [ebp - 0x28]
add eax, eax
push dword [ecx + eax*8]
mov eax, dword [ebp - 0x3c]
push dword [eax]
mov eax, dword [ebp - 0x50]
push dword [eax*4 + 0x706438]
movzx eax, byte [edx + 0x691138]
push dword [eax*4 + 0x706954]
push str.cannot_store__s_value_in__s_column__s._s
push edi
call fcn.004a5103
mov ecx, 0xc13
add esp, 0x18
mov dword [ebp - 0x14], ecx
jmp 0x4a69db
push str.cannot_open_savepoint___SQL_statements_in_progress
push edi
call fcn.004a5103
pop ecx
pop ecx
push 5
jmp 0x4a5e28
push str.cannot_release_savepoint___SQL_statements_in_progress
jmp 0x4aa990
mov eax, ebx
sub eax, dword [ebp - 0x18]
push 0x14
cdq
pop esi
idiv esi
mov dword [edi + 0x20], eax
xor eax, eax
mov edx, dword [ebp - 0x20]
mov edi, ecx
mov esi, dword [ebp - 0x1c]
mov byte [edx + 0x55], al
mov dword [esi + 0x24], ecx
jmp 0x4a75a4
push str.no_such_savepoint:__s
push edi
call fcn.004a5103
add esp, 0xc
xor eax, eax
lea ecx, [eax + 1]
jmp 0x4a5e2b
mov esi, dword [ebp - 0x1c]
and edx, 0x100000
xor eax, eax
or edx, eax
je 0x4aa9f7
push 8
pop eax
mov ecx, eax
jmp 0x4aa9fa
push 0xb
pop ecx
mov dword [ebp - 0x14], ecx
jmp 0x4a5e31
cmp cl, 5
jne 0x4a5e2e
mov eax, ebx
mov dword [edi + 0x24], ecx
sub eax, dword [ebp - 0x18]
push 0x14
cdq
pop esi
idiv esi
mov dword [edi + 0x20], eax
mov edi, dword [ebp - 0x14]
jmp 0x4a759e
mov ecx, 0x204
jmp 0x4a5e2b
mov eax, dword [ebp - 0x30]
push dword [eax]
call fcn.00484c52
pop ecx
mov ecx, dword [ebp - 0x14]
jmp 0x4a5e2e
mov edi, dword [ebp - 0x1c]
push str.string_or_blob_too_big
push edi
call fcn.004a5103
pop ecx
pop ecx
push 0x12
jmp 0x4a840e
push str.index_corruption
push 0x18378
push 0x30b
call fcn.0049d49b
add esp, 0xc
jmp 0x4a5e29
push 0x18445
jmp 0x4aa93a
push 6
pop ecx
push 2
pop eax
mov dword [ebp - 0x14], ecx
mov byte [edi + 0x94], al
jmp 0x4a5e2e
push esi
call dword [0x705ea4]
pop ecx
mov ecx, dword [ebp - 0x14]
cmp ecx, 7
je 0x4a6909
jmp 0x4a5e2e
push 7
pop edi
mov dword [ebp - 0x14], edi
push dword [ebp - 0x20]
call fcn.0049d52d
pop ecx
mov ecx, dword [ebp - 0x14]
cmp ecx, 7
je 0x4a6906
jmp 0x4a5e2e
push dword [ebp - 0xcc]
call fcn.0045bc52
jmp 0x4aaa38
mov esi, dword [ebp - 0x1c]
xor eax, eax
push str.too_many_levels_of_trigger_recursion
push esi
lea edi, [eax + 1]
mov dword [ebp - 0x14], edi
call fcn.004a5103
pop ecx
pop ecx
mov ecx, dword [ebp - 0x14]
jmp 0x4a5e31
push ecx
call fcn.0045d661
push eax
push 0x66bf70
push edi
call fcn.004a5103
add esp, 0x10
jmp 0x4aaa39
mov esi, dword [ebp - 0x1c]
xor eax, eax
cmp ecx, 5
mov edx, str.out_of
lea edi, [eax + 1]
mov eax, str.into
cmovne eax, edx
mov dword [ebp - 0x14], edi
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
push esi
call fcn.004a5103
add esp, 0xc
jmp 0x4aaaf3
mov eax, dword [ebp - 0x28]
push dword [ebp - 0xc8]
call dword [eax + 0x1c]
pop ecx
jmp 0x4a6909
push 6
jmp 0x4a840e
mov esi, dword [ebp - 0xa0]
test esi, esi
je 0x4a5e2e
cmp dword [0x705e80], 0
je 0x4aabb7
mov eax, dword [0x73e5f8]
test eax, eax
je 0x4aab82
push eax
call dword [0x705ed0]
pop ecx
push esi
call dword [0x705eac]
sub dword [0x73e590], eax
dec dword [0x73e5b4]
push esi
call dword [0x705ea4]
mov eax, dword [0x73e5f8]
pop ecx
pop ecx
test eax, eax
je 0x4aaa39
push eax
call dword [0x705ed8]
jmp 0x4aaa38
push esi
call dword [0x705ea4]
jmp 0x4aaa38
or eax, 0xffffffff
or dword [ebp - 0x88], 0xffffffff
mov dword [ebp - 0x84], eax
push 9
jmp 0x4a840e
push 5
pop esi
movzx eax, dl
cmp dx, si
push 2
pop edx
cmove eax, edx
mov byte [edi + 0x94], al
jmp 0x4a69db
mov eax, dword [edi + 0x1c]
push 2
pop ecx
add eax, ecx
xor ecx, ecx
inc ecx
or eax, ecx
mov dword [edi + 0x1c], eax
imul eax, dword [ebx + 4], 0x28
add eax, dword [ebp - 0x24]
mov dword [edi + 0x78], eax
mov eax, dword [ebp - 0x20]
cmp byte [eax + 0x57], 0
jne 0x4a690c
push 4
pop edx
test byte [eax + 0x5e], dl
je 0x4aac37
xor ecx, ecx
push ecx
push edi
push dword [eax + 0xdc]
push edx
call dword [eax + 0xd8]
add esp, 0x10
mov eax, ebx
sub eax, dword [ebp - 0x18]
push 0x14
cdq
pop ecx
idiv ecx
push 0x64
inc eax
mov dword [edi + 0x20], eax
jmp 0x4a759d
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebx + 4]
mov esi, dword [ebx + 8]
mov dword [ebp - 0xa0], edx
movzx eax, byte [ecx + 0x55]
cmp edx, eax
je 0x4aad08
test esi, esi
je 0x4aac7e
push 0x204
push ecx
call fcn.0049da5f
pop ecx
xor eax, eax
pop ecx
inc eax
jmp 0x4aacbb
test edx, edx
je 0x4aac96
xor eax, eax
cmp dword [ecx + 0xc4], eax
jle 0x4aac96
push str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x4aa990
xor eax, eax
inc eax
push eax
push edi
call fcn.004a4bd6
mov edi, eax
pop ecx
pop ecx
test edi, edi
jne 0x4a759e
mov al, byte [ebp - 0xa0]
mov edi, dword [ebp - 0x1c]
mov byte [ebp - 0xa0], al
mov esi, dword [ebp - 0x20]
push edi
mov byte [esi + 0x55], al
call fcn.004ab6fa
pop ecx
push 5
pop ecx
cmp eax, ecx
jne 0x4aaceb
mov eax, ebx
sub eax, dword [ebp - 0x18]
cdq
push 0x14
pop esi
idiv esi
mov dword [edi + 0x20], eax
xor eax, eax
inc eax
sub al, byte [ebp - 0xa0]
jmp 0x4aa9b6
push esi
call fcn.0048772b
mov esi, dword [ebp - 0x1c]
xor eax, eax
pop ecx
push 0x65
pop edi
cmp dword [esi + 0x24], eax
push 1
pop eax
cmovne edi, eax
jmp 0x4a75a1
test esi, esi
mov eax, str.cannot_commit___no_transaction_is_active
mov ecx, str.cannot_rollback___no_transaction_is_active
cmove ecx, eax
test edx, edx
mov eax, str.cannot_start_a_transaction_within_a_transaction
cmovne eax, ecx
push eax
push edi
call fcn.004a5103
pop ecx
pop ecx
jmp 0x4aa9d7
mov eax, dword [ebp - 0xa8]
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0xac]
mov dword [ebp - 0x9c], eax
jmp 0x4aabd3
mov eax, dword [ebp - 0xa8]
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0xac]
mov dword [ebp - 0x9c], eax
jmp 0x4a6909
mov edi, esi
jmp 0x4a6909
cmp ecx, 0x210a
jne 0x4aad88
push 0x18d49
call fcn.00488b68
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
xor eax, eax
cmp dword [esi + 0x7c], eax
jne 0x4aadac
cmp ecx, 0xc0a
je 0x4aadac
push ecx
call fcn.0048ba67
push eax
push 0x66bf70
push esi
call fcn.004a5103
add esp, 0x10
mov edi, dword [ebp - 0x14]
push edi
push dword [ebp - 0x20]
mov dword [esi + 0x24], edi
call fcn.004a1815
push dword [esi + 0x7c]
mov eax, ebx
push dword [esi + 0xc8]
sub eax, dword [ebp - 0x18]
push 0x14
pop ecx
cdq
idiv ecx
push eax
push str.statement_aborts_at__d:___s___s
push edi
call fcn.004529fd
add esp, 0x1c
push 2
pop ecx
cmp byte [esi + 0x97], cl
jne 0x4aadf3
push esi
call fcn.004ab6fa
pop ecx
push 2
pop ecx
cmp edi, 0xc0a
jne 0x4aae29
push dword [ebp - 0x20]
call fcn.00496cbd
pop ecx
mov edx, dword [ebp - 0x20]
xor eax, eax
lea edi, [eax + 1]
mov al, byte [ebp - 0x79]
test al, al
je 0x4a75a4
movzx eax, al
dec eax
push eax
push edx
call fcn.0049d592
pop ecx
pop ecx
jmp 0x4a75a1
cmp edi, 0xb
jne 0x4aae04
mov edx, dword [ebp - 0x20]
cmp byte [edx + 0x55], 0
jne 0x4aae07
mov eax, dword [edx + 0x20]
or dword [edx + 0x24], ecx
mov dword [edx + 0x20], eax
jmp 0x4aae07
mov ecx, dword [ebp - 0x9c]
xor eax, eax
add dword [esi + 0xb4], ecx
cmp dword [esi + 0xa0], eax
je 0x4aae5f
push esi
call fcn.004abcff
pop ecx
mov ecx, dword [ebp - 4]
mov eax, edi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.005fe955
leave
ret