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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x1c8
push esi
push edi
mov edi, ecx
mov dword [esp + 0xc], 0
xor ecx, ecx
mov dword [esp + 8], edi
mov dword [esp + 0x20], 0
mov dword [esp + 0xe4], 0
mov esi, dword [edi]
mov dword [esp + 0x10], esi
mov dword [esp + 0x2c], 0
mov dword [esp + 0x18], ecx
mov eax, dword [esi + 8]
mov dword [esp + 0x10c], ecx
mov eax, dword [eax + 0xc]
mov al, byte [eax + 0x49]
mov byte [esp + 0xe8], al
xor eax, eax
cmp dword [edi + 0x64], 7
mov dword [esp + 0x108], eax
mov dword [esp + 0x104], eax
je 0x4c434a
mov dword [edi + 0x64], eax
mov dword [edi + 0x2c], eax
mov dword [esi + 0x198], eax
cmp dword [esi + 0xd8], eax
jne 0x4c46ef
mov edx, dword [edi + 0x60]
xorps xmm0, xmm0
movsd qword [esp + 0x130], xmm0
movsd xmm0, qword [0x546b88]
movsd qword [esp + 0x148], xmm0
movsd xmm0, qword [0x546b48]
movsd qword [esp + 0x158], xmm0
mov dword [esp + 0x1c], edx
cmp byte [esi + 0x1e], 0
jne 0x4c434a
mov ecx, dword [esp + 0x10]
lea edi, [edx + edx*4]
mov edx, dword [esp + 8]
mov dword [esp + 0x24], edi
mov eax, dword [ecx + 0xf8]
mov esi, dword [edx + 0x14]
mov dword [esp + 0x14], esi
test eax, eax
je 0x4bdf36
mov edi, dword [esp + 0x104]
cmp dword [ecx + 0x100], edi
mov edi, dword [esp + 0x24]
jne 0x4bdf27
push dword [ecx + 0xfc]
call eax
add esp, 4
test eax, eax
jne 0x4c41e9
mov edx, dword [esp + 8]
jmp 0x4bdf2e
mov eax, dword [esp + 0x104]
inc eax
mov dword [esp + 0x104], eax
movzx eax, byte [esi + edi*4]
mov cl, byte [eax + 0x542098]
test cl, 2
je 0x4bdf76
mov eax, dword [esi + edi*4 + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x58]
lea eax, [eax + ecx*8]
mov ecx, eax
mov dword [esp + 0x18], eax
call fcn.004b9210
mov edx, dword [esp + 0x18]
mov eax, 1
mov word [edx + 0x1c], ax
mov dword [edx + 0x18], 0
jmp 0x4be005
mov dl, cl
and dl, 8
test cl, 4
je 0x4bdfe5
mov eax, dword [esp + 8]
mov esi, dword [eax + 0x58]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + edi*4 + 4]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [esp + 0x20], eax
test dl, dl
je 0x4bdfc4
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + edi*4 + 8]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [esp + 0xe4], eax
mov eax, dword [ecx + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea edx, [esi + eax*8]
mov esi, ecx
mov dword [esp + 0x18], edx
jmp 0x4be005
mov edx, dword [esp + 0x18]
test cl, 0x10
je 0x4be047
mov eax, dword [esp + 0x14]
mov eax, dword [eax + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov esi, dword [esp + 0x14]
mov dword [esp + 0x2c], ecx
jmp 0x4be009
test dl, dl
je 0x4be027
mov eax, dword [esi + edi*4 + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x58]
lea eax, [eax + ecx*8]
mov dword [esp + 0xe4], eax
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x2c]
movzx eax, byte [esi + edi*4]
dec eax
cmp eax, 0x90
ja case.0x4be020.10
movzx eax, byte [eax + 0x4c48d8]
jmp dword [eax*4 + 0x4c4748]
test cl, 0x10
je 0x4be001
mov eax, dword [esi + edi*4 + 0xc]
mov edx, dword [esp + 0x18]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x58]
lea ecx, [eax + ecx*8]
mov dword [esp + 0x2c], ecx
jmp 0x4be009
mov esi, dword [esp + 0x14]
jmp 0x4be005
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 0xd8], 0
jne 0x4c46e5
mov edx, dword [esi + edi*4 + 8]
mov esi, ecx
mov edi, dword [esp + 8]
dec edx
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0xc]
jmp 0x4bf27a
mov eax, dword [esi + edi*4 + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 4
mov word [ecx + 0x1c], ax
mov eax, dword [esp + 0x1c]
cdq
mov dword [esp + 0x20], ecx
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x4bf265
mov eax, dword [esp + 0x20]
mov edx, dword [eax]
jmp 0x4bf26a
mov ecx, dword [esp + 0x20]
mov eax, 4
mov word [ecx + 0x1c], ax
mov eax, dword [ecx]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x1c]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x30]
jmp 0x4bf26a
test byte [ecx + 0x1c], 1
je case.0x4be020.10
mov eax, dword [esi + edi*4 + 4]
mov ecx, dword [esp + 8]
test eax, eax
jne 0x4c420a
mov edi, dword [ecx + 0xdc]
test edi, edi
je 0x4c4206
mov eax, dword [edi + 0x3c]
dec dword [ecx + 0xe0]
mov dword [ecx + 0xdc], eax
mov eax, dword [ecx + 0x74]
mov ecx, dword [esp + 0x10]
add dword [ecx + 0x40], eax
mov dword [ecx + 0x3c], eax
mov esi, dword [edi]
mov eax, dword [edi + 8]
mov dword [esi + 0x14], eax
mov eax, dword [edi + 0xc]
mov dword [esi + 0xc], eax
mov eax, dword [edi + 0x10]
mov dword [esi + 0x58], eax
mov eax, dword [edi + 0x14]
mov dword [esi + 0x54], eax
mov eax, dword [edi + 0x18]
mov dword [esi + 0x34], eax
mov ax, word [edi + 0x1c]
mov word [esi + 0x32], ax
mov eax, dword [esi]
mov ecx, dword [edi + 0x30]
mov edx, dword [edi + 0x34]
mov dword [eax + 0x30], ecx
mov ecx, dword [esp + 0x14]
mov dword [eax + 0x34], edx
mov eax, dword [edi + 0x38]
mov dword [esi + 0x74], eax
mov eax, dword [esp + 0x24]
mov edx, dword [edi + 4]
mov edi, dword [esp + 8]
mov esi, dword [esp + 0x10]
cmp dword [ecx + eax*4 + 8], 4
mov dword [esp + 0x1c], edx
jne 0x4be181
mov eax, dword [edi + 0x14]
lea ecx, [edx + edx*4]
mov edx, dword [eax + ecx*4 + 8]
dec edx
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0xc]
jmp 0x4bf27a
mov ecx, dword [esp + 0x18]
mov eax, 4
mov word [edx + 0x1c], ax
mov eax, dword [esi + edi*4 + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x4be020.10
mov eax, 4
mov word [edx + 0x1c], ax
mov eax, dword [esi + edi*4 + 0x10]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [edx], ecx
mov dword [edx + 4], eax
jmp case.0x4be020.10
mov eax, 8
mov word [edx + 0x1c], ax
mov eax, dword [esi + edi*4 + 0x10]
movsd xmm0, qword [eax]
movsd qword [edx + 8], xmm0
jmp case.0x4be020.10
mov ecx, dword [esi + edi*4 + 0x10]
mov eax, ecx
mov byte [esi + edi*4], 9
mov dword [esp + 0xd8], ecx
test ecx, ecx
je 0x4be204
cmp byte [ecx], 0
je 0x4be1fd
inc eax
cmp byte [eax], 0
jne 0x4be1f7
sub eax, ecx
and eax, 0x3fffffff
cmp byte [esp + 0xe8], 1
mov dword [esi + edi*4 + 4], eax
je 0x4be2ff
test ecx, ecx
jne 0x4be227
mov ecx, edx
call fcn.004b9550
mov edx, dword [esp + 0x18]
jmp 0x4be281
mov edi, dword [edx + 0x10]
xor esi, esi
test edi, edi
je 0x4be239
mov edi, dword [edi + 0x48]
test edi, edi
js 0x4be24b
jmp 0x4be240
mov edi, 0x3b9aca00
nop
cmp byte [esi + ecx], 0
je 0x4be24b
inc esi
cmp esi, edi
jle 0x4be240
mov ecx, edx
call fcn.004b92f0
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0xd8]
mov dword [edx + 0x14], eax
mov dword [edx + 0x20], 0
mov dword [edx + 0x18], esi
mov dword [edx + 0x1c], 0x1030a02
cmp esi, edi
jg 0x4c4573
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x14]
test byte [edx + 0x1c], 2
mov dword [esp + 0xc], 0
je 0x4be2b2
mov al, byte [esp + 0xe8]
cmp byte [edx + 0x1f], al
je 0x4be2b2
mov ecx, dword [esp + 0x18]
mov dl, al
call fcn.004ab460
test eax, eax
jne 0x4c4342
mov edx, dword [esp + 0x18]
mov ax, word [edx + 0x1c]
mov ecx, 0xfbff
and ax, cx
mov dword [edx + 0x24], 0
mov ecx, 0x800
or ax, cx
mov word [edx + 0x1c], ax
cmp byte [esi + edi*4 + 1], 0xff
jne 0x4be2ec
push dword [esi + edi*4 + 0x10]
push dword [esp + 0x14]
call fcn.004a9700
mov edx, dword [esp + 0x20]
add esp, 8
mov byte [esi + edi*4 + 1], 0xff
mov eax, dword [edx + 0x14]
mov dword [esi + edi*4 + 0x10], eax
mov eax, dword [edx + 0x18]
mov dword [esi + edi*4 + 4], eax
mov ecx, dword [esp + 0x10]
cmp eax, dword [ecx + 0x48]
jg 0x4c4596
mov eax, 0xa02
mov word [edx + 0x1c], ax
mov eax, dword [esi + edi*4 + 0x10]
mov dword [edx + 0x14], eax
mov eax, dword [esi + edi*4 + 4]
mov dword [edx + 0x18], eax
mov al, byte [esp + 0xe8]
mov byte [edx + 0x1f], al
jmp case.0x4be020.10
mov eax, dword [esp + 0x24]
mov edi, dword [esi + edi*4 + 0x10]
mov esi, dword [esi + eax*4 + 4]
test edi, edi
jne 0x4be35c
mov edi, dword [esp + 0x18]
mov ecx, edi
call fcn.004b9550
mov al, byte [esp + 0xe8]
mov byte [edi + 0x1f], al
jmp case.0x4be020.10
mov ecx, dword [edx + 0x10]
test ecx, ecx
je 0x4be368
mov ecx, dword [ecx + 0x48]
jmp 0x4be36d
mov ecx, 0x3b9aca00
mov eax, 0x10
mov dword [esp + 0x28], eax
test esi, esi
jns 0x4be399
xor esi, esi
test ecx, ecx
js 0x4be390
mov al, byte [esi + edi + 1]
or al, byte [esi + edi]
je 0x4be390
add esi, 2
cmp esi, ecx
jle 0x4be380
mov eax, 0x210
mov dword [esp + 0x28], eax
mov ecx, edx
call fcn.004b92f0
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x28]
or eax, 0x800
mov dword [ecx + 0x14], edi
mov edi, dword [esp + 0x18]
mov dword [edi + 0x20], 0
mov word [edi + 0x1c], ax
mov al, byte [esp + 0xe8]
mov dword [edi + 0x18], esi
mov byte [edi + 0x1e], 4
mov byte [edi + 0x1f], al
jmp case.0x4be020.10
mov edx, dword [esi + edi*4 + 4]
mov eax, dword [esp + 0x14]
dec edx
mov dword [esp + 0x30], edx
mov esi, dword [esi + edi*4 + 8]
mov dword [esp + 0x34], esi
mov eax, dword [eax + edi*4 + 0xc]
test eax, eax
jle 0x4be4b5
mov edi, dword [esp + 8]
lea ecx, [edx + edx*4]
dec eax
inc edx
mov dword [esp + 0x38], eax
mov dword [esp + 0x30], edx
mov eax, dword [edi + 0x48]
lea eax, [eax + ecx*8]
mov dword [esp + 0x3c], eax
movzx edx, word [eax + 0x1c]
test dl, 0x12
je 0x4be433
mov ecx, dword [eax + 0x18]
test edx, 0x4000
je 0x4be427
add ecx, dword [eax]
mov eax, dword [eax + 0x10]
cmp ecx, dword [eax + 0x48]
jg 0x4c4577
mov eax, dword [edi + 0x58]
lea ecx, [esi + esi*4]
inc esi
mov dword [esp + 0x34], esi
lea edi, [eax + ecx*8]
mov ecx, edi
mov dword [esp + 0x18], edi
call fcn.004b9210
mov eax, 1
mov ecx, edi
mov word [edi + 0x1c], ax
mov esi, dword [esp + 0x3c]
call fcn.004b9210
movups xmm0, xmmword [esi]
mov eax, 0x400
movups xmmword [edi], xmm0
movups xmm0, xmmword [esi + 0x10]
movups xmmword [edi + 0x10], xmm0
mov dword [edi + 0x20], 0
test word [esi + 0x1c], ax
jne 0x4be488
mov eax, dword [esi + 0x14]
cmp eax, dword [esi + 0x24]
jne 0x4be4a0
mov ax, word [edi + 0x1c]
mov ecx, 0xebff
and ax, cx
mov ecx, 0x800
or ax, cx
mov word [edi + 0x1c], ax
mov eax, dword [esp + 0x38]
test eax, eax
jle 0x4be4b5
mov esi, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
jmp 0x4be3f6
dec eax
mov dword [esp + 0x38], eax
jmp case.0x4be020.10
mov ecx, dword [esp + 0x14]
mov esi, dword [esi + edi*4 + 0xc]
mov dword [esp + 0x34], esi
mov eax, dword [ecx + edi*4 + 4]
mov dword [esp + 0x38], eax
mov edx, dword [ecx + edi*4 + 8]
mov ecx, dword [esp + 8]
mov dword [esp + 0x3c], edx
lea eax, [eax + eax*4]
mov ecx, dword [ecx + 0x58]
lea eax, [ecx + eax*8]
mov dword [esp + 0x20], eax
lea eax, [edx + edx*4]
lea edi, [ecx + eax*8]
mov dword [esp + 0x18], edi
test esi, esi
je 0x4be591
nop
dec esi
mov ecx, edi
mov dword [esp + 0x34], esi
mov eax, dword [edi + 0x24]
mov dword [esp + 0x30], eax
mov dword [edi + 0x24], 0
call fcn.004b9210
push dword [edi + 0x24]
push dword [edi + 0x10]
call fcn.004a9700
mov ecx, dword [esp + 0x28]
mov eax, 1
mov dword [edi + 0x14], 0
add esp, 8
mov dword [edi + 0x24], 0
mov dword [edi + 0x20], 0
movups xmm0, xmmword [ecx]
movups xmmword [edi], xmm0
movups xmm0, xmmword [ecx + 0x10]
movups xmmword [edi + 0x10], xmm0
movq xmm0, qword [ecx + 0x20]
movq qword [edi + 0x20], xmm0
add edi, 0x28
mov dword [ecx + 0x24], 0
mov word [ecx + 0x1c], ax
mov dword [ecx + 0x20], 0
mov eax, dword [esp + 0x30]
mov dword [ecx + 0x24], eax
add ecx, 0x28
mov esi, dword [esp + 0x34]
mov dword [esp + 0x20], ecx
test esi, esi
jne 0x4be500
mov dword [esp + 0x18], edi
dec esi
mov dword [esp + 0x34], esi
jmp case.0x4be020.10
mov eax, dword [esi + edi*4 + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x58]
lea edi, [eax + ecx*8]
mov ecx, edi
mov dword [esp + 0x18], edi
call fcn.004b9210
mov ecx, dword [esp + 0x20]
mov eax, 0x400
movups xmm0, xmmword [ecx]
movups xmmword [edi], xmm0
movups xmm0, xmmword [ecx + 0x10]
movups xmmword [edi + 0x10], xmm0
mov dword [edi + 0x20], 0
test word [ecx + 0x1c], ax
jne 0x4be5e3
mov eax, dword [ecx + 0x14]
cmp eax, dword [ecx + 0x24]
jne 0x4be5fb
mov ax, word [edi + 0x1c]
mov ecx, 0xf3ff
and ax, cx
mov ecx, 0x1000
or ax, cx
mov word [edi + 0x1c], ax
movzx eax, word [edi + 0x1c]
test eax, 0x1000
je case.0x4be020.10
test eax, 0x4000
je 0x4be618
mov ecx, edi
call fcn.004b9100
test byte [edi + 0x1c], 0x12
je case.0x4be020.10
mov eax, dword [edi + 0x14]
cmp eax, dword [edi + 0x24]
je case.0x4be020.10
mov edx, dword [edi + 0x18]
mov ecx, edi
push 1
add edx, 2
call fcn.004b8f10
mov esi, dword [esp + 0x14]
add esp, 4
test eax, eax
jne 0x4c4731
mov ecx, dword [edi + 0x18]
mov eax, dword [edi + 0x14]
mov edx, dword [esp + 0xc]
mov byte [ecx + eax], 0
mov eax, dword [edi + 0x14]
mov ecx, dword [edi + 0x18]
mov byte [ecx + eax + 1], 0
mov eax, 0x200
or word [edi + 0x1c], ax
mov edi, dword [esp + 8]
jmp 0x4bf27a
mov eax, dword [esi + edi*4 + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x58]
lea edi, [eax + ecx*8]
mov ecx, edi
mov dword [esp + 0x18], edi
call fcn.004b9210
mov ecx, dword [esp + 0x20]
mov eax, 0x400
movups xmm0, xmmword [ecx]
movups xmmword [edi], xmm0
movups xmm0, xmmword [ecx + 0x10]
movups xmmword [edi + 0x10], xmm0
mov dword [edi + 0x20], 0
test word [ecx + 0x1c], ax
jne 0x4be6c3
mov eax, dword [ecx + 0x14]
cmp eax, dword [ecx + 0x24]
jne case.0x4be020.10
mov ax, word [edi + 0x1c]
mov ecx, 0xf3ff
and ax, cx
mov ecx, 0x1000
or ax, cx
mov word [edi + 0x1c], ax
jmp case.0x4be020.10
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0xe4]
movzx ecx, word [edi + 0x1c]
mov al, byte [esi + 0x1c]
or al, cl
test al, 1
je 0x4be704
mov ecx, edx
call fcn.004b9550
jmp case.0x4be020.10
test ecx, 0x4000
je 0x4be75c
mov edx, dword [edi]
mov eax, 1
add edx, dword [edi + 0x18]
mov ecx, edi
test edx, edx
push eax
cmovle edx, eax
call fcn.004b8f10
add esp, 4
test eax, eax
je 0x4be731
mov eax, 7
jmp 0x4be754
push dword [edi]
mov eax, dword [edi + 0x14]
add eax, dword [edi + 0x18]
push 0
push eax
call fcn.004fd0d0
mov eax, dword [edi]
add esp, 0xc
add dword [edi + 0x18], eax
mov eax, 0xbdff
and word [edi + 0x1c], ax
xor eax, eax
test eax, eax
jne 0x4c4342
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x4be776
mov ecx, esi
call fcn.004b9100
test eax, eax
jne 0x4c4342
test byte [edi + 0x1c], 0x12
movzx esi, byte [esp + 0xe8]
jne 0x4be795
mov edx, esi
mov ecx, edi
call fcn.004b9160
test eax, eax
jne 0x4c4342
mov eax, dword [esp + 0xe4]
test byte [eax + 0x1c], 0x12
jne 0x4be7ba
mov edx, esi
mov ecx, eax
call fcn.004b9160
test eax, eax
jne 0x4c4342
mov eax, dword [esp + 0xe4]
mov ecx, dword [eax + 0x18]
add ecx, dword [edi + 0x18]
mov esi, dword [esp + 0x10]
mov eax, ecx
cdq
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
cmp ecx, dword [esi + 0x48]
jg 0x4c456d
mov edi, dword [esp + 0x18]
mov ecx, 0xbf02
mov ax, word [edi + 0x1c]
and ax, cx
mov ecx, edi
or ax, 2
mov word [edi + 0x1c], ax
xor eax, eax
mov edx, dword [esp + 0x30]
cmp edi, dword [esp + 0xe4]
sete al
push eax
lea edx, [edx + 2]
call fcn.004b8f10
add esp, 4
test eax, eax
jne 0x4c4731
mov eax, dword [esp + 0xe4]
cmp edi, eax
je 0x4be832
push dword [eax + 0x18]
push dword [eax + 0x14]
push dword [edi + 0x14]
call fcn.004fcb50
add esp, 0xc
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0xe4]
push dword [eax + 0x18]
push dword [eax + 0x14]
mov eax, dword [edi + 0x14]
add eax, dword [ecx + 0x18]
push eax
call fcn.004fcb50
mov eax, dword [esp + 0x3c]
add esp, 0xc
mov ecx, dword [edi + 0x14]
mov byte [eax + ecx], 0
mov eax, dword [esp + 0x30]
mov ecx, dword [edi + 0x14]
mov byte [ecx + eax + 1], 0
mov eax, 0x200
or word [edi + 0x1c], ax
mov eax, dword [esp + 0x30]
mov dword [edi + 0x18], eax
mov al, byte [esp + 0xe8]
mov byte [edi + 0x1f], al
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 8]
jmp 0x4bf27a
mov ecx, dword [esp + 0x20]
call fcn.004bdc60
mov ecx, dword [esp + 0xe4]
call fcn.004bdc60
mov eax, dword [esp + 0xe4]
mov edx, dword [esp + 0x20]
movzx ecx, word [eax + 0x1c]
movzx eax, word [edx + 0x1c]
or ecx, eax
mov dword [esp + 0x30], ecx
test cl, 1
jne 0x4bebc3
mov eax, dword [esp + 0xe4]
mov al, byte [eax + 0x1c]
and al, byte [edx + 0x1c]
test al, 4
je 0x4be9cd
mov esi, dword [edx]
mov eax, dword [esp + 0xe4]
mov edi, dword [edx + 4]
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], edi
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x24]
mov dword [esp + 0xd8], esi
mov esi, dword [esp + 0x14]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], edx
movzx eax, byte [esi + eax*4]
mov esi, dword [esp + 0xd8]
add eax, 0xffffffaa
cmp eax, 3
ja case.default.0x4be91f
jmp dword [eax*4 + 0x4c496c]
add ecx, esi
adc edx, edi
jmp 0x4be9a3
sub ecx, esi
sbb edx, edi
jmp 0x4be9a3
push edx
push ecx
push edi
push esi
call fcn.004fb860
jmp 0x4be9a1
mov eax, esi
or eax, edi
je 0x4bebc3
mov eax, esi
and eax, edi
cmp eax, 0xffffffff
jne 0x4be96b
test ecx, ecx
jne 0x4be96b
cmp edx, 0x80000000
jne 0x4be96b
mov esi, 1
xor edi, edi
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], edi
push edi
push esi
push edx
push ecx
call fcn.00520600
jmp 0x4be9a1
mov eax, esi
or eax, edi
je 0x4bebc3
mov eax, esi
and eax, edi
cmp eax, 0xffffffff
jne 0x4be998
mov esi, 1
xor edi, edi
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], edi
push edi
push esi
push edx
push ecx
call fcn.005206f0
mov ecx, eax
mov esi, dword [esp + 0x18]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], edx
mov ax, word [esi + 0x1c]
mov dword [esi], ecx
mov ecx, 0xbf04
and ax, cx
mov dword [esi + 4], edx
or ax, 4
mov word [esi + 0x1c], ax
jmp case.0x4be020.10
mov ecx, edx
call fcn.004b9410
mov ecx, dword [esp + 0xe4]
movsd qword [esp + 0x48], xmm0
call fcn.004b9410
movsd qword [esp + 0x50], xmm0
movzx eax, byte [esi + edi*4]
add eax, 0xffffffaa
movsd qword [esp + 0xf0], xmm0
cmp eax, 3
ja case.default.0x4bea01
jmp dword [eax*4 + 0x4c497c]
addsd xmm0, qword [esp + 0x48]
jmp 0x4beaa9
subsd xmm0, qword [esp + 0x48]
jmp 0x4beaa9
mulsd xmm0, qword [esp + 0x48]
jmp 0x4beaa9
movsd xmm1, qword [esp + 0x48]
ucomisd xmm1, qword [esp + 0x130]
lahf
test ah, 0x44
jnp 0x4bebc3
divsd xmm0, xmm1
jmp 0x4beaa9
movsd xmm0, qword [esp + 0x48]
call fcn.00520c20
movsd xmm0, qword [esp + 0xf0]
mov esi, eax
mov edi, edx
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], edi
call fcn.00520c20
mov ecx, eax
mov dword [esp + 0x44], edx
mov eax, esi
mov dword [esp + 0x40], ecx
or eax, edi
je 0x4bebc3
mov eax, esi
and eax, edi
cmp eax, 0xffffffff
jne 0x4bea99
mov esi, 1
xor edi, edi
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], edi
push edi
push esi
push edx
push ecx
call fcn.005206f0
mov ecx, eax
call fcn.00520d30
movsd qword [esp + 0x50], xmm0
movsd qword [esp + 0xf0], xmm0
movsd xmm0, qword [esp + 0xf0]
movsd qword [esp + 0xd8], xmm0
movsd xmm0, qword [esp + 0xf0]
ucomisd xmm0, qword [esp + 0xd8]
lahf
test ah, 0x44
jp 0x4bebc3
mov ecx, dword [esp + 0x18]
movsd xmm0, qword [esp + 0x50]
mov ax, word [ecx + 0x1c]
movsd qword [ecx + 8], xmm0
mov ecx, 0xbf08
movsd xmm0, qword [esp + 0x50]
and ax, cx
or ax, 8
movsd qword [esp + 0xf0], xmm0
movzx ecx, ax
mov dword [esp + 0xd8], ecx
mov ecx, dword [esp + 0x18]
mov word [ecx + 0x1c], ax
test byte [esp + 0x30], 8
jne case.0x4be020.10
movsd xmm1, qword [esp + 0x148]
comisd xmm1, xmm0
jbe 0x4beb49
xor edi, edi
mov esi, connect
jmp 0x4beb6a
comisd xmm0, xmmword [esp + 0x158]
jbe 0x4beb5d
xor edi, edi
mov esi, connect
jmp 0x4beb6a
call fcn.00520c20
mov ecx, dword [esp + 0x18]
mov edi, eax
mov esi, edx
mov dword [ecx], edi
mov edx, esi
mov dword [ecx + 4], esi
mov ecx, edi
call fcn.00520d30
movsd xmm1, qword [esp + 0xf0]
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp case.0x4be020.10
add edi, 0xffffffff
adc esi, 0x7fffffff
cmp esi, 0xffffffff
ja case.0x4be020.10
jb 0x4bebac
cmp edi, 0xfffffffd
ja case.0x4be020.10
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0xd8]
or eax, 4
mov word [ecx + 0x1c], ax
jmp case.0x4be020.10
mov ecx, dword [esp + 0x18]
call fcn.004b9550
jmp case.0x4be020.10
mov cl, byte [esi + edi*4 + 3]
mov edx, dword [esp + 0x14]
movzx eax, cl
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 8]
mov esi, dword [eax + 0x24]
mov edi, dword [eax + 0x58]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x78], esi
mov eax, dword [edx + eax*4 + 8]
lea eax, [eax + eax*4]
lea edx, [edi + eax*8]
xor eax, eax
mov dword [esp + 0x34], edx
mov dword [esp + 0x30], eax
test cl, cl
je 0x4bec6b
nop word [eax + eax]
mov dword [esi + eax*4], edx
mov ecx, dword [esp + 0x34]
movzx eax, word [ecx + 0x1c]
test al, 1
je 0x4bec25
mov byte [ecx + 0x1e], 5
jmp 0x4bec44
test al, 4
je 0x4bec2f
mov byte [ecx + 0x1e], 1
jmp 0x4bec44
test al, 8
je 0x4bec39
mov byte [ecx + 0x1e], 2
jmp 0x4bec44
and al, 2
neg al
sbb al, al
add al, 4
mov byte [ecx + 0x1e], al
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
inc eax
add edx, 0x28
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
cmp eax, dword [esp + 0x7c]
jge 0x4bec64
mov esi, dword [esp + 0x78]
jmp 0x4bec10
mov eax, dword [esp + 8]
mov edi, dword [eax + 0x58]
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
cmp byte [ecx + esi*4 + 1], 0xfb
mov eax, dword [ecx + esi*4 + 0x10]
jne 0x4bec88
mov dword [esp + 0x3c], 0
jmp 0x4bec8e
mov dword [esp + 0x3c], eax
mov eax, dword [eax]
mov dword [esp + 0x38], eax
mov eax, dword [ecx + esi*4 + 0xc]
lea ecx, [esp + 0x40]
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
mov eax, 1
mov word [esp + 0x5c], ax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], edi
mov dword [esp + 0x50], eax
call fcn.004b9210
push dword [esp + 0x64]
push dword [esp + 0x54]
call fcn.004a9700
mov dword [esp + 0x5c], 0
mov eax, 1
mov dword [esp + 0x6c], 0
add esp, 8
mov dword [esp + 0x60], 0
movups xmm0, xmmword [edi]
movups xmmword [esp + 0x40], xmm0
movups xmm0, xmmword [edi + 0x10]
movups xmmword [esp + 0x50], xmm0
movq xmm0, qword [edi + 0x20]
movq qword [esp + 0x60], xmm0
mov word [edi + 0x1c], ax
mov dword [edi + 0x20], 0
mov dword [edi + 0x24], 0
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x38]
and eax, 0xbf01
mov edi, dword [esp + 0x14]
or eax, 1
mov word [esp + 0x5c], ax
mov dword [esp + 0x6c], 0
test byte [ecx + 3], 8
je 0x4bed55
mov eax, dword [edi + esi*4 - 4]
mov dword [esp + 0x70], eax
push dword [esp + 0x78]
lea eax, [esp + 0x3c]
push dword [esp + 0x80]
push eax
mov eax, dword [ecx + 0xc]
call eax
mov eax, dword [esp + 0x1c]
add esp, 0xc
cmp byte [eax + 0x1e], 0
jne 0x4c4278
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x4bed99
mov edx, dword [edi + esi*4 + 4]
call fcn.004bbfe0
mov eax, dword [esp + 0x3c]
mov dword [edi + esi*4 + 0x10], eax
mov byte [edi + esi*4 + 1], 0xf9
cmp dword [esp + 0x6c], 0
je 0x4bedd0
mov dl, 1
lea ecx, [esp + 0x40]
call fcn.004b9ed0
mov esi, dword [esp + 0x10]
push eax
mov eax, dword [esp + 0xc]
push 0x5446f8
add eax, 0x68
push esi
push eax
call fcn.004a9b70
mov eax, dword [esp + 0x7c]
add esp, 0x10
mov dword [esp + 0xc], eax
jmp 0x4bedd4
mov esi, dword [esp + 0x10]
test byte [esp + 0x5c], 2
je 0x4bedf3
mov al, byte [esp + 0xe8]
cmp byte [esp + 0x5f], al
je 0x4bedf3
mov dl, al
lea ecx, [esp + 0x40]
call fcn.004ab460
mov edi, dword [esp + 0x18]
mov ecx, edi
call fcn.004b9210
push dword [edi + 0x24]
push dword [edi + 0x10]
call fcn.004a9700
mov dword [edi + 0x14], 0
mov eax, 1
mov dword [edi + 0x24], 0
add esp, 8
mov dword [edi + 0x20], 0
movups xmm0, xmmword [esp + 0x40]
movups xmmword [edi], xmm0
movups xmm0, xmmword [esp + 0x50]
movups xmmword [edi + 0x10], xmm0
movq xmm0, qword [esp + 0x60]
movq qword [edi + 0x20], xmm0
mov word [esp + 0x5c], ax
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
movzx eax, word [edi + 0x1c]
test al, 0x12
je 0x4be883
mov ecx, dword [edi + 0x18]
test eax, 0x4000
je 0x4bee6f
add ecx, dword [edi]
mov eax, dword [edi + 0x10]
mov edi, dword [esp + 8]
cmp ecx, dword [eax + 0x48]
jg 0x4c457b
mov edx, dword [esp + 0xc]
jmp 0x4bf27a
mov ecx, dword [esp + 0xe4]
mov esi, dword [esp + 0x20]
mov al, byte [ecx + 0x1c]
or al, byte [esi + 0x1c]
test al, 1
je 0x4beea9
mov ecx, edx
call fcn.004b9550
jmp case.0x4be020.10
call fcn.004b9330
mov ecx, esi
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
call fcn.004b9330
mov ecx, eax
mov esi, edx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], esi
movzx eax, byte [eax + edi*4]
sub eax, 0x52
je 0x4bef1b
sub eax, 1
je 0x4bef0d
sub eax, 1
je 0x4beeef
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
call fcn.00520b80
jmp 0x4bef27
movq xmm1, qword [esp + 0x30]
movd xmm0, ecx
psllq xmm1, xmm0
movq qword [esp + 0x30], xmm1
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
jmp 0x4bef2f
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
or eax, ecx
or edx, esi
jmp 0x4bef27
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
and eax, ecx
and edx, esi
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
mov ecx, dword [esp + 0x18]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov edx, 0xbf04
mov ax, word [ecx + 0x1c]
and ax, dx
or ax, 4
mov word [ecx + 0x1c], ax
jmp case.0x4be020.10
mov ecx, dword [esp + 0x20]
call fcn.004b9330
mov ecx, dword [esp + 0x20]
mov dword [ecx], eax
mov ax, word [ecx + 0x1c]
mov dword [ecx + 4], edx
mov edx, 0xbf04
and ax, dx
or ax, 4
mov word [ecx + 0x1c], ax
mov eax, dword [esi + edi*4 + 8]
cdq
add dword [ecx], eax
adc dword [ecx + 4], edx
jmp case.0x4be020.10
mov ecx, dword [esp + 0x20]
call fcn.004bdc60
mov ecx, dword [esp + 0x20]
test byte [ecx + 0x1c], 8
je 0x4befa2
call fcn.004b94d0
mov ecx, dword [esp + 0x20]
movzx eax, word [ecx + 0x1c]
test al, 4
jne 0x4befca
mov eax, dword [esi + edi*4 + 8]
mov edi, dword [esp + 8]
test eax, eax
je 0x4c4379
lea edx, [eax - 1]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0xc]
jmp 0x4bf276
and eax, 0xbf04
or eax, 4
mov word [ecx + 0x1c], ax
jmp case.0x4be020.10
mov ecx, dword [esp + 0x20]
test byte [ecx + 0x1c], 4
je case.0x4be020.10
call fcn.004b9410
mov ecx, dword [esp + 0x20]
mov edx, 0xbf08
mov ax, word [ecx + 0x1c]
and ax, dx
movsd qword [ecx + 8], xmm0
or ax, 8
mov word [ecx + 0x1c], ax
jmp case.0x4be020.10
mov eax, dword [esp + 0x20]
movzx ecx, word [eax + 0x1c]
test cl, 1
jne case.0x4be020.10
mov eax, ecx
shr eax, 3
and eax, 2
or eax, ecx
mov ecx, dword [esp + 0x20]
mov word [ecx + 0x1c], ax
test al, 2
jne 0x4bf04c
test al, 0xc
je 0x4bf04c
movzx edx, byte [esp + 0xe8]
call fcn.004b9160
mov ecx, dword [esp + 0x20]
mov eax, 0xfff3
and word [ecx + 0x1c], ax
mov ax, word [ecx + 0x1c]
test eax, 0x4000
je 0x4bf0ce
mov edx, dword [ecx]
mov eax, 1
add edx, dword [ecx + 0x18]
test edx, edx
push eax
cmovle edx, eax
call fcn.004b8f10
mov ecx, dword [esp + 0x24]
add esp, 4
test eax, eax
je 0x4bf0a2
movzx eax, word [ecx + 0x1c]
mov edx, 7
movzx eax, ax
and eax, 0xbfe3
mov dword [esp + 0xc], 7
mov word [ecx + 0x1c], ax
jmp 0x4bf272
push dword [ecx]
mov eax, dword [ecx + 0x14]
add eax, dword [ecx + 0x18]
push 0
push eax
call fcn.004fd0d0
mov ecx, dword [esp + 0x2c]
add esp, 0xc
mov eax, dword [ecx]
add dword [ecx + 0x18], eax
mov eax, 0xbdff
and ax, word [ecx + 0x1c]
mov word [ecx + 0x1c], ax
movzx eax, ax
xor edx, edx
movzx eax, ax
and eax, 0xbfe3
mov dword [esp + 0xc], edx
mov word [ecx + 0x1c], ax
jmp 0x4bf272
mov ecx, dword [esp + 0x20]
movzx eax, word [ecx + 0x1c]
test al, 1
jne case.0x4be020.10
test al, 0x10
jne 0x4bf12b
test al, 2
jne 0x4bf112
test al, 0xc
je 0x4bf112
movzx edx, byte [esp + 0xe8]
call fcn.004b9160
mov ecx, dword [esp + 0x20]
mov ax, word [ecx + 0x1c]
mov edx, 0xbf10
and ax, dx
or ax, 0x10
mov word [ecx + 0x1c], ax
jmp case.0x4be020.10
and eax, 0xff10
mov word [ecx + 0x1c], ax
jmp case.0x4be020.10
mov ecx, dword [esp + 0x20]
test byte [ecx + 0x1c], 0xd
jne case.0x4be020.10
call fcn.004b9410
movsd xmm1, qword [esp + 0x148]
comisd xmm1, xmm0
movsd qword [esp + 0xf0], xmm0
jbe 0x4bf16d
xor eax, eax
mov edx, connect
jmp 0x4bf186
comisd xmm0, xmmword [esp + 0x158]
jbe 0x4bf181
xor eax, eax
mov edx, connect
jmp 0x4bf186
call fcn.00520c20
mov ecx, eax
call fcn.00520d30
movsd xmm1, qword [esp + 0xf0]
mov ecx, dword [esp + 0x20]
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x4bf1b2
call fcn.004b9330
mov ecx, dword [esp + 0x20]
jmp 0x4bef33
movsd qword [ecx + 8], xmm1
mov ax, word [ecx + 0x1c]
mov edx, 0xbf08
and ax, dx
or ax, 8
mov word [ecx + 0x1c], ax
jmp case.0x4be020.10
mov ecx, dword [esp + 0x20]
test byte [ecx + 0x1c], 1
jne case.0x4be020.10
call fcn.004b9330
mov ecx, dword [esp + 0x20]
jmp 0x4bef33
mov ecx, dword [esp + 0x20]
test byte [ecx + 0x1c], 1
jne case.0x4be020.10
call fcn.004b9410
mov ecx, dword [esp + 0x20]
movsd qword [ecx + 8], xmm0
jmp 0x4bf1b7
mov eax, dword [esp + 0x20]
movzx ecx, word [ecx + 0x1c]
movzx edx, word [eax + 0x1c]
mov al, cl
or al, dl
test al, 1
je 0x4bf28f
mov al, byte [esi + edi*4 + 3]
test al, al
jns 0x4bf22e
and ecx, edx
not ecx
and ecx, 1
jmp 0x4bf359
test al, 0x10
je 0x4bf261
mov eax, dword [esi + edi*4 + 8]
mov edx, 0xbf01
mov edi, dword [esp + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea ecx, [eax + ecx*8]
mov ax, word [ecx + 0x1c]
and ax, dx
mov dword [esp + 0x18], ecx
mov edx, dword [esp + 0xc]
or ax, 1
mov word [ecx + 0x1c], ax
jmp 0x4bf276
test al, 8
je case.0x4be020.10
mov edx, dword [esi + edi*4 + 8]
dec edx
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 8]
mov esi, dword [esp + 0x10]
inc dword [esp + 0x1c]
test edx, edx
jne 0x4c46b6
mov edx, dword [esp + 0x1c]
jmp 0x4bded1
mov dl, byte [esi + edi*4 + 3]
and dl, 0x67
mov byte [esp + 0x34], dl
je 0x4bf2d4
push dword [esp + 0xe8]
mov ecx, dword [esp + 0x24]
call fcn.004bdd40
mov dl, byte [esp + 0x38]
add esp, 4
mov ecx, dword [esp + 0x2c]
push dword [esp + 0xe8]
call fcn.004bdd40
mov eax, dword [esp + 0x14]
add esp, 4
cmp byte [eax + 0x1e], 0
jne 0x4c473a
mov ecx, dword [esp + 0x20]
mov edx, 0xe
mov ax, word [ecx + 0x1c]
bt ax, dx
jae 0x4bf32b
mov edx, dword [ecx]
mov eax, 1
add edx, dword [ecx + 0x18]
test edx, edx
push eax
cmovle edx, eax
call fcn.004b8f10
add esp, 4
test eax, eax
jne 0x4bf32b
mov ecx, dword [esp + 0x20]
push dword [ecx]
push eax
mov eax, dword [ecx + 0x14]
add eax, dword [ecx + 0x18]
push eax
call fcn.004fd0d0
mov ecx, dword [esp + 0x2c]
add esp, 0xc
mov eax, dword [ecx]
add dword [ecx + 0x18], eax
mov eax, 0xbdff
and word [ecx + 0x1c], ax
mov eax, dword [esp + 0x2c]
mov ecx, 0x4000
test word [eax + 0x1c], cx
je 0x4bf345
mov ecx, eax
call fcn.004b9100
mov eax, dword [esp + 0x2c]
push dword [esi + edi*4 + 0x10]
mov edx, dword [esp + 0x24]
mov ecx, eax
call fcn.004b9a50
add esp, 4
mov ecx, eax
mov dword [esp + 0x30], ecx
movzx eax, byte [esi + edi*4]
add eax, 0xffffffb5
cmp eax, 4
ja case.default.0x4bf369
jmp dword [eax*4 + 0x4c498c]
xor eax, eax
test ecx, ecx
sete al
jmp 0x4bf39f
xor eax, eax
test ecx, ecx
setne al
jmp 0x4bf39f
mov eax, ecx
jmp 0x4bf39c
xor eax, eax
test ecx, ecx
setle al
jmp 0x4bf39f
xor eax, eax
test ecx, ecx
setg al
jmp 0x4bf39f
mov eax, ecx
not eax
shr eax, 0x1f
mov dword [esp + 0x30], eax
test byte [esi + edi*4 + 3], 0x10
je 0x4bf734
mov eax, dword [esi + edi*4 + 8]
mov edi, dword [esp + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea esi, [eax + ecx*8]
mov ecx, 0xbf04
mov ax, word [esi + 0x1c]
and ax, cx
mov dword [esp + 0x18], esi
or ax, 4
mov word [esi + 0x1c], ax
mov eax, dword [esp + 0x30]
cdq
mov dword [esi + 4], edx
mov edx, dword [esp + 0xc]
mov dword [esi], eax
jmp 0x4bf276
mov eax, dword [esi + edi*4 + 0x10]
mov dword [esp + 0x108], eax
jmp case.0x4be020.10
mov eax, dword [esi + edi*4 + 0xc]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x30], eax
mov esi, dword [esi + edi*4 + 0x10]
mov dword [esp + 0x40], esi
mov ecx, dword [edx + edi*4 + 4]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x38], ecx
mov ecx, dword [edx + edi*4 + 8]
xor edx, edx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x34], edx
test eax, eax
jle 0x4bf4c8
mov eax, dword [esp + 0x108]
test eax, eax
je 0x4bf444
mov edi, dword [eax + edx*4]
jmp 0x4bf446
mov edi, edx
mov dword [esp + 0x44], edi
mov ecx, dword [esi + edx*4 + 0xc]
mov dword [esp + 0x48], ecx
mov eax, dword [esi + 8]
push ecx
movzx eax, byte [eax + edx]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0xc]
mov esi, dword [eax + 0x58]
mov eax, dword [esp + 0x2c]
add eax, edi
lea eax, [eax + eax*4]
lea edx, [esi + eax*8]
mov eax, dword [esp + 0x28]
add eax, edi
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
call fcn.004b9a50
add esp, 4
mov dword [esp + 0x10c], eax
test eax, eax
jne 0x4bf4b8
mov edx, dword [esp + 0x34]
inc edx
mov dword [esp + 0x34], edx
cmp edx, dword [esp + 0x30]
jge 0x4bf4c8
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x40]
mov dword [esp + 0x28], edi
mov dword [esp + 0x24], ecx
jmp 0x4bf434
cmp dword [esp + 0x4c], 0
je 0x4bf4c8
neg eax
mov dword [esp + 0x10c], eax
xor eax, eax
mov dword [esp + 0x108], eax
jmp case.0x4be020.10
mov ecx, dword [esp + 0x10c]
test ecx, ecx
jns 0x4bf4ed
mov eax, dword [esi + edi*4 + 4]
lea edx, [eax - 1]
jmp 0x4bf26a
jne 0x4bf4fb
mov eax, dword [esi + edi*4 + 8]
lea edx, [eax - 1]
jmp 0x4bf26a
mov eax, dword [esi + edi*4 + 0xc]
lea edx, [eax - 1]
jmp 0x4bf26a
mov eax, dword [esp + 0x20]
test byte [eax + 0x1c], 1
je 0x4bf518
mov ecx, 2
jmp 0x4bf52c
mov ecx, eax
call fcn.004b9330
or eax, edx
je 0x4bf52a
mov ecx, 1
jmp 0x4bf52c
xor ecx, ecx
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], ecx
test byte [eax + 0x1c], 1
je 0x4bf544
mov eax, 2
jmp 0x4bf55c
mov ecx, eax
call fcn.004b9330
or eax, edx
mov ecx, dword [esp + 0x30]
je 0x4bf55a
mov eax, 1
jmp 0x4bf55c
xor eax, eax
mov dword [esp + 0x34], eax
lea eax, [eax + ecx*2]
cmp byte [esi + edi*4], 0x45
jne 0x4bf573
movzx eax, byte [ecx + eax + 0x540198]
jmp 0x4bf57b
movzx eax, byte [ecx + eax + 0x53f708]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x30], eax
cmp eax, 2
jne 0x4bf5a4
mov ax, word [edi + 0x1c]
mov ecx, 0xbf01
and ax, cx
or ax, 1
movzx eax, ax
mov word [edi + 0x1c], ax
jmp case.0x4be020.10
cdq
mov ecx, 0xbf04
mov dword [edi], eax
mov ax, word [edi + 0x1c]
and ax, cx
mov dword [edi + 4], edx
or ax, 4
movzx eax, ax
mov word [edi + 0x1c], ax
jmp case.0x4be020.10
mov eax, dword [esi + edi*4 + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x58]
lea edi, [eax + ecx*8]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x18], edi
test byte [eax + 0x1c], 1
je 0x4bf5f1
mov ecx, edi
call fcn.004b9550
jmp case.0x4be020.10
mov ecx, eax
call fcn.004b9330
or eax, edx
jne 0x4bf603
lea esi, [eax + 1]
xor edi, edi
jmp 0x4bf61d
xorps xmm0, xmm0
movlpd qword [esp + 0xf0], xmm0
mov edi, dword [esp + 0xf4]
mov esi, dword [esp + 0xf0]
mov ecx, dword [esp + 0x18]
call fcn.004b9210
mov eax, dword [esp + 0x18]
push dword [eax + 0x24]
push dword [eax + 0x10]
call fcn.004a9700
mov ecx, dword [esp + 0x20]
mov eax, 4
add esp, 8
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x24], 0
mov dword [ecx + 0x20], 0
mov dword [ecx], esi
mov dword [ecx + 4], edi
mov byte [ecx + 0x1e], 1
mov word [ecx + 0x1c], ax
jmp case.0x4be020.10
mov eax, dword [esi + edi*4 + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x58]
lea edi, [eax + ecx*8]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x18], edi
test byte [eax + 0x1c], 1
je 0x4bf693
mov ecx, edi
call fcn.004b9550
jmp case.0x4be020.10
mov ecx, eax
call fcn.004b9330
mov esi, eax
mov edi, edx
not esi
not edi
mov ecx, dword [esp + 0x18]
call fcn.004b9210
mov eax, dword [esp + 0x18]
push dword [eax + 0x24]
push dword [eax + 0x10]
call fcn.004a9700
mov eax, dword [esp + 0x20]
mov ecx, 4
add esp, 8
mov dword [eax + 0x14], 0
mov dword [eax + 0x24], 0
mov dword [eax + 0x20], 0
mov dword [eax], esi
mov dword [eax + 4], edi
mov word [eax + 0x1c], cx
mov byte [eax + 0x1e], 1
jmp case.0x4be020.10
mov ecx, dword [esp + 0x20]
test byte [ecx + 0x1c], 1
je 0x4bf706
mov eax, dword [esi + edi*4 + 0xc]
test eax, eax
mov dword [esp + 0x30], eax
jmp 0x4bf263
call fcn.004b9410
ucomisd xmm0, qword [esp + 0x130]
lahf
test ah, 0x44
jnp 0x4bf721
mov eax, 1
jmp 0x4bf723
xor eax, eax
mov dword [esp + 0x30], eax
cmp byte [esi + edi*4], 0x1b
jne 0x4bf734
xor eax, 1
mov dword [esp + 0x30], eax
test eax, eax
jmp 0x4bf263
mov eax, dword [esp + 0x20]
test byte [eax + 0x1c], 1
jmp 0x4bf263
mov eax, dword [esp + 0x20]
test byte [eax + 0x1c], 1
jne case.0x4be020.10
jmp 0x4bf265
mov eax, dword [esi + edi*4 + 4]
xorps xmm0, xmm0
mov edx, dword [esp + 8]
mov dword [esp + 0x40], eax
mov eax, dword [esi + edi*4 + 8]
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], 0
movups xmmword [esp + 0x70], xmm0
movups xmmword [esp + 0x80], xmm0
movq qword [esp + 0x90], xmm0
mov eax, dword [esi + edi*4 + 0xc]
mov esi, 0xbf01
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x58]
lea ecx, [eax + ecx*8]
mov dword [esp + 0x6c], ecx
mov ax, word [ecx + 0x1c]
and ax, si
or ax, 1
mov word [ecx + 0x1c], ax
mov ecx, dword [edx + 0x34]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x4c], 0
mov esi, dword [ecx + eax*4]
mov ecx, esi
mov dword [esp + 0x48], ecx
mov eax, dword [ecx]
mov dword [esp + 0x50], eax
test eax, eax
je 0x4bf9a4
cmp byte [esi + 0x15], 0
je 0x4bf84c
mov ecx, dword [esi]
lea eax, [esp + 0x128]
push eax
push 0
push dword [esi + 0x1c]
xor edx, edx
push dword [esi + 0x18]
call fcn.004b5a90
mov edx, eax
add esp, 0x10
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4c44eb
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc], ecx
mov ecx, dword [esp + 0x128]
test ecx, ecx
mov dword [esi + 8], eax
sete al
mov byte [esi + 0x11], al
test ecx, ecx
jns 0x4bf846
mov ecx, dword [esi]
lea edx, [esp + 0x128]
call fcn.004b5f90
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4c44eb
mov byte [esi + 0x15], 0
jmp 0x4bf88e
mov edi, dword [esi]
test edi, edi
je 0x4bf899
cmp byte [edi + 0x43], 2
jb 0x4bf871
mov ecx, edi
call fcn.004b3b50
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4c44eb
mov ecx, dword [esp + 0x48]
cmp byte [edi + 0x43], 1
jne 0x4bf881
cmp dword [edi + 0x50], 0
jne 0x4bf881
xor eax, eax
jmp 0x4bf886
mov eax, 1
test eax, eax
je 0x4bf899
mov byte [esi + 0x14], 1
mov dword [esi + 0x44], 0
mov ecx, dword [esp + 0x48]
xor edi, edi
cmp byte [ecx + 0x14], 0
mov dword [esp + 0xc], edi
je 0x4bf8bb
mov dword [esp + 0x30], edi
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 8]
inc edx
mov esi, dword [esp + 0x10]
jmp 0x4bdecd
mov esi, dword [esp + 8]
mov eax, dword [ecx + 0x44]
cmp eax, dword [esi + 0x5c]
jne 0x4bf8e8
mov edx, dword [ecx + 0x48]
mov dword [esp + 0x30], edx
mov eax, dword [ecx + 0x54]
mov dword [esp + 0x4c], eax
mov eax, esi
mov esi, 0x5c
mov dword [esp + 0xc], edi
lea edi, [esi + eax]
jmp 0x4bf9ec
cmp byte [ecx + 0x17], 0
je 0x4bf91a
mov ecx, dword [esp + 0x50]
lea edx, [esp + 0x38]
call fcn.004b5210
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0xc], eax
mov eax, esi
mov esi, 0x5c
mov dword [esp + 0x30], edx
lea edi, [esi + eax]
jmp 0x4bf9ec
mov edx, dword [esp + 0x50]
mov dword [esp + 0xec], edx
cmp word [edx + 0x3e], di
jne 0x4bf989
movsx eax, word [edx + 0x5c]
movzx edi, word [edx + eax*2 + 0xb0]
mov eax, dword [edx + eax*4 + 0x60]
mov dword [esp + 0xd8], eax
mov ecx, dword [eax + 0x40]
movzx esi, word [eax + 0xc]
lea eax, [edx + 0x20]
add esi, ecx
push eax
movzx eax, byte [esi + edi*2 + 1]
movzx edx, byte [esi + edi*2]
mov esi, dword [esp + 0xdc]
shl edx, 8
or edx, eax
movzx eax, word [esi + 0x12]
and edx, eax
add edx, ecx
mov ecx, esi
call fcn.004b3c90
mov edx, dword [esp + 0xf0]
add esp, 4
mov esi, dword [esp + 8]
mov byte [edx + 0x42], 1
mov ecx, dword [esp + 0x48]
mov edx, dword [edx + 0x30]
mov eax, esi
mov esi, 0x5c
mov dword [esp + 0xc], 0
mov dword [esp + 0x30], edx
lea edi, [esi + eax]
jmp 0x4bf9ec
mov eax, dword [esi + 0x24]
test eax, eax
jle 0x4bffb6
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x58]
lea ecx, [eax + ecx*8]
mov dword [esp + 0xb8], ecx
mov eax, dword [ecx + 0x18]
mov dword [esp + 0x30], eax
mov eax, dword [ecx + 0x14]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x14]
test byte [eax + edi*4 + 3], 0x20
lea edi, [edx + 0x5c]
je 0x4bf9df
xor eax, eax
jmp 0x4bf9e1
mov eax, dword [edi]
mov dword [esi + 0x44], eax
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x10]
test edx, edx
je 0x4be883
cmp edx, dword [esi + 0x48]
ja 0x4c456d
mov esi, dword [ecx + 0x2c]
mov dword [esp + 0x5c], esi
mov edx, dword [ecx + 0x4c]
mov dword [esp + 0x54], edx
mov eax, dword [ecx + 0x44]
cmp eax, dword [edi]
jne 0x4bfa22
mov eax, dword [ecx + 0x50]
mov dword [esp + 0x58], eax
jmp 0x4bfd24
lea eax, [edx + esi*4]
mov dword [esp + 0xb4], 0
mov dword [esp + 0x58], eax
mov dword [ecx + 0x50], eax
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x30]
mov dword [ecx + 0x48], eax
mov eax, dword [esp + 0x48]
mov ecx, dword [edi]
mov dword [eax + 0x44], ecx
mov ecx, dword [esp + 0x4c]
test ecx, ecx
je 0x4bfa59
mov dword [esp + 0x68], ecx
jmp 0x4bfab3
mov esi, dword [esp + 0x48]
xor edx, edx
mov ecx, dword [esp + 0x50]
cmp byte [esi + 0x17], dl
je 0x4bfa71
cmp byte [ecx + 0x43], 1
jne 0x4bfa8e
push edx
jmp 0x4bfa79
cmp byte [ecx + 0x43], 1
jne 0x4bfa8e
push 1
lea edx, [esp + 0xb8]
call fcn.004b5680
mov esi, dword [esp + 0x4c]
add esp, 4
mov edx, eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x68], edx
cmp eax, dword [esp + 0xb4]
ja 0x4bfaa8
mov dword [esp + 0x4c], edx
mov dword [esi + 0x54], edx
jmp 0x4bfaaf
mov dword [esi + 0x54], 0
mov ecx, dword [esp + 0x68]
mov al, byte [ecx]
cmp al, 0x80
jae 0x4bfac7
movzx edx, al
mov al, 1
mov dword [esp + 0xa0], edx
jmp 0x4bfade
lea edx, [esp + 0xa0]
call fcn.004ac780
mov edx, dword [esp + 0xa0]
mov ecx, dword [esp + 0x68]
movzx eax, al
mov dword [esp + 0xb0], eax
cmp edx, 0x18003
ja 0x4c4387
mov edi, dword [esp + 0x5c]
lea esi, [edi*4 + 3]
add esi, edi
cmp esi, edx
cmovg esi, edx
cmp dword [esp + 0x4c], 0
mov dword [esp + 0x60], esi
jne 0x4bfb70
cmp dword [esp + 0xb4], esi
jge 0x4bfb70
mov ecx, dword [esp + 0x50]
xor eax, eax
mov word [esp + 0x8c], ax
xor edx, edx
mov dword [esp + 0x80], eax
lea eax, [esp + 0x70]
push eax
mov eax, dword [esp + 0x4c]
movzx eax, byte [eax + 0x17]
push eax
push esi
call fcn.004b9d60
mov edx, eax
add esp, 0xc
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4bf272
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0xa0]
mov esi, dword [esp + 0x60]
mov edi, dword [esp + 0x5c]
mov dword [esp + 0x68], ecx
lea eax, [ecx + esi]
mov dword [esp + 0xa8], edx
mov esi, dword [esp + 0xb0]
add esi, ecx
mov dword [esp + 0x9c], eax
xor ecx, ecx
mov dword [esp + 0x98], esi
mov dword [esp + 0xac], 0
mov dword [esp + 0x64], ecx
test edi, edi
jle 0x4bfc81
nop word [eax + eax]
cmp esi, eax
mov eax, dword [esp + 0x58]
jae 0x4bfc51
mov dword [eax + ecx*4], edx
mov ecx, dword [esp + 0x98]
mov al, byte [ecx]
cmp al, 0x80
jae 0x4bfbde
mov ecx, dword [esp + 0x64]
movzx edx, al
mov eax, dword [esp + 0x54]
mov dword [eax + ecx*4], edx
mov al, 1
jmp 0x4bfbee
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x54]
lea edx, [eax + edx*4]
call fcn.004ac780
mov esi, dword [esp + 0x98]
mov ecx, dword [esp + 0x64]
movzx eax, al
add esi, eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x98], esi
mov eax, dword [eax + ecx*4]
cmp eax, 0xc
jb 0x4bfc30
mov edx, dword [esp + 0xa8]
add eax, 0xfffffff4
shr eax, 1
add edx, eax
mov dword [esp + 0xa8], edx
adc dword [esp + 0xac], 0
jmp 0x4bfc6a
mov edx, dword [esp + 0xa8]
movzx eax, byte [eax + 0x53f4b0]
add edx, eax
mov dword [esp + 0xa8], edx
adc dword [esp + 0xac], 0
jmp 0x4bfc6a
mov dword [eax + ecx*4], 0
mov edx, dword [esp + 0xa8]
mov esi, dword [esp + 0x98]
mov ecx, dword [esp + 0x64]
inc ecx
mov dword [esp + 0x64], ecx
cmp ecx, dword [esp + 0x5c]
jge 0x4bfc81
mov eax, dword [esp + 0x9c]
jmp 0x4bfbb0
lea ecx, [esp + 0x70]
call fcn.004b9210
push dword [esp + 0x94]
push dword [esp + 0x84]
call fcn.004a9700
mov edx, dword [esp + 0xa0]
add esp, 8
mov esi, dword [esp + 0x9c]
mov eax, 1
mov dword [esp + 0x84], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x90], 0
mov word [esp + 0x8c], ax
cmp edx, esi
ja 0x4bffa8
mov edi, dword [esp + 0xac]
mov ecx, dword [esp + 0x30]
test edi, edi
ja 0x4bffa8
mov eax, dword [esp + 0xa8]
jb 0x4bfd08
cmp eax, ecx
ja 0x4bffa8
cmp edx, esi
jne 0x4bfd1c
cmp eax, ecx
jne 0x4bffa8
test edi, edi
jne 0x4bffa8
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x44]
cmp dword [eax + ecx*4], 0
je 0x4bfef6
cmp dword [esp + 0x4c], 0
je 0x4bfd5d
mov ecx, dword [esp + 0x6c]
call fcn.004b9210
mov esi, dword [esp + 0x44]
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x54]
mov ecx, dword [eax + esi*4]
add ecx, dword [esp + 0x4c]
mov edx, dword [edx + esi*4]
jmp 0x4bfeda
mov eax, dword [edx + ecx*4]
cmp eax, 0xc
jb 0x4bfd6c
add eax, 0xfffffff4
shr eax, 1
jmp 0x4bfd73
movzx eax, byte [eax + 0x53f4b0]
mov edi, dword [esp + 0x6c]
lea ecx, [esp + 0x70]
mov dword [esp + 0x60], eax
call fcn.004b9210
mov ecx, dword [esp + 0x80]
mov esi, dword [esp + 0x94]
test ecx, ecx
je 0x4bfdc4
test esi, esi
je 0x4bfe33
cmp esi, dword [ecx + 0xf0]
jb 0x4bfdc4
cmp esi, dword [ecx + 0xf4]
jae 0x4bfdc4
mov eax, dword [ecx + 0xec]
mov dword [esi], eax
dec dword [ecx + 0xe4]
mov dword [ecx + 0xec], esi
jmp 0x4bfe33
test esi, esi
je 0x4bfe33
cmp dword [0x55acd0], 0
je 0x4bfe29
mov eax, dword [0x55d4a8]
test eax, eax
je 0x4bfde4
push eax
call dword [0x55ad18]
add esp, 4
push esi
call dword [0x55acf4]
mov ecx, dword [0x55d330]
neg eax
add ecx, eax
add esp, 4
mov eax, dword [0x55d354]
cmp ecx, eax
mov dword [0x55d330], ecx
cmovg eax, ecx
push esi
mov dword [0x55d354], eax
call dword [0x55acec]
mov eax, dword [0x55d4a8]
add esp, 4
test eax, eax
je 0x4bfe33
push eax
call dword [0x55ad20]
jmp 0x4bfe30
push esi
call dword [0x55acec]
add esp, 4
mov dword [esp + 0x84], 0
mov eax, 1
mov dword [esp + 0x94], 0
mov dword [esp + 0x90], 0
movups xmm0, xmmword [edi]
movups xmmword [esp + 0x70], xmm0
movups xmm0, xmmword [edi + 0x10]
movups xmmword [esp + 0x80], xmm0
movq xmm0, qword [edi + 0x20]
movq qword [esp + 0x90], xmm0
mov word [edi + 0x1c], ax
lea eax, [esp + 0x70]
mov dword [edi + 0x20], 0
mov dword [edi + 0x24], 0
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x50]
push eax
mov eax, dword [esp + 0x4c]
movzx eax, byte [eax + 0x17]
push eax
mov eax, dword [esp + 0x60]
push dword [esp + 0x68]
mov edx, dword [eax + edx*4]
call fcn.004b9d60
mov edx, eax
add esp, 0xc
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4bf272
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x68], ecx
mov edx, dword [eax + edx*4]
push dword [esp + 0x6c]
call fcn.004bc1c0
mov eax, dword [esp + 0x70]
add esp, 4
mov cl, byte [esp + 0xe8]
mov byte [eax + 0x1f], cl
jmp 0x4bff54
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
cmp byte [ecx + eax*4 + 1], 0xf8
jne 0x4bff54
mov edi, dword [ecx + eax*4 + 0x10]
mov esi, dword [esp + 0x6c]
mov ecx, esi
call fcn.004b9210
movups xmm0, xmmword [edi]
mov eax, 0x400
movups xmmword [esi], xmm0
movups xmm0, xmmword [edi + 0x10]
movups xmmword [esi + 0x10], xmm0
mov dword [esi + 0x20], 0
test word [edi + 0x1c], ax
jne 0x4bff3c
mov eax, dword [edi + 0x14]
cmp eax, dword [edi + 0x24]
jne 0x4bff54
mov ax, word [esi + 0x1c]
mov ecx, 0xebff
and ax, cx
mov ecx, 0x800
or ax, cx
mov word [esi + 0x1c], ax
cmp dword [esp + 0x94], 0
je 0x4bff94
mov eax, dword [esp + 0x6c]
mov ecx, 0xe7ff
and word [eax + 0x1c], cx
mov ecx, 0x200
mov eax, dword [esp + 0x6c]
or word [eax + 0x1c], cx
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x84]
mov dword [ecx + 0x14], eax
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x94]
mov dword [eax + 0x24], ecx
mov ecx, dword [esp + 0x6c]
call fcn.004b90a0
mov edx, eax
mov dword [esp + 0xc], edx
jmp 0x4bf272
mov edx, 0xb
mov dword [esp + 0xc], edx
jmp 0x4bf272
mov dword [esp + 0x30], 0
jmp case.0x4be020.10
mov eax, dword [esi + edi*4 + 0x10]
mov dword [esp + 0x30], eax
mov eax, dword [esi + edi*4 + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x58]
lea esi, [eax + ecx*8]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x34], esi
mov eax, dword [eax + edi*4 + 8]
mov dword [esp + 0x3c], esi
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [esi + eax*8]
mov dword [esp + 0x38], eax
cmp esi, eax
ja case.0x4be020.10
mov dword [esp + 0x3c], esi
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x4c001b
mov ecx, esi
call fcn.004b9100
mov esi, dword [esp + 0x3c]
push dword [esp + 0xe8]
mov ecx, esi
mov eax, 0x66666667
sub ecx, dword [esp + 0x38]
imul ecx
mov eax, dword [esp + 0x34]
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov dl, byte [ecx + eax]
mov ecx, esi
call fcn.004bdd40
mov esi, dword [esp + 0x40]
add esp, 4
add esi, 0x28
mov dword [esp + 0x3c], esi
cmp esi, dword [esp + 0x38]
jbe 0x4c0005
jmp case.0x4be020.10
mov ecx, dword [esp + 0x14]
xor esi, esi
xorps xmm0, xmm0
mov dword [esp + 0x50], esi
xor edx, edx
movlpd qword [esp + 0x38], xmm0
mov dword [esp + 0x40], edx
movlpd qword [esp + 0x48], xmm0
mov eax, dword [ecx + edi*4 + 4]
mov dword [esp + 0x64], eax
mov ecx, dword [ecx + edi*4 + 0x10]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x28], ecx
lea ecx, [eax + eax*4]
mov eax, dword [esp + 8]
mov dword [esp + 0x18], esi
mov eax, dword [eax + 0x58]
lea edi, [eax + ecx*8]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x5c], edi
mov eax, dword [ecx + eax*4 + 8]
mov dword [esp + 0x64], eax
mov dword [esp + 0x34], edi
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea ecx, [edi + eax*8]
mov eax, dword [esp + 8]
mov dword [esp + 0x60], ecx
movzx eax, byte [eax + 0x6f]
mov dword [esp + 0x6c], eax
cmp edi, ecx
ja 0x4c01e5
mov dword [esp + 0x34], edi
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x4c0128
push dword [esp + 0xe8]
mov esi, edi
mov eax, 0x66666667
sub esi, dword [esp + 0x60]
imul esi
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dl, byte [eax + ecx]
mov ecx, edi
call fcn.004bdd40
mov ecx, dword [esp + 0x6c]
add esp, 4
mov eax, dword [esp + 0x50]
mov edi, dword [esp + 0x34]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x18], eax
mov eax, 0x4000
test word [edi + 0x1c], ax
je 0x4c0154
cmp dword [edi + 0x18], 0
jle 0x4c0154
mov ecx, edi
call fcn.004b9100
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x50]
mov edi, dword [esp + 0x34]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x6c]
mov ecx, edi
call fcn.004bc0e0
mov edx, eax
mov dword [esp + 0x58], edx
cmp edx, 0xc
jb 0x4c0171
lea eax, [edx - 0xc]
shr eax, 1
jmp 0x4c0178
movzx eax, byte [edx + 0x53f4b0]
add dword [esp + 0x38], eax
mov dword [esp + 0xf8], eax
adc dword [esp + 0x3c], 0
xor ecx, ecx
mov dword [esp + 0x74], eax
xor esi, esi
shrd edx, ecx, 7
inc esi
shr ecx, 7
mov eax, edx
or eax, ecx
je 0x4c01a3
cmp esi, 9
jl 0x4c0190
mov edx, dword [esp + 0x40]
mov eax, 0x4000
add edx, esi
mov esi, dword [esp + 0x18]
mov dword [esp + 0x40], edx
test word [edi + 0x1c], ax
je 0x4c01c0
add esi, dword [edi]
jmp 0x4c01cc
xor eax, eax
cmp dword [esp + 0xf8], eax
cmovne esi, eax
add edi, 0x28
mov dword [esp + 0x50], esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x34], edi
cmp edi, dword [esp + 0x60]
jbe 0x4c00e1
mov eax, edx
xor edi, edi
cdq
mov ecx, eax
nop dword [eax]
shrd ecx, edx, 7
inc edi
shr edx, 7
mov eax, ecx
or eax, edx
je 0x4c0203
cmp edi, 9
jl 0x4c01f0
mov eax, dword [esp + 0x40]
add eax, edi
mov dword [esp + 0xd8], edi
mov dword [esp + 0x40], eax
cdq
mov dword [esp + 0x54], edi
mov ecx, eax
xor edi, edi
nop dword [eax]
shrd ecx, edx, 7
inc edi
shr edx, 7
mov eax, ecx
or eax, edx
je 0x4c0233
cmp edi, 9
jl 0x4c0220
mov eax, dword [esp + 0x40]
cmp dword [esp + 0xd8], edi
jge 0x4c0245
inc eax
mov dword [esp + 0x40], eax
cdq
mov edi, eax
mov ecx, edx
mov eax, esi
mov esi, dword [esp + 0x10]
cdq
sub edi, eax
sbb ecx, edx
add edi, dword [esp + 0x38]
mov dword [esp + 0x48], edi
adc ecx, dword [esp + 0x3c]
mov dword [esp + 0x4c], ecx
mov eax, dword [esi + 0x48]
cdq
cmp ecx, edx
jg 0x4c456d
jl 0x4c027b
cmp edi, eax
ja 0x4c456d
mov ecx, dword [esp + 0x14]
mov edx, edi
mov eax, dword [esp + 0x24]
push 0
mov eax, dword [ecx + eax*4 + 0xc]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x58]
lea esi, [eax + ecx*8]
mov ecx, esi
mov dword [esp + 0x1c], esi
call fcn.004b8f10
add esp, 4
test eax, eax
jne 0x4c4342
mov ecx, dword [esp + 0x40]
mov edx, dword [esi + 0x14]
mov dword [esp + 0x30], edx
cmp ecx, 0x80
jae 0x4c02cc
mov al, cl
mov byte [edx], al
mov eax, 1
jmp 0x4c02f7
test ecx, 0xffffc000
jne 0x4c02ea
mov eax, ecx
shr eax, 7
or al, 0x80
and cl, 0x7f
mov byte [edx], al
mov eax, 2
mov byte [edx + 1], cl
jmp 0x4c02f7
push 0
push ecx
mov ecx, edx
call fcn.004ac500
add esp, 8
mov esi, dword [esp + 0x5c]
movzx edi, al
mov dword [esp + 0x70], edi
mov dword [esp + 0x34], esi
cmp esi, dword [esp + 0x60]
ja 0x4c038c
mov edx, dword [esp + 0x6c]
mov ecx, esi
call fcn.004bc0e0
mov ecx, eax
mov dword [esp + 0x58], ecx
cmp ecx, 0x80
jae 0x4c0339
mov cl, al
mov eax, dword [esp + 0x30]
mov byte [edi + eax], cl
mov eax, 1
jmp 0x4c036a
mov edx, dword [esp + 0x30]
add edx, edi
test ecx, 0xffffc000
jne 0x4c035d
mov eax, ecx
shr eax, 7
or al, 0x80
and cl, 0x7f
mov byte [edx], al
mov eax, 2
mov byte [edx + 1], cl
jmp 0x4c036a
push 0
push ecx
mov ecx, edx
call fcn.004ac500
add esp, 8
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x70]
add esi, 0x28
movzx eax, al
add edi, eax
mov dword [esp + 0x34], esi
mov dword [esp + 0x70], edi
cmp esi, dword [esp + 0x60]
jbe 0x4c0310
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x34], esi
cmp esi, dword [esp + 0x60]
ja 0x4c049a
nop word [eax + eax]
mov eax, dword [esp + 0x48]
mov ecx, esi
mov edx, dword [esp + 0x6c]
sub eax, edi
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x30]
add eax, edi
mov dword [esp + 0x28], eax
call fcn.004bc0e0
mov dword [esp + 0xf8], eax
lea ecx, [eax - 1]
cmp ecx, 6
ja 0x4c041f
mov ecx, eax
cmp eax, 7
jne 0x4c040e
mov edx, dword [esi + 8]
mov eax, dword [esi + 0xc]
movzx ecx, byte [ecx + 0x53f4b0]
mov dword [esp + 0x24], ecx
test ecx, ecx
je 0x4c0408
mov esi, dword [esp + 0x28]
dec ecx
mov byte [ecx + esi], dl
shrd edx, eax, 8
shr eax, 8
test ecx, ecx
jne 0x4c03f1
mov edi, dword [esp + 0x70]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x24]
jmp 0x4c0483
mov edx, dword [esi]
mov eax, dword [esi + 4]
cmp ecx, 0xc
jb 0x4c03de
add ecx, 0xfffffff4
shr ecx, 1
jmp 0x4c03e5
cmp eax, 0xc
jb 0x4c0481
mov edi, dword [esi + 0x18]
push edi
push dword [esi + 0x14]
mov dword [esp + 0x2c], edi
push dword [esp + 0x30]
call fcn.004fcb50
mov eax, 0x4000
add esp, 0xc
test word [esi + 0x1c], ax
je 0x4c0473
add edi, dword [esi]
cmp edi, dword [esp + 0xd8]
cmova edi, dword [esp + 0xd8]
mov eax, edi
mov dword [esp + 0x24], edi
sub eax, dword [esi + 0x18]
push eax
mov eax, dword [esp + 0x2c]
add eax, dword [esi + 0x18]
push 0
push eax
call fcn.004fd0d0
add esp, 0xc
mov edi, dword [esp + 0x70]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x24]
jmp 0x4c0483
xor eax, eax
add esi, 0x28
add edi, eax
mov dword [esp + 0x70], edi
mov dword [esp + 0x34], esi
cmp esi, dword [esp + 0x60]
jbe 0x4c03a0
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x48]
mov dword [edi + 0x18], eax
mov eax, 0x410
mov word [edi + 0x1c], ax
mov dword [edi + 0x20], 0
mov eax, dword [esp + 0x50]
test eax, eax
je 0x4c04c8
mov dword [edi], eax
mov eax, 0x4410
mov word [edi + 0x1c], ax
mov byte [edi + 0x1f], 1
jmp case.0x4be020.10
mov ecx, dword [esi + edi*4 + 4]
mov edi, dword [esp + 8]
mov eax, dword [edi + 0x34]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax]
mov dword [esp + 0x38], ecx
test ecx, ecx
je 0x4c04f8
lea edx, [esp + 0x30]
call fcn.004b8bc0
mov dword [esp + 0xc], eax
jmp 0x4c0501
xorps xmm0, xmm0
movlpd qword [esp + 0x30], xmm0
mov edx, dword [esp + 0x18]
mov eax, 4
mov word [edx + 0x1c], ax
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov dword [edx], eax
mov dword [edx + 4], ecx
mov edx, dword [esp + 0xc]
jmp 0x4bf276
mov edx, dword [esi + edi*4 + 4]
mov dword [esp + 0x30], edx
mov eax, dword [esi + edi*4 + 0x10]
mov esi, dword [esp + 0x10]
mov dword [esp + 0xd8], edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x34], eax
test edx, edx
jne 0x4c066b
cmp dword [esi + 0x90], edx
jg 0x4c43a4
test eax, eax
je 0x4c0573
mov ecx, dword [esp + 0x28]
cmp byte [ecx], 0
je 0x4c056c
mov eax, ecx
inc eax
cmp byte [eax], 0
jne 0x4c0566
sub eax, ecx
and eax, 0x3fffffff
mov dword [esp + 0x38], eax
lea edx, [eax + 0x19]
cmp byte [esi + 0x1e], 0
je 0x4c0595
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 8]
mov dword [esp + 0x3c], 0
jmp 0x4bf27a
cmp byte [esi + 0xe2], 0
je 0x4c05dc
movzx eax, word [esi + 0xe0]
cmp edx, eax
ja 0x4c05dc
mov ecx, dword [esi + 0xec]
test ecx, ecx
je 0x4c05dc
mov eax, dword [ecx]
mov dword [esi + 0xec], eax
mov eax, dword [esi + 0xe4]
inc eax
mov dword [esi + 0xe4], eax
cmp eax, dword [esi + 0xe8]
jle 0x4c05d6
mov dword [esi + 0xe8], eax
mov dword [esp + 0x3c], ecx
jmp 0x4c05fb
push edx
call fcn.004a9610
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x4c05ef
mov byte [esi + 0x1e], 1
mov dword [esp + 0x3c], ecx
test ecx, ecx
je 0x4be883
lea eax, [ecx + 0x18]
mov dword [ecx], eax
mov eax, dword [esp + 0x38]
inc eax
push eax
mov eax, dword [esp + 0x40]
push dword [esp + 0x38]
push dword [eax]
call fcn.004fcb50
add esp, 0xc
cmp byte [esi + 0x1c], 0
je 0x4c062b
mov byte [esi + 0x1c], 0
mov byte [esi + 0x1cc], 1
jmp 0x4c0631
inc dword [esi + 0x1c4]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esi + 0x1c0]
mov edi, dword [esp + 8]
mov dword [eax + 0x10], ecx
mov eax, dword [esp + 0x3c]
mov edx, dword [esi + 0x1d4]
mov ecx, dword [esi + 0x1d0]
mov dword [esi + 0x1c0], eax
mov eax, dword [esp + 0x3c]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0xc]
jmp 0x4bf27a
xor ecx, ecx
mov dword [esp + 0x48], ecx
mov edi, dword [esi + 0x1c0]
mov dword [esp + 0x40], edi
test edi, edi
je 0x4c43f4
mov esi, dword [edi]
mov edx, eax
mov cl, byte [esi]
test cl, cl
je 0x4c06c0
mov al, cl
sub esi, edx
movzx ecx, byte [edx]
mov byte [esp + 0x103], al
movzx eax, al
mov al, byte [eax + 0x540778]
cmp al, byte [ecx + 0x540778]
jne 0x4c06b9
mov al, byte [edx + esi + 1]
inc edx
mov cl, al
test al, al
jne 0x4c0691
jmp 0x4c06c0
mov cl, byte [esp + 0x103]
movzx eax, cl
movzx ecx, byte [eax + 0x540778]
movzx eax, byte [edx]
movzx eax, byte [eax + 0x540778]
sub ecx, eax
je 0x4c06f3
inc dword [esp + 0x48]
mov eax, dword [edi + 0x10]
mov edi, eax
mov dword [esp + 0x40], edi
test eax, eax
je 0x4c43f4
mov eax, dword [esp + 0x28]
jmp 0x4c0683
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0xd8]
mov esi, dword [esp + 0x10]
test edi, edi
je 0x4c43f4
cmp dword [esi + 0x90], 0
jg 0x4c08f3
cmp edx, 2
jne 0x4c0729
cmp dword [esi + 0x8c], 1
jg 0x4c08f3
cmp dword [edi + 0x10], 0
jne 0x4c0780
cmp byte [esi + 0x1cc], 0
je 0x4c0780
mov esi, 1
mov dword [esp + 0x24], esi
cmp edx, esi
jne 0x4c078a
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 8]
mov ecx, edi
mov byte [eax + 0x1c], 1
call fcn.004bbb00
cmp eax, 5
je 0x4c43d3
mov ecx, dword [esp + 0x10]
mov byte [ecx + 0x1cc], 0
mov eax, dword [edi + 0x64]
mov edi, dword [esp + 0x40]
mov edx, dword [esp + 0x30]
mov dword [esp + 0xc], eax
jmp 0x4c0852
mov dword [esp + 0x24], 0
jmp 0x4c078e
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0x1c4]
xor esi, esi
sub eax, ecx
mov dword [esp + 0x4c], esi
mov ecx, dword [esp + 0x10]
dec eax
mov dword [esp + 0x48], eax
cmp dword [ecx + 4], esi
jle 0x4c081b
nop word [eax + eax]
mov eax, dword [esp + 0x10]
mov ecx, esi
add ecx, ecx
xor edi, edi
mov dword [esp + 0xc], edi
mov eax, dword [eax + 8]
mov eax, dword [eax + ecx*8 + 4]
test eax, eax
je 0x4c0801
cmp byte [eax + 8], 2
jne 0x4c0801
mov esi, dword [eax + 4]
push dword [esp + 0x48]
mov ecx, dword [esi]
call fcn.004b37a0
mov edx, eax
add esp, 4
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4c07f5
mov ecx, esi
call fcn.004b4de0
mov dword [esp + 0xc], eax
mov edi, dword [esp + 0xc]
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x4c]
test edi, edi
jne 0x4c44e7
mov ecx, dword [esp + 0x10]
inc esi
mov dword [esp + 0x4c], esi
cmp esi, dword [ecx + 4]
jl 0x4c07b0
mov edi, dword [esp + 0x40]
cmp edx, 2
jne 0x4c084e
test byte [ecx + 0xc], 0x10
je 0x4c084e
mov eax, dword [ecx + 0x88]
test eax, eax
je 0x4c083b
mov byte [eax + 0x6e], 1
mov eax, dword [eax + 8]
test eax, eax
jne 0x4c0830
xor edx, edx
call fcn.004cf340
mov edi, dword [esp + 0x40]
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
mov eax, dword [ecx + 0x1c0]
cmp eax, edi
je 0x4c0896
nop dword [eax]
mov dword [esp + 0x44], eax
mov eax, dword [eax + 0x10]
mov dword [ecx + 0x1c0], eax
push dword [esp + 0x44]
push ecx
call fcn.004a9700
mov ecx, dword [esp + 0x18]
add esp, 8
dec dword [ecx + 0x1c4]
mov eax, dword [ecx + 0x1c0]
mov edi, dword [esp + 0x40]
cmp eax, edi
jne 0x4c0860
mov edx, dword [esp + 0x30]
cmp edx, 1
jne 0x4c08d0
mov eax, dword [edi + 0x10]
mov dword [ecx + 0x1c0], eax
push dword [esp + 0x40]
push ecx
call fcn.004a9700
mov edx, dword [esp + 0x14]
add esp, 8
mov edi, dword [esp + 8]
test esi, esi
mov esi, dword [esp + 0x10]
jne 0x4bf27a
dec dword [esi + 0x1c4]
jmp 0x4bf27a
mov esi, dword [esp + 0x10]
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0xc]
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 8]
mov dword [esi + 0x1d0], eax
mov dword [esi + 0x1d4], ecx
jmp 0x4bf27a
mov edi, dword [esp + 8]
cmp edx, 2
mov ecx, str.release
mov eax, str.rollback
cmovne eax, ecx
push eax
push str.cannot__s_savepoint___SQL_statements_in_progress
lea eax, [edi + 0x68]
push esi
push eax
call fcn.004a9b70
mov edx, 5
add esp, 0x10
mov dword [esp + 0xc], edx
jmp 0x4bf27a
mov edx, dword [esi + edi*4 + 4]
mov dword [esp + 0x30], edx
mov ecx, dword [esi + edi*4 + 8]
mov esi, dword [esp + 0x10]
mov dword [esp + 0x34], ecx
test edx, edx
je 0x4c0982
cmp byte [esi + 0x1c], 0
jne 0x4c0982
mov dword [esp + 0x38], 1
test ecx, ecx
je 0x4c096a
cmp dword [esi + 0x8c], 1
jle 0x4c098a
mov dword [esp + 0xc], 5
mov eax, str.cannot_rollback_transaction___SQL_statements_in_progress
jmp 0x4c09b8
cmp dword [esi + 0x90], 0
jle 0x4c098a
mov dword [esp + 0xc], 5
mov eax, str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x4c09b8
mov dword [esp + 0x38], 0
movzx eax, byte [esi + 0x1c]
cmp edx, eax
jne 0x4c442b
test edx, edx
jne 0x4c09a1
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x4c09b0
test ecx, ecx
mov eax, str.cannot_rollback___no_transaction_is_active
mov ecx, str.cannot_commit___no_transaction_is_active
cmove eax, ecx
mov dword [esp + 0xc], 1
mov edi, dword [esp + 8]
mov ecx, edi
push eax
push esi
lea eax, [ecx + 0x68]
push eax
call fcn.004a9b70
mov edx, dword [esp + 0x18]
add esp, 0xc
jmp 0x4bf27a
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + edi*4 + 4]
add ecx, ecx
mov eax, dword [eax + 8]
mov ecx, dword [eax + ecx*8 + 4]
mov dword [esp + 0x30], ecx
test ecx, ecx
je case.0x4be020.10
mov edx, dword [esi + edi*4 + 8]
call fcn.004b4e70
mov edx, eax
mov dword [esp + 0xc], edx
cmp edx, 5
je 0x4c449b
test edx, edx
jne 0x4c44eb
cmp dword [esi + edi*4 + 8], eax
mov edi, dword [esp + 8]
je 0x4bf276
cmp byte [edi + 0x71], al
je 0x4bf276
mov esi, dword [esp + 0x10]
cmp byte [esi + 0x1c], al
je 0x4c0a3f
cmp dword [esi + 0x8c], 1
jle 0x4bf27a
mov edx, dword [edi + 0xd8]
test edx, edx
jne 0x4c0a61
mov edx, dword [esi + 0x1c4]
inc dword [esi + 0x1c8]
add edx, dword [esi + 0x1c8]
mov dword [edi + 0xd8], edx
mov eax, dword [esp + 0x30]
cmp byte [eax + 8], 2
jne 0x4c0a81
mov ecx, dword [eax + 4]
cmp byte [ecx + 0x10], 0
jne 0x4c0a81
mov ecx, dword [ecx]
call fcn.004b3650
mov dword [esp + 0xc], eax
jmp 0x4c0a89
mov dword [esp + 0xc], 2
mov eax, dword [esi + 0x1d0]
mov ecx, dword [esi + 0x1d4]
mov edx, dword [esp + 0xc]
mov dword [edi + 0xd0], eax
mov dword [edi + 0xd4], ecx
jmp 0x4bf27a
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x34], ecx
add ecx, ecx
mov edx, dword [esi + edi*4 + 0xc]
mov dword [esp + 0x38], edx
mov eax, dword [eax + 8]
mov eax, dword [eax + ecx*8 + 4]
mov edi, dword [eax + 4]
mov eax, dword [edi + 0xc]
mov ecx, dword [eax + 0x40]
movzx eax, byte [ecx + edx*4 + 0x24]
movzx esi, byte [ecx + edx*4 + 0x25]
shl eax, 8
or esi, eax
movzx eax, byte [ecx + edx*4 + 0x26]
shl esi, 8
or esi, eax
movzx eax, byte [ecx + edx*4 + 0x27]
shl esi, 8
or esi, eax
mov dword [esp + 0x30], esi
cmp edx, 4
jne 0x4c0b08
test esi, esi
je 0x4c0b08
mov byte [edi + 0x10], 1
mov esi, dword [esp + 0x30]
mov eax, esi
cdq
jmp 0x4bef2f
mov eax, dword [esi + edi*4 + 4]
mov ecx, dword [esp + 0x10]
shl eax, 4
add eax, dword [ecx + 8]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x30], eax
call fcn.004b9330
mov ecx, dword [esp + 0x2c]
mov dword [ecx], eax
mov ax, word [ecx + 0x1c]
mov dword [ecx + 4], edx
mov edx, 0xbf04
and ax, dx
or ax, 4
mov word [ecx + 0x1c], ax
mov eax, dword [ecx]
mov esi, dword [esi + edi*4 + 8]
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 4]
mov eax, dword [eax + 4]
mov ecx, dword [eax + 0xc]
mov edi, dword [ecx + 0x40]
mov ecx, dword [ecx + 0x44]
call fcn.004b3240
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4c0b9b
mov ecx, dword [esp + 0xd8]
mov eax, ecx
shr eax, 0x18
mov byte [edi + esi*4 + 0x24], al
mov eax, ecx
shr eax, 0x10
mov byte [edi + esi*4 + 0x25], al
mov eax, ecx
shr eax, 8
mov byte [edi + esi*4 + 0x26], al
mov byte [edi + esi*4 + 0x27], cl
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x14]
mov eax, dword [esi + edx*4 + 8]
cmp eax, 1
jne 0x4c0bc5
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 0xc]
mov eax, dword [esp + 0x2c]
mov eax, dword [eax]
mov dword [ecx], eax
mov eax, dword [esp + 0x10]
or dword [eax + 0xc], 0x10
jmp 0x4c0bda
cmp eax, 2
jne 0x4c0bda
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 0xc]
mov eax, dword [esp + 0x2c]
mov al, byte [eax]
mov byte [ecx + 0x48], al
cmp dword [esi + edx*4 + 4], 1
mov esi, dword [esp + 0x10]
jne 0x4be883
mov eax, dword [esi + 0x88]
test eax, eax
je 0x4c0bfe
mov byte [eax + 0x6e], 1
mov eax, dword [eax + 8]
test eax, eax
jne 0x4c0bf3
mov edi, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov byte [edi + 0x6e], 0
jmp 0x4bf27a
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + edi*4 + 4]
add ecx, ecx
mov eax, dword [eax + 8]
mov eax, dword [eax + ecx*8 + 4]
mov dword [esp + 0x34], eax
test eax, eax
je 0x4c0c52
mov eax, dword [eax + 4]
mov eax, dword [eax + 0xc]
mov ecx, dword [eax + 0x40]
movzx edx, byte [ecx + 0x28]
movzx eax, byte [ecx + 0x29]
shl edx, 8
or edx, eax
movzx eax, byte [ecx + 0x2a]
shl edx, 8
or edx, eax
movzx eax, byte [ecx + 0x2b]
shl edx, 8
or edx, eax
jmp 0x4c0c54
xor edx, edx
mov dword [esp + 0x30], edx
cmp edx, dword [esi + edi*4 + 8]
je case.0x4be020.10
mov eax, dword [esp + 8]
push dword [eax + 0x68]
push dword [esp + 0x14]
call fcn.004a9700
add esp, 8
mov eax, str.database_schema_has_changed
nop word [eax + eax]
inc eax
cmp byte [eax], 0
jne 0x4c0c80
mov ecx, dword [esp + 0x10]
sub eax, str.database_schema_has_changed
and eax, 0x3fffffff
cmp byte [ecx + 0x1e], 0
lea edi, [eax + 1]
je 0x4c0ca1
xor esi, esi
jmp 0x4c0cfd
cmp byte [ecx + 0xe2], 0
je 0x4c0d59
movzx eax, word [ecx + 0xe0]
cmp edi, eax
ja 0x4c0d59
mov esi, dword [ecx + 0xec]
test esi, esi
je 0x4c0d59
mov eax, dword [esi]
mov dword [ecx + 0xec], eax
mov eax, dword [ecx + 0xe4]
inc eax
mov dword [ecx + 0xe4], eax
cmp eax, dword [ecx + 0xe8]
jle 0x4c0cee
mov dword [ecx + 0xe8], eax
push edi
push str.database_schema_has_changed
push esi
call fcn.004fcb50
add esp, 0xc
mov edi, dword [esp + 8]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
mov dword [edi + 0x68], esi
mov esi, dword [esp + 0x10]
mov edx, dword [ecx + eax*4 + 4]
mov ecx, edx
add ecx, ecx
mov eax, dword [esi + 8]
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax]
cmp eax, dword [esp + 0x30]
je 0x4c0d2e
mov ecx, esi
call fcn.004cf340
mov eax, dword [esi + 0x88]
test eax, eax
je 0x4c0d4b
nop dword [eax + eax]
mov byte [eax + 0x6e], 1
mov eax, dword [eax + 8]
test eax, eax
jne 0x4c0d40
mov edx, 0x11
mov dword [esp + 0xc], edx
jmp 0x4bf27a
push edi
call fcn.004a9610
mov esi, eax
add esp, 4
test esi, esi
jne 0x4c0cee
mov eax, dword [esp + 0x10]
mov byte [eax + 0x1e], 1
jmp 0x4c0cfd
mov eax, dword [esp + 8]
cmp byte [eax + 0x6e], 0
jne 0x4c44c3
mov eax, dword [esp + 0x14]
xor edx, edx
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], edx
mov esi, dword [esi + edi*4 + 8]
mov dword [esp + 0x38], esi
mov ecx, dword [eax + edi*4 + 0xc]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x3c], ecx
shl ecx, 4
add ecx, dword [eax + 8]
mov dword [esp + 0x4c], ecx
mov eax, dword [ecx + 4]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x14]
cmp byte [eax + edi*4], 0x27
jne 0x4c0dd9
mov dword [esp + 0x40], 1
mov eax, dword [ecx + 0xc]
mov ecx, dword [esp + 8]
mov al, byte [eax + 0x48]
cmp al, byte [ecx + 0x6f]
jae 0x4c0ddd
mov byte [ecx + 0x6f], al
jmp 0x4c0ddd
mov dword [esp + 0x40], edx
mov ecx, dword [esp + 0x14]
cmp byte [ecx + edi*4 + 3], dl
je 0x4c0e2e
mov eax, dword [esp + 8]
lea ecx, [esi + esi*4]
mov eax, dword [eax + 0x58]
lea esi, [eax + ecx*8]
mov ecx, esi
mov dword [esp + 0xe4], esi
call fcn.004b9330
mov dword [esi], eax
mov ecx, 0xbf04
mov ax, word [esi + 0x1c]
and ax, cx
mov dword [esi + 4], edx
or ax, 4
mov word [esi + 0x1c], ax
mov eax, dword [esi]
mov dword [esp + 0x38], eax
cmp eax, 2
jl 0x4c44b8
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x14]
mov al, byte [esi + edi*4 + 1]
cmp al, 0xfa
jne 0x4c0e5f
mov eax, dword [esp + 8]
mov ecx, dword [esi + edi*4 + 0x10]
mov dword [esp + 0x34], ecx
mov eax, dword [eax]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov al, byte [eax + 0x49]
mov byte [ecx + 4], al
mov eax, dword [esp + 0x34]
movzx edx, word [eax + 6]
inc edx
jmp 0x4c0e67
cmp al, 0xf2
jne 0x4c0e6b
mov edx, dword [esi + edi*4 + 0x10]
mov dword [esp + 0x30], edx
push 1
push dword [esp + 0x40]
push edx
mov edx, dword [esi + edi*4 + 4]
mov edi, dword [esp + 0x14]
mov ecx, edi
call fcn.004bdb60
add esp, 0xc
mov dword [esp + 0x48], eax
test eax, eax
je 0x4c4346
mov byte [eax + 0x14], 1
mov edi, dword [esp + 0x44]
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x34]
mov dword [esp + 0xf8], ecx
cmp dword [esp + 0xf8], 0
mov ecx, dword [esp + 0x38]
mov esi, dword [eax]
mov dword [esp + 0x28], edi
mov edi, dword [edi + 4]
mov dword [esp + 0xec], edx
mov dword [esp + 0xd8], ecx
je 0x4c0ee6
cmp byte [edi + 0x10], 0
je 0x4c0ee6
mov dword [eax + 0x28], edx
mov dword [esp + 0xc], 8
jmp 0x4c0f88
cmp ecx, 1
jne 0x4c0f33
mov ecx, dword [edi]
lea edx, [esp + 0x124]
mov dword [esp + 0x124], 0xffffffff
call fcn.004b1880
cmp dword [esp + 0x124], 0
jne 0x4c0f25
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x34]
mov dword [ecx + 0x28], eax
mov eax, dword [esp + 0x48]
mov dword [eax], 0
jmp 0x4c0f80
mov ecx, dword [esp + 0xd8]
mov edx, dword [esp + 0xec]
or eax, 0xffffffff
mov dword [esi + 0x14], ecx
mov word [esi + 0x5c], ax
mov eax, dword [esp + 0x28]
mov dword [esi], eax
mov eax, dword [esp + 0xf8]
mov dword [esi + 0x10], edx
mov dword [esi + 4], edi
mov byte [esi + 0x40], al
mov eax, dword [edi + 8]
mov dword [esi + 8], eax
test eax, eax
je 0x4c0f60
mov dword [eax + 0xc], esi
mov dword [edi + 8], esi
mov byte [esi + 0x43], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x34]
mov dword [ecx + 0x28], eax
mov dword [esp + 0xc], 0
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
cmp byte [ecx + eax*4 + 1], 0xfa
mov eax, dword [esp + 0x48]
setne cl
mov byte [eax + 0x16], cl
mov ecx, dword [esp + 0x48]
cmp byte [ecx + 0x16], 0
sete al
mov byte [ecx + 0x17], al
jmp case.0x4be020.10
mov edx, dword [esi + edi*4 + 4]
mov ecx, dword [esp + 8]
push 1
push 0xffffffffffffffff
push dword [esi + edi*4 + 8]
call fcn.004bdb60
add esp, 0xc
mov dword [esp + 0x30], eax
test eax, eax
je 0x4c4342
mov ecx, dword [esp + 0x10]
mov edx, ecx
mov byte [eax + 0x14], 1
mov esi, dword [esp + 0x30]
push 0x41e
mov eax, dword [ecx + 0xc]
add esi, 0x20
and eax, 0x1000
xor ecx, ecx
or eax, 0x800
shr eax, 0xb
push eax
push esi
call fcn.004b46e0
mov ecx, eax
add esp, 0xc
mov dword [esp + 0xc], ecx
test ecx, ecx
jne 0x4c1282
mov eax, dword [esi]
mov eax, dword [eax + 4]
cmp dword [eax + 0x24], ecx
jne 0x4c1047
mov eax, dword [eax]
mov eax, dword [eax + 0xa8]
mov dword [eax + 0x10], 0x1f4
mov eax, dword [eax + 0x28]
test eax, eax
je 0x4c1047
push 0x1f4
push eax
call dword [0x55ad3c]
add esp, 8
jmp 0x4c104f
test ecx, ecx
jne 0x4c1282
mov ecx, dword [esp + 0x30]
mov edx, 1
mov ecx, dword [ecx + 0x20]
call fcn.004b4e70
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4c1282
mov eax, dword [esp + 0x14]
cmp dword [eax + edi*4 + 0x10], 0
mov eax, dword [esp + 0x30]
je 0x4c11dc
mov eax, dword [eax + 0x20]
lea edx, [esp + 0x138]
push ecx
lea ecx, [esp + 0x114]
push 1
push ecx
mov ecx, dword [eax + 4]
call fcn.004b6290
add esp, 0xc
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4c11c1
mov esi, dword [esp + 0x138]
lea edx, [eax + 0xa]
mov ecx, esi
call fcn.004b4530
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x4c10d2
mov esi, dword [ecx + 0x10]
call fcn.004ae760
mov ecx, esi
call fcn.004b2ae0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x30]
mov eax, dword [eax + edi*4 + 0x10]
mov esi, dword [ecx]
mov dword [esp + 0xd8], eax
mov eax, dword [ecx + 0x20]
mov dword [esp + 0xec], eax
mov edi, dword [eax + 4]
cmp byte [edi + 0x10], 0
je 0x4c1107
mov dword [esp + 0xc], 8
jmp 0x4c1199
mov eax, dword [esp + 0x110]
cmp eax, 1
jne 0x4c1147
mov ecx, dword [edi]
lea edx, [esp + 0x12c]
mov dword [esp + 0x12c], 0xffffffff
call fcn.004b1880
cmp dword [esp + 0x12c], 0
jne 0x4c1140
mov dword [esp + 0xc], 0x10
jmp 0x4c1195
mov eax, dword [esp + 0x110]
mov dword [esi + 0x14], eax
or eax, 0xffffffff
mov word [esi + 0x5c], ax
mov eax, dword [esp + 0xd8]
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0xec]
mov dword [esi], eax
mov dword [esi + 4], edi
mov byte [esi + 0x40], 1
mov eax, dword [edi + 8]
mov dword [esi + 8], eax
test eax, eax
je 0x4c1178
mov dword [eax + 0xc], esi
mov dword [edi + 8], esi
mov byte [esi + 0x43], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
mov dword [esp + 0xc], 0
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
mov eax, dword [edx + eax*4 + 0x10]
mov dword [ecx + 0x28], eax
mov eax, dword [esp + 8]
mov eax, dword [eax]
mov eax, dword [eax + 8]
mov edx, dword [eax + 0xc]
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 0x28]
mov al, byte [edx + 0x49]
mov byte [ecx + 4], al
mov eax, dword [esp + 0x30]
mov byte [eax + 0x16], 0
mov ecx, dword [esp + 0x30]
cmp byte [ecx + 0x16], 0
sete al
mov byte [ecx + 0x17], al
jmp case.0x4be020.10
mov ecx, dword [eax + 0x20]
mov esi, dword [eax]
mov dword [esp + 0xd8], ecx
mov edi, dword [ecx + 4]
cmp byte [edi + 0x10], 0
je 0x4c11fe
mov dword [esp + 0xc], 8
jmp 0x4c127e
mov ecx, dword [edi]
lea edx, [esp + 0x114]
mov dword [esp + 0x114], 0xffffffff
call fcn.004b1880
cmp dword [esp + 0x114], 0
jne 0x4c122b
mov dword [esp + 0xc], 0x10
jmp 0x4c127a
or eax, 0xffffffff
mov dword [esi + 0x14], 1
mov word [esi + 0x5c], ax
mov eax, dword [esp + 0xd8]
mov dword [esi + 0x10], 0
mov dword [esi], eax
mov dword [esi + 4], edi
mov byte [esi + 0x40], 1
mov eax, dword [edi + 8]
mov dword [esi + 8], eax
test eax, eax
je 0x4c125d
mov dword [eax + 0xc], esi
mov dword [edi + 8], esi
mov byte [esi + 0x43], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0x30]
mov byte [eax + 0x16], 1
mov ecx, dword [esp + 0x30]
cmp byte [ecx + 0x16], 0
sete al
mov byte [ecx + 0x17], al
jmp case.0x4be020.10
mov edx, dword [esi + edi*4 + 4]
mov ecx, dword [esp + 8]
push 0
push 0xffffffffffffffff
push dword [esi + edi*4 + 0xc]
call fcn.004bdb60
add esp, 0xc
mov dword [esp + 0x30], eax
test eax, eax
je 0x4c4342
mov byte [eax + 0x14], 1
mov eax, dword [esp + 0x30]
mov ecx, dword [esi + edi*4 + 8]
mov dword [eax + 0x24], ecx
mov eax, dword [esp + 0x30]
mov byte [eax + 0x16], 1
mov eax, dword [esp + 0x30]
mov byte [eax + 0x17], 0
jmp case.0x4be020.10
mov edx, dword [esp + 8]
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [edx + 0x34]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x4c132b
mov ecx, dword [esi + 0x20]
test ecx, ecx
je 0x4c12fd
call fcn.004b4940
jmp 0x4c1308
mov ecx, dword [esi]
test ecx, ecx
je 0x4c130c
call fcn.004b5180
mov edx, dword [esp + 8]
mov ecx, dword [esi + 0x38]
test ecx, ecx
je 0x4c132b
mov eax, dword [esi + 0x3c]
mov byte [edx + 0x70], 1
push ecx
mov eax, dword [eax + 0x1c]
call eax
mov eax, dword [esp + 0xc]
add esp, 4
mov byte [eax + 0x70], 0
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
mov ecx, dword [eax + edi*4 + 4]
mov edi, dword [esp + 8]
mov eax, dword [edi + 0x34]
mov dword [eax + ecx*4], 0
jmp 0x4bf276
mov eax, dword [esp + 8]
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [eax + 0x34]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x38], ecx
cmp dword [ecx], 0
je 0x4bf265
movzx eax, byte [esi + edi*4]
mov dword [esp + 0x34], eax
mov byte [ecx + 0x14], 0
mov ecx, dword [esp + 0x38]
cmp byte [ecx + 0x16], 0
je 0x4c15b9
mov ecx, dword [esp + 0x2c]
call fcn.004bdc60
mov ecx, dword [esp + 0x2c]
call fcn.004b9330
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x64], edx
mov byte [eax + 0x11], 0
movzx eax, word [ecx + 0x1c]
test al, 4
jne 0x4c155c
test al, 8
je 0x4bf265
mov edi, dword [esp + 0x60]
mov esi, dword [esp + 0x64]
test edi, edi
jne 0x4c1502
cmp esi, 0x80000000
jne 0x4c1502
movsd xmm0, qword [ecx + 8]
movsd xmm1, qword [esp + 0x148]
comisd xmm1, xmm0
ja 0x4c13f8
comisd xmm0, xmmword [esp + 0x130]
jbe 0x4c1502
movsd xmm0, qword [esp + 0x130]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x30], 1
comisd xmm0, xmmword [ecx + 8]
jbe 0x4c1468
cmp eax, 0x2e
je 0x4c1422
cmp eax, 0x2d
jne 0x4c14f1
mov eax, dword [esp + 0x38]
mov esi, dword [eax]
mov ecx, esi
call fcn.004b5790
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4c44eb
cmp byte [esi + 0x43], al
jne 0x4c1453
mov dword [esp + 0x30], 1
mov dword [esp + 0xc], edx
jmp 0x4c14e6
mov ecx, esi
mov dword [esp + 0x30], 0
call fcn.004b58d0
mov edx, eax
test edx, edx
jmp 0x4c14dc
cmp eax, 0x2b
je 0x4c1472
cmp eax, 0x2c
jne 0x4c14f1
mov eax, dword [esp + 0x38]
mov esi, dword [eax]
cmp byte [esi + 0x43], 1
jne 0x4c149d
cmp byte [esi + 0x41], 0
je 0x4c149d
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xc], 0
mov edx, dword [ecx + eax*4 + 8]
jmp 0x4bf269
mov ecx, esi
call fcn.004b5790
mov ecx, eax
mov edx, ecx
mov dword [esp + 0xc], edx
test ecx, ecx
jne 0x4c14d8
cmp byte [esi + 0x43], al
jne 0x4c14bf
mov dword [esp + 0x30], 1
jmp 0x4c14e6
mov ecx, esi
mov dword [esp + 0x30], 0
call fcn.004b59b0
mov ecx, eax
test ecx, ecx
sete al
mov byte [esi + 0x41], al
mov edx, ecx
test ecx, ecx
mov dword [esp + 0xc], edx
jne 0x4c44eb
cmp dword [esp + 0x30], 0
je 0x4bf272
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + eax*4 + 8]
jmp 0x4bf269
mov eax, dword [esp + 0x34]
cmp eax, 0x2b
je 0x4c1534
cmp eax, 0x2d
je 0x4c1534
mov edx, esi
mov ecx, edi
call fcn.00520d30
mov eax, dword [esp + 0x2c]
comisd xmm0, xmmword [eax + 8]
jbe 0x4c1564
add edi, 0xffffffff
mov dword [esp + 0x60], edi
adc esi, 0xffffffff
mov dword [esp + 0x64], esi
jmp 0x4c1564
mov edx, esi
mov ecx, edi
call fcn.00520d30
mov eax, dword [esp + 0x2c]
movsd xmm1, qword [eax + 8]
comisd xmm1, xmm0
jbe 0x4c1564
add edi, 1
mov dword [esp + 0x60], edi
adc esi, 0
mov dword [esp + 0x64], esi
jmp 0x4c1564
mov esi, dword [esp + 0x64]
mov edi, dword [esp + 0x60]
mov ecx, dword [esp + 0x38]
lea eax, [esp + 0x30]
push eax
push 0
push esi
mov ecx, dword [ecx]
xor edx, edx
push edi
call fcn.004b5a90
mov edx, eax
add esp, 0x10
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4c44eb
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x14]
cmp dword [esp + 0x30], eax
jne 0x4c1631
mov eax, dword [esp + 0x38]
mov byte [eax + 0x11], 1
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x64]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
jmp 0x4c1631
mov eax, dword [esi + edi*4 + 0x10]
mov dword [esp + 0x58], eax
mov eax, dword [ecx + 0x28]
mov dword [esp + 0x40], eax
mov ax, word [esp + 0x58]
mov word [esp + 0x44], ax
mov eax, dword [esp + 0x34]
cmp eax, 0x2e
je 0x4c15e4
cmp eax, 0x2c
je 0x4c15e4
xor eax, eax
jmp 0x4c15e9
mov eax, 8
mov word [esp + 0x46], ax
mov eax, dword [esi + edi*4 + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x58]
lea eax, [eax + edx*8]
mov dword [esp + 0x50], eax
lea edx, [esp + 0x40]
mov ecx, dword [ecx]
lea eax, [esp + 0x30]
push eax
push 0
push 0
push 0
call fcn.004b5a90
mov edx, eax
add esp, 0x10
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4c44eb
mov eax, dword [esp + 0x38]
mov byte [eax + 0x11], dl
mov eax, dword [esp + 0x38]
mov byte [eax + 0x15], 0
mov eax, dword [esp + 0x38]
mov dword [eax + 0x44], 0
mov eax, dword [esp + 0x34]
cmp eax, 0x2d
je 0x4c1687
cmp eax, 0x2e
je 0x4c1687
mov ecx, dword [esp + 0x30]
test ecx, ecx
jg 0x4c1676
jne 0x4c1661
cmp eax, 0x2b
je 0x4c1676
mov eax, dword [esp + 0x38]
xor ecx, ecx
mov eax, dword [eax]
cmp byte [eax + 0x43], 1
setne cl
mov dword [esp + 0x30], ecx
jmp 0x4c16d5
mov ecx, dword [esp + 0x38]
lea edx, [esp + 0x30]
mov ecx, dword [ecx]
call fcn.004b6100
jmp 0x4c16bf
mov ecx, dword [esp + 0x30]
test ecx, ecx
js 0x4c16b0
jne 0x4c1696
cmp eax, 0x2e
je 0x4c16b0
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 8]
inc edx
mov esi, dword [esp + 0x10]
mov dword [esp + 0x30], 0
jmp 0x4bdecd
mov ecx, dword [esp + 0x38]
lea edx, [esp + 0x30]
mov ecx, dword [ecx]
call fcn.004b5f90
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4c44eb
mov eax, dword [esp + 0x38]
mov byte [eax + 0x11], 0
cmp dword [esp + 0x30], 0
je 0x4bf8a9
mov edx, dword [esi + edi*4 + 8]
mov edi, dword [esp + 8]
dec edx
mov esi, dword [esp + 0x10]
inc edx
jmp 0x4bdecd
mov ecx, dword [esi + edi*4 + 4]
mov edi, dword [esp + 8]
mov eax, dword [edi + 0x34]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x30], eax
cmp dword [eax], 0
je 0x4befc1
mov ecx, dword [esp + 0xe4]
mov byte [eax + 0x14], 0
call fcn.004b9330
mov ecx, dword [esp + 0x30]
mov dword [ecx + 0x18], eax
mov dword [ecx + 0x1c], edx
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0xc]
mov byte [eax + 0x11], 0
mov eax, dword [esp + 0x30]
mov byte [eax + 0x15], 1
jmp 0x4bf276
mov eax, dword [esp + 8]
xor edx, edx
mov dword [esp + 0x30], edx
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [eax + 0x34]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x34], ecx
cmp dword [ecx], edx
je 0x4c1808
mov eax, dword [esp + 0x2c]
mov edx, 0x4000
test word [eax + 0x1c], dx
je 0x4c177f
mov ecx, eax
call fcn.004b9100
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x2c]
mov ecx, dword [ecx + 0x28]
lea edx, [esp + 0x40]
push 0x97
push edx
push dword [eax + 0x14]
mov edx, dword [eax + 0x18]
call fcn.004bc470
add esp, 0xc
mov dword [esp + 0x3c], eax
test eax, eax
je 0x4c4342
cmp byte [esi + edi*4], 0x31
jne 0x4c17b5
or word [eax + 6], 0x10
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x38]
mov edx, eax
push ecx
mov ecx, dword [esp + 0x38]
push 0
push 0
push 0
mov ecx, dword [ecx]
call fcn.004b5a90
mov ecx, dword [esp + 0x4c]
add esp, 0x10
mov dword [esp + 0xc], eax
call fcn.004bc650
mov edx, dword [esp + 0xc]
test edx, edx
jne 0x4bf272
xor eax, eax
cmp dword [esp + 0x38], eax
sete al
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x34]
mov byte [eax + 0x15], dl
mov eax, dword [esp + 0x34]
mov dword [eax + 0x44], edx
mov edx, dword [esp + 0x30]
cmp byte [esi + edi*4], 0x31
jne 0x4c1815
test edx, edx
jmp 0x4bf263
test edx, edx
jne case.0x4be020.10
jmp 0x4bf265
mov eax, dword [esi + edi*4 + 0x10]
mov edx, dword [esp + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x58]
lea eax, [eax + ecx*8]
mov dword [esp + 0x40], eax
mov ecx, dword [esi + edi*4 + 4]
xor esi, esi
mov eax, dword [edx + 0x34]
mov eax, dword [eax + ecx*4]
xor ecx, ecx
mov dword [esp + 0x34], eax
mov dword [eax + 0x40], 0
mov eax, dword [esp + 0x34]
mov dword [eax + 0x44], 0
mov eax, dword [esp + 0x34]
mov edi, dword [eax]
mov dword [esp + 0x38], edi
mov eax, dword [eax + 0x28]
movzx eax, word [eax + 6]
cmp si, ax
mov word [esp + 0x3c], ax
mov esi, dword [esp + 0x40]
mov edx, eax
mov word [esp + 0x30], cx
jae 0x4c189e
movzx eax, cx
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x1c], 1
jne 0x4c1948
inc cx
mov word [esp + 0x30], cx
cmp cx, dx
jb 0x4c1881
test edi, edi
je case.0x4be020.10
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0x28]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x3c]
inc eax
mov dword [esp + 0x58], esi
mov esi, dword [esp + 0x2c]
mov ecx, esi
mov word [esp + 0x4c], ax
mov eax, 0x20
mov word [esp + 0x4e], ax
call fcn.004b9330
mov dword [esi], eax
mov ecx, 0xbf04
mov ax, word [esi + 0x1c]
and ax, cx
mov dword [esi + 4], edx
or ax, 4
mov ecx, edx
mov word [esi + 0x1c], ax
lea edx, [esp + 0x48]
mov eax, dword [esi]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x34]
add eax, 0x40
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x38]
push eax
push 0
push 0
push 0
call fcn.004b5a90
add esp, 0x10
mov dword [esp + 0xc], eax
test byte [esp + 0x4e], 0x20
jne 0x4c14f1
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x54]
cmp ecx, dword [esp + 0x60]
jne 0x4c193e
cmp eax, dword [esp + 0x64]
je 0x4c14f1
mov dword [esi], ecx
mov dword [esi + 4], eax
jmp case.0x4be020.10
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + eax*4 + 8]
mov dword [esp + 0x38], 0
jmp 0x4bf269
mov eax, dword [esp + 8]
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [eax + 0x34]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x30], eax
mov ecx, dword [eax]
mov dword [esp + 0x34], ecx
test ecx, ecx
je 0x4c1a0f
mov eax, dword [esp + 0x2c]
lea edi, [esp + 0x38]
push edi
mov dword [esp + 0x3c], 0
push 0
mov edx, dword [eax]
mov eax, dword [eax + 4]
push eax
mov dword [esp + 0x4c], edx
push edx
xor edx, edx
mov dword [esp + 0x54], eax
call fcn.004b5a90
mov dword [esp + 0x1c], eax
add esp, 0x10
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x24]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x30]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
cmp dword [esp + 0x38], 0
mov eax, dword [esp + 0x30]
sete cl
mov byte [eax + 0x11], cl
mov eax, dword [esp + 0x30]
mov byte [eax + 0x14], 0
mov eax, dword [esp + 0x30]
mov dword [eax + 0x44], 0
mov eax, dword [esp + 0x30]
mov byte [eax + 0x15], 0
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x4c1a03
mov eax, dword [esi + edi*4 + 8]
dec eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x30]
mov dword [eax + 0x40], ecx
jmp case.0x4be020.10
mov edx, dword [esi + edi*4 + 8]
mov dword [eax + 0x40], 0
jmp 0x4bf269
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x34]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax + 0x30]
mov eax, dword [eax + 0x34]
mov dword [edx + 4], eax
mov dword [edx], ecx
mov ecx, dword [esi + edi*4 + 4]
mov edi, dword [esp + 8]
mov eax, dword [edi + 0x34]
mov eax, dword [eax + ecx*4]
mov ecx, 0xbf04
add dword [eax + 0x30], 1
adc dword [eax + 0x34], 0
mov ax, word [edx + 0x1c]
and ax, cx
or ax, 4
mov word [edx + 0x1c], ax
mov edx, dword [esp + 0xc]
jmp 0x4bf276
xorps xmm0, xmm0
mov dword [esp + 0x3c], 0
movlpd qword [esp + 0x30], xmm0
mov ecx, dword [esi + edi*4 + 4]
mov edi, dword [esp + 8]
mov eax, dword [edi + 0x34]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x38], ecx
cmp dword [ecx], 0
je 0x4c1cbd
mov dword [esp + 0x40], 0
cmp byte [ecx + 0x13], 0
jne 0x4c1bd9
mov eax, dword [ecx]
mov esi, dword [eax + 0x18]
mov edx, dword [eax + 0x1c]
mov eax, esi
or eax, edx
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], edx
jne 0x4c1b7d
mov esi, dword [ecx]
cmp byte [esi + 0x43], 1
jne 0x4c1ad0
cmp byte [esi + 0x41], al
jne 0x4c1b35
mov ecx, esi
call fcn.004b5790
mov ecx, eax
mov dword [esp + 0xc], ecx
test ecx, ecx
jne 0x4c1b0a
cmp byte [esi + 0x43], al
jne 0x4c1af1
mov eax, 1
mov dword [esp + 0x3c], eax
jmp 0x4c1b1c
mov ecx, esi
mov dword [esp + 0x3c], 0
call fcn.004b59b0
mov ecx, eax
test ecx, ecx
sete al
mov byte [esi + 0x41], al
mov edx, ecx
mov dword [esp + 0xc], edx
test ecx, ecx
jne 0x4c44ef
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x4c1b35
mov esi, 1
xor edx, edx
mov dword [esp + 0x30], esi
add esi, esi
mov dword [esp + 0x34], edx
adc edx, edx
jmp 0x4c1bae
mov ecx, dword [esp + 0x38]
lea edx, [esp + 0x30]
mov ecx, dword [ecx]
call fcn.004b5210
mov esi, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov dword [esp + 0xc], eax
cmp esi, 0xffffffff
jne 0x4c1b6f
cmp edx, 0x7fffffff
jne 0x4c1b6f
mov eax, dword [esp + 0x38]
mov byte [eax + 0x13], 1
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
jmp 0x4c1b7d
add esi, 1
mov dword [esp + 0x30], esi
adc edx, 0
mov dword [esp + 0x34], edx
cmp edx, 0x7fffffff
jg 0x4c1b94
jl 0x4c1b8c
cmp esi, 0xffffffff
jae 0x4c1b94
add esi, 1
adc edx, 0
jmp 0x4c1bae
xorps xmm0, xmm0
movlpd qword [esp + 0xf0], xmm0
mov edx, dword [esp + 0xf4]
mov esi, dword [esp + 0xf0]
mov eax, dword [esp + 0x38]
mov edi, dword [eax]
mov eax, dword [edi + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x4c1bd5
nop
mov eax, dword [ecx + 0x14]
cmp eax, dword [edi + 0x14]
jne 0x4c1bce
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x1c], edx
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x4c1bc0
mov edi, dword [esp + 8]
mov eax, dword [esp + 0x38]
cmp byte [eax + 0x13], 0
je 0x4c1ca2
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x30]
mov edx, dword [eax + 0x34]
xor eax, eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], edx
mov dword [esp + 0x40], eax
nop
test eax, eax
jne 0x4c1c24
mov eax, ecx
xor esi, esi
and eax, 0xffffff
cmp eax, ecx
jne 0x4c1c24
cmp esi, edx
jne 0x4c1c24
add ecx, 1
mov dword [esp + 0x30], ecx
adc edx, esi
mov dword [esp + 0x34], edx
jmp 0x4c1c53
lea edx, [esp + 0x30]
mov ecx, 8
call fcn.004ab2a0
cmp dword [esp + 0x40], 5
mov ecx, dword [esp + 0x30]
jge 0x4c1c4f
and ecx, 0xffffff
xor edx, edx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], edx
jmp 0x4c1c53
mov edx, dword [esp + 0x34]
lea eax, [esp + 0x3c]
push eax
push 0
push edx
push ecx
mov ecx, dword [esp + 0x48]
xor edx, edx
mov ecx, dword [ecx]
call fcn.004b5a90
mov ecx, eax
add esp, 0x10
mov eax, dword [esp + 0x40]
inc eax
mov dword [esp + 0xc], ecx
mov dword [esp + 0x40], eax
test ecx, ecx
jne 0x4c1ca2
cmp eax, 0x64
jge 0x4c1c97
cmp dword [esp + 0x3c], ecx
jne 0x4c1ca2
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
jmp 0x4c1c00
cmp dword [esp + 0x3c], 0
je 0x4c44dc
mov eax, dword [esp + 0x38]
mov byte [eax + 0x11], 0
mov eax, dword [esp + 0x38]
mov byte [eax + 0x15], 0
mov eax, dword [esp + 0x38]
mov dword [eax + 0x44], 0
mov edx, dword [esp + 0x18]
mov ecx, 0xbf04
mov ax, word [edx + 0x1c]
and ax, cx
or ax, 4
jmp 0x4c050a
mov eax, dword [esp + 8]
mov edx, dword [eax + 0x58]
mov eax, dword [esi + edi*4 + 8]
mov dword [esp + 0xd8], edx
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x30], esi
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x34]
mov ecx, dword [eax + ecx*4]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x40], ecx
cmp byte [edx + edi*4], 0x36
mov edx, dword [esp + 0xd8]
mov eax, dword [eax + edi*4 + 0xc]
mov dword [esp + 0xc], ecx
jne 0x4c1d3e
lea eax, [eax + eax*4]
lea ecx, [edx + eax*8]
mov dword [esp + 0x34], ecx
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0xc]
jmp 0x4c1d43
cdq
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x38], eax
test byte [edx + edi*4 + 3], 1
je 0x4c1d59
mov eax, dword [esp + 8]
inc dword [eax + 0x74]
test byte [edx + edi*4 + 3], 2
je 0x4c1d7e
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], ecx
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x30]
mov dword [esp + 0xc], ecx
test byte [esi + 0x1c], 1
je 0x4c1da2
mov dword [esi + 0x14], 0
mov eax, dword [esp + 0x30]
mov dword [eax + 0x18], 0
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x30]
mov dword [esp + 0xc], ecx
test byte [edx + edi*4 + 3], 0x10
je 0x4c1dae
mov eax, dword [ecx + 0x40]
jmp 0x4c1db0
xor eax, eax
mov dword [esp + 0x48], eax
mov dword [esp + 0xf8], eax
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x4c1dca
mov edi, dword [esi]
jmp 0x4c1dcc
xor edi, edi
mov dword [esp + 0x44], edi
mov edx, dword [ecx]
mov eax, dword [edx + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x4c1e0f
nop dword [eax]
mov eax, dword [ecx + 0x14]
cmp eax, dword [edx + 0x14]
jne 0x4c1df6
mov dword [ecx + 0x18], 0
mov dword [ecx + 0x1c], 0
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x4c1de0
mov eax, dword [esp + 0x48]
mov edi, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x30]
jmp 0x4c1e1a
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
push eax
mov eax, dword [esp + 0x28]
mov ecx, dword [ecx]
movzx eax, byte [edx + eax*4 + 3]
xor edx, edx
and eax, 8
push eax
push edi
push dword [esi + 0x18]
push dword [esi + 0x14]
push dword [esp + 0x50]
push dword [esp + 0x50]
call fcn.004b8400
mov esi, dword [esp + 0x2c]
add esp, 0x1c
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0xc]
mov byte [eax + 0x11], 0
mov eax, dword [esp + 0x40]
mov byte [eax + 0x15], 0
mov eax, dword [esp + 0x40]
mov dword [eax + 0x44], 0
test edx, edx
jne 0x4be887
cmp dword [esi + 0xb8], edx
je 0x4be887
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x14]
cmp dword [edi + esi*4 + 0x10], edx
je 0x4bf272
mov eax, dword [esp + 0x40]
push dword [esp + 0x3c]
push dword [esp + 0x3c]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x18]
add ecx, ecx
mov eax, dword [eax + 8]
mov edx, dword [eax + ecx*8]
mov eax, 0x12
mov dword [esp + 0x54], edx
mov ecx, dword [edi + esi*4 + 0x10]
mov dword [esp + 0x58], ecx
test byte [edi + esi*4 + 3], 4
mov esi, 0x17
push ecx
cmovne eax, esi
mov esi, dword [esp + 0x1c]
push edx
push eax
mov dword [esp + 0x68], eax
push dword [esi + 0xb4]
mov eax, dword [esi + 0xb8]
call eax
mov edx, dword [esp + 0x34]
add esp, 0x18
mov edi, dword [esp + 8]
inc edx
jmp 0x4bdecd
mov eax, dword [esp + 8]
xorps xmm0, xmm0
movlpd qword [esp + 0x30], xmm0
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [eax + 0x34]
mov esi, dword [eax + ecx*4]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x38], esi
cmp dword [eax + 0xb8], 0
je 0x4c1f38
mov eax, dword [esp + 0x14]
cmp dword [eax + edi*4 + 0x10], 0
je 0x4c1f38
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ecx
cmp byte [esi + 0x15], 0
je 0x4c1fb0
mov ecx, dword [esi]
lea eax, [esp + 0x118]
push eax
push 0
push dword [esi + 0x1c]
xor edx, edx
push dword [esi + 0x18]
call fcn.004b5a90
mov edx, eax
add esp, 0x10
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4c44eb
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc], ecx
mov ecx, dword [esp + 0x118]
test ecx, ecx
mov dword [esi + 8], eax
sete al
mov byte [esi + 0x11], al
test ecx, ecx
jns 0x4c1fa3
mov ecx, dword [esi]
lea edx, [esp + 0x118]
call fcn.004b5f90
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4c44eb
mov byte [esi + 0x15], 0
mov dword [esi + 0x44], 0
jmp 0x4c1fff
mov edi, dword [esi]
test edi, edi
je 0x4c1ffb
cmp byte [edi + 0x43], 2
jb 0x4c1fd1
mov ecx, edi
call fcn.004b3b50
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4c44eb
cmp byte [edi + 0x43], 1
jne 0x4c1fe1
cmp dword [edi + 0x50], 0
jne 0x4c1fe1
xor eax, eax
jmp 0x4c1fe6
mov eax, 1
mov edi, dword [esp + 0x24]
test eax, eax
je 0x4c1fff
mov dword [esi + 0x44], 0
mov byte [esi + 0x14], 1
jmp 0x4c1fff
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x38]
mov edx, dword [eax]
mov eax, dword [edx + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x4c202d
nop
mov eax, dword [ecx + 0x14]
cmp eax, dword [edx + 0x14]
jne 0x4c2026
mov dword [ecx + 0x18], 0
mov dword [ecx + 0x1c], 0
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x4c2010
mov ecx, dword [esp + 0x38]
mov ecx, dword [ecx]
call fcn.004b86c0
mov esi, dword [esp + 0x10]
mov dword [esp + 0xc], eax
cmp dword [esp + 0xc], 0
mov eax, dword [esp + 0x38]
mov dword [eax + 0x44], 0
jne 0x4c208d
mov edx, dword [esi + 0xb8]
test edx, edx
je 0x4c208d
mov eax, dword [esp + 0x14]
mov eax, dword [eax + edi*4 + 0x10]
test eax, eax
je 0x4c208d
push dword [esp + 0x34]
push dword [esp + 0x34]
push eax
mov eax, dword [esp + 0x44]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 8]
add ecx, ecx
push dword [eax + ecx*8]
push 9
push dword [esi + 0xb4]
call edx
add esp, 0x18
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
test byte [eax + edi*4 + 8], 1
mov edi, dword [esp + 8]
je 0x4bf27a
inc dword [edi + 0x74]
jmp 0x4bf27a
mov edi, dword [esp + 8]
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov eax, dword [edi + 0x74]
add dword [esi + 0x40], eax
mov dword [esi + 0x3c], eax
mov dword [edi + 0x74], 0
jmp 0x4bf27a
mov eax, dword [esi + edi*4 + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x58]
lea eax, [eax + ecx*8]
mov ecx, dword [esi + edi*4 + 4]
mov edi, dword [esp + 8]
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0x34]
mov esi, dword [eax + ecx*4]
mov dword [esp + 0x30], esi
mov eax, dword [esi]
mov dword [esp + 0x34], eax
cmp byte [esi + 0x15], 0
je 0x4c2172
mov ecx, dword [esi]
lea eax, [esp + 0x11c]
push eax
push 0
push dword [esi + 0x1c]
xor edx, edx
push dword [esi + 0x18]
call fcn.004b5a90
mov edx, eax
add esp, 0x10
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4c44ef
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc], ecx
mov ecx, dword [esp + 0x11c]
test ecx, ecx
mov dword [esi + 8], eax
sete al
mov byte [esi + 0x11], al
test ecx, ecx
jns 0x4c2165
mov ecx, dword [esi]
lea edx, [esp + 0x11c]
call fcn.004b5f90
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4c44ef
mov byte [esi + 0x15], 0
mov dword [esi + 0x44], 0
jmp 0x4c21c1
mov edi, dword [esi]
test edi, edi
je 0x4c21bd
cmp byte [edi + 0x43], 2
jb 0x4c2193
mov ecx, edi
call fcn.004b3b50
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4c44eb
cmp byte [edi + 0x43], 1
jne 0x4c21a3
cmp dword [edi + 0x50], 0
jne 0x4c21a3
xor eax, eax
jmp 0x4c21a8
mov eax, 1
mov edi, dword [esp + 8]
test eax, eax
je 0x4c21c1
mov dword [esi + 0x44], 0
mov byte [esi + 0x14], 1
jmp 0x4c21c1
mov edi, dword [esp + 8]
mov eax, dword [esp + 0x30]
cmp byte [eax + 0x17], 0
je 0x4c21fe
mov ecx, dword [esp + 0x34]
lea edx, [esp + 0x40]
call fcn.004b5210
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0x48]
cdq
cmp dword [esp + 0x44], edx
jg 0x4c457b
mov edx, dword [esp + 0x40]
jl 0x4c21f8
cmp edx, eax
ja 0x4c457b
mov dword [esp + 0x38], edx
jmp 0x4c227a
mov edx, dword [esp + 0x34]
mov dword [esp + 0xec], edx
cmp word [edx + 0x3e], 0
jne 0x4c2266
movsx eax, word [edx + 0x5c]
movzx edi, word [edx + eax*2 + 0xb0]
mov eax, dword [edx + eax*4 + 0x60]
mov dword [esp + 0xd8], eax
mov ecx, dword [eax + 0x40]
movzx esi, word [eax + 0xc]
lea eax, [edx + 0x20]
add esi, ecx
push eax
movzx eax, byte [esi + edi*2 + 1]
movzx edx, byte [esi + edi*2]
mov esi, dword [esp + 0xdc]
shl edx, 8
or edx, eax
movzx eax, word [esi + 0x12]
and edx, eax
add edx, ecx
mov ecx, esi
call fcn.004b3c90
mov edx, dword [esp + 0xf0]
add esp, 4
mov byte [edx + 0x42], 1
mov esi, dword [esp + 0x10]
mov edx, dword [edx + 0x30]
mov dword [esp + 0x38], edx
cmp edx, dword [esi + 0x48]
ja 0x4c456d
mov esi, dword [esp + 0x18]
mov ecx, esi
push 0
call fcn.004b8f10
add esp, 4
test eax, eax
jne 0x4c4342
mov eax, dword [esp + 0x38]
mov ecx, 0xbf10
mov edi, dword [esi + 0x14]
mov dword [esi + 0x18], eax
mov ax, word [esi + 0x1c]
and ax, cx
or ax, 0x10
mov word [esi + 0x1c], ax
mov eax, dword [esp + 0x30]
cmp byte [eax + 0x17], 0
je 0x4c22de
mov ecx, dword [esp + 0x34]
xor edx, edx
push 0
push edi
push dword [esp + 0x40]
call fcn.004b52b0
mov edx, eax
mov byte [esi + 0x1f], 1
add esp, 0xc
mov dword [esp + 0xc], edx
jmp 0x4bf272
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
mov dword [esp + 0xd8], eax
mov al, byte [esi + 0x43]
test al, al
jne 0x4c230a
mov esi, dword [esp + 0x18]
mov edx, 4
mov dword [esp + 0xc], edx
mov byte [esi + 0x1f], 1
jmp 0x4bf272
cmp al, 2
jb 0x4c231f
mov ecx, esi
call fcn.004b3b50
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4c233b
push 0
push edi
push dword [esp + 0xe0]
xor edx, edx
mov ecx, esi
call fcn.004b52b0
mov edx, eax
add esp, 0xc
mov dword [esp + 0xc], edx
mov esi, dword [esp + 0x18]
mov byte [esi + 0x1f], 1
jmp 0x4bf272
mov ecx, dword [esi + edi*4 + 4]
mov edi, dword [esp + 8]
mov eax, dword [edi + 0x34]
mov esi, dword [eax + ecx*4]
mov ecx, esi
mov dword [esp + 0x30], ecx
cmp byte [esi + 0x14], 0
jne 0x4befc1
cmp byte [esi + 0x15], 0
je 0x4c237f
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x1c]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
jmp 0x4c2439
cmp dword [esi + 0x38], 0
je 0x4c23c8
mov eax, dword [esi + 0x38]
lea ecx, [esp + 0x38]
push ecx
mov eax, dword [eax]
mov dword [esp + 0x44], eax
mov eax, dword [eax]
mov dword [esp + 0x48], eax
push dword [esi + 0x38]
mov eax, dword [eax + 0x30]
call eax
push dword [edi + 0x68]
mov esi, dword [esp + 0x1c]
push esi
mov dword [esp + 0x1c], eax
call fcn.004a9700
mov ecx, dword [esp + 0x50]
add esp, 0x10
mov eax, dword [ecx + 8]
mov dword [edi + 0x68], eax
mov dword [ecx + 8], 0
jmp 0x4c243d
mov edi, dword [esi]
test edi, edi
je 0x4c2408
cmp byte [edi + 0x43], 2
jb 0x4c23ed
mov ecx, edi
call fcn.004b3b50
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4c44eb
mov ecx, dword [esp + 0x30]
cmp byte [edi + 0x43], 1
jne 0x4c23f9
cmp dword [edi + 0x50], 0
je 0x4c2408
mov dword [esi + 0x44], 0
mov byte [esi + 0x14], 1
mov ecx, dword [esp + 0x30]
cmp byte [ecx + 0x11], 0
mov dword [esp + 0xc], 0
je 0x4c2426
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
jmp 0x4c2435
mov ecx, dword [ecx]
lea edx, [esp + 0x38]
call fcn.004b5210
mov dword [esp + 0xc], eax
mov edi, dword [esp + 8]
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov dword [edx], eax
mov ax, word [edx + 0x1c]
mov dword [edx + 4], ecx
mov ecx, 0xbf04
and ax, cx
or ax, 4
mov word [edx + 0x1c], ax
mov edx, dword [esp + 0xc]
jmp 0x4bf27a
mov ecx, dword [esi + edi*4 + 4]
mov edi, dword [esp + 8]
mov eax, dword [edi + 0x34]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x30], eax
mov byte [eax + 0x14], 1
mov eax, dword [esp + 0x30]
mov byte [eax + 0x11], 0
mov eax, dword [esp + 0x30]
mov ecx, dword [eax]
test ecx, ecx
je 0x4befc1
call fcn.004b3ac0
mov edx, dword [esp + 0xc]
jmp 0x4bf276
mov eax, dword [esp + 8]
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [eax + 0x34]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x30], ecx
mov esi, dword [ecx]
mov dword [esp + 0x34], esi
test esi, esi
jne 0x4c24cb
mov dword [esp + 0x38], 1
jmp 0x4c251e
cmp byte [esi + 0x43], 1
jne 0x4c24e1
cmp byte [esi + 0x41], 0
je 0x4c24e1
mov dword [esp + 0xc], 0
jmp 0x4c251e
mov ecx, esi
call fcn.004b5790
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4c251a
cmp byte [esi + 0x43], al
jne 0x4c24ff
mov dword [esp + 0x38], 1
jmp 0x4c251a
mov ecx, esi
mov dword [esp + 0x38], 0
call fcn.004b59b0
test eax, eax
mov dword [esp + 0xc], eax
sete al
mov byte [esi + 0x41], al
mov ecx, dword [esp + 0x30]
mov al, byte [esp + 0x38]
mov byte [ecx + 0x14], al
mov eax, dword [esp + 0x30]
mov byte [eax + 0x15], 0
mov eax, dword [esp + 0x30]
mov byte [eax + 0x11], 0
mov eax, dword [esp + 0x30]
mov dword [eax + 0x44], 0
mov eax, dword [esp + 0x14]
mov eax, dword [eax + edi*4 + 8]
test eax, eax
jle case.0x4be020.10
cmp dword [esp + 0x38], 0
mov edi, dword [esp + 8]
mov esi, dword [esp + 0x10]
je 0x4be181
lea edx, [eax - 1]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0xc]
jmp 0x4bf27a
mov eax, dword [esp + 8]
inc dword [eax + 0xbc]
jmp 0x4c2583
mov eax, dword [esp + 8]
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [eax + 0x34]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x30], ecx
mov esi, dword [ecx]
mov dword [esp + 0x34], esi
test esi, esi
je 0x4c2602
mov ecx, esi
call fcn.004b5790
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4c25d2
cmp byte [esi + 0x43], al
jne 0x4c25bf
mov dword [esp + 0x38], 1
mov dword [esp + 0xc], eax
jmp 0x4c25d2
mov ecx, esi
mov dword [esp + 0x38], 0
call fcn.004b58d0
mov dword [esp + 0xc], eax
cmp dword [esp + 0x38], 0
mov eax, dword [esp + 0x30]
sete cl
mov byte [eax + 0x12], cl
mov eax, dword [esp + 0x30]
mov byte [eax + 0x15], 0
mov eax, dword [esp + 0x30]
mov dword [eax + 0x44], 0
mov eax, dword [esp + 0x30]
mov byte [eax + 0x11], 0
mov ecx, dword [esp + 0x30]
jmp 0x4c260a
mov dword [esp + 0x38], 1
mov al, byte [esp + 0x38]
mov esi, dword [esp + 0x10]
mov byte [ecx + 0x14], al
cmp dword [esp + 0x38], 0
je 0x4be883
mov eax, dword [esp + 0x14]
mov edx, dword [eax + edi*4 + 8]
mov edi, dword [esp + 8]
dec edx
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0xc]
jmp 0x4bf27a
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xd8], 0
jne 0x4c46e9
mov eax, dword [esp + 8]
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [eax + 0x34]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x30], eax
test eax, eax
je case.0x4be020.10
mov ecx, dword [eax]
mov dword [esp + 0x34], ecx
test ecx, ecx
jne 0x4c2678
mov byte [eax + 0x14], 1
jmp case.0x4be020.10
mov dword [esp + 0x38], 1
lea edx, [esp + 0x38]
cmp byte [esi + edi*4], 0x42
jne 0x4c2691
call fcn.004b5f90
jmp 0x4c2696
call fcn.004b6100
mov ecx, dword [esp + 0x30]
mov dword [esp + 0xc], eax
mov al, byte [esp + 0x38]
mov byte [ecx + 0x14], al
mov eax, dword [esp + 0x30]
mov dword [eax + 0x44], 0
cmp dword [esp + 0x38], 0
jne 0x4c26e7
mov eax, dword [esi + edi*4 + 8]
dec eax
mov dword [esp + 0x1c], eax
mov al, byte [esi + edi*4 + 3]
mov edi, dword [esp + 8]
test al, al
je 0x4c26eb
mov edx, dword [esp + 0xc]
movzx eax, al
inc dword [edi + eax*4 + 0xb4]
mov eax, dword [esp + 0x30]
mov byte [eax + 0x11], 0
jmp 0x4bf276
mov edi, dword [esp + 8]
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0xc]
mov byte [eax + 0x11], 0
jmp 0x4bf276
mov eax, dword [esp + 8]
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [eax + 0x34]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x30], eax
mov ecx, dword [eax]
mov dword [esp + 0x34], ecx
test ecx, ecx
je case.0x4be020.10
mov esi, dword [esp + 0xe4]
mov edx, 0x4000
test word [esi + 0x1c], dx
je 0x4c274b
mov ecx, esi
call fcn.004b9100
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4bf272
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
mov edx, dword [esi + 0x18]
mov dword [esp + 0x38], edx
mov esi, dword [esi + 0x14]
mov dword [esp + 0x3c], esi
mov dword [esp + 0xd8], esi
mov esi, dword [esp + 0x14]
test byte [esi + edi*4 + 3], 0x10
mov esi, dword [esp + 0xd8]
je 0x4c2777
mov eax, dword [eax + 0x40]
jmp 0x4c2779
xor eax, eax
push eax
mov eax, dword [esp + 0x18]
push dword [eax + edi*4 + 0xc]
mov eax, edx
push 0
push 0
cdq
push 0x5424b0
push edx
push eax
mov edx, esi
call fcn.004b8400
mov dword [esp + 0x28], eax
add esp, 0x1c
mov eax, dword [esp + 0x30]
mov dword [eax + 0x44], 0
jmp case.0x4be020.10
mov eax, dword [esp + 8]
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [eax + 0x34]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x30], eax
mov ecx, dword [eax]
mov dword [esp + 0x34], ecx
test ecx, ecx
je case.0x4be020.10
mov eax, dword [eax + 0x28]
mov dword [esp + 0x40], eax
mov ax, word [esi + edi*4 + 0xc]
mov word [esp + 0x44], ax
xor eax, eax
mov word [esp + 0x46], ax
mov eax, dword [esi + edi*4 + 8]
mov edi, dword [esp + 8]
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea eax, [eax + edx*8]
mov dword [esp + 0x50], eax
lea edx, [esp + 0x40]
lea eax, [esp + 0x38]
push eax
push 0
push 0
push 0
call fcn.004b5a90
add esp, 0x10
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4c282d
cmp dword [esp + 0x38], eax
jne 0x4c282d
mov ecx, dword [esp + 0x34]
call fcn.004b86c0
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0xc]
mov dword [eax + 0x44], 0
jmp 0x4bf276
mov ecx, dword [esi + edi*4 + 4]
mov edi, dword [esp + 8]
mov eax, dword [edi + 0x34]
mov esi, dword [eax + ecx*4]
mov dword [esp + 0x34], esi
mov eax, dword [esi]
mov dword [esp + 0x30], eax
test eax, eax
je 0x4befc1
cmp byte [esi + 0x15], 0
je 0x4c28d9
mov ecx, dword [esi]
lea eax, [esp + 0x120]
push eax
push 0
push dword [esi + 0x1c]
xor edx, edx
push dword [esi + 0x18]
call fcn.004b5a90
mov edx, eax
add esp, 0x10
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4c44ef
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc], ecx
mov ecx, dword [esp + 0x120]
test ecx, ecx
mov dword [esi + 8], eax
sete al
mov byte [esi + 0x11], al
test ecx, ecx
jns 0x4c28cc
mov ecx, dword [esi]
lea edx, [esp + 0x120]
call fcn.004b5f90
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4c44ef
mov byte [esi + 0x15], 0
mov dword [esi + 0x44], 0
jmp 0x4c2928
mov edi, dword [esi]
test edi, edi
je 0x4c2924
cmp byte [edi + 0x43], 2
jb 0x4c28fa
mov ecx, edi
call fcn.004b3b50
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4c44eb
cmp byte [edi + 0x43], 1
jne 0x4c290a
cmp dword [edi + 0x50], 0
jne 0x4c290a
xor eax, eax
jmp 0x4c290f
mov eax, 1
mov edi, dword [esp + 8]
test eax, eax
je 0x4c2928
mov dword [esi + 0x44], 0
mov byte [esi + 0x14], 1
jmp 0x4c2928
mov edi, dword [esp + 8]
mov eax, dword [esp + 0x34]
mov dword [esp + 0xc], 0
cmp byte [eax + 0x14], 0
jne 0x4c41e2
mov edx, dword [esp + 0x30]
lea eax, [esp + 0x38]
push eax
call fcn.004bcc10
mov edx, eax
add esp, 4
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4c44ef
mov edx, dword [esp + 0x18]
mov ecx, 0xbf04
mov esi, dword [esp + 0x10]
mov ax, word [edx + 0x1c]
and ax, cx
or ax, 4
mov word [edx + 0x1c], ax
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov dword [edx], eax
mov dword [edx + 4], ecx
mov edx, dword [esp + 0x1c]
inc edx
jmp 0x4bdecd
mov edx, dword [esp + 8]
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [edx + 0x34]
mov esi, dword [eax + ecx*4]
mov dword [esp + 0x30], esi
cmp dword [esi], 0
je case.0x4be020.10
mov ecx, dword [esp + 0x14]
mov eax, dword [esi + 0x28]
mov dword [esp + 0x38], eax
mov ax, word [ecx + edi*4 + 0x10]
mov word [esp + 0x3c], ax
mov eax, 0xc
cmp byte [ecx + edi*4 + 3], 0
jne 0x4c29d1
mov eax, 4
mov word [esp + 0x3e], ax
xorps xmm0, xmm0
mov eax, dword [ecx + edi*4 + 0xc]
movlpd qword [esp + 0x150], xmm0
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x58]
lea edx, [esp + 0x150]
lea eax, [eax + ecx*8]
mov dword [esp + 0x48], eax
mov ecx, dword [esi]
call fcn.004b5210
mov edx, dword [esp + 0x150]
mov ecx, edx
mov eax, dword [esp + 0x154]
add ecx, 0xffffffff
adc eax, 0xffffffff
test eax, eax
ja 0x4c2ade
jb 0x4c2a2d
cmp ecx, 0x7ffffffe
ja 0x4c2ade
mov ecx, dword [esi]
lea eax, [esp + 0x160]
push eax
xorps xmm0, xmm0
push 1
push edx
xor edx, edx
movaps xmmword [esp + 0x16c], xmm0
movaps xmmword [esp + 0x17c], xmm0
movq qword [esp + 0x18c], xmm0
call fcn.004b9d60
add esp, 0xc
mov dword [esp + 0xc], eax
test eax, eax
je 0x4c2a6e
mov eax, dword [esp + 0x34]
jmp 0x4c2aec
mov edx, dword [esp + 0x174]
lea eax, [esp + 0x38]
mov ecx, dword [esp + 0x178]
push eax
call fcn.004bc760
add esp, 4
mov dword [esp + 0x34], eax
lea ecx, [esp + 0x160]
call fcn.004b9210
push dword [esp + 0x184]
push dword [esp + 0x174]
call fcn.004a9700
mov eax, dword [esp + 0x3c]
add esp, 8
mov dword [esp + 0x174], 0
mov dword [esp + 0x184], 0
mov dword [esp + 0x180], 0
mov dword [esp + 0xc], 0
jmp 0x4c2aec
xor eax, eax
mov dword [esp + 0xc], 0xb
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0x14]
cmp byte [ecx + edi*4], 0x48
jne 0x4c2afa
neg eax
jmp 0x4c2afb
inc eax
mov esi, dword [esp + 0x10]
mov dword [esp + 0x34], eax
test eax, eax
jle 0x4be883
mov edx, dword [ecx + edi*4 + 8]
mov edi, dword [esp + 8]
dec edx
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0xc]
jmp 0x4bf27a
mov eax, dword [esp + 0x10]
xor edx, edx
mov dword [esp + 0x34], edx
mov ecx, dword [eax + 0x88]
mov dword [esp + 0x38], ecx
test ecx, ecx
je 0x4c2b70
nop dword [eax]
cmp dword [ecx + 0x50], 0xbdf20da3
jne 0x4c2b5a
cmp byte [ecx + 0x70], 2
jae 0x4c2b5a
cmp dword [ecx + 0x60], 0
jl 0x4c2b5a
inc edx
mov dword [esp + 0x34], edx
mov eax, dword [ecx + 8]
mov ecx, eax
mov dword [esp + 0x38], ecx
test eax, eax
jne 0x4c2b40
cmp edx, 1
jg 0x4c454c
mov ecx, dword [esi + edi*4 + 0xc]
mov dword [esp + 0x3c], ecx
add ecx, ecx
mov edi, dword [esi + edi*4 + 4]
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 8]
mov eax, dword [eax + ecx*8 + 4]
mov dword [esp + 0xec], eax
mov eax, dword [eax + 4]
mov dword [esp + 0xd8], eax
cmp dword [eax + 8], 0
je 0x4c2bad
mov dword [esp + 0xc], 0x106
jmp 0x4c2c87
lea ecx, [esp + 0x13c]
mov edx, edi
push 0
push ecx
mov ecx, dword [eax]
call fcn.004b2b40
add esp, 8
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4c2c87
mov ecx, dword [esp + 0x13c]
cmp edi, 1
push 0
mov edx, edi
mov esi, dword [ecx + 4]
mov eax, dword [ecx]
mov dword [esi + 0x40], eax
mov eax, dword [esp + 0xdc]
mov dword [esi + 0x3c], eax
setne al
dec al
mov dword [esi + 0x44], ecx
mov ecx, dword [esp + 0xf0]
and al, 0x64
mov dword [esi + 0x48], edi
mov byte [esi + 5], al
call fcn.004b8b50
add esp, 4
mov dword [esp + 0xc], eax
test eax, eax
je 0x4c2c32
test esi, esi
je 0x4c2c83
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x4c2c83
mov esi, dword [ecx + 0x10]
call fcn.004ae760
mov ecx, esi
call fcn.004b2ae0
jmp 0x4c2c83
mov dword [esp + 0x30], 0
cmp edi, 1
jbe 0x4c2c55
push dword [esi + 0x48]
mov ecx, dword [esi + 0x3c]
mov edx, esi
call fcn.004b6720
add esp, 4
mov dword [esp + 0xc], eax
jmp 0x4c2c65
mov edx, 9
mov ecx, esi
call fcn.004b4530
test esi, esi
je 0x4c2c7b
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x4c2c7b
mov esi, dword [ecx + 0x10]
call fcn.004ae760
mov ecx, esi
call fcn.004b2ae0
mov eax, dword [esp + 0xc]
mov dword [esp + 0xc], eax
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
mov edx, 0xbf04
mov edi, dword [esp + 8]
mov ax, word [ecx + 0x1c]
and ax, dx
or ax, 4
mov word [ecx + 0x1c], ax
mov eax, dword [esp + 0x30]
cdq
mov dword [ecx + 4], edx
mov edx, dword [esp + 0xc]
mov dword [ecx], eax
jmp 0x4bf27a
mov dword [esp + 0x30], 0
lea eax, [esp + 0x30]
xor ecx, ecx
cmp dword [esi + edi*4 + 0xc], ecx
mov edi, dword [esi + edi*4 + 4]
cmove eax, ecx
mov dword [esp + 0xec], eax
mov eax, dword [esp + 0x24]
mov ecx, dword [esi + eax*4 + 8]
mov eax, dword [esp + 0x10]
add ecx, ecx
mov eax, dword [eax + 8]
mov eax, dword [eax + ecx*8 + 4]
mov ecx, dword [eax + 4]
mov dword [esp + 0xd8], ecx
mov eax, dword [ecx + 8]
test eax, eax
je 0x4c2d11
nop dword [eax]
cmp byte [eax + 0x54], 0
je 0x4c2d0a
mov byte [eax + 0x43], 0
mov eax, dword [eax + 8]
test eax, eax
jne 0x4c2d00
mov esi, dword [ecx + 8]
test esi, esi
je 0x4c2d46
test edi, edi
je 0x4c2d21
cmp dword [esi + 0x14], edi
jne 0x4c2d38
cmp byte [esi + 0x43], 1
jne 0x4c2d38
mov ecx, esi
call fcn.004b3900
mov ecx, eax
mov dword [esp + 0xc], ecx
test ecx, ecx
jne 0x4c2d5d
mov esi, dword [esi + 8]
test esi, esi
jne 0x4c2d18
mov ecx, dword [esp + 0xd8]
push dword [esp + 0xec]
mov edx, edi
push 0
call fcn.004b89b0
add esp, 8
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 8]
cmp dword [edx + ecx*4 + 0xc], 0
je 0x4befc1
mov eax, dword [esp + 0x30]
add dword [edi + 0x74], eax
mov ecx, dword [edx + ecx*4 + 0xc]
test ecx, ecx
jle 0x4befc1
lea esi, [ecx + ecx*4]
cdq
mov ecx, dword [edi + 0x58]
add dword [ecx + esi*8], eax
adc dword [ecx + esi*8 + 4], edx
mov edx, dword [esp + 0xc]
jmp 0x4bf276
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x140]
mov dword [esp + 0x30], 0
mov ecx, dword [esi + edi*4 + 4]
mov esi, 2
shl ecx, 4
mov eax, dword [eax + 8]
add eax, ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x38], eax
cmp byte [ecx + edi*4], 0x61
mov ecx, 5
push ecx
cmove esi, ecx
lea ecx, [esp + 0x148]
mov dword [esp + 0x38], esi
mov eax, dword [eax + 4]
push 1
push ecx
mov ecx, dword [eax + 4]
call fcn.004b6290
add esp, 0xc
mov dword [esp + 0xc], eax
test eax, eax
je 0x4c2e05
mov eax, dword [esp + 0x30]
cdq
jmp 0x4bef2f
or esi, 8
mov edx, esi
mov esi, dword [esp + 0x140]
mov ecx, esi
call fcn.004b4530
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x4c2e2e
mov esi, dword [ecx + 0x10]
call fcn.004ae760
mov ecx, esi
call fcn.004b2ae0
mov eax, dword [esp + 0x144]
mov dword [esp + 0x30], eax
mov dword [esp + 0xc], 0
cdq
jmp 0x4bef2f
mov edx, dword [esi + edi*4 + 4]
mov dword [esp + 0x30], edx
cmp dword [esi + edi*4 + 8], 0
jne 0x4c2e6f
mov eax, dword [esp + 0x10]
mov ecx, edx
add ecx, ecx
mov eax, dword [eax + 8]
mov eax, dword [eax + ecx*8 + 0xc]
test byte [eax + 0x4a], 1
je 0x4c2f05
mov eax, dword [esp + 0x10]
add edx, edx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x34], str.sqlite_master
mov eax, dword [esi + edi*4 + 4]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 8]
add eax, 0x68
mov dword [esp + 0x44], eax
push dword [esi + edi*4 + 0x10]
mov esi, dword [esp + 0x14]
push str.sqlite_master
mov eax, dword [esi + 8]
push dword [eax + edx*8]
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s
push esi
call fcn.004aaf60
add esp, 0x14
mov dword [esp + 0x38], eax
test eax, eax
je 0x4c4731
push 0
lea eax, [esp + 0x40]
mov byte [esi + 0x7c], 1
mov edx, dword [esp + 0x3c]
mov ecx, esi
push eax
push fcn.004dfa10
mov dword [esp + 0x54], 0
call fcn.004dc3f0
add esp, 0xc
test eax, eax
cmove eax, dword [esp + 0x48]
mov dword [esp + 0xc], eax
push dword [esp + 0x38]
push esi
call fcn.004a9700
add esp, 8
mov byte [esi + 0x7c], 0
jmp 0x4c2f09
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 8]
cmp edx, 7
je 0x4c434a
jmp 0x4bf27a
mov edx, dword [esi + edi*4 + 0x10]
mov eax, edx
mov ecx, dword [esi + edi*4 + 4]
mov esi, dword [esp + 0x10]
shl ecx, 4
add ecx, dword [esi + 8]
test edx, edx
je 0x4c2f4d
cmp byte [edx], 0
je 0x4c2f46
nop dword [eax]
inc eax
cmp byte [eax], 0
jne 0x4c2f40
sub eax, edx
and eax, 0x3fffffff
mov ecx, dword [ecx + 0xc]
push 0
push eax
add ecx, 4
call fcn.004acd10
add esp, 8
mov ecx, eax
call fcn.004cf990
or dword [esi + 0xc], 0x10
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 8]
jmp 0x4bf27a
mov edx, dword [esi + edi*4 + 0x10]
mov ecx, dword [esi + edi*4 + 4]
mov esi, dword [esp + 0x10]
add ecx, ecx
mov eax, dword [esi + 8]
mov ecx, dword [eax + ecx*8 + 0xc]
mov eax, edx
add ecx, 0x14
test edx, edx
je 0x4c2fad
cmp byte [edx], 0
je 0x4c2fa6
nop dword [eax]
inc eax
cmp byte [eax], 0
jne 0x4c2fa0
sub eax, edx
and eax, 0x3fffffff
push 0
push eax
call fcn.004acd10
mov edi, eax
add esp, 8
test edi, edi
je 0x4c3004
mov edx, dword [edi + 0x10]
mov ecx, dword [edx + 0x14]
cmp ecx, edi
jne 0x4c2fd0
mov eax, dword [edi + 0x20]
mov dword [edx + 0x14], eax
jmp 0x4c2fe8
test ecx, ecx
je 0x4c2fe8
lea edx, [ecx + 0x20]
mov ecx, dword [edx]
cmp ecx, edi
je 0x4c2fe3
test ecx, ecx
jne 0x4c2fd4
jmp 0x4c2fe8
mov eax, dword [edi + 0x20]
mov dword [edx], eax
mov eax, dword [edi + 0x10]
push dword [edi + 0x1c]
mov esi, dword [eax]
push esi
call fcn.004a9700
push edi
push esi
call fcn.004a9700
mov esi, dword [esp + 0x20]
add esp, 0x10
or dword [esi + 0xc], 0x10
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 8]
jmp 0x4bf27a
mov eax, dword [esp + 8]
mov edx, dword [eax + 0x58]
mov eax, dword [esi + edi*4 + 4]
lea eax, [eax + eax*4]
lea ecx, [edx + eax*8]
mov dword [esp + 0x30], ecx
mov eax, dword [esi + edi*4 + 8]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x34], eax
test byte [ecx + 0x1c], 0x20
jne 0x4c3055
call fcn.004b96b0
mov ecx, dword [esp + 0x30]
test byte [ecx + 0x1c], 0x20
je 0x4c4342
mov eax, dword [esp + 0x34]
push dword [eax + 4]
mov ecx, dword [ecx]
push dword [eax]
call fcn.004af700
add esp, 8
jmp case.0x4be020.10
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xd8], 0
jne 0x4c46e9
mov eax, dword [esp + 8]
mov ecx, dword [eax + 0x58]
mov eax, dword [esi + edi*4 + 4]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov dword [esp + 0x30], edx
test byte [edx + 0x1c], 0x20
mov eax, dword [esi + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x18], eax
je 0x4c30e9
mov esi, dword [edx]
mov ecx, esi
call fcn.004af890
mov edx, dword [esi + 8]
test edx, edx
je 0x4c30e1
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
mov eax, dword [esi + 8]
mov eax, dword [eax + 8]
mov dword [esi + 8], eax
test eax, eax
jne 0x4c30d4
mov ecx, esi
call fcn.004af630
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
jmp 0x4bf6a2
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x14]
mov ecx, edx
call fcn.004b9550
jmp 0x4bf265
mov edi, dword [esi + edi*4 + 0x10]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x30], edi
test byte [esi + 0x1c], 0x20
jne 0x4c311c
mov ecx, esi
call fcn.004b96b0
test byte [esi + 0x1c], 0x20
je 0x4c4342
mov edi, dword [esp + 0x30]
test edi, edi
je 0x4c32bf
js 0x4c312d
mov eax, edi
and eax, 0xf
jmp 0x4c3132
mov eax, 0xff
mov edx, dword [esp + 0x2c]
mov esi, dword [esi]
mov dword [esp + 0xf8], eax
mov dword [esp + 0xf0], esi
mov ecx, dword [edx]
mov dword [esp + 0xec], ecx
mov ecx, dword [edx + 4]
mov dword [esp + 0xd8], ecx
cmp al, byte [esi + 0x1b]
je 0x4c326d
cmp dword [esi + 8], 0
je 0x4c3266
mov ecx, esi
call fcn.004af890
mov edi, dword [esi + 8]
mov edx, 1
mov dword [esp + 0xfc], edi
mov dword [esp + 0x28], edx
mov eax, dword [edi + 8]
mov dword [esp + 0xfc], eax
mov dword [edi + 8], 0
mov dword [edi + 0xc], 0
mov eax, dword [esp + 0xfc]
test eax, eax
je 0x4c324e
nop dword [eax]
mov ecx, edi
mov edi, eax
mov eax, dword [edi + 8]
mov dword [esp + 0xfc], eax
mov dword [edi + 0xc], ecx
mov ecx, dword [esp + 0xfc]
test ecx, ecx
je 0x4c3230
cmp edx, 1
jne 0x4c31eb
mov eax, dword [ecx + 8]
mov dword [esp + 0xfc], eax
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
jmp 0x4c3230
lea edx, [edx - 1]
lea ecx, [esp + 0xfc]
call fcn.004af830
mov esi, dword [esp + 0xfc]
mov ecx, eax
mov edx, dword [esp + 0x28]
test esi, esi
je 0x4c3230
mov eax, dword [esi + 8]
lea edx, [edx - 1]
mov dword [esi + 0xc], ecx
lea ecx, [esp + 0xfc]
mov dword [esp + 0xfc], eax
call fcn.004af830
mov edx, dword [esp + 0x28]
mov ecx, esi
mov dword [esi + 8], eax
mov dword [edi + 8], ecx
inc edx
mov eax, dword [esp + 0xfc]
mov dword [esp + 0x28], edx
test eax, eax
jne 0x4c31b0
mov esi, dword [esp + 0xf0]
mov eax, dword [esp + 0xf8]
mov dword [esi + 0x14], edi
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov byte [esi + 0x1b], al
mov edi, dword [esp + 0x30]
mov eax, dword [esi + 0x14]
test eax, eax
je 0x4c32b1
mov ecx, dword [eax + 4]
mov edx, dword [eax]
cmp ecx, dword [esp + 0xd8]
jg 0x4c3294
jl 0x4c328f
mov esi, dword [esp + 0xec]
cmp edx, esi
jae 0x4c329b
mov eax, dword [eax + 8]
jmp 0x4c32ad
mov esi, dword [esp + 0xec]
cmp ecx, dword [esp + 0xd8]
jl 0x4c32dd
jg 0x4c32aa
cmp edx, esi
jbe 0x4c32dd
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x4c3274
mov esi, dword [esp + 0x20]
test edi, edi
mov dword [esp + 0x34], 0
js case.0x4be020.10
mov eax, dword [esp + 0x2c]
mov ecx, dword [esi]
push dword [eax + 4]
push dword [eax]
call fcn.004af700
add esp, 8
jmp case.0x4be020.10
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x34], 1
mov edx, dword [ecx + eax*4 + 8]
jmp 0x4bf269
mov ecx, dword [esp + 0x20]
cmp dword [ecx + 4], 0
jl case.0x4be020.10
jg 0x4bf265
cmp dword [ecx], 0
jbe case.0x4be020.10
jmp 0x4bf265
mov ecx, dword [esp + 0x20]
cmp dword [ecx + 4], 0
jg case.0x4be020.10
jl 0x4bf265
cmp dword [ecx], 0
jae case.0x4be020.10
jmp 0x4bf265
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx]
or eax, dword [ecx + 4]
jne case.0x4be020.10
jmp 0x4bf265
mov dl, byte [esi + edi*4 + 3]
movzx eax, dl
mov dword [esp + 0x30], eax
mov eax, dword [esi + edi*4 + 8]
mov esi, dword [esp + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
mov esi, dword [esi + 0x24]
mov dword [esp + 0x80], esi
lea ecx, [eax + ecx*8]
xor eax, eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x34], eax
test dl, dl
je 0x4c33d9
mov dword [esi + eax*4], ecx
mov ecx, dword [esp + 0x3c]
movzx eax, word [ecx + 0x1c]
test al, 1
je 0x4c3397
mov byte [ecx + 0x1e], 5
jmp 0x4c33b6
test al, 4
je 0x4c33a1
mov byte [ecx + 0x1e], 1
jmp 0x4c33b6
test al, 8
je 0x4c33ab
mov byte [ecx + 0x1e], 2
jmp 0x4c33b6
and al, 2
neg al
sbb al, al
add al, 4
mov byte [ecx + 0x1e], al
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x3c]
inc eax
add ecx, 0x28
mov dword [esp + 0x34], eax
mov dword [esp + 0x3c], ecx
cmp eax, dword [esp + 0x30]
jge 0x4c33d9
mov esi, dword [esp + 0x80]
jmp 0x4c3382
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
mov eax, dword [edx + edi*4 + 0x10]
mov dword [esp + 0x40], eax
mov eax, dword [edx + edi*4 + 0xc]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x58]
lea eax, [eax + ecx*8]
mov dword [esp + 0x38], eax
mov dword [esp + 0x70], eax
inc dword [eax + 0x18]
mov eax, 1
mov ecx, dword [esp + 0x40]
mov word [esp + 0x64], ax
mov dword [esp + 0x5c], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x58], esi
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
test byte [ecx + 3], 8
je 0x4c344d
mov eax, dword [edx + edi*4 - 4]
mov dword [esp + 0x78], eax
push dword [esp + 0x80]
lea eax, [esp + 0x44]
push dword [esp + 0x34]
push eax
mov eax, dword [ecx + 0x10]
call eax
add esp, 0xc
cmp dword [esp + 0x74], 0
je 0x4c349b
mov dl, 1
lea ecx, [esp + 0x48]
call fcn.004b9ed0
mov edi, dword [esp + 8]
push eax
push 0x5446f8
push esi
lea eax, [edi + 0x68]
push eax
call fcn.004a9b70
mov eax, dword [esp + 0x84]
add esp, 0x10
mov dword [esp + 0xc], eax
jmp 0x4c349f
mov edi, dword [esp + 8]
lea ecx, [esp + 0x48]
call fcn.004b9210
push dword [esp + 0x6c]
push dword [esp + 0x5c]
call fcn.004a9700
mov edx, dword [esp + 0x14]
add esp, 8
mov dword [esp + 0x5c], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
jmp 0x4bf27a
mov eax, dword [esi + edi*4 + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x58]
lea esi, [eax + ecx*8]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x30], esi
xor ecx, ecx
mov dword [esp + 0xc], ecx
mov edi, dword [eax + edi*4 + 0x10]
test edi, edi
je 0x4c35a2
mov eax, dword [edi + 0x14]
mov dword [esp + 0xf0], eax
test eax, eax
je 0x4c35a2
push 0x40
push ecx
lea eax, [esp + 0x198]
push eax
call fcn.004fd0d0
mov eax, 1
mov dword [esp + 0x1cc], esi
mov word [esp + 0x1c0], ax
add esp, 0xc
mov eax, dword [esi + 0x10]
mov dword [esp + 0x1a8], eax
lea eax, [esp + 0x190]
mov dword [esp + 0x190], edi
push eax
call dword [esp + 0xf4]
add esp, 4
push dword [esi + 0x24]
push dword [esi + 0x10]
call fcn.004a9700
movups xmm0, xmmword [esp + 0x1a0]
mov ecx, dword [esp + 0x1cc]
add esp, 8
mov dword [esp + 0xc], ecx
movups xmmword [esi], xmm0
movups xmm0, xmmword [esp + 0x1a8]
movups xmmword [esi + 0x10], xmm0
movq xmm0, qword [esp + 0x1b8]
movq qword [esi + 0x20], xmm0
mov esi, dword [esp + 0x30]
test ecx, ecx
je 0x4c35cf
mov dl, 1
mov ecx, esi
call fcn.004b9ed0
mov edi, dword [esp + 8]
push eax
push 0x5446f8
push dword [esp + 0x18]
lea eax, [edi + 0x68]
push eax
call fcn.004a9b70
mov esi, dword [esp + 0x40]
add esp, 0x10
jmp 0x4c35d3
mov edi, dword [esp + 8]
test byte [esi + 0x1c], 2
je 0x4c35f2
mov al, byte [esp + 0xe8]
cmp byte [esi + 0x1f], al
je 0x4c35f2
mov dl, al
mov ecx, esi
call fcn.004ab460
mov esi, dword [esp + 0x30]
movzx eax, word [esi + 0x1c]
test al, 0x12
je 0x4befc1
mov ecx, dword [esi + 0x18]
test eax, 0x4000
je 0x4c360a
add ecx, dword [esi]
mov eax, dword [esi + 0x10]
mov esi, dword [esp + 0x10]
cmp ecx, dword [eax + 0x48]
jg 0x4c457b
mov edx, dword [esp + 0xc]
jmp 0x4bf27a
cmp dword [esi + edi*4 + 4], 0
mov esi, dword [esp + 0x10]
jne 0x4c3658
mov eax, dword [esi + 0x88]
test eax, eax
je 0x4be883
nop dword [eax]
mov byte [eax + 0x6e], 1
mov eax, dword [eax + 8]
test eax, eax
jne 0x4c3640
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 8]
jmp 0x4bf27a
mov edi, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov byte [edi + 0x6e], 1
jmp 0x4bf27a
mov eax, dword [esp + 0x10]
mov esi, dword [esi + edi*4 + 0x10]
mov dword [esp + 0x30], esi
mov dword [esp + 0xc], 0
mov edx, dword [eax + 0x11c]
test edx, edx
jle 0x4c369b
cmp dword [eax + 0x118], 0
jne 0x4c369b
mov edx, 6
mov dword [esp + 0xc], edx
jmp 0x4c370a
test esi, esi
jne 0x4c36a7
xor edx, edx
mov dword [esp + 0xc], edx
jmp 0x4c370a
mov edi, dword [esi + 8]
mov eax, dword [edi]
mov eax, dword [eax + 0x38]
mov dword [esp + 0xf0], eax
test eax, eax
je 0x4c3706
xor ecx, ecx
test edx, edx
jle 0x4c36e3
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x118]
nop word [eax + eax]
cmp dword [eax], esi
je 0x4c369f
inc ecx
add eax, 4
cmp ecx, edx
jl 0x4c36d0
mov eax, dword [esp + 0xf0]
push edi
call eax
mov ecx, eax
add esp, 4
mov dword [esp + 0xc], ecx
test ecx, ecx
jne 0x4c3706
mov ecx, dword [esp + 0x10]
mov edx, esi
call fcn.004ed3f0
mov edx, eax
mov dword [esp + 0xc], edx
jmp 0x4c370a
mov edx, dword [esp + 0xc]
cmp dword [esp + 0x30], 0
mov edi, dword [esp + 8]
mov esi, dword [esp + 0x10]
je 0x4bf27a
push dword [edi + 0x68]
push esi
call fcn.004a9700
mov ecx, dword [esp + 0x38]
add esp, 8
mov edx, dword [esp + 0xc]
mov eax, dword [ecx + 8]
mov eax, dword [eax + 8]
mov dword [edi + 0x68], eax
mov eax, dword [ecx + 8]
mov dword [eax + 8], 0
jmp 0x4bf27a
mov eax, dword [esp + 8]
mov edx, dword [esi + edi*4 + 4]
add eax, 0x68
push eax
push dword [esi + edi*4 + 0x10]
mov esi, dword [esp + 0x18]
mov ecx, esi
call fcn.004ed480
mov edi, dword [esp + 0x10]
mov edx, eax
add esp, 8
mov dword [esp + 0xc], edx
jmp 0x4bf27a
mov esi, dword [esp + 8]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov dword [esp + 0xc], 0
mov byte [esi + 0x70], 2
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [eax + 8]
add ecx, ecx
mov edx, dword [edx + edi*4 + 0x10]
push dword [eax + ecx*8]
mov ecx, dword [esp + 0x14]
call fcn.004cf140
add esp, 4
mov dword [esp + 0xf0], eax
lea edi, [esi + 0x70]
test eax, eax
je 0x4c3848
cmp dword [eax + 0x30], 0
lea edi, [esi + 0x70]
je 0x4c383c
mov ecx, dword [esp + 0x10]
mov edx, eax
call fcn.004ec560
mov esi, eax
mov ecx, dword [esi + 4]
push dword [esi + 8]
mov ecx, dword [ecx]
mov ecx, dword [ecx + 0x14]
call ecx
mov dword [esp + 0x10], eax
add esp, 4
mov eax, dword [esp + 8]
mov edx, dword [esp + 0xc]
add eax, 0x70
mov edi, eax
test edx, edx
jne 0x4c384a
mov ecx, dword [esp + 0xf0]
mov dword [esi + 8], edx
mov dword [ecx + 0x30], edx
add dword [esi + 0xc], 0xffffffff
mov ecx, dword [esi]
mov dword [esp + 0xf0], ecx
jne 0x4c384a
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x4c382c
mov eax, dword [ecx]
push ecx
mov eax, dword [eax + 0x10]
call eax
mov edi, dword [esp + 0xc]
add esp, 4
add edi, 0x70
push esi
push dword [esp + 0xf4]
call fcn.004a9700
add esp, 8
mov edx, dword [esp + 0xc]
mov byte [edi], 0
jmp 0x4bf272
xor edx, edx
mov byte [edi], 0
jmp 0x4bf272
mov dword [esp + 0x30], 0
lea edx, [esp + 0x34]
mov dword [esp + 0x34], 0
mov eax, dword [esi + edi*4 + 0x10]
push edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x3c], ecx
push ecx
mov eax, dword [ecx]
mov dword [esp + 0x44], eax
mov eax, dword [eax + 0x18]
call eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x10]
push dword [eax + 0x68]
push dword [esp + 0x1c]
call fcn.004a9700
mov ecx, dword [esp + 0x48]
add esp, 0x10
mov edx, dword [esp + 8]
mov eax, dword [ecx + 8]
mov dword [edx + 0x68], eax
mov edx, dword [esp + 0xc]
mov dword [ecx + 8], 0
test edx, edx
jne 0x4bf272
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
mov dword [eax], ecx
mov edx, dword [esi + edi*4 + 4]
xor esi, esi
mov edi, dword [esp + 8]
mov dword [esp + 0xec], edx
mov eax, dword [edi + 0x54]
sub eax, edx
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea eax, [eax + ecx*8]
lea ecx, [edi + 0x34]
mov dword [esp + 0xd8], eax
mov eax, dword [ecx]
mov dword [esp + 0x24], ecx
mov edi, dword [eax + edx*4]
test edi, edi
je 0x4c3963
mov eax, dword [edi + 0x20]
test eax, eax
je 0x4c3945
mov ecx, eax
call fcn.004b4940
mov eax, dword [esp + 0x24]
mov dword [esp + 0x28], eax
mov edx, dword [esp + 8]
mov ecx, dword [edi + 0x38]
test ecx, ecx
je 0x4c392f
mov eax, dword [edi + 0x3c]
mov byte [edx + 0x70], 1
push ecx
mov eax, dword [eax + 0x1c]
call eax
mov eax, dword [esp + 0xc]
add esp, 4
mov byte [eax + 0x70], 0
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xec]
mov edi, dword [esp + 0x28]
mov eax, dword [eax]
mov dword [eax + ecx*4], esi
jmp 0x4c3965
mov eax, dword [edi]
mov dword [esp + 0x28], ecx
test eax, eax
je 0x4c390c
mov ecx, eax
call fcn.004b5180
mov edx, dword [esp + 8]
lea eax, [edx + 0x34]
mov dword [esp + 0x28], eax
jmp 0x4c3910
mov edi, ecx
mov ecx, dword [esp + 0xd8]
mov edx, 0x58
push 0
call fcn.004b8f10
add esp, 4
test eax, eax
jne 0x4c39b2
mov edx, dword [esp + 0xd8]
mov eax, dword [edi]
mov ecx, dword [esp + 0xec]
push 0x58
mov esi, dword [edx + 0x14]
push 0
mov dword [eax + ecx*4], esi
push dword [edx + 0x14]
call fcn.004fd0d0
add esp, 0xc
mov dword [esi + 4], 0xffffffff
mov dword [esi + 0x2c], 0
mov dword [esp + 0x30], esi
test esi, esi
je 0x4c39e2
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 8]
inc edx
mov dword [esi + 0x38], eax
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x10]
mov eax, dword [eax]
mov ecx, dword [eax]
mov eax, dword [esp + 0x30]
mov dword [eax + 0x3c], ecx
jmp 0x4bdecd
mov esi, dword [esp + 0x10]
mov byte [esi + 0x1e], 1
mov eax, dword [esp + 0x3c]
push dword [esp + 0x34]
mov eax, dword [eax + 0x1c]
call eax
mov edx, dword [esp + 0x20]
add esp, 4
mov edi, dword [esp + 8]
inc edx
jmp 0x4bdecd
mov eax, dword [esi + edi*4 + 0xc]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x58]
lea edx, [eax + ecx*8]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x3c], edx
lea esi, [edx + 0x28]
mov dword [esp + 0x40], esi
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x34]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x4c], eax
mov edi, dword [eax + 0x38]
mov dword [esp + 0x44], edi
mov eax, dword [edi]
mov dword [esp + 0x48], eax
mov eax, dword [eax]
mov dword [esp + 0x38], eax
mov dword [esp + 0xd8], eax
mov eax, dword [esi]
mov dword [esp + 0x30], eax
mov ecx, dword [edx]
mov dword [esp + 0xf0], ecx
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 8]
mov dword [esp + 0x50], 0
mov edx, dword [ecx + 0x24]
xor ecx, ecx
mov dword [esp + 0x58], edx
mov dword [esp + 0x54], ecx
test eax, eax
jle 0x4c3af8
lea eax, [ecx + 1]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [edx + ecx*4], eax
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x58]
mov ecx, dword [ecx + eax*4]
movzx eax, word [ecx + 0x1c]
test al, 1
je 0x4c3aa9
mov byte [ecx + 0x1e], 5
jmp 0x4c3ac8
test al, 4
je 0x4c3ab3
mov byte [ecx + 0x1e], 1
jmp 0x4c3ac8
test al, 8
je 0x4c3abd
mov byte [ecx + 0x1e], 2
jmp 0x4c3ac8
and al, 2
neg al
sbb al, al
add al, 4
mov byte [ecx + 0x1e], al
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x30]
inc ecx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x54], ecx
cmp ecx, eax
jge 0x4c3ae3
mov esi, dword [esp + 0x40]
jmp 0x4c3a84
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x44]
mov esi, dword [esp + 0x34]
mov dword [esp + 0xd8], ecx
jmp 0x4c3aff
mov esi, dword [esp + 0xf0]
mov ecx, dword [esp + 8]
push edx
mov edx, dword [esp + 0x18]
push eax
mov eax, dword [esp + 0x2c]
mov byte [ecx + 0x70], 1
mov ecx, dword [esp + 0xe0]
push dword [edx + eax*4 + 0x10]
mov eax, dword [ecx + 0x20]
push esi
push edi
call eax
mov edi, dword [esp + 0x1c]
add esp, 0x14
mov esi, dword [esp + 0x10]
mov dword [esp + 0xc], eax
push dword [edi + 0x68]
mov byte [edi + 0x70], 0
push esi
call fcn.004a9700
mov ecx, dword [esp + 0x50]
add esp, 8
cmp dword [esp + 0xc], 0
mov eax, dword [ecx + 8]
mov dword [edi + 0x68], eax
mov dword [ecx + 8], 0
jne 0x4c3b70
mov eax, dword [esp + 0x38]
push dword [esp + 0x44]
mov eax, dword [eax + 0x28]
call eax
add esp, 4
mov dword [esp + 0x50], eax
jmp 0x4c3b74
mov eax, dword [esp + 0x50]
test eax, eax
je 0x4c3b89
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + eax*4 + 8]
dec eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0xc]
mov byte [eax + 0x14], 0
jmp 0x4bf27a
mov eax, dword [esp + 8]
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [eax + 0x34]
mov edx, dword [eax + ecx*4]
mov eax, dword [esi + edi*4 + 0xc]
mov edi, dword [esp + 8]
mov dword [esp + 0xf0], edx
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea ecx, [eax + ecx*8]
mov dword [esp + 0x38], ecx
cmp byte [edx + 0x14], 0
je 0x4c3bd8
call fcn.004b9550
mov edx, dword [esp + 0xc]
jmp 0x4bf276
mov eax, dword [edx + 0x38]
push 0x40
push 0
mov eax, dword [eax]
mov dword [esp + 0x38], eax
mov eax, dword [eax]
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x48]
push eax
call fcn.004fd0d0
mov edi, dword [esp + 0x44]
lea ecx, [esp + 0x54]
add esp, 0xc
call fcn.004b9210
mov ecx, dword [esp + 0x58]
mov esi, dword [esp + 0x6c]
test ecx, ecx
je 0x4c3c3f
test esi, esi
je 0x4c3cae
cmp esi, dword [ecx + 0xf0]
jb 0x4c3c3f
cmp esi, dword [ecx + 0xf4]
jae 0x4c3c3f
mov eax, dword [ecx + 0xec]
mov dword [esi], eax
dec dword [ecx + 0xe4]
mov dword [ecx + 0xec], esi
jmp 0x4c3cae
test esi, esi
je 0x4c3cae
cmp dword [0x55acd0], 0
je 0x4c3ca4
mov eax, dword [0x55d4a8]
test eax, eax
je 0x4c3c5f
push eax
call dword [0x55ad18]
add esp, 4
push esi
call dword [0x55acf4]
mov ecx, dword [0x55d330]
neg eax
add ecx, eax
add esp, 4
mov eax, dword [0x55d354]
cmp ecx, eax
mov dword [0x55d330], ecx
cmovg eax, ecx
push esi
mov dword [0x55d354], eax
call dword [0x55acec]
mov eax, dword [0x55d4a8]
add esp, 4
test eax, eax
je 0x4c3cae
push eax
call dword [0x55ad20]
jmp 0x4c3cab
push esi
call dword [0x55acec]
add esp, 4
mov ecx, dword [esp + 0x14]
mov eax, 1
mov dword [esp + 0x5c], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
movups xmm0, xmmword [edi]
movups xmmword [esp + 0x48], xmm0
movups xmm0, xmmword [edi + 0x10]
movups xmmword [esp + 0x58], xmm0
movq xmm0, qword [edi + 0x20]
movq qword [esp + 0x68], xmm0
mov word [edi + 0x1c], ax
mov dword [edi + 0x20], 0
mov dword [edi + 0x24], 0
mov eax, dword [esp + 0x64]
and eax, 0xbf01
or eax, 1
mov word [esp + 0x64], ax
mov eax, dword [esp + 0x24]
push dword [ecx + eax*4 + 8]
lea eax, [esp + 0x44]
push eax
mov eax, dword [esp + 0xf8]
push dword [eax + 0x38]
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 0x2c]
call eax
mov edi, dword [esp + 0x14]
add esp, 0xc
mov dword [esp + 0xc], eax
push dword [edi + 0x68]
push dword [esp + 0x14]
call fcn.004a9700
mov ecx, dword [esp + 0x38]
add esp, 8
mov eax, dword [ecx + 8]
mov dword [edi + 0x68], eax
mov dword [ecx + 8], 0
mov eax, dword [esp + 0x74]
test eax, eax
mov ecx, dword [esp + 0xc]
cmovne ecx, eax
test byte [esp + 0x64], 2
mov dword [esp + 0xc], ecx
je 0x4c3d89
mov al, byte [esp + 0xe8]
cmp byte [esp + 0x67], al
je 0x4c3d89
mov dl, al
lea ecx, [esp + 0x48]
call fcn.004ab460
mov esi, dword [esp + 0x38]
mov ecx, esi
call fcn.004b9210
push dword [esi + 0x24]
push dword [esi + 0x10]
call fcn.004a9700
mov dword [esi + 0x14], 0
mov eax, 1
mov dword [esi + 0x24], 0
add esp, 8
mov dword [esi + 0x20], 0
movups xmm0, xmmword [esp + 0x48]
movups xmmword [esi], xmm0
movups xmm0, xmmword [esp + 0x58]
movups xmmword [esi + 0x10], xmm0
movq xmm0, qword [esp + 0x68]
movq qword [esi + 0x20], xmm0
mov word [esp + 0x64], ax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
movzx edx, word [eax + 0x1c]
test dl, 0x12
je 0x4befc1
mov ecx, dword [eax + 0x18]
test edx, 0x4000
je 0x4c3e0b
add ecx, dword [eax]
mov eax, dword [eax + 0x10]
mov esi, dword [esp + 0x10]
cmp ecx, dword [eax + 0x48]
jg 0x4c457b
mov edx, dword [esp + 0xc]
jmp 0x4bf27a
mov edx, dword [esp + 8]
mov dword [esp + 0x38], 0
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [edx + 0x34]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x3c], ecx
cmp byte [ecx + 0x14], 0
jne case.0x4be020.10
mov eax, dword [ecx + 0x38]
mov eax, dword [eax]
mov dword [esp + 0x30], eax
mov eax, dword [eax]
mov dword [esp + 0x34], eax
mov byte [edx + 0x70], 1
push dword [ecx + 0x38]
mov eax, dword [eax + 0x24]
call eax
mov dword [esp + 0x10], eax
add esp, 4
mov eax, dword [esp + 8]
push dword [eax + 0x68]
mov byte [eax + 0x70], 0
push dword [esp + 0x14]
call fcn.004a9700
mov ecx, dword [esp + 0x38]
add esp, 8
cmp dword [esp + 0xc], 0
mov edx, dword [esp + 8]
mov eax, dword [ecx + 8]
mov dword [edx + 0x68], eax
mov dword [ecx + 8], 0
jne 0x4c3eb6
mov eax, dword [esp + 0x3c]
push dword [eax + 0x38]
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x28]
call eax
add esp, 4
mov dword [esp + 0x38], eax
jmp 0x4c3eba
mov eax, dword [esp + 0x38]
test eax, eax
jne case.0x4be020.10
jmp 0x4bf265
mov eax, dword [esi + edi*4 + 0x10]
mov edx, dword [eax + 8]
mov dword [esp + 0x30], edx
mov eax, dword [esi + edi*4 + 4]
mov edi, dword [esp + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea eax, [eax + ecx*8]
mov dword [esp + 0x34], eax
mov ecx, dword [edx]
push dword [eax + 0x14]
push edx
mov eax, dword [ecx + 0x4c]
call eax
mov esi, dword [edi + 0x68]
add esp, 8
mov dword [esp + 0xc], eax
test esi, esi
je 0x4c3f9b
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0xf0]
jb 0x4c3f30
cmp esi, dword [ecx + 0xf4]
jae 0x4c3f30
mov eax, dword [ecx + 0xec]
mov dword [esi], eax
mov dword [ecx + 0xec], esi
mov esi, ecx
dec dword [esi + 0xe4]
jmp 0x4c3f9f
cmp dword [0x55acd0], 0
je 0x4c3f91
mov eax, dword [0x55d4a8]
test eax, eax
je 0x4c3f4c
push eax
call dword [0x55ad18]
add esp, 4
push esi
call dword [0x55acf4]
mov ecx, dword [0x55d330]
neg eax
add ecx, eax
add esp, 4
mov eax, dword [0x55d354]
cmp ecx, eax
mov dword [0x55d330], ecx
cmovg eax, ecx
push esi
mov dword [0x55d354], eax
call dword [0x55acec]
mov eax, dword [0x55d4a8]
add esp, 4
test eax, eax
je 0x4c3f9b
push eax
call dword [0x55ad20]
jmp 0x4c3f98
push esi
call dword [0x55acec]
add esp, 4
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0xc]
mov eax, dword [ecx + 8]
mov dword [edi + 0x68], eax
mov dword [ecx + 8], 0
jmp 0x4bf27a
mov eax, dword [esi + edi*4 + 0x10]
mov ecx, dword [esp + 0x24]
mov esi, dword [eax + 8]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x30], esi
mov edi, dword [esi]
mov dword [esp + 0x34], edi
mov edx, dword [eax + ecx*4 + 8]
mov dword [esp + 0x38], edx
cmp dword [edi + 0x34], 0
je case.0x4be020.10
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x24]
mov dword [esp + 0xf0], eax
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax + ecx*4 + 0xc]
mov dword [esp + 0x3c], 0
lea ecx, [eax + eax*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x58]
lea ecx, [eax + ecx*8]
mov dword [esp + 0x4c], ecx
test edx, edx
jle 0x4c4086
nop dword [eax + eax]
movzx eax, word [ecx + 0x1c]
test al, 1
je 0x4c402e
mov byte [ecx + 0x1e], 5
jmp 0x4c404d
test al, 4
je 0x4c4038
mov byte [ecx + 0x1e], 1
jmp 0x4c404d
test al, 8
je 0x4c4042
mov byte [ecx + 0x1e], 2
jmp 0x4c404d
and al, 2
neg al
sbb al, al
add al, 4
mov byte [ecx + 0x1e], al
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
mov dword [eax + ecx*4], edx
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x4c]
inc eax
mov edx, dword [esp + 0x38]
add ecx, 0x28
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x3c], eax
cmp eax, edx
jl 0x4c4020
mov eax, dword [esp + 0x48]
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
jmp 0x4c408d
mov eax, dword [esp + 0xf0]
lea ecx, [esp + 0x40]
push ecx
push eax
mov eax, dword [edi + 0x34]
push edx
push esi
call eax
mov edi, dword [esp + 0x18]
add esp, 0x10
mov dword [esp + 0xc], eax
mov esi, dword [edi + 0x68]
test esi, esi
je 0x4c4147
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0xf0]
jb 0x4c40dc
cmp esi, dword [ecx + 0xf4]
jae 0x4c40dc
mov eax, dword [ecx + 0xec]
mov dword [esi], eax
mov dword [ecx + 0xec], esi
mov esi, ecx
dec dword [esi + 0xe4]
jmp 0x4c414b
cmp dword [0x55acd0], 0
je 0x4c413d
mov eax, dword [0x55d4a8]
test eax, eax
je 0x4c40f8
push eax
call dword [0x55ad18]
add esp, 4
push esi
call dword [0x55acf4]
mov ecx, dword [0x55d330]
neg eax
add ecx, eax
add esp, 4
mov eax, dword [0x55d354]
cmp ecx, eax
mov dword [0x55d330], ecx
cmovg eax, ecx
push esi
mov dword [0x55d354], eax
call dword [0x55acec]
mov eax, dword [0x55d4a8]
add esp, 4
test eax, eax
je 0x4c4147
push eax
call dword [0x55ad20]
jmp 0x4c4144
push esi
call dword [0x55acec]
add esp, 4
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0xc]
mov eax, dword [ecx + 8]
mov dword [edi + 0x68], eax
mov dword [ecx + 8], 0
test edx, edx
jne 0x4c4180
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
cmp dword [ecx + eax*4 + 4], edx
je 0x4c4180
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], ecx
inc dword [edi + 0x74]
jmp 0x4bf27a
mov ecx, dword [esi + edi*4 + 4]
lea edx, [esp + 0x34]
mov esi, dword [esp + 0x10]
mov dword [esp + 0x30], ecx
add ecx, ecx
mov eax, dword [esi + 8]
mov eax, dword [eax + ecx*8 + 4]
mov eax, dword [eax + 4]
mov ecx, dword [eax]
mov dword [esp + 0x38], ecx
call fcn.004b1880
mov edi, dword [esp + 8]
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4bf27a
mov ecx, dword [esp + 0x18]
mov eax, 4
mov word [ecx + 0x1c], ax
mov eax, dword [esp + 0x34]
cdq
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x1c]
mov dword [ecx], eax
inc edx
jmp 0x4bdecd
xor edx, edx
jmp 0x4bf276
mov eax, dword [esp + 8]
mov ecx, eax
mov dword [eax + 0x64], 9
call fcn.004bbb00
mov eax, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
mov dword [ecx + 0x64], eax
mov al, byte [esi + edi*4 + 8]
mov byte [ecx + 0x38], al
mov dword [ecx + 0x60], edx
mov eax, dword [esi + edi*4 + 0x10]
test eax, eax
je 0x4c423d
push eax
push 0x5446f8
push dword [esp + 0x18]
lea eax, [ecx + 0x68]
push eax
call fcn.004a9b70
mov ecx, dword [esp + 0x18]
add esp, 0x10
call fcn.004bbb00
cmp eax, 5
jne 0x4c425d
mov eax, dword [esp + 8]
mov dword [eax + 0x64], 5
mov eax, 5
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 8]
mov eax, 0x65
cmp dword [ecx + 0x64], 0
mov ecx, 1
cmovne eax, ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
lea ecx, [esp + 0x40]
call fcn.004b9210
mov ecx, dword [esp + 0x50]
mov esi, dword [esp + 0x64]
test ecx, ecx
je 0x4c42bb
test esi, esi
je 0x4c432a
cmp esi, dword [ecx + 0xf0]
jb 0x4c42bb
cmp esi, dword [ecx + 0xf4]
jae 0x4c42bb
mov eax, dword [ecx + 0xec]
mov dword [esi], eax
dec dword [ecx + 0xe4]
mov dword [ecx + 0xec], esi
jmp 0x4c432a
test esi, esi
je 0x4c432a
cmp dword [0x55acd0], 0
je 0x4c4320
mov eax, dword [0x55d4a8]
test eax, eax
je 0x4c42db
push eax
call dword [0x55ad18]
add esp, 4
push esi
call dword [0x55acf4]
mov ecx, dword [0x55d330]
neg eax
add ecx, eax
add esp, 4
mov eax, dword [0x55d354]
cmp ecx, eax
mov dword [0x55d330], ecx
cmovg eax, ecx
push esi
mov dword [0x55d354], eax
call dword [0x55acec]
mov eax, dword [0x55d4a8]
add esp, 4
test eax, eax
je 0x4c432a
push eax
call dword [0x55ad20]
jmp 0x4c4327
push esi
call dword [0x55acec]
add esp, 4
mov dword [esp + 0x54], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0
mov edi, dword [esp + 8]
mov esi, dword [esp + 0x10]
push str.out_of_memory
lea eax, [edi + 0x68]
mov byte [esi + 0x1e], 1
push esi
push eax
call fcn.004a9b70
mov dword [edi + 0x64], 7
add esp, 0xc
mov ecx, edi
call fcn.004bbb00
mov eax, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edx, 0x14
mov dword [esp + 0xc], edx
jmp 0x4c44ef
mov eax, dword [esp + 8]
mov ecx, eax
mov dword [eax + 0x64], 0xb
call fcn.004bbb00
mov eax, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push str.cannot_open_savepoint___SQL_statements_in_progress
push esi
mov esi, dword [esp + 0x10]
lea eax, [esi + 0x68]
push eax
call fcn.004a9b70
add esp, 0xc
mov dword [esi + 0x64], 5
mov ecx, esi
call fcn.004bbb00
mov eax, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
mov dword [edi + 0x60], edx
mov byte [eax + 0x1c], 0
mov eax, 5
mov dword [edi + 0x64], 5
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 8]
push ecx
push str.no_such_savepoint:__s
push dword [esp + 0x18]
lea eax, [esi + 0x68]
push eax
call fcn.004a9b70
add esp, 0x10
mov dword [esi + 0x64], 1
mov ecx, esi
call fcn.004bbb00
mov eax, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test ecx, ecx
je 0x4c445e
mov ecx, esi
call fcn.004f8580
mov byte [esi + 0x1c], 1
mov esi, dword [esp + 8]
mov ecx, dword [esp + 0x10]
call fcn.004f7ec0
cmp dword [esi + 0x64], 0
mov eax, 0x65
mov ecx, 1
cmovne eax, ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov al, byte [esp + 0x30]
mov byte [esi + 0x1c], al
mov esi, dword [esp + 8]
mov ecx, esi
call fcn.004bbb00
cmp eax, 5
jne 0x4c443e
mov ecx, dword [esp + 0x10]
mov al, 1
sub al, byte [esp + 0x30]
mov edx, dword [esp + 0x1c]
mov dword [esi + 0x60], edx
mov byte [ecx + 0x1c], al
mov eax, 5
mov dword [esi + 0x64], 5
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x1c]
mov dword [eax + 0x60], edx
mov dword [eax + 0x64], 5
mov eax, 5
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edx, 0xb
mov dword [esp + 0xc], edx
jmp 0x4c44eb
mov ecx, eax
mov dword [eax + 0x64], 4
call fcn.004bbb00
mov eax, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edx, 0xd
mov dword [esp + 0xc], edx
jmp 0x4c44ef
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 8]
mov esi, dword [esp + 0x10]
cmp byte [esi + 0x1e], 0
je 0x4c4508
mov dword [esp + 0xc], 7
mov eax, 7
jmp 0x4c4520
cmp edx, 0xc0a
je 0x4c46ba
movzx eax, dl
mov dword [esp + 0xc], edx
cmp eax, 0x1b
jae 0x4c452b
mov eax, dword [eax*4 + 0x53f4c8]
test eax, eax
jne 0x4c4530
mov eax, str.unknown_error
push eax
push 0x5446f8
lea eax, [edi + 0x68]
push esi
push eax
call fcn.004a9b70
mov edx, dword [esp + 0x1c]
add esp, 0x10
jmp 0x4c46ba
mov eax, dword [esp + 8]
mov ecx, eax
mov byte [eax + 0x38], 2
mov dword [eax + 0x64], 6
call fcn.004bbb00
mov eax, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 8]
jmp 0x4c457b
mov edi, dword [esp + 8]
mov esi, dword [esp + 0x10]
push str.string_or_blob_too_big
lea eax, [edi + 0x68]
push esi
push eax
call fcn.004a9b70
mov dword [edi + 0x64], 0x12
jmp 0x4c4364
mov edi, dword [esp + 8]
mov esi, ecx
jmp 0x4c457b
mov ecx, dword [esp + 8]
mov edx, 1
call fcn.004bb9f0
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4c46b6
mov edx, dword [esp + 8]
mov eax, dword [edx + 0x5c]
add eax, 2
or eax, 1
mov dword [edx + 0x5c], eax
mov eax, dword [esi + edi*4 + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x58]
lea eax, [eax + ecx*8]
mov dword [edx + 0x2c], eax
xor edx, edx
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
cmp dword [esi + edi*4 + 8], edx
jle 0x4c4691
nop
mov eax, dword [esp + 0x30]
lea ecx, [edx + edx*4]
lea esi, [eax + ecx*8]
movzx eax, word [esi + 0x1c]
test eax, 0x200
jne 0x4c4641
test al, 2
je 0x4c4641
mov edx, dword [esi + 0x18]
mov ecx, esi
push 1
add edx, 2
call fcn.004b8f10
add esp, 4
test eax, eax
jne 0x4c463d
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 0x14]
mov byte [ecx + eax], 0
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x14]
mov byte [ecx + eax + 1], 0
mov eax, 0x200
or word [esi + 0x1c], ax
mov edx, dword [esp + 0x34]
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0x30]
movzx eax, word [edx + ecx*8 + 0x1c]
test al, 1
je 0x4c4658
mov byte [edx + ecx*8 + 0x1e], 5
jmp 0x4c467a
test al, 4
je 0x4c4663
mov byte [edx + ecx*8 + 0x1e], 1
jmp 0x4c467a
test al, 8
je 0x4c466e
mov byte [edx + ecx*8 + 0x1e], 2
jmp 0x4c467a
and al, 2
neg al
sbb al, al
add al, 4
mov byte [edx + ecx*8 + 0x1e], al
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x14]
inc edx
mov dword [esp + 0x34], edx
cmp edx, dword [eax + edi*4 + 8]
jl 0x4c45f0
mov esi, dword [esp + 0x10]
cmp byte [esi + 0x1e], 0
jne 0x4c4731
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x1c]
inc eax
mov dword [ecx + 0x60], eax
mov eax, 0x64
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 8]
mov ecx, eax
mov dword [eax + 0x64], edx
call fcn.004bbb00
cmp dword [esp + 0xc], 0xc0a
jne 0x4c436e
mov byte [esi + 0x1e], 1
mov eax, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov esi, ecx
jmp 0x4c46eb
mov esi, eax
mov edi, dword [esp + 8]
mov eax, dword [str.interrupted]
mov ecx, str.unknown_error
test eax, eax
mov dword [edi + 0x64], 9
cmovne ecx, eax
lea eax, [edi + 0x68]
push ecx
push 0x5446f8
push esi
push eax
call fcn.004a9b70
add esp, 0x10
mov dword [edi + 0x64], 9
mov ecx, edi
call fcn.004bbb00
pop edi
mov eax, 1
pop esi
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 8]
jmp 0x4c434a
mov edi, dword [esp + 8]
mov esi, eax
jmp 0x4c434a