Function at 0x4ba940
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 0x4c0e7a
mov dword [edi + 0x64], eax
mov dword [edi + 0x2c], eax
mov dword [esi + 0x198], eax
cmp dword [esi + 0xd8], eax
jne 0x4c121f
mov edx, dword [edi + 0x60]
xorps xmm0, xmm0
movsd qword [esp + 0x130], xmm0
movsd xmm0, qword [0x542c88]
movsd qword [esp + 0x148], xmm0
movsd xmm0, qword [0x542c48]
movsd qword [esp + 0x158], xmm0
mov dword [esp + 0x1c], edx
cmp byte [esi + 0x1e], 0
jne 0x4c0e7a
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 0x4baa66
mov edi, dword [esp + 0x104]
cmp dword [ecx + 0x100], edi
mov edi, dword [esp + 0x24]
jne 0x4baa57
push dword [ecx + 0xfc]
call eax
add esp, 4
test eax, eax
jne 0x4c0d19
mov edx, dword [esp + 8]
jmp 0x4baa5e
mov eax, dword [esp + 0x104]
inc eax
mov dword [esp + 0x104], eax
movzx eax, byte [esi + edi*4]
mov cl, byte [eax + 0x53e1d0]
test cl, 2
je 0x4baaa6
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.004b5d30
mov edx, dword [esp + 0x18]
mov eax, 1
mov word [edx + 0x1c], ax
mov dword [edx + 0x18], 0
jmp 0x4bab35
mov dl, cl
and dl, 8
test cl, 4
je 0x4bab15
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 0x4baaf4
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 0x4bab35
mov edx, dword [esp + 0x18]
test cl, 0x10
je 0x4bab77
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 0x4bab39
test dl, dl
je 0x4bab57
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.0x4bab50.10
movzx eax, byte [eax + 0x4c1408]
jmp dword [eax*4 + 0x4c1278]
test cl, 0x10
je 0x4bab31
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 0x4bab39
mov esi, dword [esp + 0x14]
jmp 0x4bab35
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 0xd8], 0
jne 0x4c1215
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 0x4bbdaa
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 0x4bbd95
mov eax, dword [esp + 0x20]
mov edx, dword [eax]
jmp 0x4bbd9a
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 0x4bbd9a
test byte [ecx + 0x1c], 1
je case.0x4bab50.10
mov eax, dword [esi + edi*4 + 4]
mov ecx, dword [esp + 8]
test eax, eax
jne 0x4c0d3a
mov edi, dword [ecx + 0xdc]
test edi, edi
je 0x4c0d36
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 0x4bacb1
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 0x4bbdaa
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.0x4bab50.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.0x4bab50.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.0x4bab50.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 0x4bad34
cmp byte [ecx], 0
je 0x4bad2d
inc eax
cmp byte [eax], 0
jne 0x4bad27
sub eax, ecx
and eax, 0x3fffffff
cmp byte [esp + 0xe8], 1
mov dword [esi + edi*4 + 4], eax
je 0x4bae2f
test ecx, ecx
jne 0x4bad57
mov ecx, edx
call fcn.004b6070
mov edx, dword [esp + 0x18]
jmp 0x4badb1
mov edi, dword [edx + 0x10]
xor esi, esi
test edi, edi
je 0x4bad69
mov edi, dword [edi + 0x48]
test edi, edi
js 0x4bad7b
jmp 0x4bad70
mov edi, 0x3b9aca00
nop
cmp byte [esi + ecx], 0
je 0x4bad7b
inc esi
cmp esi, edi
jle 0x4bad70
mov ecx, edx
call fcn.004b5e10
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 0x4c10a3
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x14]
test byte [edx + 0x1c], 2
mov dword [esp + 0xc], 0
je 0x4bade2
mov al, byte [esp + 0xe8]
cmp byte [edx + 0x1f], al
je 0x4bade2
mov ecx, dword [esp + 0x18]
mov dl, al
call fcn.004a7f90
test eax, eax
jne 0x4c0e72
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 0x4bae1c
push dword [esi + edi*4 + 0x10]
push dword [esp + 0x14]
call fcn.004a6230
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 0x4c10c6
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.0x4bab50.10
mov eax, dword [esp + 0x24]
mov edi, dword [esi + edi*4 + 0x10]
mov esi, dword [esi + eax*4 + 4]
test edi, edi
jne 0x4bae8c
mov edi, dword [esp + 0x18]
mov ecx, edi
call fcn.004b6070
mov al, byte [esp + 0xe8]
mov byte [edi + 0x1f], al
jmp case.0x4bab50.10
mov ecx, dword [edx + 0x10]
test ecx, ecx
je 0x4bae98
mov ecx, dword [ecx + 0x48]
jmp 0x4bae9d
mov ecx, 0x3b9aca00
mov eax, 0x10
mov dword [esp + 0x28], eax
test esi, esi
jns 0x4baec9
xor esi, esi
test ecx, ecx
js 0x4baec0
mov al, byte [esi + edi + 1]
or al, byte [esi + edi]
je 0x4baec0
add esi, 2
cmp esi, ecx
jle 0x4baeb0
mov eax, 0x210
mov dword [esp + 0x28], eax
mov ecx, edx
call fcn.004b5e10
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.0x4bab50.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 0x4bafe5
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 0x4baf63
mov ecx, dword [eax + 0x18]
test edx, 0x4000
je 0x4baf57
add ecx, dword [eax]
mov eax, dword [eax + 0x10]
cmp ecx, dword [eax + 0x48]
jg 0x4c10a7
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.004b5d30
mov eax, 1
mov ecx, edi
mov word [edi + 0x1c], ax
mov esi, dword [esp + 0x3c]
call fcn.004b5d30
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 0x4bafb8
mov eax, dword [esi + 0x14]
cmp eax, dword [esi + 0x24]
jne 0x4bafd0
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 0x4bafe5
mov esi, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
jmp 0x4baf26
dec eax
mov dword [esp + 0x38], eax
jmp case.0x4bab50.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 0x4bb0c1
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.004b5d30
push dword [edi + 0x24]
push dword [edi + 0x10]
call fcn.004a6230
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 0x4bb030
mov dword [esp + 0x18], edi
dec esi
mov dword [esp + 0x34], esi
jmp case.0x4bab50.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.004b5d30
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 0x4bb113
mov eax, dword [ecx + 0x14]
cmp eax, dword [ecx + 0x24]
jne 0x4bb12b
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.0x4bab50.10
test eax, 0x4000
je 0x4bb148
mov ecx, edi
call fcn.004b5c20
test byte [edi + 0x1c], 0x12
je case.0x4bab50.10
mov eax, dword [edi + 0x14]
cmp eax, dword [edi + 0x24]
je case.0x4bab50.10
mov edx, dword [edi + 0x18]
mov ecx, edi
push 1
add edx, 2
call fcn.004b5a30
mov esi, dword [esp + 0x14]
add esp, 4
test eax, eax
jne 0x4c1261
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 0x4bbdaa
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.004b5d30
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 0x4bb1f3
mov eax, dword [ecx + 0x14]
cmp eax, dword [ecx + 0x24]
jne case.0x4bab50.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.0x4bab50.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 0x4bb234
mov ecx, edx
call fcn.004b6070
jmp case.0x4bab50.10
test ecx, 0x4000
je 0x4bb28c
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.004b5a30
add esp, 4
test eax, eax
je 0x4bb261
mov eax, 7
jmp 0x4bb284
push dword [edi]
mov eax, dword [edi + 0x14]
add eax, dword [edi + 0x18]
push 0
push eax
call fcn.004f9bf0
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 0x4c0e72
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x4bb2a6
mov ecx, esi
call fcn.004b5c20
test eax, eax
jne 0x4c0e72
test byte [edi + 0x1c], 0x12
movzx esi, byte [esp + 0xe8]
jne 0x4bb2c5
mov edx, esi
mov ecx, edi
call fcn.004b5c80
test eax, eax
jne 0x4c0e72
mov eax, dword [esp + 0xe4]
test byte [eax + 0x1c], 0x12
jne 0x4bb2ea
mov edx, esi
mov ecx, eax
call fcn.004b5c80
test eax, eax
jne 0x4c0e72
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 0x4c109d
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.004b5a30
add esp, 4
test eax, eax
jne 0x4c1261
mov eax, dword [esp + 0xe4]
cmp edi, eax
je 0x4bb362
push dword [eax + 0x18]
push dword [eax + 0x14]
push dword [edi + 0x14]
call fcn.004f9670
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.004f9670
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 0x4bbdaa
mov ecx, dword [esp + 0x20]
call fcn.004ba790
mov ecx, dword [esp + 0xe4]
call fcn.004ba790
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 0x4bb6f3
mov eax, dword [esp + 0xe4]
mov al, byte [eax + 0x1c]
and al, byte [edx + 0x1c]
test al, 4
je 0x4bb4fd
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.0x4bb44f
jmp dword [eax*4 + 0x4c149c]
add ecx, esi
adc edx, edi
jmp 0x4bb4d3
sub ecx, esi
sbb edx, edi
jmp 0x4bb4d3
push edx
push ecx
push edi
push esi
call fcn.004f8380
jmp 0x4bb4d1
mov eax, esi
or eax, edi
je 0x4bb6f3
mov eax, esi
and eax, edi
cmp eax, 0xffffffff
jne 0x4bb49b
test ecx, ecx
jne 0x4bb49b
cmp edx, 0x80000000
jne 0x4bb49b
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.0051d110
jmp 0x4bb4d1
mov eax, esi
or eax, edi
je 0x4bb6f3
mov eax, esi
and eax, edi
cmp eax, 0xffffffff
jne 0x4bb4c8
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.0051d200
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.0x4bab50.10
mov ecx, edx
call fcn.004b5f30
mov ecx, dword [esp + 0xe4]
movsd qword [esp + 0x48], xmm0
call fcn.004b5f30
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.0x4bb531
jmp dword [eax*4 + 0x4c14ac]
addsd xmm0, qword [esp + 0x48]
jmp 0x4bb5d9
subsd xmm0, qword [esp + 0x48]
jmp 0x4bb5d9
mulsd xmm0, qword [esp + 0x48]
jmp 0x4bb5d9
movsd xmm1, qword [esp + 0x48]
ucomisd xmm1, qword [esp + 0x130]
lahf
test ah, 0x44
jnp 0x4bb6f3
divsd xmm0, xmm1
jmp 0x4bb5d9
movsd xmm0, qword [esp + 0x48]
call fcn.0051d730
movsd xmm0, qword [esp + 0xf0]
mov esi, eax
mov edi, edx
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], edi
call fcn.0051d730
mov ecx, eax
mov dword [esp + 0x44], edx
mov eax, esi
mov dword [esp + 0x40], ecx
or eax, edi
je 0x4bb6f3
mov eax, esi
and eax, edi
cmp eax, 0xffffffff
jne 0x4bb5c9
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.0051d200
mov ecx, eax
call fcn.0051d840
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 0x4bb6f3
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.0x4bab50.10
movsd xmm1, qword [esp + 0x148]
comisd xmm1, xmm0
jbe 0x4bb679
xor edi, edi
mov esi, connect
jmp 0x4bb69a
comisd xmm0, xmmword [esp + 0x158]
jbe 0x4bb68d
xor edi, edi
mov esi, connect
jmp 0x4bb69a
call fcn.0051d730
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.0051d840
movsd xmm1, qword [esp + 0xf0]
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp case.0x4bab50.10
add edi, 0xffffffff
adc esi, 0x7fffffff
cmp esi, 0xffffffff
ja case.0x4bab50.10
jb 0x4bb6dc
cmp edi, 0xfffffffd
ja case.0x4bab50.10
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0xd8]
or eax, 4
mov word [ecx + 0x1c], ax
jmp case.0x4bab50.10
mov ecx, dword [esp + 0x18]
call fcn.004b6070
jmp case.0x4bab50.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 0x4bb79b
nop word [eax + eax]
mov dword [esi + eax*4], edx
mov ecx, dword [esp + 0x34]
movzx eax, word [ecx + 0x1c]
test al, 1
je 0x4bb755
mov byte [ecx + 0x1e], 5
jmp 0x4bb774
test al, 4
je 0x4bb75f
mov byte [ecx + 0x1e], 1
jmp 0x4bb774
test al, 8
je 0x4bb769
mov byte [ecx + 0x1e], 2
jmp 0x4bb774
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 0x4bb794
mov esi, dword [esp + 0x78]
jmp 0x4bb740
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 0x4bb7b8
mov dword [esp + 0x3c], 0
jmp 0x4bb7be
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.004b5d30
push dword [esp + 0x64]
push dword [esp + 0x54]
call fcn.004a6230
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 0x4bb885
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 0x4c0da8
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x4bb8c9
mov edx, dword [edi + esi*4 + 4]
call fcn.004b8b00
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 0x4bb900
mov dl, 1
lea ecx, [esp + 0x40]
call fcn.004b69f0
mov esi, dword [esp + 0x10]
push eax
mov eax, dword [esp + 0xc]
push 0x5407f8
add eax, 0x68
push esi
push eax
call fcn.004a66a0
mov eax, dword [esp + 0x7c]
add esp, 0x10
mov dword [esp + 0xc], eax
jmp 0x4bb904
mov esi, dword [esp + 0x10]
test byte [esp + 0x5c], 2
je 0x4bb923
mov al, byte [esp + 0xe8]
cmp byte [esp + 0x5f], al
je 0x4bb923
mov dl, al
lea ecx, [esp + 0x40]
call fcn.004a7f90
mov edi, dword [esp + 0x18]
mov ecx, edi
call fcn.004b5d30
push dword [edi + 0x24]
push dword [edi + 0x10]
call fcn.004a6230
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 0x4bb3b3
mov ecx, dword [edi + 0x18]
test eax, 0x4000
je 0x4bb99f
add ecx, dword [edi]
mov eax, dword [edi + 0x10]
mov edi, dword [esp + 8]
cmp ecx, dword [eax + 0x48]
jg 0x4c10ab
mov edx, dword [esp + 0xc]
jmp 0x4bbdaa
mov ecx, dword [esp + 0xe4]
mov esi, dword [esp + 0x20]
mov al, byte [ecx + 0x1c]
or al, byte [esi + 0x1c]
test al, 1
je 0x4bb9d9
mov ecx, edx
call fcn.004b6070
jmp case.0x4bab50.10
call fcn.004b5e50
mov ecx, esi
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
call fcn.004b5e50
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 0x4bba4b
sub eax, 1
je 0x4bba3d
sub eax, 1
je 0x4bba1f
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
call fcn.0051d690
jmp 0x4bba57
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 0x4bba5f
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
or eax, ecx
or edx, esi
jmp 0x4bba57
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.0x4bab50.10
mov ecx, dword [esp + 0x20]
call fcn.004b5e50
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.0x4bab50.10
mov ecx, dword [esp + 0x20]
call fcn.004ba790
mov ecx, dword [esp + 0x20]
test byte [ecx + 0x1c], 8
je 0x4bbad2
call fcn.004b5ff0
mov ecx, dword [esp + 0x20]
movzx eax, word [ecx + 0x1c]
test al, 4
jne 0x4bbafa
mov eax, dword [esi + edi*4 + 8]
mov edi, dword [esp + 8]
test eax, eax
je 0x4c0ea9
lea edx, [eax - 1]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0xc]
jmp 0x4bbda6
and eax, 0xbf04
or eax, 4
mov word [ecx + 0x1c], ax
jmp case.0x4bab50.10
mov ecx, dword [esp + 0x20]
test byte [ecx + 0x1c], 4
je case.0x4bab50.10
call fcn.004b5f30
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.0x4bab50.10
mov eax, dword [esp + 0x20]
movzx ecx, word [eax + 0x1c]
test cl, 1
jne case.0x4bab50.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 0x4bbb7c
test al, 0xc
je 0x4bbb7c
movzx edx, byte [esp + 0xe8]
call fcn.004b5c80
mov ecx, dword [esp + 0x20]
mov eax, 0xfff3
and word [ecx + 0x1c], ax
mov ax, word [ecx + 0x1c]
test eax, 0x4000
je 0x4bbbfe
mov edx, dword [ecx]
mov eax, 1
add edx, dword [ecx + 0x18]
test edx, edx
push eax
cmovle edx, eax
call fcn.004b5a30
mov ecx, dword [esp + 0x24]
add esp, 4
test eax, eax
je 0x4bbbd2
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 0x4bbda2
push dword [ecx]
mov eax, dword [ecx + 0x14]
add eax, dword [ecx + 0x18]
push 0
push eax
call fcn.004f9bf0
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 0x4bbda2
mov ecx, dword [esp + 0x20]
movzx eax, word [ecx + 0x1c]
test al, 1
jne case.0x4bab50.10
test al, 0x10
jne 0x4bbc5b
test al, 2
jne 0x4bbc42
test al, 0xc
je 0x4bbc42
movzx edx, byte [esp + 0xe8]
call fcn.004b5c80
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.0x4bab50.10
and eax, 0xff10
mov word [ecx + 0x1c], ax
jmp case.0x4bab50.10
mov ecx, dword [esp + 0x20]
test byte [ecx + 0x1c], 0xd
jne case.0x4bab50.10
call fcn.004b5f30
movsd xmm1, qword [esp + 0x148]
comisd xmm1, xmm0
movsd qword [esp + 0xf0], xmm0
jbe 0x4bbc9d
xor eax, eax
mov edx, connect
jmp 0x4bbcb6
comisd xmm0, xmmword [esp + 0x158]
jbe 0x4bbcb1
xor eax, eax
mov edx, connect
jmp 0x4bbcb6
call fcn.0051d730
mov ecx, eax
call fcn.0051d840
movsd xmm1, qword [esp + 0xf0]
mov ecx, dword [esp + 0x20]
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x4bbce2
call fcn.004b5e50
mov ecx, dword [esp + 0x20]
jmp 0x4bba63
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.0x4bab50.10
mov ecx, dword [esp + 0x20]
test byte [ecx + 0x1c], 1
jne case.0x4bab50.10
call fcn.004b5e50
mov ecx, dword [esp + 0x20]
jmp 0x4bba63
mov ecx, dword [esp + 0x20]
test byte [ecx + 0x1c], 1
jne case.0x4bab50.10
call fcn.004b5f30
mov ecx, dword [esp + 0x20]
movsd qword [ecx + 8], xmm0
jmp 0x4bbce7
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 0x4bbdbf
mov al, byte [esi + edi*4 + 3]
test al, al
jns 0x4bbd5e
and ecx, edx
not ecx
and ecx, 1
jmp 0x4bbe89
test al, 0x10
je 0x4bbd91
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 0x4bbda6
test al, 8
je case.0x4bab50.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 0x4c11e6
mov edx, dword [esp + 0x1c]
jmp 0x4baa01
mov dl, byte [esi + edi*4 + 3]
and dl, 0x67
mov byte [esp + 0x34], dl
je 0x4bbe04
push dword [esp + 0xe8]
mov ecx, dword [esp + 0x24]
call fcn.004ba870
mov dl, byte [esp + 0x38]
add esp, 4
mov ecx, dword [esp + 0x2c]
push dword [esp + 0xe8]
call fcn.004ba870
mov eax, dword [esp + 0x14]
add esp, 4
cmp byte [eax + 0x1e], 0
jne 0x4c126a
mov ecx, dword [esp + 0x20]
mov edx, 0xe
mov ax, word [ecx + 0x1c]
bt ax, dx
jae 0x4bbe5b
mov edx, dword [ecx]
mov eax, 1
add edx, dword [ecx + 0x18]
test edx, edx
push eax
cmovle edx, eax
call fcn.004b5a30
add esp, 4
test eax, eax
jne 0x4bbe5b
mov ecx, dword [esp + 0x20]
push dword [ecx]
push eax
mov eax, dword [ecx + 0x14]
add eax, dword [ecx + 0x18]
push eax
call fcn.004f9bf0
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 0x4bbe75
mov ecx, eax
call fcn.004b5c20
mov eax, dword [esp + 0x2c]
push dword [esi + edi*4 + 0x10]
mov edx, dword [esp + 0x24]
mov ecx, eax
call fcn.004b6570
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.0x4bbe99
jmp dword [eax*4 + 0x4c14bc]
xor eax, eax
test ecx, ecx
sete al
jmp 0x4bbecf
xor eax, eax
test ecx, ecx
setne al
jmp 0x4bbecf
mov eax, ecx
jmp 0x4bbecc
xor eax, eax
test ecx, ecx
setle al
jmp 0x4bbecf
xor eax, eax
test ecx, ecx
setg al
jmp 0x4bbecf
mov eax, ecx
not eax
shr eax, 0x1f
mov dword [esp + 0x30], eax
test byte [esi + edi*4 + 3], 0x10
je 0x4bc264
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 0x4bbda6
mov eax, dword [esi + edi*4 + 0x10]
mov dword [esp + 0x108], eax
jmp case.0x4bab50.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 0x4bbff8
mov eax, dword [esp + 0x108]
test eax, eax
je 0x4bbf74
mov edi, dword [eax + edx*4]
jmp 0x4bbf76
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.004b6570
add esp, 4
mov dword [esp + 0x10c], eax
test eax, eax
jne 0x4bbfe8
mov edx, dword [esp + 0x34]
inc edx
mov dword [esp + 0x34], edx
cmp edx, dword [esp + 0x30]
jge 0x4bbff8
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 0x4bbf64
cmp dword [esp + 0x4c], 0
je 0x4bbff8
neg eax
mov dword [esp + 0x10c], eax
xor eax, eax
mov dword [esp + 0x108], eax
jmp case.0x4bab50.10
mov ecx, dword [esp + 0x10c]
test ecx, ecx
jns 0x4bc01d
mov eax, dword [esi + edi*4 + 4]
lea edx, [eax - 1]
jmp 0x4bbd9a
jne 0x4bc02b
mov eax, dword [esi + edi*4 + 8]
lea edx, [eax - 1]
jmp 0x4bbd9a
mov eax, dword [esi + edi*4 + 0xc]
lea edx, [eax - 1]
jmp 0x4bbd9a
mov eax, dword [esp + 0x20]
test byte [eax + 0x1c], 1
je 0x4bc048
mov ecx, 2
jmp 0x4bc05c
mov ecx, eax
call fcn.004b5e50
or eax, edx
je 0x4bc05a
mov ecx, 1
jmp 0x4bc05c
xor ecx, ecx
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], ecx
test byte [eax + 0x1c], 1
je 0x4bc074
mov eax, 2
jmp 0x4bc08c
mov ecx, eax
call fcn.004b5e50
or eax, edx
mov ecx, dword [esp + 0x30]
je 0x4bc08a
mov eax, 1
jmp 0x4bc08c
xor eax, eax
mov dword [esp + 0x34], eax
lea eax, [eax + ecx*2]
cmp byte [esi + edi*4], 0x45
jne 0x4bc0a3
movzx eax, byte [ecx + eax + 0x53c2d0]
jmp 0x4bc0ab
movzx eax, byte [ecx + eax + 0x53b840]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x30], eax
cmp eax, 2
jne 0x4bc0d4
mov ax, word [edi + 0x1c]
mov ecx, 0xbf01
and ax, cx
or ax, 1
movzx eax, ax
mov word [edi + 0x1c], ax
jmp case.0x4bab50.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.0x4bab50.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 0x4bc121
mov ecx, edi
call fcn.004b6070
jmp case.0x4bab50.10
mov ecx, eax
call fcn.004b5e50
or eax, edx
jne 0x4bc133
lea esi, [eax + 1]
xor edi, edi
jmp 0x4bc14d
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.004b5d30
mov eax, dword [esp + 0x18]
push dword [eax + 0x24]
push dword [eax + 0x10]
call fcn.004a6230
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.0x4bab50.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 0x4bc1c3
mov ecx, edi
call fcn.004b6070
jmp case.0x4bab50.10
mov ecx, eax
call fcn.004b5e50
mov esi, eax
mov edi, edx
not esi
not edi
mov ecx, dword [esp + 0x18]
call fcn.004b5d30
mov eax, dword [esp + 0x18]
push dword [eax + 0x24]
push dword [eax + 0x10]
call fcn.004a6230
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.0x4bab50.10
mov ecx, dword [esp + 0x20]
test byte [ecx + 0x1c], 1
je 0x4bc236
mov eax, dword [esi + edi*4 + 0xc]
test eax, eax
mov dword [esp + 0x30], eax
jmp 0x4bbd93
call fcn.004b5f30
ucomisd xmm0, qword [esp + 0x130]
lahf
test ah, 0x44
jnp 0x4bc251
mov eax, 1
jmp 0x4bc253
xor eax, eax
mov dword [esp + 0x30], eax
cmp byte [esi + edi*4], 0x1b
jne 0x4bc264
xor eax, 1
mov dword [esp + 0x30], eax
test eax, eax
jmp 0x4bbd93
mov eax, dword [esp + 0x20]
test byte [eax + 0x1c], 1
jmp 0x4bbd93
mov eax, dword [esp + 0x20]
test byte [eax + 0x1c], 1
jne case.0x4bab50.10
jmp 0x4bbd95
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 0x4bc4d4
cmp byte [esi + 0x15], 0
je 0x4bc37c
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.004b25b0
mov edx, eax
add esp, 0x10
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4c101b
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 0x4bc376
mov ecx, dword [esi]
lea edx, [esp + 0x128]
call fcn.004b2ab0
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4c101b
mov byte [esi + 0x15], 0
jmp 0x4bc3be
mov edi, dword [esi]
test edi, edi
je 0x4bc3c9
cmp byte [edi + 0x43], 2
jb 0x4bc3a1
mov ecx, edi
call fcn.004b0670
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4c101b
mov ecx, dword [esp + 0x48]
cmp byte [edi + 0x43], 1
jne 0x4bc3b1
cmp dword [edi + 0x50], 0
jne 0x4bc3b1
xor eax, eax
jmp 0x4bc3b6
mov eax, 1
test eax, eax
je 0x4bc3c9
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 0x4bc3eb
mov dword [esp + 0x30], edi
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 8]
inc edx
mov esi, dword [esp + 0x10]
jmp 0x4ba9fd
mov esi, dword [esp + 8]
mov eax, dword [ecx + 0x44]
cmp eax, dword [esi + 0x5c]
jne 0x4bc418
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 0x4bc51c
cmp byte [ecx + 0x17], 0
je 0x4bc44a
mov ecx, dword [esp + 0x50]
lea edx, [esp + 0x38]
call fcn.004b1d30
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 0x4bc51c
mov edx, dword [esp + 0x50]
mov dword [esp + 0xec], edx
cmp word [edx + 0x3e], di
jne 0x4bc4b9
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.004b07b0
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 0x4bc51c
mov eax, dword [esi + 0x24]
test eax, eax
jle 0x4bcae6
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 0x4bc50f
xor eax, eax
jmp 0x4bc511
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 0x4bb3b3
cmp edx, dword [esi + 0x48]
ja 0x4c109d
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 0x4bc552
mov eax, dword [ecx + 0x50]
mov dword [esp + 0x58], eax
jmp 0x4bc854
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 0x4bc589
mov dword [esp + 0x68], ecx
jmp 0x4bc5e3
mov esi, dword [esp + 0x48]
xor edx, edx
mov ecx, dword [esp + 0x50]
cmp byte [esi + 0x17], dl
je 0x4bc5a1
cmp byte [ecx + 0x43], 1
jne 0x4bc5be
push edx
jmp 0x4bc5a9
cmp byte [ecx + 0x43], 1
jne 0x4bc5be
push 1
lea edx, [esp + 0xb8]
call fcn.004b21a0
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 0x4bc5d8
mov dword [esp + 0x4c], edx
mov dword [esi + 0x54], edx
jmp 0x4bc5df
mov dword [esi + 0x54], 0
mov ecx, dword [esp + 0x68]
mov al, byte [ecx]
cmp al, 0x80
jae 0x4bc5f7
movzx edx, al
mov al, 1
mov dword [esp + 0xa0], edx
jmp 0x4bc60e
lea edx, [esp + 0xa0]
call fcn.004a92b0
mov edx, dword [esp + 0xa0]
mov ecx, dword [esp + 0x68]
movzx eax, al
mov dword [esp + 0xb0], eax
cmp edx, 0x18003
ja 0x4c0eb7
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 0x4bc6a0
cmp dword [esp + 0xb4], esi
jge 0x4bc6a0
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.004b6880
mov edx, eax
add esp, 0xc
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4bbda2
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 0x4bc7b1
nop word [eax + eax]
cmp esi, eax
mov eax, dword [esp + 0x58]
jae 0x4bc781
mov dword [eax + ecx*4], edx
mov ecx, dword [esp + 0x98]
mov al, byte [ecx]
cmp al, 0x80
jae 0x4bc70e
mov ecx, dword [esp + 0x64]
movzx edx, al
mov eax, dword [esp + 0x54]
mov dword [eax + ecx*4], edx
mov al, 1
jmp 0x4bc71e
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x54]
lea edx, [eax + edx*4]
call fcn.004a92b0
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 0x4bc760
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 0x4bc79a
mov edx, dword [esp + 0xa8]
movzx eax, byte [eax + 0x53b5e8]
add edx, eax
mov dword [esp + 0xa8], edx
adc dword [esp + 0xac], 0
jmp 0x4bc79a
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 0x4bc7b1
mov eax, dword [esp + 0x9c]
jmp 0x4bc6e0
lea ecx, [esp + 0x70]
call fcn.004b5d30
push dword [esp + 0x94]
push dword [esp + 0x84]
call fcn.004a6230
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 0x4bcad8
mov edi, dword [esp + 0xac]
mov ecx, dword [esp + 0x30]
test edi, edi
ja 0x4bcad8
mov eax, dword [esp + 0xa8]
jb 0x4bc838
cmp eax, ecx
ja 0x4bcad8
cmp edx, esi
jne 0x4bc84c
cmp eax, ecx
jne 0x4bcad8
test edi, edi
jne 0x4bcad8
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x44]
cmp dword [eax + ecx*4], 0
je 0x4bca26
cmp dword [esp + 0x4c], 0
je 0x4bc88d
mov ecx, dword [esp + 0x6c]
call fcn.004b5d30
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 0x4bca0a
mov eax, dword [edx + ecx*4]
cmp eax, 0xc
jb 0x4bc89c
add eax, 0xfffffff4
shr eax, 1
jmp 0x4bc8a3
movzx eax, byte [eax + 0x53b5e8]
mov edi, dword [esp + 0x6c]
lea ecx, [esp + 0x70]
mov dword [esp + 0x60], eax
call fcn.004b5d30
mov ecx, dword [esp + 0x80]
mov esi, dword [esp + 0x94]
test ecx, ecx
je 0x4bc8f4
test esi, esi
je 0x4bc963
cmp esi, dword [ecx + 0xf0]
jb 0x4bc8f4
cmp esi, dword [ecx + 0xf4]
jae 0x4bc8f4
mov eax, dword [ecx + 0xec]
mov dword [esi], eax
dec dword [ecx + 0xe4]
mov dword [ecx + 0xec], esi
jmp 0x4bc963
test esi, esi
je 0x4bc963
cmp dword [0x555cc0], 0
je 0x4bc959
mov eax, dword [0x558458]
test eax, eax
je 0x4bc914
push eax
call dword [0x555d08]
add esp, 4
push esi
call dword [0x555ce4]
mov ecx, dword [0x5582e0]
neg eax
add ecx, eax
add esp, 4
mov eax, dword [0x558304]
cmp ecx, eax
mov dword [0x5582e0], ecx
cmovg eax, ecx
push esi
mov dword [0x558304], eax
call dword [0x555cdc]
mov eax, dword [0x558458]
add esp, 4
test eax, eax
je 0x4bc963
push eax
call dword [0x555d10]
jmp 0x4bc960
push esi
call dword [0x555cdc]
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.004b6880
mov edx, eax
add esp, 0xc
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4bbda2
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.004b8ce0
mov eax, dword [esp + 0x70]
add esp, 4
mov cl, byte [esp + 0xe8]
mov byte [eax + 0x1f], cl
jmp 0x4bca84
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
cmp byte [ecx + eax*4 + 1], 0xf8
jne 0x4bca84
mov edi, dword [ecx + eax*4 + 0x10]
mov esi, dword [esp + 0x6c]
mov ecx, esi
call fcn.004b5d30
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 0x4bca6c
mov eax, dword [edi + 0x14]
cmp eax, dword [edi + 0x24]
jne 0x4bca84
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 0x4bcac4
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.004b5bc0
mov edx, eax
mov dword [esp + 0xc], edx
jmp 0x4bbda2
mov edx, 0xb
mov dword [esp + 0xc], edx
jmp 0x4bbda2
mov dword [esp + 0x30], 0
jmp case.0x4bab50.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.0x4bab50.10
mov dword [esp + 0x3c], esi
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x4bcb4b
mov ecx, esi
call fcn.004b5c20
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.004ba870
mov esi, dword [esp + 0x40]
add esp, 4
add esi, 0x28
mov dword [esp + 0x3c], esi
cmp esi, dword [esp + 0x38]
jbe 0x4bcb35
jmp case.0x4bab50.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 0x4bcd15
mov dword [esp + 0x34], edi
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x4bcc58
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.004ba870
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 0x4bcc84
cmp dword [edi + 0x18], 0
jle 0x4bcc84
mov ecx, edi
call fcn.004b5c20
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.004b8c00
mov edx, eax
mov dword [esp + 0x58], edx
cmp edx, 0xc
jb 0x4bcca1
lea eax, [edx - 0xc]
shr eax, 1
jmp 0x4bcca8
movzx eax, byte [edx + 0x53b5e8]
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 0x4bccd3
cmp esi, 9
jl 0x4bccc0
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 0x4bccf0
add esi, dword [edi]
jmp 0x4bccfc
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 0x4bcc11
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 0x4bcd33
cmp edi, 9
jl 0x4bcd20
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 0x4bcd63
cmp edi, 9
jl 0x4bcd50
mov eax, dword [esp + 0x40]
cmp dword [esp + 0xd8], edi
jge 0x4bcd75
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 0x4c109d
jl 0x4bcdab
cmp edi, eax
ja 0x4c109d
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.004b5a30
add esp, 4
test eax, eax
jne 0x4c0e72
mov ecx, dword [esp + 0x40]
mov edx, dword [esi + 0x14]
mov dword [esp + 0x30], edx
cmp ecx, 0x80
jae 0x4bcdfc
mov al, cl
mov byte [edx], al
mov eax, 1
jmp 0x4bce27
test ecx, 0xffffc000
jne 0x4bce1a
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 0x4bce27
push 0
push ecx
mov ecx, edx
call fcn.004a9030
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 0x4bcebc
mov edx, dword [esp + 0x6c]
mov ecx, esi
call fcn.004b8c00
mov ecx, eax
mov dword [esp + 0x58], ecx
cmp ecx, 0x80
jae 0x4bce69
mov cl, al
mov eax, dword [esp + 0x30]
mov byte [edi + eax], cl
mov eax, 1
jmp 0x4bce9a
mov edx, dword [esp + 0x30]
add edx, edi
test ecx, 0xffffc000
jne 0x4bce8d
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 0x4bce9a
push 0
push ecx
mov ecx, edx
call fcn.004a9030
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 0x4bce40
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x34], esi
cmp esi, dword [esp + 0x60]
ja 0x4bcfca
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.004b8c00
mov dword [esp + 0xf8], eax
lea ecx, [eax - 1]
cmp ecx, 6
ja 0x4bcf4f
mov ecx, eax
cmp eax, 7
jne 0x4bcf3e
mov edx, dword [esi + 8]
mov eax, dword [esi + 0xc]
movzx ecx, byte [ecx + 0x53b5e8]
mov dword [esp + 0x24], ecx
test ecx, ecx
je 0x4bcf38
mov esi, dword [esp + 0x28]
dec ecx
mov byte [ecx + esi], dl
shrd edx, eax, 8
shr eax, 8
test ecx, ecx
jne 0x4bcf21
mov edi, dword [esp + 0x70]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x24]
jmp 0x4bcfb3
mov edx, dword [esi]
mov eax, dword [esi + 4]
cmp ecx, 0xc
jb 0x4bcf0e
add ecx, 0xfffffff4
shr ecx, 1
jmp 0x4bcf15
cmp eax, 0xc
jb 0x4bcfb1
mov edi, dword [esi + 0x18]
push edi
push dword [esi + 0x14]
mov dword [esp + 0x2c], edi
push dword [esp + 0x30]
call fcn.004f9670
mov eax, 0x4000
add esp, 0xc
test word [esi + 0x1c], ax
je 0x4bcfa3
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.004f9bf0
add esp, 0xc
mov edi, dword [esp + 0x70]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x24]
jmp 0x4bcfb3
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 0x4bced0
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 0x4bcff8
mov dword [edi], eax
mov eax, 0x4410
mov word [edi + 0x1c], ax
mov byte [edi + 0x1f], 1
jmp case.0x4bab50.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 0x4bd028
lea edx, [esp + 0x30]
call fcn.004b56e0
mov dword [esp + 0xc], eax
jmp 0x4bd031
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 0x4bbda6
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 0x4bd19b
cmp dword [esi + 0x90], edx
jg 0x4c0ed4
test eax, eax
je 0x4bd0a3
mov ecx, dword [esp + 0x28]
cmp byte [ecx], 0
je 0x4bd09c
mov eax, ecx
inc eax
cmp byte [eax], 0
jne 0x4bd096
sub eax, ecx
and eax, 0x3fffffff
mov dword [esp + 0x38], eax
lea edx, [eax + 0x19]
cmp byte [esi + 0x1e], 0
je 0x4bd0c5
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 8]
mov dword [esp + 0x3c], 0
jmp 0x4bbdaa
cmp byte [esi + 0xe2], 0
je 0x4bd10c
movzx eax, word [esi + 0xe0]
cmp edx, eax
ja 0x4bd10c
mov ecx, dword [esi + 0xec]
test ecx, ecx
je 0x4bd10c
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 0x4bd106
mov dword [esi + 0xe8], eax
mov dword [esp + 0x3c], ecx
jmp 0x4bd12b
push edx
call fcn.004a6140
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x4bd11f
mov byte [esi + 0x1e], 1
mov dword [esp + 0x3c], ecx
test ecx, ecx
je 0x4bb3b3
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.004f9670
add esp, 0xc
cmp byte [esi + 0x1c], 0
je 0x4bd15b
mov byte [esi + 0x1c], 0
mov byte [esi + 0x1cc], 1
jmp 0x4bd161
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 0x4bbdaa
xor ecx, ecx
mov dword [esp + 0x48], ecx
mov edi, dword [esi + 0x1c0]
mov dword [esp + 0x40], edi
test edi, edi
je 0x4c0f24
mov esi, dword [edi]
mov edx, eax
mov cl, byte [esi]
test cl, cl
je 0x4bd1f0
mov al, cl
sub esi, edx
movzx ecx, byte [edx]
mov byte [esp + 0x103], al
movzx eax, al
mov al, byte [eax + 0x53c8b0]
cmp al, byte [ecx + 0x53c8b0]
jne 0x4bd1e9
mov al, byte [edx + esi + 1]
inc edx
mov cl, al
test al, al
jne 0x4bd1c1
jmp 0x4bd1f0
mov cl, byte [esp + 0x103]
movzx eax, cl
movzx ecx, byte [eax + 0x53c8b0]
movzx eax, byte [edx]
movzx eax, byte [eax + 0x53c8b0]
sub ecx, eax
je 0x4bd223
inc dword [esp + 0x48]
mov eax, dword [edi + 0x10]
mov edi, eax
mov dword [esp + 0x40], edi
test eax, eax
je 0x4c0f24
mov eax, dword [esp + 0x28]
jmp 0x4bd1b3
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0xd8]
mov esi, dword [esp + 0x10]
test edi, edi
je 0x4c0f24
cmp dword [esi + 0x90], 0
jg 0x4bd423
cmp edx, 2
jne 0x4bd259
cmp dword [esi + 0x8c], 1
jg 0x4bd423
cmp dword [edi + 0x10], 0
jne 0x4bd2b0
cmp byte [esi + 0x1cc], 0
je 0x4bd2b0
mov esi, 1
mov dword [esp + 0x24], esi
cmp edx, esi
jne 0x4bd2ba
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 8]
mov ecx, edi
mov byte [eax + 0x1c], 1
call fcn.004b8620
cmp eax, 5
je 0x4c0f03
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 0x4bd382
mov dword [esp + 0x24], 0
jmp 0x4bd2be
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 0x4bd34b
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 0x4bd331
cmp byte [eax + 8], 2
jne 0x4bd331
mov esi, dword [eax + 4]
push dword [esp + 0x48]
mov ecx, dword [esi]
call fcn.004b02c0
mov edx, eax
add esp, 4
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4bd325
mov ecx, esi
call fcn.004b1900
mov dword [esp + 0xc], eax
mov edi, dword [esp + 0xc]
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x4c]
test edi, edi
jne 0x4c1017
mov ecx, dword [esp + 0x10]
inc esi
mov dword [esp + 0x4c], esi
cmp esi, dword [ecx + 4]
jl 0x4bd2e0
mov edi, dword [esp + 0x40]
cmp edx, 2
jne 0x4bd37e
test byte [ecx + 0xc], 0x10
je 0x4bd37e
mov eax, dword [ecx + 0x88]
test eax, eax
je 0x4bd36b
mov byte [eax + 0x6e], 1
mov eax, dword [eax + 8]
test eax, eax
jne 0x4bd360
xor edx, edx
call fcn.004cbe70
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 0x4bd3c6
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.004a6230
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 0x4bd390
mov edx, dword [esp + 0x30]
cmp edx, 1
jne 0x4bd400
mov eax, dword [edi + 0x10]
mov dword [ecx + 0x1c0], eax
push dword [esp + 0x40]
push ecx
call fcn.004a6230
mov edx, dword [esp + 0x14]
add esp, 8
mov edi, dword [esp + 8]
test esi, esi
mov esi, dword [esp + 0x10]
jne 0x4bbdaa
dec dword [esi + 0x1c4]
jmp 0x4bbdaa
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 0x4bbdaa
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.004a66a0
mov edx, 5
add esp, 0x10
mov dword [esp + 0xc], edx
jmp 0x4bbdaa
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 0x4bd4b2
cmp byte [esi + 0x1c], 0
jne 0x4bd4b2
mov dword [esp + 0x38], 1
test ecx, ecx
je 0x4bd49a
cmp dword [esi + 0x8c], 1
jle 0x4bd4ba
mov dword [esp + 0xc], 5
mov eax, str.cannot_rollback_transaction___SQL_statements_in_progress
jmp 0x4bd4e8
cmp dword [esi + 0x90], 0
jle 0x4bd4ba
mov dword [esp + 0xc], 5
mov eax, str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x4bd4e8
mov dword [esp + 0x38], 0
movzx eax, byte [esi + 0x1c]
cmp edx, eax
jne 0x4c0f5b
test edx, edx
jne 0x4bd4d1
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x4bd4e0
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.004a66a0
mov edx, dword [esp + 0x18]
add esp, 0xc
jmp 0x4bbdaa
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.0x4bab50.10
mov edx, dword [esi + edi*4 + 8]
call fcn.004b1990
mov edx, eax
mov dword [esp + 0xc], edx
cmp edx, 5
je 0x4c0fcb
test edx, edx
jne 0x4c101b
cmp dword [esi + edi*4 + 8], eax
mov edi, dword [esp + 8]
je 0x4bbda6
cmp byte [edi + 0x71], al
je 0x4bbda6
mov esi, dword [esp + 0x10]
cmp byte [esi + 0x1c], al
je 0x4bd56f
cmp dword [esi + 0x8c], 1
jle 0x4bbdaa
mov edx, dword [edi + 0xd8]
test edx, edx
jne 0x4bd591
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 0x4bd5b1
mov ecx, dword [eax + 4]
cmp byte [ecx + 0x10], 0
jne 0x4bd5b1
mov ecx, dword [ecx]
call fcn.004b0170
mov dword [esp + 0xc], eax
jmp 0x4bd5b9
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 0x4bbdaa
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 0x4bd638
test esi, esi
je 0x4bd638
mov byte [edi + 0x10], 1
mov esi, dword [esp + 0x30]
mov eax, esi
cdq
jmp 0x4bba5f
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.004b5e50
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.004afd60
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4bd6cb
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 0x4bd6f5
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 0x4bd70a
cmp eax, 2
jne 0x4bd70a
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 0x4bb3b3
mov eax, dword [esi + 0x88]
test eax, eax
je 0x4bd72e
mov byte [eax + 0x6e], 1
mov eax, dword [eax + 8]
test eax, eax
jne 0x4bd723
mov edi, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov byte [edi + 0x6e], 0
jmp 0x4bbdaa
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 0x4bd782
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 0x4bd784
xor edx, edx
mov dword [esp + 0x30], edx
cmp edx, dword [esi + edi*4 + 8]
je case.0x4bab50.10
mov eax, dword [esp + 8]
push dword [eax + 0x68]
push dword [esp + 0x14]
call fcn.004a6230
add esp, 8
mov eax, str.database_schema_has_changed
nop word [eax + eax]
inc eax
cmp byte [eax], 0
jne 0x4bd7b0
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 0x4bd7d1
xor esi, esi
jmp 0x4bd82d
cmp byte [ecx + 0xe2], 0
je 0x4bd889
movzx eax, word [ecx + 0xe0]
cmp edi, eax
ja 0x4bd889
mov esi, dword [ecx + 0xec]
test esi, esi
je 0x4bd889
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 0x4bd81e
mov dword [ecx + 0xe8], eax
push edi
push str.database_schema_has_changed
push esi
call fcn.004f9670
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 0x4bd85e
mov ecx, esi
call fcn.004cbe70
mov eax, dword [esi + 0x88]
test eax, eax
je 0x4bd87b
nop dword [eax + eax]
mov byte [eax + 0x6e], 1
mov eax, dword [eax + 8]
test eax, eax
jne 0x4bd870
mov edx, 0x11
mov dword [esp + 0xc], edx
jmp 0x4bbdaa
push edi
call fcn.004a6140
mov esi, eax
add esp, 4
test esi, esi
jne 0x4bd81e
mov eax, dword [esp + 0x10]
mov byte [eax + 0x1e], 1
jmp 0x4bd82d
mov eax, dword [esp + 8]
cmp byte [eax + 0x6e], 0
jne 0x4c0ff3
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 0x4bd909
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 0x4bd90d
mov byte [ecx + 0x6f], al
jmp 0x4bd90d
mov dword [esp + 0x40], edx
mov ecx, dword [esp + 0x14]
cmp byte [ecx + edi*4 + 3], dl
je 0x4bd95e
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.004b5e50
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 0x4c0fe8
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x14]
mov al, byte [esi + edi*4 + 1]
cmp al, 0xfa
jne 0x4bd98f
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 0x4bd997
cmp al, 0xf2
jne 0x4bd99b
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.004ba690
add esp, 0xc
mov dword [esp + 0x48], eax
test eax, eax
je 0x4c0e76
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 0x4bda16
cmp byte [edi + 0x10], 0
je 0x4bda16
mov dword [eax + 0x28], edx
mov dword [esp + 0xc], 8
jmp 0x4bdab8
cmp ecx, 1
jne 0x4bda63
mov ecx, dword [edi]
lea edx, [esp + 0x124]
mov dword [esp + 0x124], 0xffffffff
call fcn.004ae3a0
cmp dword [esp + 0x124], 0
jne 0x4bda55
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 0x4bdab0
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 0x4bda90
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.0x4bab50.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.004ba690
add esp, 0xc
mov dword [esp + 0x30], eax
test eax, eax
je 0x4c0e72
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.004b1200
mov ecx, eax
add esp, 0xc
mov dword [esp + 0xc], ecx
test ecx, ecx
jne 0x4bddb2
mov eax, dword [esi]
mov eax, dword [eax + 4]
cmp dword [eax + 0x24], ecx
jne 0x4bdb77
mov eax, dword [eax]
mov eax, dword [eax + 0xa8]
mov dword [eax + 0x10], 0x1f4
mov eax, dword [eax + 0x28]
test eax, eax
je 0x4bdb77
push 0x1f4
push eax
call dword [0x555d2c]
add esp, 8
jmp 0x4bdb7f
test ecx, ecx
jne 0x4bddb2
mov ecx, dword [esp + 0x30]
mov edx, 1
mov ecx, dword [ecx + 0x20]
call fcn.004b1990
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4bddb2
mov eax, dword [esp + 0x14]
cmp dword [eax + edi*4 + 0x10], 0
mov eax, dword [esp + 0x30]
je 0x4bdd0c
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.004b2db0
add esp, 0xc
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4bdcf1
mov esi, dword [esp + 0x138]
lea edx, [eax + 0xa]
mov ecx, esi
call fcn.004b1050
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x4bdc02
mov esi, dword [ecx + 0x10]
call fcn.004ab290
mov ecx, esi
call fcn.004af600
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 0x4bdc37
mov dword [esp + 0xc], 8
jmp 0x4bdcc9
mov eax, dword [esp + 0x110]
cmp eax, 1
jne 0x4bdc77
mov ecx, dword [edi]
lea edx, [esp + 0x12c]
mov dword [esp + 0x12c], 0xffffffff
call fcn.004ae3a0
cmp dword [esp + 0x12c], 0
jne 0x4bdc70
mov dword [esp + 0xc], 0x10
jmp 0x4bdcc5
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 0x4bdca8
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.0x4bab50.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 0x4bdd2e
mov dword [esp + 0xc], 8
jmp 0x4bddae
mov ecx, dword [edi]
lea edx, [esp + 0x114]
mov dword [esp + 0x114], 0xffffffff
call fcn.004ae3a0
cmp dword [esp + 0x114], 0
jne 0x4bdd5b
mov dword [esp + 0xc], 0x10
jmp 0x4bddaa
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 0x4bdd8d
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.0x4bab50.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.004ba690
add esp, 0xc
mov dword [esp + 0x30], eax
test eax, eax
je 0x4c0e72
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.0x4bab50.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 0x4bde5b
mov ecx, dword [esi + 0x20]
test ecx, ecx
je 0x4bde2d
call fcn.004b1460
jmp 0x4bde38
mov ecx, dword [esi]
test ecx, ecx
je 0x4bde3c
call fcn.004b1ca0
mov edx, dword [esp + 8]
mov ecx, dword [esi + 0x38]
test ecx, ecx
je 0x4bde5b
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 0x4bbda6
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 0x4bbd95
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 0x4be0e9
mov ecx, dword [esp + 0x2c]
call fcn.004ba790
mov ecx, dword [esp + 0x2c]
call fcn.004b5e50
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 0x4be08c
test al, 8
je 0x4bbd95
mov edi, dword [esp + 0x60]
mov esi, dword [esp + 0x64]
test edi, edi
jne 0x4be032
cmp esi, 0x80000000
jne 0x4be032
movsd xmm0, qword [ecx + 8]
movsd xmm1, qword [esp + 0x148]
comisd xmm1, xmm0
ja 0x4bdf28
comisd xmm0, xmmword [esp + 0x130]
jbe 0x4be032
movsd xmm0, qword [esp + 0x130]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x30], 1
comisd xmm0, xmmword [ecx + 8]
jbe 0x4bdf98
cmp eax, 0x2e
je 0x4bdf52
cmp eax, 0x2d
jne 0x4be021
mov eax, dword [esp + 0x38]
mov esi, dword [eax]
mov ecx, esi
call fcn.004b22b0
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4c101b
cmp byte [esi + 0x43], al
jne 0x4bdf83
mov dword [esp + 0x30], 1
mov dword [esp + 0xc], edx
jmp 0x4be016
mov ecx, esi
mov dword [esp + 0x30], 0
call fcn.004b23f0
mov edx, eax
test edx, edx
jmp 0x4be00c
cmp eax, 0x2b
je 0x4bdfa2
cmp eax, 0x2c
jne 0x4be021
mov eax, dword [esp + 0x38]
mov esi, dword [eax]
cmp byte [esi + 0x43], 1
jne 0x4bdfcd
cmp byte [esi + 0x41], 0
je 0x4bdfcd
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xc], 0
mov edx, dword [ecx + eax*4 + 8]
jmp 0x4bbd99
mov ecx, esi
call fcn.004b22b0
mov ecx, eax
mov edx, ecx
mov dword [esp + 0xc], edx
test ecx, ecx
jne 0x4be008
cmp byte [esi + 0x43], al
jne 0x4bdfef
mov dword [esp + 0x30], 1
jmp 0x4be016
mov ecx, esi
mov dword [esp + 0x30], 0
call fcn.004b24d0
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 0x4c101b
cmp dword [esp + 0x30], 0
je 0x4bbda2
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + eax*4 + 8]
jmp 0x4bbd99
mov eax, dword [esp + 0x34]
cmp eax, 0x2b
je 0x4be064
cmp eax, 0x2d
je 0x4be064
mov edx, esi
mov ecx, edi
call fcn.0051d840
mov eax, dword [esp + 0x2c]
comisd xmm0, xmmword [eax + 8]
jbe 0x4be094
add edi, 0xffffffff
mov dword [esp + 0x60], edi
adc esi, 0xffffffff
mov dword [esp + 0x64], esi
jmp 0x4be094
mov edx, esi
mov ecx, edi
call fcn.0051d840
mov eax, dword [esp + 0x2c]
movsd xmm1, qword [eax + 8]
comisd xmm1, xmm0
jbe 0x4be094
add edi, 1
mov dword [esp + 0x60], edi
adc esi, 0
mov dword [esp + 0x64], esi
jmp 0x4be094
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.004b25b0
mov edx, eax
add esp, 0x10
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4c101b
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x14]
cmp dword [esp + 0x30], eax
jne 0x4be161
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 0x4be161
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 0x4be114
cmp eax, 0x2c
je 0x4be114
xor eax, eax
jmp 0x4be119
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.004b25b0
mov edx, eax
add esp, 0x10
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4c101b
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 0x4be1b7
cmp eax, 0x2e
je 0x4be1b7
mov ecx, dword [esp + 0x30]
test ecx, ecx
jg 0x4be1a6
jne 0x4be191
cmp eax, 0x2b
je 0x4be1a6
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 0x4be205
mov ecx, dword [esp + 0x38]
lea edx, [esp + 0x30]
mov ecx, dword [ecx]
call fcn.004b2c20
jmp 0x4be1ef
mov ecx, dword [esp + 0x30]
test ecx, ecx
js 0x4be1e0
jne 0x4be1c6
cmp eax, 0x2e
je 0x4be1e0
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 8]
inc edx
mov esi, dword [esp + 0x10]
mov dword [esp + 0x30], 0
jmp 0x4ba9fd
mov ecx, dword [esp + 0x38]
lea edx, [esp + 0x30]
mov ecx, dword [ecx]
call fcn.004b2ab0
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4c101b
mov eax, dword [esp + 0x38]
mov byte [eax + 0x11], 0
cmp dword [esp + 0x30], 0
je 0x4bc3d9
mov edx, dword [esi + edi*4 + 8]
mov edi, dword [esp + 8]
dec edx
mov esi, dword [esp + 0x10]
inc edx
jmp 0x4ba9fd
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 0x4bbaf1
mov ecx, dword [esp + 0xe4]
mov byte [eax + 0x14], 0
call fcn.004b5e50
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 0x4bbda6
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 0x4be338
mov eax, dword [esp + 0x2c]
mov edx, 0x4000
test word [eax + 0x1c], dx
je 0x4be2af
mov ecx, eax
call fcn.004b5c20
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.004b8f90
add esp, 0xc
mov dword [esp + 0x3c], eax
test eax, eax
je 0x4c0e72
cmp byte [esi + edi*4], 0x31
jne 0x4be2e5
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.004b25b0
mov ecx, dword [esp + 0x4c]
add esp, 0x10
mov dword [esp + 0xc], eax
call fcn.004b9170
mov edx, dword [esp + 0xc]
test edx, edx
jne 0x4bbda2
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 0x4be345
test edx, edx
jmp 0x4bbd93
test edx, edx
jne case.0x4bab50.10
jmp 0x4bbd95
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 0x4be3ce
movzx eax, cx
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x1c], 1
jne 0x4be478
inc cx
mov word [esp + 0x30], cx
cmp cx, dx
jb 0x4be3b1
test edi, edi
je case.0x4bab50.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.004b5e50
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.004b25b0
add esp, 0x10
mov dword [esp + 0xc], eax
test byte [esp + 0x4e], 0x20
jne 0x4be021
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x54]
cmp ecx, dword [esp + 0x60]
jne 0x4be46e
cmp eax, dword [esp + 0x64]
je 0x4be021
mov dword [esi], ecx
mov dword [esi + 4], eax
jmp case.0x4bab50.10
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + eax*4 + 8]
mov dword [esp + 0x38], 0
jmp 0x4bbd99
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 0x4be53f
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.004b25b0
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 0x4be533
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.0x4bab50.10
mov edx, dword [esi + edi*4 + 8]
mov dword [eax + 0x40], 0
jmp 0x4bbd99
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 0x4bbda6
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 0x4be7ed
mov dword [esp + 0x40], 0
cmp byte [ecx + 0x13], 0
jne 0x4be709
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 0x4be6ad
mov esi, dword [ecx]
cmp byte [esi + 0x43], 1
jne 0x4be600
cmp byte [esi + 0x41], al
jne 0x4be665
mov ecx, esi
call fcn.004b22b0
mov ecx, eax
mov dword [esp + 0xc], ecx
test ecx, ecx
jne 0x4be63a
cmp byte [esi + 0x43], al
jne 0x4be621
mov eax, 1
mov dword [esp + 0x3c], eax
jmp 0x4be64c
mov ecx, esi
mov dword [esp + 0x3c], 0
call fcn.004b24d0
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 0x4c101f
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x4be665
mov esi, 1
xor edx, edx
mov dword [esp + 0x30], esi
add esi, esi
mov dword [esp + 0x34], edx
adc edx, edx
jmp 0x4be6de
mov ecx, dword [esp + 0x38]
lea edx, [esp + 0x30]
mov ecx, dword [ecx]
call fcn.004b1d30
mov esi, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov dword [esp + 0xc], eax
cmp esi, 0xffffffff
jne 0x4be69f
cmp edx, 0x7fffffff
jne 0x4be69f
mov eax, dword [esp + 0x38]
mov byte [eax + 0x13], 1
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
jmp 0x4be6ad
add esi, 1
mov dword [esp + 0x30], esi
adc edx, 0
mov dword [esp + 0x34], edx
cmp edx, 0x7fffffff
jg 0x4be6c4
jl 0x4be6bc
cmp esi, 0xffffffff
jae 0x4be6c4
add esi, 1
adc edx, 0
jmp 0x4be6de
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 0x4be705
nop
mov eax, dword [ecx + 0x14]
cmp eax, dword [edi + 0x14]
jne 0x4be6fe
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x1c], edx
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x4be6f0
mov edi, dword [esp + 8]
mov eax, dword [esp + 0x38]
cmp byte [eax + 0x13], 0
je 0x4be7d2
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 0x4be754
mov eax, ecx
xor esi, esi
and eax, 0xffffff
cmp eax, ecx
jne 0x4be754
cmp esi, edx
jne 0x4be754
add ecx, 1
mov dword [esp + 0x30], ecx
adc edx, esi
mov dword [esp + 0x34], edx
jmp 0x4be783
lea edx, [esp + 0x30]
mov ecx, 8
call fcn.004a7dd0
cmp dword [esp + 0x40], 5
mov ecx, dword [esp + 0x30]
jge 0x4be77f
and ecx, 0xffffff
xor edx, edx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], edx
jmp 0x4be783
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.004b25b0
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 0x4be7d2
cmp eax, 0x64
jge 0x4be7c7
cmp dword [esp + 0x3c], ecx
jne 0x4be7d2
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
jmp 0x4be730
cmp dword [esp + 0x3c], 0
je 0x4c100c
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 0x4bd03a
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 0x4be86e
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 0x4be873
cdq
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x38], eax
test byte [edx + edi*4 + 3], 1
je 0x4be889
mov eax, dword [esp + 8]
inc dword [eax + 0x74]
test byte [edx + edi*4 + 3], 2
je 0x4be8ae
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 0x4be8d2
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 0x4be8de
mov eax, dword [ecx + 0x40]
jmp 0x4be8e0
xor eax, eax
mov dword [esp + 0x48], eax
mov dword [esp + 0xf8], eax
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x4be8fa
mov edi, dword [esi]
jmp 0x4be8fc
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 0x4be93f
nop dword [eax]
mov eax, dword [ecx + 0x14]
cmp eax, dword [edx + 0x14]
jne 0x4be926
mov dword [ecx + 0x18], 0
mov dword [ecx + 0x1c], 0
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x4be910
mov eax, dword [esp + 0x48]
mov edi, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x30]
jmp 0x4be94a
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.004b4f20
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 0x4bb3b7
cmp dword [esi + 0xb8], edx
je 0x4bb3b7
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x14]
cmp dword [edi + esi*4 + 0x10], edx
je 0x4bbda2
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 0x4ba9fd
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 0x4bea68
mov eax, dword [esp + 0x14]
cmp dword [eax + edi*4 + 0x10], 0
je 0x4bea68
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 0x4beae0
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.004b25b0
mov edx, eax
add esp, 0x10
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4c101b
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 0x4bead3
mov ecx, dword [esi]
lea edx, [esp + 0x118]
call fcn.004b2ab0
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4c101b
mov byte [esi + 0x15], 0
mov dword [esi + 0x44], 0
jmp 0x4beb2f
mov edi, dword [esi]
test edi, edi
je 0x4beb2b
cmp byte [edi + 0x43], 2
jb 0x4beb01
mov ecx, edi
call fcn.004b0670
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4c101b
cmp byte [edi + 0x43], 1
jne 0x4beb11
cmp dword [edi + 0x50], 0
jne 0x4beb11
xor eax, eax
jmp 0x4beb16
mov eax, 1
mov edi, dword [esp + 0x24]
test eax, eax
je 0x4beb2f
mov dword [esi + 0x44], 0
mov byte [esi + 0x14], 1
jmp 0x4beb2f
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 0x4beb5d
nop
mov eax, dword [ecx + 0x14]
cmp eax, dword [edx + 0x14]
jne 0x4beb56
mov dword [ecx + 0x18], 0
mov dword [ecx + 0x1c], 0
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x4beb40
mov ecx, dword [esp + 0x38]
mov ecx, dword [ecx]
call fcn.004b51e0
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 0x4bebbd
mov edx, dword [esi + 0xb8]
test edx, edx
je 0x4bebbd
mov eax, dword [esp + 0x14]
mov eax, dword [eax + edi*4 + 0x10]
test eax, eax
je 0x4bebbd
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 0x4bbdaa
inc dword [edi + 0x74]
jmp 0x4bbdaa
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 0x4bbdaa
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 0x4beca2
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.004b25b0
mov edx, eax
add esp, 0x10
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4c101f
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 0x4bec95
mov ecx, dword [esi]
lea edx, [esp + 0x11c]
call fcn.004b2ab0
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4c101f
mov byte [esi + 0x15], 0
mov dword [esi + 0x44], 0
jmp 0x4becf1
mov edi, dword [esi]
test edi, edi
je 0x4beced
cmp byte [edi + 0x43], 2
jb 0x4becc3
mov ecx, edi
call fcn.004b0670
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4c101b
cmp byte [edi + 0x43], 1
jne 0x4becd3
cmp dword [edi + 0x50], 0
jne 0x4becd3
xor eax, eax
jmp 0x4becd8
mov eax, 1
mov edi, dword [esp + 8]
test eax, eax
je 0x4becf1
mov dword [esi + 0x44], 0
mov byte [esi + 0x14], 1
jmp 0x4becf1
mov edi, dword [esp + 8]
mov eax, dword [esp + 0x30]
cmp byte [eax + 0x17], 0
je 0x4bed2e
mov ecx, dword [esp + 0x34]
lea edx, [esp + 0x40]
call fcn.004b1d30
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0x48]
cdq
cmp dword [esp + 0x44], edx
jg 0x4c10ab
mov edx, dword [esp + 0x40]
jl 0x4bed28
cmp edx, eax
ja 0x4c10ab
mov dword [esp + 0x38], edx
jmp 0x4bedaa
mov edx, dword [esp + 0x34]
mov dword [esp + 0xec], edx
cmp word [edx + 0x3e], 0
jne 0x4bed96
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.004b07b0
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 0x4c109d
mov esi, dword [esp + 0x18]
mov ecx, esi
push 0
call fcn.004b5a30
add esp, 4
test eax, eax
jne 0x4c0e72
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 0x4bee0e
mov ecx, dword [esp + 0x34]
xor edx, edx
push 0
push edi
push dword [esp + 0x40]
call fcn.004b1dd0
mov edx, eax
mov byte [esi + 0x1f], 1
add esp, 0xc
mov dword [esp + 0xc], edx
jmp 0x4bbda2
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
mov dword [esp + 0xd8], eax
mov al, byte [esi + 0x43]
test al, al
jne 0x4bee3a
mov esi, dword [esp + 0x18]
mov edx, 4
mov dword [esp + 0xc], edx
mov byte [esi + 0x1f], 1
jmp 0x4bbda2
cmp al, 2
jb 0x4bee4f
mov ecx, esi
call fcn.004b0670
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4bee6b
push 0
push edi
push dword [esp + 0xe0]
xor edx, edx
mov ecx, esi
call fcn.004b1dd0
mov edx, eax
add esp, 0xc
mov dword [esp + 0xc], edx
mov esi, dword [esp + 0x18]
mov byte [esi + 0x1f], 1
jmp 0x4bbda2
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 0x4bbaf1
cmp byte [esi + 0x15], 0
je 0x4beeaf
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x1c]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
jmp 0x4bef69
cmp dword [esi + 0x38], 0
je 0x4beef8
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.004a6230
mov ecx, dword [esp + 0x50]
add esp, 0x10
mov eax, dword [ecx + 8]
mov dword [edi + 0x68], eax
mov dword [ecx + 8], 0
jmp 0x4bef6d
mov edi, dword [esi]
test edi, edi
je 0x4bef38
cmp byte [edi + 0x43], 2
jb 0x4bef1d
mov ecx, edi
call fcn.004b0670
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4c101b
mov ecx, dword [esp + 0x30]
cmp byte [edi + 0x43], 1
jne 0x4bef29
cmp dword [edi + 0x50], 0
je 0x4bef38
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 0x4bef56
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
jmp 0x4bef65
mov ecx, dword [ecx]
lea edx, [esp + 0x38]
call fcn.004b1d30
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 0x4bbdaa
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 0x4bbaf1
call fcn.004b05e0
mov edx, dword [esp + 0xc]
jmp 0x4bbda6
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 0x4beffb
mov dword [esp + 0x38], 1
jmp 0x4bf04e
cmp byte [esi + 0x43], 1
jne 0x4bf011
cmp byte [esi + 0x41], 0
je 0x4bf011
mov dword [esp + 0xc], 0
jmp 0x4bf04e
mov ecx, esi
call fcn.004b22b0
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4bf04a
cmp byte [esi + 0x43], al
jne 0x4bf02f
mov dword [esp + 0x38], 1
jmp 0x4bf04a
mov ecx, esi
mov dword [esp + 0x38], 0
call fcn.004b24d0
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.0x4bab50.10
cmp dword [esp + 0x38], 0
mov edi, dword [esp + 8]
mov esi, dword [esp + 0x10]
je 0x4bacb1
lea edx, [eax - 1]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0xc]
jmp 0x4bbdaa
mov eax, dword [esp + 8]
inc dword [eax + 0xbc]
jmp 0x4bf0b3
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 0x4bf132
mov ecx, esi
call fcn.004b22b0
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4bf102
cmp byte [esi + 0x43], al
jne 0x4bf0ef
mov dword [esp + 0x38], 1
mov dword [esp + 0xc], eax
jmp 0x4bf102
mov ecx, esi
mov dword [esp + 0x38], 0
call fcn.004b23f0
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 0x4bf13a
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 0x4bb3b3
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 0x4bbdaa
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xd8], 0
jne 0x4c1219
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.0x4bab50.10
mov ecx, dword [eax]
mov dword [esp + 0x34], ecx
test ecx, ecx
jne 0x4bf1a8
mov byte [eax + 0x14], 1
jmp case.0x4bab50.10
mov dword [esp + 0x38], 1
lea edx, [esp + 0x38]
cmp byte [esi + edi*4], 0x42
jne 0x4bf1c1
call fcn.004b2ab0
jmp 0x4bf1c6
call fcn.004b2c20
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 0x4bf217
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 0x4bf21b
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 0x4bbda6
mov edi, dword [esp + 8]
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0xc]
mov byte [eax + 0x11], 0
jmp 0x4bbda6
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.0x4bab50.10
mov esi, dword [esp + 0xe4]
mov edx, 0x4000
test word [esi + 0x1c], dx
je 0x4bf27b
mov ecx, esi
call fcn.004b5c20
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4bbda2
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 0x4bf2a7
mov eax, dword [eax + 0x40]
jmp 0x4bf2a9
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 0x5363dc
push edx
push eax
mov edx, esi
call fcn.004b4f20
mov dword [esp + 0x28], eax
add esp, 0x1c
mov eax, dword [esp + 0x30]
mov dword [eax + 0x44], 0
jmp case.0x4bab50.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.0x4bab50.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.004b25b0
add esp, 0x10
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4bf35d
cmp dword [esp + 0x38], eax
jne 0x4bf35d
mov ecx, dword [esp + 0x34]
call fcn.004b51e0
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0xc]
mov dword [eax + 0x44], 0
jmp 0x4bbda6
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 0x4bbaf1
cmp byte [esi + 0x15], 0
je 0x4bf409
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.004b25b0
mov edx, eax
add esp, 0x10
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4c101f
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 0x4bf3fc
mov ecx, dword [esi]
lea edx, [esp + 0x120]
call fcn.004b2ab0
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4c101f
mov byte [esi + 0x15], 0
mov dword [esi + 0x44], 0
jmp 0x4bf458
mov edi, dword [esi]
test edi, edi
je 0x4bf454
cmp byte [edi + 0x43], 2
jb 0x4bf42a
mov ecx, edi
call fcn.004b0670
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4c101b
cmp byte [edi + 0x43], 1
jne 0x4bf43a
cmp dword [edi + 0x50], 0
jne 0x4bf43a
xor eax, eax
jmp 0x4bf43f
mov eax, 1
mov edi, dword [esp + 8]
test eax, eax
je 0x4bf458
mov dword [esi + 0x44], 0
mov byte [esi + 0x14], 1
jmp 0x4bf458
mov edi, dword [esp + 8]
mov eax, dword [esp + 0x34]
mov dword [esp + 0xc], 0
cmp byte [eax + 0x14], 0
jne 0x4c0d12
mov edx, dword [esp + 0x30]
lea eax, [esp + 0x38]
push eax
call fcn.004b9730
mov edx, eax
add esp, 4
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4c101f
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 0x4ba9fd
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.0x4bab50.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 0x4bf501
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.004b1d30
mov edx, dword [esp + 0x150]
mov ecx, edx
mov eax, dword [esp + 0x154]
add ecx, 0xffffffff
adc eax, 0xffffffff
test eax, eax
ja 0x4bf60e
jb 0x4bf55d
cmp ecx, 0x7ffffffe
ja 0x4bf60e
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.004b6880
add esp, 0xc
mov dword [esp + 0xc], eax
test eax, eax
je 0x4bf59e
mov eax, dword [esp + 0x34]
jmp 0x4bf61c
mov edx, dword [esp + 0x174]
lea eax, [esp + 0x38]
mov ecx, dword [esp + 0x178]
push eax
call fcn.004b9280
add esp, 4
mov dword [esp + 0x34], eax
lea ecx, [esp + 0x160]
call fcn.004b5d30
push dword [esp + 0x184]
push dword [esp + 0x174]
call fcn.004a6230
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 0x4bf61c
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 0x4bf62a
neg eax
jmp 0x4bf62b
inc eax
mov esi, dword [esp + 0x10]
mov dword [esp + 0x34], eax
test eax, eax
jle 0x4bb3b3
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 0x4bbdaa
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 0x4bf6a0
nop dword [eax]
cmp dword [ecx + 0x50], 0xbdf20da3
jne 0x4bf68a
cmp byte [ecx + 0x70], 2
jae 0x4bf68a
cmp dword [ecx + 0x60], 0
jl 0x4bf68a
inc edx
mov dword [esp + 0x34], edx
mov eax, dword [ecx + 8]
mov ecx, eax
mov dword [esp + 0x38], ecx
test eax, eax
jne 0x4bf670
cmp edx, 1
jg 0x4c107c
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 0x4bf6dd
mov dword [esp + 0xc], 0x106
jmp 0x4bf7b7
lea ecx, [esp + 0x13c]
mov edx, edi
push 0
push ecx
mov ecx, dword [eax]
call fcn.004af660
add esp, 8
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4bf7b7
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.004b5670
add esp, 4
mov dword [esp + 0xc], eax
test eax, eax
je 0x4bf762
test esi, esi
je 0x4bf7b3
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x4bf7b3
mov esi, dword [ecx + 0x10]
call fcn.004ab290
mov ecx, esi
call fcn.004af600
jmp 0x4bf7b3
mov dword [esp + 0x30], 0
cmp edi, 1
jbe 0x4bf785
push dword [esi + 0x48]
mov ecx, dword [esi + 0x3c]
mov edx, esi
call fcn.004b3240
add esp, 4
mov dword [esp + 0xc], eax
jmp 0x4bf795
mov edx, 9
mov ecx, esi
call fcn.004b1050
test esi, esi
je 0x4bf7ab
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x4bf7ab
mov esi, dword [ecx + 0x10]
call fcn.004ab290
mov ecx, esi
call fcn.004af600
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 0x4bbdaa
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 0x4bf841
nop dword [eax]
cmp byte [eax + 0x54], 0
je 0x4bf83a
mov byte [eax + 0x43], 0
mov eax, dword [eax + 8]
test eax, eax
jne 0x4bf830
mov esi, dword [ecx + 8]
test esi, esi
je 0x4bf876
test edi, edi
je 0x4bf851
cmp dword [esi + 0x14], edi
jne 0x4bf868
cmp byte [esi + 0x43], 1
jne 0x4bf868
mov ecx, esi
call fcn.004b0420
mov ecx, eax
mov dword [esp + 0xc], ecx
test ecx, ecx
jne 0x4bf88d
mov esi, dword [esi + 8]
test esi, esi
jne 0x4bf848
mov ecx, dword [esp + 0xd8]
push dword [esp + 0xec]
mov edx, edi
push 0
call fcn.004b54d0
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 0x4bbaf1
mov eax, dword [esp + 0x30]
add dword [edi + 0x74], eax
mov ecx, dword [edx + ecx*4 + 0xc]
test ecx, ecx
jle 0x4bbaf1
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 0x4bbda6
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.004b2db0
add esp, 0xc
mov dword [esp + 0xc], eax
test eax, eax
je 0x4bf935
mov eax, dword [esp + 0x30]
cdq
jmp 0x4bba5f
or esi, 8
mov edx, esi
mov esi, dword [esp + 0x140]
mov ecx, esi
call fcn.004b1050
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x4bf95e
mov esi, dword [ecx + 0x10]
call fcn.004ab290
mov ecx, esi
call fcn.004af600
mov eax, dword [esp + 0x144]
mov dword [esp + 0x30], eax
mov dword [esp + 0xc], 0
cdq
jmp 0x4bba5f
mov edx, dword [esi + edi*4 + 4]
mov dword [esp + 0x30], edx
cmp dword [esi + edi*4 + 8], 0
jne 0x4bf99f
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 0x4bfa35
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.004a7a90
add esp, 0x14
mov dword [esp + 0x38], eax
test eax, eax
je 0x4c1261
push 0
lea eax, [esp + 0x40]
mov byte [esi + 0x7c], 1
mov edx, dword [esp + 0x3c]
mov ecx, esi
push eax
push fcn.004dc530
mov dword [esp + 0x54], 0
call fcn.004d8f20
add esp, 0xc
test eax, eax
cmove eax, dword [esp + 0x48]
mov dword [esp + 0xc], eax
push dword [esp + 0x38]
push esi
call fcn.004a6230
add esp, 8
mov byte [esi + 0x7c], 0
jmp 0x4bfa39
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 8]
cmp edx, 7
je 0x4c0e7a
jmp 0x4bbdaa
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 0x4bfa7d
cmp byte [edx], 0
je 0x4bfa76
nop dword [eax]
inc eax
cmp byte [eax], 0
jne 0x4bfa70
sub eax, edx
and eax, 0x3fffffff
mov ecx, dword [ecx + 0xc]
push 0
push eax
add ecx, 4
call fcn.004a9840
add esp, 8
mov ecx, eax
call fcn.004cc4c0
or dword [esi + 0xc], 0x10
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 8]
jmp 0x4bbdaa
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 0x4bfadd
cmp byte [edx], 0
je 0x4bfad6
nop dword [eax]
inc eax
cmp byte [eax], 0
jne 0x4bfad0
sub eax, edx
and eax, 0x3fffffff
push 0
push eax
call fcn.004a9840
mov edi, eax
add esp, 8
test edi, edi
je 0x4bfb34
mov edx, dword [edi + 0x10]
mov ecx, dword [edx + 0x14]
cmp ecx, edi
jne 0x4bfb00
mov eax, dword [edi + 0x20]
mov dword [edx + 0x14], eax
jmp 0x4bfb18
test ecx, ecx
je 0x4bfb18
lea edx, [ecx + 0x20]
mov ecx, dword [edx]
cmp ecx, edi
je 0x4bfb13
test ecx, ecx
jne 0x4bfb04
jmp 0x4bfb18
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.004a6230
push edi
push esi
call fcn.004a6230
mov esi, dword [esp + 0x20]
add esp, 0x10
or dword [esi + 0xc], 0x10
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 8]
jmp 0x4bbdaa
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 0x4bfb85
call fcn.004b61d0
mov ecx, dword [esp + 0x30]
test byte [ecx + 0x1c], 0x20
je 0x4c0e72
mov eax, dword [esp + 0x34]
push dword [eax + 4]
mov ecx, dword [ecx]
push dword [eax]
call fcn.004ac230
add esp, 8
jmp case.0x4bab50.10
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xd8], 0
jne 0x4c1219
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 0x4bfc19
mov esi, dword [edx]
mov ecx, esi
call fcn.004ac3c0
mov edx, dword [esi + 8]
test edx, edx
je 0x4bfc11
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 0x4bfc04
mov ecx, esi
call fcn.004ac160
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
jmp 0x4bc1d2
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x14]
mov ecx, edx
call fcn.004b6070
jmp 0x4bbd95
mov edi, dword [esi + edi*4 + 0x10]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x30], edi
test byte [esi + 0x1c], 0x20
jne 0x4bfc4c
mov ecx, esi
call fcn.004b61d0
test byte [esi + 0x1c], 0x20
je 0x4c0e72
mov edi, dword [esp + 0x30]
test edi, edi
je 0x4bfdef
js 0x4bfc5d
mov eax, edi
and eax, 0xf
jmp 0x4bfc62
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 0x4bfd9d
cmp dword [esi + 8], 0
je 0x4bfd96
mov ecx, esi
call fcn.004ac3c0
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 0x4bfd7e
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 0x4bfd60
cmp edx, 1
jne 0x4bfd1b
mov eax, dword [ecx + 8]
mov dword [esp + 0xfc], eax
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
jmp 0x4bfd60
lea edx, [edx - 1]
lea ecx, [esp + 0xfc]
call fcn.004ac360
mov esi, dword [esp + 0xfc]
mov ecx, eax
mov edx, dword [esp + 0x28]
test esi, esi
je 0x4bfd60
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.004ac360
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 0x4bfce0
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 0x4bfde1
mov ecx, dword [eax + 4]
mov edx, dword [eax]
cmp ecx, dword [esp + 0xd8]
jg 0x4bfdc4
jl 0x4bfdbf
mov esi, dword [esp + 0xec]
cmp edx, esi
jae 0x4bfdcb
mov eax, dword [eax + 8]
jmp 0x4bfddd
mov esi, dword [esp + 0xec]
cmp ecx, dword [esp + 0xd8]
jl 0x4bfe0d
jg 0x4bfdda
cmp edx, esi
jbe 0x4bfe0d
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x4bfda4
mov esi, dword [esp + 0x20]
test edi, edi
mov dword [esp + 0x34], 0
js case.0x4bab50.10
mov eax, dword [esp + 0x2c]
mov ecx, dword [esi]
push dword [eax + 4]
push dword [eax]
call fcn.004ac230
add esp, 8
jmp case.0x4bab50.10
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x34], 1
mov edx, dword [ecx + eax*4 + 8]
jmp 0x4bbd99
mov ecx, dword [esp + 0x20]
cmp dword [ecx + 4], 0
jl case.0x4bab50.10
jg 0x4bbd95
cmp dword [ecx], 0
jbe case.0x4bab50.10
jmp 0x4bbd95
mov ecx, dword [esp + 0x20]
cmp dword [ecx + 4], 0
jg case.0x4bab50.10
jl 0x4bbd95
cmp dword [ecx], 0
jae case.0x4bab50.10
jmp 0x4bbd95
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx]
or eax, dword [ecx + 4]
jne case.0x4bab50.10
jmp 0x4bbd95
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 0x4bff09
mov dword [esi + eax*4], ecx
mov ecx, dword [esp + 0x3c]
movzx eax, word [ecx + 0x1c]
test al, 1
je 0x4bfec7
mov byte [ecx + 0x1e], 5
jmp 0x4bfee6
test al, 4
je 0x4bfed1
mov byte [ecx + 0x1e], 1
jmp 0x4bfee6
test al, 8
je 0x4bfedb
mov byte [ecx + 0x1e], 2
jmp 0x4bfee6
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 0x4bff09
mov esi, dword [esp + 0x80]
jmp 0x4bfeb2
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 0x4bff7d
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 0x4bffcb
mov dl, 1
lea ecx, [esp + 0x48]
call fcn.004b69f0
mov edi, dword [esp + 8]
push eax
push 0x5407f8
push esi
lea eax, [edi + 0x68]
push eax
call fcn.004a66a0
mov eax, dword [esp + 0x84]
add esp, 0x10
mov dword [esp + 0xc], eax
jmp 0x4bffcf
mov edi, dword [esp + 8]
lea ecx, [esp + 0x48]
call fcn.004b5d30
push dword [esp + 0x6c]
push dword [esp + 0x5c]
call fcn.004a6230
mov edx, dword [esp + 0x14]
add esp, 8
mov dword [esp + 0x5c], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
jmp 0x4bbdaa
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 0x4c00d2
mov eax, dword [edi + 0x14]
mov dword [esp + 0xf0], eax
test eax, eax
je 0x4c00d2
push 0x40
push ecx
lea eax, [esp + 0x198]
push eax
call fcn.004f9bf0
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.004a6230
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 0x4c00ff
mov dl, 1
mov ecx, esi
call fcn.004b69f0
mov edi, dword [esp + 8]
push eax
push 0x5407f8
push dword [esp + 0x18]
lea eax, [edi + 0x68]
push eax
call fcn.004a66a0
mov esi, dword [esp + 0x40]
add esp, 0x10
jmp 0x4c0103
mov edi, dword [esp + 8]
test byte [esi + 0x1c], 2
je 0x4c0122
mov al, byte [esp + 0xe8]
cmp byte [esi + 0x1f], al
je 0x4c0122
mov dl, al
mov ecx, esi
call fcn.004a7f90
mov esi, dword [esp + 0x30]
movzx eax, word [esi + 0x1c]
test al, 0x12
je 0x4bbaf1
mov ecx, dword [esi + 0x18]
test eax, 0x4000
je 0x4c013a
add ecx, dword [esi]
mov eax, dword [esi + 0x10]
mov esi, dword [esp + 0x10]
cmp ecx, dword [eax + 0x48]
jg 0x4c10ab
mov edx, dword [esp + 0xc]
jmp 0x4bbdaa
cmp dword [esi + edi*4 + 4], 0
mov esi, dword [esp + 0x10]
jne 0x4c0188
mov eax, dword [esi + 0x88]
test eax, eax
je 0x4bb3b3
nop dword [eax]
mov byte [eax + 0x6e], 1
mov eax, dword [eax + 8]
test eax, eax
jne 0x4c0170
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 8]
jmp 0x4bbdaa
mov edi, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov byte [edi + 0x6e], 1
jmp 0x4bbdaa
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 0x4c01cb
cmp dword [eax + 0x118], 0
jne 0x4c01cb
mov edx, 6
mov dword [esp + 0xc], edx
jmp 0x4c023a
test esi, esi
jne 0x4c01d7
xor edx, edx
mov dword [esp + 0xc], edx
jmp 0x4c023a
mov edi, dword [esi + 8]
mov eax, dword [edi]
mov eax, dword [eax + 0x38]
mov dword [esp + 0xf0], eax
test eax, eax
je 0x4c0236
xor ecx, ecx
test edx, edx
jle 0x4c0213
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x118]
nop word [eax + eax]
cmp dword [eax], esi
je 0x4c01cf
inc ecx
add eax, 4
cmp ecx, edx
jl 0x4c0200
mov eax, dword [esp + 0xf0]
push edi
call eax
mov ecx, eax
add esp, 4
mov dword [esp + 0xc], ecx
test ecx, ecx
jne 0x4c0236
mov ecx, dword [esp + 0x10]
mov edx, esi
call fcn.004e9f10
mov edx, eax
mov dword [esp + 0xc], edx
jmp 0x4c023a
mov edx, dword [esp + 0xc]
cmp dword [esp + 0x30], 0
mov edi, dword [esp + 8]
mov esi, dword [esp + 0x10]
je 0x4bbdaa
push dword [edi + 0x68]
push esi
call fcn.004a6230
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 0x4bbdaa
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.004e9fa0
mov edi, dword [esp + 0x10]
mov edx, eax
add esp, 8
mov dword [esp + 0xc], edx
jmp 0x4bbdaa
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.004cbc70
add esp, 4
mov dword [esp + 0xf0], eax
lea edi, [esi + 0x70]
test eax, eax
je 0x4c0378
cmp dword [eax + 0x30], 0
lea edi, [esi + 0x70]
je 0x4c036c
mov ecx, dword [esp + 0x10]
mov edx, eax
call fcn.004e9080
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 0x4c037a
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 0x4c037a
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x4c035c
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.004a6230
add esp, 8
mov edx, dword [esp + 0xc]
mov byte [edi], 0
jmp 0x4bbda2
xor edx, edx
mov byte [edi], 0
jmp 0x4bbda2
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.004a6230
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 0x4bbda2
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 0x4c0493
mov eax, dword [edi + 0x20]
test eax, eax
je 0x4c0475
mov ecx, eax
call fcn.004b1460
mov eax, dword [esp + 0x24]
mov dword [esp + 0x28], eax
mov edx, dword [esp + 8]
mov ecx, dword [edi + 0x38]
test ecx, ecx
je 0x4c045f
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 0x4c0495
mov eax, dword [edi]
mov dword [esp + 0x28], ecx
test eax, eax
je 0x4c043c
mov ecx, eax
call fcn.004b1ca0
mov edx, dword [esp + 8]
lea eax, [edx + 0x34]
mov dword [esp + 0x28], eax
jmp 0x4c0440
mov edi, ecx
mov ecx, dword [esp + 0xd8]
mov edx, 0x58
push 0
call fcn.004b5a30
add esp, 4
test eax, eax
jne 0x4c04e2
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.004f9bf0
add esp, 0xc
mov dword [esi + 4], 0xffffffff
mov dword [esi + 0x2c], 0
mov dword [esp + 0x30], esi
test esi, esi
je 0x4c0512
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 0x4ba9fd
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 0x4ba9fd
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 0x4c0628
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 0x4c05d9
mov byte [ecx + 0x1e], 5
jmp 0x4c05f8
test al, 4
je 0x4c05e3
mov byte [ecx + 0x1e], 1
jmp 0x4c05f8
test al, 8
je 0x4c05ed
mov byte [ecx + 0x1e], 2
jmp 0x4c05f8
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 0x4c0613
mov esi, dword [esp + 0x40]
jmp 0x4c05b4
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x44]
mov esi, dword [esp + 0x34]
mov dword [esp + 0xd8], ecx
jmp 0x4c062f
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.004a6230
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 0x4c06a0
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 0x4c06a4
mov eax, dword [esp + 0x50]
test eax, eax
je 0x4c06b9
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 0x4bbdaa
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 0x4c0708
call fcn.004b6070
mov edx, dword [esp + 0xc]
jmp 0x4bbda6
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.004f9bf0
mov edi, dword [esp + 0x44]
lea ecx, [esp + 0x54]
add esp, 0xc
call fcn.004b5d30
mov ecx, dword [esp + 0x58]
mov esi, dword [esp + 0x6c]
test ecx, ecx
je 0x4c076f
test esi, esi
je 0x4c07de
cmp esi, dword [ecx + 0xf0]
jb 0x4c076f
cmp esi, dword [ecx + 0xf4]
jae 0x4c076f
mov eax, dword [ecx + 0xec]
mov dword [esi], eax
dec dword [ecx + 0xe4]
mov dword [ecx + 0xec], esi
jmp 0x4c07de
test esi, esi
je 0x4c07de
cmp dword [0x555cc0], 0
je 0x4c07d4
mov eax, dword [0x558458]
test eax, eax
je 0x4c078f
push eax
call dword [0x555d08]
add esp, 4
push esi
call dword [0x555ce4]
mov ecx, dword [0x5582e0]
neg eax
add ecx, eax
add esp, 4
mov eax, dword [0x558304]
cmp ecx, eax
mov dword [0x5582e0], ecx
cmovg eax, ecx
push esi
mov dword [0x558304], eax
call dword [0x555cdc]
mov eax, dword [0x558458]
add esp, 4
test eax, eax
je 0x4c07de
push eax
call dword [0x555d10]
jmp 0x4c07db
push esi
call dword [0x555cdc]
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.004a6230
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 0x4c08b9
mov al, byte [esp + 0xe8]
cmp byte [esp + 0x67], al
je 0x4c08b9
mov dl, al
lea ecx, [esp + 0x48]
call fcn.004a7f90
mov esi, dword [esp + 0x38]
mov ecx, esi
call fcn.004b5d30
push dword [esi + 0x24]
push dword [esi + 0x10]
call fcn.004a6230
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 0x4bbaf1
mov ecx, dword [eax + 0x18]
test edx, 0x4000
je 0x4c093b
add ecx, dword [eax]
mov eax, dword [eax + 0x10]
mov esi, dword [esp + 0x10]
cmp ecx, dword [eax + 0x48]
jg 0x4c10ab
mov edx, dword [esp + 0xc]
jmp 0x4bbdaa
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.0x4bab50.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.004a6230
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 0x4c09e6
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 0x4c09ea
mov eax, dword [esp + 0x38]
test eax, eax
jne case.0x4bab50.10
jmp 0x4bbd95
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 0x4c0acb
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0xf0]
jb 0x4c0a60
cmp esi, dword [ecx + 0xf4]
jae 0x4c0a60
mov eax, dword [ecx + 0xec]
mov dword [esi], eax
mov dword [ecx + 0xec], esi
mov esi, ecx
dec dword [esi + 0xe4]
jmp 0x4c0acf
cmp dword [0x555cc0], 0
je 0x4c0ac1
mov eax, dword [0x558458]
test eax, eax
je 0x4c0a7c
push eax
call dword [0x555d08]
add esp, 4
push esi
call dword [0x555ce4]
mov ecx, dword [0x5582e0]
neg eax
add ecx, eax
add esp, 4
mov eax, dword [0x558304]
cmp ecx, eax
mov dword [0x5582e0], ecx
cmovg eax, ecx
push esi
mov dword [0x558304], eax
call dword [0x555cdc]
mov eax, dword [0x558458]
add esp, 4
test eax, eax
je 0x4c0acb
push eax
call dword [0x555d10]
jmp 0x4c0ac8
push esi
call dword [0x555cdc]
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 0x4bbdaa
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.0x4bab50.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 0x4c0bb6
nop dword [eax + eax]
movzx eax, word [ecx + 0x1c]
test al, 1
je 0x4c0b5e
mov byte [ecx + 0x1e], 5
jmp 0x4c0b7d
test al, 4
je 0x4c0b68
mov byte [ecx + 0x1e], 1
jmp 0x4c0b7d
test al, 8
je 0x4c0b72
mov byte [ecx + 0x1e], 2
jmp 0x4c0b7d
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 0x4c0b50
mov eax, dword [esp + 0x48]
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
jmp 0x4c0bbd
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 0x4c0c77
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0xf0]
jb 0x4c0c0c
cmp esi, dword [ecx + 0xf4]
jae 0x4c0c0c
mov eax, dword [ecx + 0xec]
mov dword [esi], eax
mov dword [ecx + 0xec], esi
mov esi, ecx
dec dword [esi + 0xe4]
jmp 0x4c0c7b
cmp dword [0x555cc0], 0
je 0x4c0c6d
mov eax, dword [0x558458]
test eax, eax
je 0x4c0c28
push eax
call dword [0x555d08]
add esp, 4
push esi
call dword [0x555ce4]
mov ecx, dword [0x5582e0]
neg eax
add ecx, eax
add esp, 4
mov eax, dword [0x558304]
cmp ecx, eax
mov dword [0x5582e0], ecx
cmovg eax, ecx
push esi
mov dword [0x558304], eax
call dword [0x555cdc]
mov eax, dword [0x558458]
add esp, 4
test eax, eax
je 0x4c0c77
push eax
call dword [0x555d10]
jmp 0x4c0c74
push esi
call dword [0x555cdc]
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 0x4c0cb0
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
cmp dword [ecx + eax*4 + 4], edx
je 0x4c0cb0
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 0x4bbdaa
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.004ae3a0
mov edi, dword [esp + 8]
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4bbdaa
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 0x4ba9fd
xor edx, edx
jmp 0x4bbda6
mov eax, dword [esp + 8]
mov ecx, eax
mov dword [eax + 0x64], 9
call fcn.004b8620
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 0x4c0d6d
push eax
push 0x5407f8
push dword [esp + 0x18]
lea eax, [ecx + 0x68]
push eax
call fcn.004a66a0
mov ecx, dword [esp + 0x18]
add esp, 0x10
call fcn.004b8620
cmp eax, 5
jne 0x4c0d8d
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.004b5d30
mov ecx, dword [esp + 0x50]
mov esi, dword [esp + 0x64]
test ecx, ecx
je 0x4c0deb
test esi, esi
je 0x4c0e5a
cmp esi, dword [ecx + 0xf0]
jb 0x4c0deb
cmp esi, dword [ecx + 0xf4]
jae 0x4c0deb
mov eax, dword [ecx + 0xec]
mov dword [esi], eax
dec dword [ecx + 0xe4]
mov dword [ecx + 0xec], esi
jmp 0x4c0e5a
test esi, esi
je 0x4c0e5a
cmp dword [0x555cc0], 0
je 0x4c0e50
mov eax, dword [0x558458]
test eax, eax
je 0x4c0e0b
push eax
call dword [0x555d08]
add esp, 4
push esi
call dword [0x555ce4]
mov ecx, dword [0x5582e0]
neg eax
add ecx, eax
add esp, 4
mov eax, dword [0x558304]
cmp ecx, eax
mov dword [0x5582e0], ecx
cmovg eax, ecx
push esi
mov dword [0x558304], eax
call dword [0x555cdc]
mov eax, dword [0x558458]
add esp, 4
test eax, eax
je 0x4c0e5a
push eax
call dword [0x555d10]
jmp 0x4c0e57
push esi
call dword [0x555cdc]
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.004a66a0
mov dword [edi + 0x64], 7
add esp, 0xc
mov ecx, edi
call fcn.004b8620
mov eax, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edx, 0x14
mov dword [esp + 0xc], edx
jmp 0x4c101f
mov eax, dword [esp + 8]
mov ecx, eax
mov dword [eax + 0x64], 0xb
call fcn.004b8620
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.004a66a0
add esp, 0xc
mov dword [esi + 0x64], 5
mov ecx, esi
call fcn.004b8620
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.004a66a0
add esp, 0x10
mov dword [esi + 0x64], 1
mov ecx, esi
call fcn.004b8620
mov eax, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test ecx, ecx
je 0x4c0f8e
mov ecx, esi
call fcn.004f50a0
mov byte [esi + 0x1c], 1
mov esi, dword [esp + 8]
mov ecx, dword [esp + 0x10]
call fcn.004f49e0
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.004b8620
cmp eax, 5
jne 0x4c0f6e
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 0x4c101b
mov ecx, eax
mov dword [eax + 0x64], 4
call fcn.004b8620
mov eax, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edx, 0xd
mov dword [esp + 0xc], edx
jmp 0x4c101f
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 8]
mov esi, dword [esp + 0x10]
cmp byte [esi + 0x1e], 0
je 0x4c1038
mov dword [esp + 0xc], 7
mov eax, 7
jmp 0x4c1050
cmp edx, 0xc0a
je 0x4c11ea
movzx eax, dl
mov dword [esp + 0xc], edx
cmp eax, 0x1b
jae 0x4c105b
mov eax, dword [eax*4 + 0x53b600]
test eax, eax
jne 0x4c1060
mov eax, str.unknown_error
push eax
push 0x5407f8
lea eax, [edi + 0x68]
push esi
push eax
call fcn.004a66a0
mov edx, dword [esp + 0x1c]
add esp, 0x10
jmp 0x4c11ea
mov eax, dword [esp + 8]
mov ecx, eax
mov byte [eax + 0x38], 2
mov dword [eax + 0x64], 6
call fcn.004b8620
mov eax, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 8]
jmp 0x4c10ab
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.004a66a0
mov dword [edi + 0x64], 0x12
jmp 0x4c0e94
mov edi, dword [esp + 8]
mov esi, ecx
jmp 0x4c10ab
mov ecx, dword [esp + 8]
mov edx, 1
call fcn.004b8510
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4c11e6
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 0x4c11c1
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 0x4c1171
test al, 2
je 0x4c1171
mov edx, dword [esi + 0x18]
mov ecx, esi
push 1
add edx, 2
call fcn.004b5a30
add esp, 4
test eax, eax
jne 0x4c116d
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 0x4c1188
mov byte [edx + ecx*8 + 0x1e], 5
jmp 0x4c11aa
test al, 4
je 0x4c1193
mov byte [edx + ecx*8 + 0x1e], 1
jmp 0x4c11aa
test al, 8
je 0x4c119e
mov byte [edx + ecx*8 + 0x1e], 2
jmp 0x4c11aa
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 0x4c1120
mov esi, dword [esp + 0x10]
cmp byte [esi + 0x1e], 0
jne 0x4c1261
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.004b8620
cmp dword [esp + 0xc], 0xc0a
jne 0x4c0e9e
mov byte [esi + 0x1e], 1
mov eax, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov esi, ecx
jmp 0x4c121b
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 0x5407f8
push esi
push eax
call fcn.004a66a0
add esp, 0x10
mov dword [edi + 0x64], 9
mov ecx, edi
call fcn.004b8620
pop edi
mov eax, 1
pop esi
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 8]
jmp 0x4c0e7a
mov edi, dword [esp + 8]
mov esi, eax
jmp 0x4c0e7a