Function at 0x4797e0
Capabilities:
Parse credit card information
Reference sql statements
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x328
mov eax, dword [0x58f070]
xor eax, esp
mov dword [esp + 0x324], eax
mov edx, ecx
mov dword [esp + 8], 0
push esi
xor esi, esi
mov dword [esp + 0x14], edx
push edi
mov ecx, dword [edx]
mov eax, dword [edx + 4]
mov dword [esp + 0xc], eax
mov dword [esp + 8], ecx
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x14], 0
mov byte [esp + 0x5b], 0
mov dword [esp + 0x98], 0
mov eax, dword [eax + 0xc]
mov dword [esp + 0x68], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x1c], esi
mov al, byte [eax + 0x4d]
mov byte [esp + 0x4c], al
mov eax, dword [edx + 8]
mov dword [esp + 0x28], eax
mov eax, dword [ecx + 0x20]
mov dword [esp + 0x60], eax
mov eax, dword [ecx + 0x24]
mov ecx, edx
mov dword [esp + 0x6c], esi
mov dword [esp + 0x64], eax
call fcn.00474280
mov ecx, dword [esp + 0x18]
cmp dword [ecx + 0x50], 7
je 0x47fcd9
mov dword [ecx + 0x50], esi
mov dword [ecx + 0x88], esi
mov dword [ecx + 0x8c], esi
mov dword [ecx + 0x14], esi
mov ecx, dword [esp + 8]
mov dword [ecx + 0x1bc], esi
cmp dword [ecx + 0xe8], esi
jne 0x47fca0
cmp dword [ecx + 0x11c], esi
je 0x4798cf
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x7c]
test eax, eax
jne 0x4798c3
mov edx, dword [ecx + 0x124]
jmp 0x4798cb
xor edx, edx
div dword [ecx + 0x124]
mov dword [esp + 0x74], edx
mov eax, dword [esp + 0x18]
mov edi, dword [eax + 0x4c]
mov edx, dword [esp + 0xc]
mov dword [esp + 0x10], edi
nop
cmp byte [ecx + 0x40], 0
jne 0x47fcdd
inc dword [esp + 0x68]
lea edi, [edi + edi*4]
test byte [edx + edi*4 + 2], 2
mov dword [esp + 0x48], edi
je 0x479931
mov eax, dword [edx + edi*4 + 8]
mov esi, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, 0x2460
mov dword [esp + 0x1c], esi
test word [esi + 0x1c], ax
je 0x479928
mov ecx, esi
call fcn.00472840
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov eax, 4
mov word [esi + 0x1c], ax
mov dl, byte [edx + edi*4]
movzx eax, dl
dec eax
cmp eax, 0x9a
ja case.default.0x479943
jmp dword [eax*4 + 0x47fdb8]
mov eax, dword [esp + 0xc]
mov edx, 4
mov esi, dword [esp + 0x28]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x28]
lea ecx, [ecx + ecx*4]
mov word [eax + ecx*8 + 0x1c], dx
mov eax, dword [esp + 0x10]
cdq
mov dword [esi + ecx*8 + 0x10], eax
mov eax, esi
mov dword [eax + ecx*8 + 0x14], edx
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x1c]
mov ecx, dword [edx + edi*4 + 8]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 8]
mov edi, dword [esp + 0x10]
jmp 0x4798e0
mov edx, dword [esp + 0xc]
mov esi, 0x80
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 4]
mov edi, dword [esp + 0x28]
lea eax, [eax + eax*4]
mov edi, dword [edi + eax*8 + 0x10]
mov word [ecx + eax*8 + 0x1c], si
inc edi
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 8]
jmp 0x4798da
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 4]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, dword [edx + edi*4 + 0xc]
dec eax
mov dword [esp + 0x1c], esi
cdq
mov dword [esi + 0x14], edx
mov edx, dword [esp + 0xc]
mov dword [esi + 0x10], eax
mov eax, 4
mov word [esi + 0x1c], ax
mov eax, dword [edx + edi*4 + 8]
test eax, eax
je 0x479b2b
lea edi, [eax - 1]
inc edi
jmp 0x4798da
mov edx, dword [esp + 0xc]
mov esi, 0x80
mov eax, dword [edx + edi*4 + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x28]
mov eax, dword [eax + ecx*8 + 0x10]
lea eax, [eax + eax*4]
mov edi, dword [edx + eax*4 + 8]
mov eax, dword [esp + 0x28]
mov word [eax + ecx*8 + 0x1c], si
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 8]
jmp 0x4798da
mov eax, dword [esp + 0xc]
mov eax, dword [eax + edi*4 + 4]
mov edi, dword [esp + 0x28]
lea esi, [eax + eax*4]
mov eax, 4
mov ecx, dword [edi + esi*8 + 0x10]
mov word [edi + esi*8 + 0x1c], ax
inc ecx
mov eax, dword [esp + 0x10]
cdq
mov dword [edi + esi*8 + 0x14], edx
mov edx, dword [esp + 0xc]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 8]
mov dword [edi + esi*8 + 0x10], eax
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x10]
jmp 0x4798e0
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 0xc]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x1c], 1
mov esi, dword [esp + 0x1c]
je case.default.0x479943
jmp 0x479aa3
mov edx, dword [esp + 0xc]
cmp dword [edx + edi*4 + 4], 0
jne 0x47f914
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0xb0]
test ecx, ecx
je 0x47f914
mov edx, dword [esp + 0x18]
mov eax, dword [ecx + 4]
dec dword [edx + 0xb8]
mov dword [edx + 0xb0], eax
mov eax, dword [edx + 0x5c]
mov edx, dword [esp + 8]
add dword [edx + 0x54], eax
mov dword [edx + 0x50], eax
call fcn.00474c20
mov ecx, dword [esp + 8]
mov dword [esp + 0x10], eax
mov edx, dword [ecx + 0x20]
mov dword [esp + 0x60], edx
mov edx, dword [ecx + 0x24]
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0xc]
cmp dword [edx + edi*4 + 8], 4
mov edi, dword [esp + 0x18]
jne 0x479b1d
lea ecx, [eax + eax*4]
mov eax, dword [edi + 4]
mov ecx, dword [eax + ecx*4 + 8]
dec ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 8]
mov edx, dword [edi + 4]
mov eax, dword [edi + 8]
mov dword [esp + 0xc], edx
mov dword [esp + 0x28], eax
mov edi, dword [esp + 0x10]
inc edi
jmp 0x4798da
mov eax, dword [esp + 0xc]
mov eax, dword [eax + edi*4 + 4]
mov edi, dword [esp + 0x10]
cdq
inc edi
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], edx
jmp 0x4798d6
mov edx, dword [esp + 0xc]
mov ecx, dword [edx + edi*4 + 0x10]
mov edi, dword [esp + 0x10]
inc edi
mov eax, dword [ecx]
mov dword [esi + 0x10], eax
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 8]
mov dword [esi + 0x14], eax
jmp 0x4798da
mov edx, dword [esp + 0xc]
mov eax, 8
mov word [esi + 0x1c], ax
mov eax, dword [edx + edi*4 + 0x10]
mov edi, dword [esp + 0x10]
inc edi
movsd xmm0, qword [eax]
movsd qword [esi + 8], xmm0
jmp 0x4798da
mov edx, dword [esp + 0xc]
mov ecx, dword [edx + edi*4 + 0x10]
mov byte [edx + edi*4], 0x1b
call fcn.0045a580
cmp byte [esp + 0x4c], 1
mov dword [edx + edi*4 + 4], eax
je 0x479c1d
push 0
push 1
mov edx, ecx
mov ecx, esi
push 0xffffffffffffffff
call fcn.00472e30
add esp, 0xc
mov dword [esp + 0x14], eax
cmp eax, 0x12
je 0x47d51e
movzx edx, byte [esp + 0x4c]
mov ecx, esi
call fcn.004724a0
test eax, eax
jne 0x47fcd9
mov edx, dword [esp + 0xc]
mov dword [esi + 0x24], eax
mov eax, 0x800
or word [esi + 0x1c], ax
cmp byte [edx + edi*4 + 1], 0xff
jne 0x479c0a
mov edx, dword [edx + edi*4 + 0x10]
mov ecx, dword [esp + 8]
call fcn.00457fb0
mov edx, dword [esp + 0xc]
mov byte [edx + edi*4 + 1], 0xff
mov eax, dword [esi + 4]
mov dword [edx + edi*4 + 0x10], eax
mov eax, dword [esi + 0x18]
mov dword [edx + edi*4 + 4], eax
mov ecx, dword [esp + 8]
mov eax, dword [edx + edi*4 + 4]
cmp eax, dword [ecx + 0x58]
jg 0x47d522
jmp 0x479c34
mov edx, dword [esp + 0xc]
mov eax, 0xa02
mov word [esi + 0x1c], ax
mov eax, dword [edx + edi*4 + 0x10]
mov dword [esi + 4], eax
mov eax, dword [edx + edi*4 + 4]
mov dword [esi + 0x18], eax
mov al, byte [esp + 0x4c]
mov byte [esi + 0x1e], al
jmp case.default.0x479943
mov ecx, dword [esp + 0xc]
mov eax, 1
mov edx, dword [esp + 0x1c]
mov esi, dword [ecx + edi*4 + 0xc]
sub esi, dword [ecx + edi*4 + 8]
cmp dword [ecx + edi*4 + 4], 0
mov ecx, 0x101
cmovne eax, ecx
movzx edi, ax
mov word [edx + 0x1c], di
test esi, esi
jle 0x479cb6
mov eax, 0x2460
nop dword [eax]
add edx, 0x28
mov dword [esp + 0x1c], edx
test word [edx + 0x1c], ax
je 0x479cad
mov ecx, edx
call fcn.00472840
mov edx, dword [esp + 0x1c]
mov eax, 0x2460
dec esi
mov word [edx + 0x1c], di
test esi, esi
jg 0x479c90
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
inc edi
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov dword [esp + 0x10], edi
jmp 0x4798e0
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 4]
mov edi, 0xff7f
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov ax, word [esi + 0x1c]
and ax, di
mov dword [esp + 0x1c], esi
mov edi, dword [esp + 0x10]
or ax, 1
mov word [esi + 0x1c], ax
inc edi
jmp 0x4798da
mov eax, dword [esp + 0xc]
mov ecx, esi
push 0
push 0
push dword [eax + edi*4 + 4]
mov edx, dword [eax + edi*4 + 0x10]
call fcn.00472e30
mov al, byte [esp + 0x58]
add esp, 0xc
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 8]
inc edi
mov byte [esi + 0x1e], al
jmp 0x4798d6
mov eax, dword [esp + 0xc]
mov eax, dword [eax + edi*4 + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x18]
lea edx, [edx - 5]
mov eax, dword [eax + 0x3c]
lea edx, [eax + edx*8]
movzx eax, word [edx + 0x1c]
test al, 0x12
je 0x479d76
mov esi, dword [edx + 0x18]
test eax, 0x4000
je 0x479d60
add esi, dword [edx + 0x10]
mov eax, dword [edx]
xor ecx, ecx
cmp esi, dword [eax + 0x58]
setg cl
test ecx, ecx
jne 0x47d51e
mov esi, dword [esp + 0x1c]
push 0x800
mov ecx, esi
call fcn.00472cd0
mov edi, dword [esp + 0x14]
add esp, 4
mov ecx, dword [esp + 8]
inc edi
jmp 0x4798d6
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 4]
mov ecx, dword [edx + edi*4 + 0xc]
mov dword [esp + 0x20], ecx
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, dword [edx + edi*4 + 8]
mov edx, dword [esp + 0x28]
mov edi, 0x80
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov dword [esp + 0x1c], edx
mov eax, 0x2460
test word [edx + 0x1c], ax
je 0x479dde
mov ecx, edx
call fcn.00472840
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
movups xmm0, xmmword [esi]
mov eax, dword [edx + 0x24]
movups xmmword [edx], xmm0
movups xmm0, xmmword [esi + 0x10]
movups xmmword [edx + 0x10], xmm0
movq xmm0, qword [esi + 0x20]
movq qword [edx + 0x20], xmm0
add edx, 0x28
mov word [esi + 0x1c], di
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], eax
add esi, 0x28
sub ecx, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], ecx
jne 0x479dc4
jmp 0x479cb6
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x48]
mov esi, dword [esp + 0x28]
mov edi, dword [edx + edi*4 + 0xc]
mov eax, dword [edx + ecx*4 + 4]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, dword [edx + ecx*4 + 8]
mov ecx, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x1c], eax
nop dword [eax + eax]
push 0x1000
mov edx, esi
mov ecx, eax
call fcn.00472cd0
mov edx, dword [esp + 0x20]
mov eax, 0x1000
add esp, 4
test word [edx + 0x1c], ax
je 0x479e83
mov ecx, edx
call fcn.004725f0
test eax, eax
jne 0x47fcd9
mov edx, dword [esp + 0x1c]
mov eax, edi
dec edi
test eax, eax
je 0x479cb6
add edx, 0x28
add esi, 0x28
mov dword [esp + 0x1c], edx
mov eax, edx
jmp 0x479e50
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x28]
push 0x1000
mov eax, dword [ecx + edi*4 + 8]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [ecx + edi*4 + 4]
mov ecx, esi
mov dword [esp + 0x20], esi
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
call fcn.00472cd0
mov edi, dword [esp + 0x14]
add esp, 4
mov ecx, dword [esp + 8]
inc edi
mov edx, dword [esp + 0xc]
mov dword [esp + 0x10], edi
jmp 0x4798e0
mov eax, dword [ecx + 0x11c]
test eax, eax
je 0x479f08
mov edx, dword [esp + 0x68]
cmp edx, dword [esp + 0x74]
jb 0x479f08
push dword [ecx + 0x120]
call eax
add esp, 4
test eax, eax
jne 0x47f540
mov ecx, dword [esp + 0x18]
xor edx, edx
call fcn.004756a0
mov ecx, eax
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x47b5c7
mov ecx, dword [esp + 0x18]
lea edx, [eax + 1]
call fcn.00475580
mov ecx, eax
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x47b5c7
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
mov esi, dword [esp + 0x28]
mov eax, dword [edx + 0x48]
add eax, 2
or eax, 1
mov dword [edx + 0x48], eax
mov eax, dword [ecx + edi*4 + 4]
xor edi, edi
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, dword [esp + 0x48]
mov dword [edx + 0x14], esi
cmp dword [ecx + eax*4 + 8], edi
jle 0x479fa7
nop dword [eax]
mov eax, 0x1000
test word [esi + 0x1c], ax
je 0x479f8a
mov ecx, esi
call fcn.004725f0
test eax, eax
jne 0x47fcd9
mov ecx, esi
call fcn.004726b0
mov eax, dword [esp + 0x48]
inc edi
mov ecx, dword [esp + 0xc]
add esi, 0x28
cmp edi, dword [ecx + eax*4 + 8]
jl 0x479f70
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 8]
cmp byte [ecx + 0x40], 0
jne 0x47fcdd
mov eax, dword [esp + 0x10]
mov edi, 0x64
inc eax
mov dword [edx + 0x4c], eax
jmp 0x47fd83
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x28]
mov eax, dword [ecx + edi*4 + 4]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x20], eax
mov eax, dword [ecx + edi*4 + 8]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [ecx + edi*4 + 0xc]
mov edi, dword [esp + 0x20]
lea eax, [eax + eax*4]
movzx ecx, word [edi + 0x1c]
lea eax, [edx + eax*8]
mov dword [esp + 0x1c], eax
mov al, byte [esi + 0x1c]
or al, cl
test al, 1
je 0x47a027
mov esi, dword [esp + 0x1c]
mov ecx, esi
call fcn.00472ba0
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 8]
inc edi
mov edx, dword [esp + 0xc]
mov dword [esp + 0x10], edi
jmp 0x4798e0
test ecx, 0x4000
je 0x47a03e
mov ecx, edi
call fcn.00472650
test eax, eax
jne 0x47fcd9
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x47a058
mov ecx, esi
call fcn.00472650
test eax, eax
jne 0x47fcd9
test byte [edi + 0x1c], 0x12
jne 0x47a072
movzx edx, byte [esp + 0x4c]
mov ecx, edi
call fcn.00472700
test eax, eax
jne 0x47fcd9
test byte [esi + 0x1c], 0x12
jne 0x47a08c
movzx edx, byte [esp + 0x4c]
mov ecx, esi
call fcn.00472700
test eax, eax
jne 0x47fcd9
mov eax, dword [edi + 0x18]
add eax, dword [esi + 0x18]
cdq
mov edi, eax
mov ecx, edx
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x58]
cdq
cmp ecx, edx
jg 0x47d51e
jl 0x47a0b1
cmp edi, eax
ja 0x47d51e
mov ecx, dword [esp + 0x1c]
lea edx, [edi + 2]
xor eax, eax
cmp ecx, esi
sete al
push eax
call fcn.004724c0
add esp, 4
test eax, eax
jne 0x47fcd9
mov ecx, dword [esp + 0x1c]
mov edx, 0xbe02
mov ax, word [ecx + 0x1c]
and ax, dx
or ax, 2
mov word [ecx + 0x1c], ax
cmp ecx, esi
je 0x47a101
push dword [esi + 0x18]
push dword [esi + 4]
push dword [ecx + 4]
call fcn.00510a20
mov ecx, dword [esp + 0x28]
add esp, 0xc
mov eax, dword [esp + 0x20]
push dword [eax + 0x18]
push dword [eax + 4]
mov eax, dword [ecx + 4]
add eax, dword [esi + 0x18]
push eax
call fcn.00510a20
mov esi, dword [esp + 0x28]
add esp, 0xc
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov eax, dword [esi + 4]
mov byte [edi + eax], 0
mov eax, dword [esi + 4]
mov byte [edi + eax + 1], 0
mov eax, 0x200
or word [esi + 0x1c], ax
mov al, byte [esp + 0x4c]
mov dword [esi + 0x18], edi
mov edi, dword [esp + 0x10]
inc edi
mov byte [esi + 0x1e], al
mov dword [esp + 0x10], edi
jmp 0x4798e0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + edi*4 + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx ecx, word [esi + 0x1c]
mov eax, ecx
mov dword [esp + 0x44], esi
and eax, 0xc
je 0x47a17f
mov edx, eax
mov dword [esp + 0x3c], edx
jmp 0x47a1ce
test cl, 0x12
je 0x47a1c6
movzx eax, byte [esi + 0x1e]
lea edx, [esi + 8]
mov ecx, dword [esi + 4]
push eax
push dword [esi + 0x18]
call fcn.0045a890
add esp, 8
test eax, eax
je 0x47a1c6
movzx eax, byte [esi + 0x1e]
lea edx, [esi + 0x10]
mov ecx, dword [esi + 4]
push eax
push dword [esi + 0x18]
call fcn.0045aee0
add esp, 8
mov edx, eax
neg edx
sbb edx, edx
and edx, 4
add edx, 4
mov dword [esp + 0x3c], edx
jmp 0x47a1ce
mov dword [esp + 0x3c], 0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + edi*4 + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx ecx, word [esi + 0x1c]
mov eax, ecx
mov dword [esp + 0x34], esi
and eax, 0xc
je 0x47a1f3
mov ecx, eax
jmp 0x47a238
test cl, 0x12
je 0x47a236
movzx eax, byte [esi + 0x1e]
lea edx, [esi + 8]
mov ecx, dword [esi + 4]
push eax
push dword [esi + 0x18]
call fcn.0045a890
add esp, 8
test eax, eax
je 0x47a236
movzx eax, byte [esi + 0x1e]
lea edx, [esi + 0x10]
mov ecx, dword [esi + 4]
push eax
push dword [esi + 0x18]
call fcn.0045aee0
add esp, 8
mov ecx, eax
neg ecx
sbb ecx, ecx
and ecx, 4
add ecx, 4
jmp 0x47a238
xor ecx, ecx
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x30], ecx
mov eax, dword [eax + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov edx, dword [esp + 0x44]
mov dword [esp + 0x1c], eax
mov al, byte [edx + 0x1c]
or al, byte [esi + 0x1c]
test al, 1
jne 0x47a006
mov al, cl
and al, byte [esp + 0x3c]
test al, 4
je 0x47a3a6
mov esi, dword [esi + 0x10]
mov eax, edx
mov dword [esp + 0x78], esi
mov byte [esp + 0x43], 1
mov edx, dword [eax + 0x10]
mov ecx, dword [eax + 0x14]
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0x14]
mov dword [esp + 0x38], eax
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0xc]
movzx eax, byte [eax + edi*4]
add eax, 0xffffffa7
cmp eax, 3
ja case.default.0x47a2a9
jmp dword [eax*4 + 0x480024]
push ecx
push edx
lea ecx, [esp + 0x80]
call fcn.0045b630
add esp, 8
test eax, eax
jne 0x47a3ad
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x78]
mov eax, dword [esp + 0x7c]
mov dword [ecx + 0x10], esi
mov esi, ecx
jmp 0x47a881
test edx, edx
jne 0x47a317
cmp ecx, 0x80000000
jne 0x47a317
mov eax, dword [esp + 0x38]
test eax, eax
jg 0x47a3ad
jl 0x47a301
test esi, esi
jae 0x47a3ad
mov ecx, dword [esp + 0x1c]
add esi, 0
adc eax, 0x80000000
mov dword [ecx + 0x10], esi
mov esi, ecx
jmp 0x47a881
neg edx
adc ecx, 0
neg ecx
jmp case.0x47a2a9.89
push ecx
push edx
lea ecx, [esp + 0x80]
call fcn.0045b6d0
jmp 0x47a2be
mov eax, edx
or eax, ecx
je 0x47a006
mov eax, edx
and eax, ecx
cmp eax, 0xffffffff
mov eax, dword [esp + 0x38]
jne 0x47a352
test esi, esi
jne 0x47a352
cmp eax, 0x80000000
je 0x47a3ad
push ecx
push edx
push eax
push esi
call fcn.0053a690
mov ecx, dword [esp + 0x1c]
mov esi, eax
mov eax, edx
mov dword [ecx + 0x10], esi
mov esi, ecx
jmp 0x47a881
mov eax, edx
or eax, ecx
je 0x47a006
mov eax, edx
and eax, ecx
cmp eax, 0xffffffff
jne 0x47a387
mov edx, 1
xor ecx, ecx
mov eax, dword [esp + 0x38]
push ecx
push edx
push eax
push esi
call fcn.0053a740
mov ecx, dword [esp + 0x1c]
mov esi, eax
mov eax, edx
mov dword [ecx + 0x10], esi
mov esi, ecx
jmp 0x47a881
mov byte [esp + 0x43], 0
jmp 0x47a3b5
mov edx, dword [esp + 0x44]
mov esi, dword [esp + 0x34]
mov ecx, edx
call fcn.004729c0
mov ecx, esi
movsd qword [esp + 0x50], xmm0
call fcn.004729c0
mov eax, dword [esp + 0xc]
movaps xmm1, xmm0
movsd qword [esp + 0x80], xmm1
movzx eax, byte [eax + edi*4]
add eax, 0xffffffa7
cmp eax, 3
ja case.default.0x47a3e5
jmp dword [eax*4 + 0x480034]
addsd xmm1, qword [esp + 0x50]
jmp 0x47a46c
subsd xmm1, qword [esp + 0x50]
jmp 0x47a46c
mulsd xmm1, qword [esp + 0x50]
jmp 0x47a46c
movsd xmm0, qword [esp + 0x50]
ucomisd xmm0, qword [0x578920]
lahf
test ah, 0x44
jnp 0x47a006
divsd xmm1, xmm0
jmp 0x47a46c
movsd xmm0, qword [esp + 0x50]
call fcn.0050dbdf
movsd xmm0, qword [esp + 0x80]
mov esi, eax
mov edi, edx
call fcn.0050dbdf
mov ecx, esi
or ecx, edi
je 0x47a006
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x47a459
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push eax
call fcn.0053a740
mov ecx, eax
call fcn.0050dd30
movaps xmm1, xmm0
movaps xmm0, xmm1
call fcn.0045a540
test eax, eax
jne 0x47a006
mov edx, dword [esp + 0x1c]
mov ecx, 0xbe08
mov ax, word [edx + 0x1c]
and ax, cx
movsd qword [edx + 8], xmm1
or ax, 8
mov word [edx + 0x1c], ax
mov eax, dword [esp + 0x30]
or al, byte [esp + 0x3c]
test al, 8
jne 0x479cb6
cmp byte [esp + 0x43], 0
jne 0x479cb6
mov ecx, edx
call fcn.00472a20
jmp 0x479cb6
mov edx, dword [esp + 0xc]
mov eax, dword [edx + edi*4 + 4]
test eax, eax
je 0x47a4e6
mov ecx, dword [esp + 0x28]
lea eax, [eax + eax*4]
push 0
push 0
lea ecx, [ecx + eax*8]
call fcn.00472bf0
mov edx, dword [esp + 0x14]
add esp, 8
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 8]
inc edi
jmp 0x4798da
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
movzx ecx, byte [esi + edi*4 + 3]
mov edx, dword [eax + 0xc]
mov eax, dword [esi + edi*4 + 0xc]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x24], ecx
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x1c], eax
mov eax, dword [esi + edi*4 + 8]
mov esi, edx
mov edx, dword [esp + 0x20]
xor edi, edi
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
test ecx, ecx
jle 0x47a56d
mov eax, 0x1000
nop dword [eax]
mov dword [edx + edi*4], esi
test word [esi + 0x1c], ax
je 0x47a565
mov ecx, esi
call fcn.004725f0
test eax, eax
jne 0x47fcd9
mov ecx, dword [esp + 0x24]
mov eax, 0x1000
mov edx, dword [esp + 0x20]
inc edi
add esi, 0x28
cmp edi, ecx
jl 0x47a540
mov esi, dword [esp + 0x48]
mov edi, 1
mov eax, dword [esp + 0xc]
mov eax, dword [eax + esi*4 + 0x10]
mov dword [esp + 0x140], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x17c], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x178], eax
mov eax, dword [esp + 0x1c]
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x148], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [esp + 0x158], xmm0
movq xmm0, qword [eax + 0x20]
movq qword [esp + 0x168], xmm0
mov word [eax + 0x1c], di
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0
mov eax, dword [esp + 0x164]
and eax, 0xbe01
mov byte [esp + 0x185], 0
or eax, edi
mov edi, dword [esp + 0x140]
mov word [esp + 0x164], ax
test byte [edi + 2], 0x20
je 0x47a610
mov eax, dword [esp + 0xc]
mov eax, dword [eax + esi*4 - 4]
mov dword [esp + 0x174], eax
mov eax, dword [esp + 8]
mov esi, dword [esp + 0x60]
push edx
push ecx
mov dword [eax + 0x20], esi
mov esi, dword [esp + 0x6c]
mov dword [eax + 0x24], esi
lea eax, [esp + 0x148]
push eax
mov eax, dword [edi + 0xc]
call eax
mov edi, dword [esp + 0x14]
add esp, 0xc
mov esi, dword [esp + 0x48]
cmp byte [edi + 0x40], 0
mov eax, dword [edi + 0x20]
mov dword [esp + 0x60], eax
mov eax, dword [edi + 0x24]
mov dword [esp + 0x64], eax
jne 0x47f9e9
cmp byte [esp + 0x185], 0
je 0x47a6b0
cmp dword [esp + 0x180], 0
je 0x47a698
mov dl, 1
lea ecx, [esp + 0x148]
call fcn.004730d0
push eax
mov eax, dword [esp + 0x1c]
push 0x56b764
add eax, 0x2c
push edi
push eax
call fcn.00458380
mov eax, dword [esp + 0x190]
add esp, 0x10
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
push dword [eax + esi*4 + 4]
call fcn.00475bb0
add esp, 4
movzx edx, byte [esp + 0x4c]
lea ecx, [esp + 0x148]
call fcn.004724a0
mov edx, dword [esp + 0x1c]
mov esi, edx
movups xmm0, xmmword [esp + 0x148]
movups xmmword [edx], xmm0
movups xmm0, xmmword [esp + 0x158]
movups xmmword [edx + 0x10], xmm0
movq xmm0, qword [esp + 0x168]
movq qword [edx + 0x20], xmm0
movzx eax, word [edx + 0x1c]
test al, 0x12
je 0x47f8f5
mov edx, dword [edx + 0x18]
test eax, 0x4000
je 0x47a705
add edx, dword [esi + 0x10]
mov eax, dword [esi]
xor ecx, ecx
cmp edx, dword [eax + 0x58]
setg cl
test ecx, ecx
mov ecx, edi
jne 0x47d522
jmp case.default.0x479943
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, dword [edx + edi*4 + 8]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [edx + edi*4 + 0xc]
mov edx, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x1c], eax
mov al, byte [ecx + 0x1c]
or al, byte [esi + 0x1c]
test al, 1
jne 0x47a006
call fcn.00472910
mov dword [esp + 0x3c], eax
mov ecx, esi
mov dword [esp + 0xc8], eax
mov eax, edx
mov dword [esp + 0x38], eax
mov dword [esp + 0xcc], eax
call fcn.00472910
mov esi, eax
mov eax, dword [esp + 0xc]
mov cl, byte [eax + edi*4]
cmp cl, 0x55
jne 0x47a79d
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
and ecx, esi
and eax, edx
jmp 0x47a87a
cmp cl, 0x56
jne 0x47a7b3
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
or ecx, esi
or eax, edx
jmp 0x47a87a
mov eax, esi
or eax, edx
je 0x47a872
test edx, edx
jg 0x47a7eb
jl 0x47a7c7
test esi, esi
jae 0x47a7e0
mov al, 0xaf
sub al, cl
mov cl, al
cmp edx, 0xffffffff
jl 0x47a7eb
jg 0x47a7d9
cmp esi, 0xffffffc0
jbe 0x47a7eb
neg esi
adc edx, 0
neg edx
test edx, edx
jl 0x47a813
jg 0x47a7eb
cmp esi, 0x40
jb 0x47a813
cmp dword [esp + 0x38], 0
jg 0x47a80a
jl 0x47a7fb
cmp dword [esp + 0x3c], 0
jae 0x47a80a
cmp cl, 0x57
je 0x47a80a
or eax, 0xffffffff
cdq
mov ecx, eax
mov eax, edx
jmp 0x47a87a
xor eax, eax
cdq
mov ecx, eax
mov eax, edx
jmp 0x47a87a
movq xmm1, qword [esp + 0xc8]
movd xmm0, esi
cmp cl, 0x57
jne 0x47a839
psllq xmm1, xmm0
movq qword [esp + 0x50], xmm1
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
jmp 0x47a87a
cmp dword [esp + 0x38], 0
psrlq xmm1, xmm0
movq qword [esp + 0x50], xmm1
jg 0x47a82f
jl 0x47a853
cmp dword [esp + 0x3c], 0
jae 0x47a82f
or edx, 0xffffffff
mov ecx, 0x40
sub ecx, esi
mov eax, edx
call fcn.0053a510
mov ecx, dword [esp + 0x50]
or ecx, eax
mov eax, dword [esp + 0x54]
or eax, edx
jmp 0x47a87a
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0x1c]
mov dword [esi + 0x10], ecx
mov edi, dword [esp + 0x10]
mov ecx, 0xbe04
mov edx, dword [esp + 0xc]
mov dword [esi + 0x14], eax
mov ax, word [esi + 0x1c]
and ax, cx
mov ecx, dword [esp + 8]
or ax, 4
inc edi
mov word [esi + 0x1c], ax
mov dword [esp + 0x10], edi
jmp 0x4798e0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + edi*4 + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.00472910
mov dword [esi + 0x10], eax
mov ecx, 0xbe04
mov ax, word [esi + 0x1c]
and ax, cx
mov dword [esi + 0x14], edx
or ax, 4
mov word [esi + 0x1c], ax
mov eax, dword [esp + 0xc]
mov eax, dword [eax + edi*4 + 8]
cdq
add dword [esi + 0x10], eax
adc dword [esi + 0x14], edx
jmp 0x479cb6
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx eax, word [esi + 0x1c]
test al, 4
jne 0x47a94e
mov ecx, esi
call fcn.004796c0
test byte [esi + 0x1c], 8
je 0x47a923
mov ecx, esi
call fcn.00472a20
movzx eax, word [esi + 0x1c]
mov edx, dword [esp + 0xc]
test al, 4
jne 0x47a94e
mov eax, dword [edx + edi*4 + 8]
mov ecx, dword [esp + 8]
test eax, eax
je 0x47f9fc
mov esi, dword [esp + 0x1c]
mov edi, eax
mov dword [esp + 0x10], eax
jmp 0x4798e0
and eax, 0xbe04
or eax, 4
mov word [esi + 0x1c], ax
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
inc edi
mov ecx, dword [esp + 8]
jmp 0x4798da
mov edx, dword [esp + 0xc]
mov eax, dword [edx + edi*4 + 4]
mov edi, dword [esp + 0x28]
lea esi, [eax + eax*4]
movzx eax, word [edi + esi*8 + 0x1c]
mov dword [esp + 0x24], eax
test al, 4
je 0x47a9bc
test al, 8
je 0x47a994
movsd xmm0, qword [edi + esi*8 + 8]
jmp 0x47a9a9
mov edx, dword [edi + esi*8 + 0x14]
mov ecx, dword [edi + esi*8 + 0x10]
call fcn.0050dd30
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
and eax, 0xbe08
movsd qword [edi + esi*8 + 8], xmm0
or eax, 8
mov word [edi + esi*8 + 0x1c], ax
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
inc edi
mov ecx, dword [esp + 8]
jmp 0x4798da
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x28]
mov eax, dword [eax + edi*4 + 4]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
movzx eax, word [esi + 0x1c]
test al, 1
jne 0x47b7d3
shr eax, 3
and eax, 2
or word [esi + 0x1c], ax
mov ax, word [esi + 0x1c]
test al, 2
jne 0x47aa0e
test al, 0xc
je 0x47aa0e
movzx edx, byte [esp + 0x4c]
mov ecx, esi
call fcn.00472700
mov eax, 0xfff3
and word [esi + 0x1c], ax
movzx eax, word [esi + 0x1c]
test eax, 0x4000
je 0x47aa3b
mov ecx, esi
call fcn.00472650
mov dword [esp + 0x14], eax
mov eax, 0xbfe3
and word [esi + 0x1c], ax
jmp 0x47b5c3
mov eax, 0xbfe3
mov dword [esp + 0x14], 0
and word [esi + 0x1c], ax
jmp 0x47b5c3
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 4]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
movzx eax, word [esi + 0x1c]
test al, 1
jne 0x47b7d3
test al, 0x10
jne 0x47aab1
test al, 2
jne 0x47aa8b
test al, 0xc
je 0x47aa8b
movzx edx, byte [esp + 0x4c]
mov ecx, esi
call fcn.00472700
mov edx, dword [esp + 0xc]
mov ax, word [esi + 0x1c]
mov ecx, 0xbe10
mov edi, dword [esp + 0x10]
and ax, cx
mov ecx, dword [esp + 8]
or ax, 0x10
mov word [esi + 0x1c], ax
inc edi
mov esi, dword [esp + 0x1c]
jmp 0x4798da
mov edi, dword [esp + 0x10]
and eax, 0xfe10
mov word [esi + 0x1c], ax
inc edi
mov esi, dword [esp + 0x1c]
jmp 0x4798da
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + edi*4 + 4]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.00472ac0
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 8]
inc edi
mov edx, dword [esp + 0xc]
mov dword [esp + 0x10], edi
jmp 0x4798e0
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x1c], 1
lea esi, [ecx + eax*8]
jne 0x47a95a
mov ecx, esi
call fcn.00472910
mov edi, dword [esp + 0x10]
mov ecx, 0xbe04
mov dword [esi + 0x10], eax
mov ax, word [esi + 0x1c]
and ax, cx
mov dword [esi + 0x14], edx
mov edx, dword [esp + 0xc]
or ax, 4
mov ecx, dword [esp + 8]
inc edi
mov word [esi + 0x1c], ax
mov esi, dword [esp + 0x1c]
jmp 0x4798da
mov edx, dword [esp + 0xc]
mov eax, dword [edx + edi*4 + 4]
mov edi, dword [esp + 0x28]
lea esi, [eax + eax*4]
movzx eax, word [edi + esi*8 + 0x1c]
test al, 1
jne 0x47a95a
test al, 8
je 0x47ab71
movsd xmm0, qword [edi + esi*8 + 8]
jmp 0x47abbe
test al, 4
je 0x47ab84
mov edx, dword [edi + esi*8 + 0x14]
mov ecx, dword [edi + esi*8 + 0x10]
call fcn.0050dd30
jmp 0x47abba
xorps xmm0, xmm0
test al, 0x12
je 0x47abbe
movzx eax, byte [edi + esi*8 + 0x1e]
lea edx, [esp + 0x80]
mov ecx, dword [edi + esi*8 + 4]
push eax
push dword [edi + esi*8 + 0x18]
movsd qword [esp + 0x88], xmm0
call fcn.0045a890
movsd xmm0, qword [esp + 0x88]
add esp, 8
mov edx, dword [esp + 0xc]
mov ax, word [edi + esi*8 + 0x1c]
mov ecx, 0xbe08
and ax, cx
movsd qword [edi + esi*8 + 8], xmm0
mov ecx, dword [esp + 8]
or ax, 8
mov word [edi + esi*8 + 0x1c], ax
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
inc edi
jmp 0x4798da
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x28]
mov eax, dword [ecx + edi*4 + 4]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [ecx + edi*4 + 0xc]
lea eax, [eax + eax*4]
movzx ecx, word [edx + eax*8 + 0x1c]
lea eax, [edx + eax*8]
movzx edx, word [esi + 0x1c]
mov dword [esp + 0x30], eax
mov al, cl
or al, dl
mov dword [esp + 0x24], edx
test al, 1
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0xc]
mov al, byte [eax + edi*4 + 3]
je 0x47acba
test al, al
jns 0x47ac57
mov eax, ecx
and eax, edx
xor edx, edx
bt ax, dx
jae 0x47ac4d
test ecx, 0x100
je 0x47ad36
mov edx, 1
jmp 0x47ad36
test al, 0x10
je 0x47ac93
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 8]
mov edi, dword [esp + 0x10]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, 0xbe01
mov ax, word [esi + 0x1c]
and ax, cx
mov dword [esp + 0x1c], esi
mov ecx, dword [esp + 8]
or ax, 1
mov word [esi + 0x1c], ax
inc edi
jmp 0x4798da
test al, 8
je 0x47ca36
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x1c]
mov ecx, dword [edx + edi*4 + 8]
dec ecx
inc ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 8]
mov edi, dword [esp + 0x10]
jmp 0x4798e0
and al, 0x67
mov byte [esp + 0x43], al
je 0x47acf4
push dword [esp + 0x4c]
mov dl, al
mov ecx, esi
call fcn.00479750
mov dl, byte [esp + 0x47]
add esp, 4
mov ecx, dword [esp + 0x30]
push dword [esp + 0x4c]
call fcn.00479750
mov ecx, dword [esp + 0xc]
add esp, 4
cmp byte [ecx + 0x40], 0
jne 0x47fcdd
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x47ad06
mov ecx, esi
call fcn.00472650
mov eax, dword [esp + 0x30]
mov ecx, 0x4000
test word [eax + 0x1c], cx
je 0x47ad20
mov ecx, eax
call fcn.00472650
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0xc]
mov ecx, eax
push dword [edx + edi*4 + 0x10]
mov edx, esi
call fcn.004766d0
add esp, 4
mov edx, eax
mov eax, dword [esp + 0xc]
movzx ecx, byte [eax + edi*4]
add ecx, 0xffffffb2
cmp ecx, 4
ja case.default.0x47ad46
jmp dword [ecx*4 + 0x480044]
xor eax, eax
test edx, edx
sete al
jmp 0x47ad81
xor eax, eax
test edx, edx
setne al
jmp 0x47ad81
xor eax, eax
test edx, edx
sets al
jmp 0x47ad81
xor eax, eax
test edx, edx
setle al
jmp 0x47ad81
xor eax, eax
test edx, edx
setg al
jmp 0x47ad81
xor eax, eax
test edx, edx
setns al
mov edx, dword [esp + 0xc]
test byte [edx + edi*4 + 3], 0x10
je 0x47adbf
mov ecx, dword [edx + edi*4 + 8]
mov edx, dword [esp + 0x28]
lea ecx, [ecx + ecx*4]
lea edi, [edx + ecx*8]
mov edx, 0xbe04
mov cx, word [edi + 0x1c]
and cx, dx
mov dword [esp + 0x1c], edi
cdq
or cx, 4
mov dword [edi + 0x14], edx
mov edx, dword [esp + 0xc]
mov word [edi + 0x1c], cx
mov dword [edi + 0x10], eax
jmp 0x47adcc
test eax, eax
je 0x47adcc
mov eax, dword [edx + edi*4 + 8]
dec eax
mov dword [esp + 0x10], eax
movzx eax, word [esi + 0x1c]
mov edi, 0x1ff
xor ax, word [esp + 0x24]
mov ecx, dword [esp + 0x30]
and ax, di
xor word [esi + 0x1c], ax
mov esi, dword [esp + 0x1c]
movzx eax, word [ecx + 0x1c]
xor ax, word [esp + 0x20]
and ax, di
mov edi, dword [esp + 0x10]
xor word [ecx + 0x1c], ax
inc edi
mov ecx, dword [esp + 8]
jmp 0x4798da
mov edx, dword [esp + 0xc]
mov eax, dword [edx + edi*4 + 0x10]
mov edi, dword [esp + 0x10]
mov dword [esp + 0x6c], eax
inc edi
jmp 0x4798da
mov esi, dword [esp + 0xc]
mov ecx, 0
mov eax, dword [esp + 0x6c]
test byte [esi + edi*4 + 3], 1
mov edx, dword [esi + edi*4 + 0x10]
cmove eax, ecx
mov dword [esp + 0x30], edx
mov ecx, dword [esi + edi*4 + 4]
mov dword [esp + 0x6c], eax
mov eax, dword [esi + edi*4 + 0xc]
mov dword [esp + 0x20], ecx
mov ecx, dword [esi + edi*4 + 8]
xor esi, esi
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], ecx
test eax, eax
jle 0x47aed6
lea edi, [edx + 0x14]
nop
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x47ae6d
mov ecx, dword [eax + esi*4]
jmp 0x47ae6f
mov ecx, esi
mov eax, dword [edx + 0x10]
mov edx, dword [esp + 0x28]
push dword [edi]
movzx eax, byte [esi + eax]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x28]
add eax, ecx
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov eax, dword [esp + 0x24]
add eax, ecx
mov ecx, dword [esp + 0x2c]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.004766d0
add esp, 4
mov dword [esp + 0x98], eax
test eax, eax
jne 0x47aec6
mov edx, dword [esp + 0x30]
inc esi
add edi, 4
cmp esi, dword [esp + 0x2c]
jl 0x47ae60
mov dword [esp + 0x6c], eax
jmp 0x479cb6
cmp dword [esp + 0x38], 0
je 0x47aed6
neg eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x6c], 0
jmp 0x479cb6
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0xc]
test eax, eax
jns 0x47aefb
mov edi, dword [edx + edi*4 + 4]
jmp 0x4798da
jne 0x47af06
mov edi, dword [edx + edi*4 + 8]
jmp 0x4798da
mov edi, dword [edx + edi*4 + 0xc]
jmp 0x4798da
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + edi*4 + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x1c], 1
lea ecx, [ecx + eax*8]
je 0x47af2f
mov esi, 2
jmp 0x47af41
call fcn.00472910
or eax, edx
je 0x47af3f
mov esi, 1
jmp 0x47af41
xor esi, esi
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + edi*4 + 8]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x1c], 1
lea ecx, [ecx + eax*8]
je 0x47af61
mov eax, 2
jmp 0x47af73
call fcn.00472910
or eax, edx
je 0x47af71
mov eax, 1
jmp 0x47af73
xor eax, eax
mov edx, dword [esp + 0xc]
lea eax, [eax + esi*2]
cmp byte [edx + edi*4], 0x48
jne 0x47af8a
movzx ecx, byte [esi + eax + 0x555b74]
jmp 0x47af92
movzx ecx, byte [esi + eax + 0x556c8c]
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x28]
mov eax, dword [eax + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov dword [esp + 0x1c], edx
cmp ecx, 2
jne 0x47afc6
mov ax, word [edx + 0x1c]
mov ecx, 0xbe01
and ax, cx
or ax, 1
mov word [edx + 0x1c], ax
jmp 0x479cb6
mov esi, dword [esp + 0x1c]
mov eax, ecx
mov edi, dword [esp + 0x10]
mov ecx, 0xbe04
cdq
mov dword [esi + 0x10], eax
mov ax, word [esi + 0x1c]
and ax, cx
mov dword [esi + 0x14], edx
mov ecx, dword [esp + 8]
or ax, 4
mov edx, dword [esp + 0xc]
inc edi
mov word [esi + 0x1c], ax
mov dword [esp + 0x10], edi
jmp 0x4798e0
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x1c], 1
lea ecx, [esi + eax*8]
mov eax, dword [edx + edi*4 + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov dword [esp + 0x1c], esi
jne 0x47a00a
call fcn.00472910
or eax, edx
jne 0x47b059
mov eax, 1
mov ecx, esi
cdq
push edx
push eax
call fcn.00472bf0
mov edi, dword [esp + 0x18]
add esp, 8
mov ecx, dword [esp + 8]
inc edi
mov edx, dword [esp + 0xc]
mov dword [esp + 0x10], edi
jmp 0x4798e0
xor eax, eax
mov ecx, esi
cdq
push edx
push eax
call fcn.00472bf0
mov edi, dword [esp + 0x18]
add esp, 8
mov ecx, dword [esp + 8]
inc edi
mov edx, dword [esp + 0xc]
mov dword [esp + 0x10], edi
jmp 0x4798e0
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x1c], 1
lea ecx, [esi + eax*8]
mov eax, dword [edx + edi*4 + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov dword [esp + 0x1c], esi
jne 0x47a00a
call fcn.00472910
not edx
not eax
push edx
push eax
mov ecx, esi
call fcn.00472bf0
mov edi, dword [esp + 0x18]
add esp, 8
mov ecx, dword [esp + 8]
inc edi
mov edx, dword [esp + 0xc]
mov dword [esp + 0x10], edi
jmp 0x4798e0
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0xc]
mov eax, dword [eax + 0xc8]
mov ecx, dword [edx + edi*4 + 4]
cmp byte [eax + ecx], 0
je 0x47b101
mov ecx, dword [edx + edi*4 + 8]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 8]
mov edi, dword [esp + 0x10]
jmp 0x4798e0
mov edi, dword [esp + 0x10]
mov byte [eax + ecx], 1
inc edi
mov ecx, dword [esp + 8]
jmp 0x4798da
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x1c], 1
lea ecx, [ecx + eax*8]
je 0x47b132
mov ecx, dword [edx + edi*4 + 0xc]
jmp 0x47b161
call fcn.004729c0
ucomisd xmm0, qword [0x578920]
lahf
test ah, 0x44
jnp 0x47b14c
mov ecx, 1
jmp 0x47b14e
xor ecx, ecx
mov edx, dword [esp + 0xc]
cmp byte [edx + edi*4], 0x2d
jne 0x47b161
xor eax, eax
test ecx, ecx
sete al
mov ecx, eax
test ecx, ecx
je 0x47b17c
mov ecx, dword [edx + edi*4 + 8]
dec ecx
inc ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 8]
mov edi, dword [esp + 0x10]
jmp 0x4798e0
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 8]
mov edi, dword [esp + 0x10]
jmp 0x4798e0
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x1c], 1
mov esi, dword [esp + 0x1c]
je 0x479b2b
mov edi, dword [edx + edi*4 + 8]
dec edi
inc edi
jmp 0x4798da
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x1c], 1
mov ecx, dword [esp + 8]
jne 0x479b2b
mov edi, dword [edx + edi*4 + 8]
dec edi
inc edi
jmp 0x4798da
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x28]
mov eax, dword [ecx + edi*4 + 0xc]
mov esi, dword [ecx + edi*4 + 8]
mov ecx, dword [ecx + edi*4 + 4]
mov dword [esp + 0x30], esi
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x34], ecx
movsx eax, word [ecx + 0x14]
add eax, 0x16
lea eax, [ecx + eax*4]
mov dword [esp + 0x3c], eax
mov eax, dword [ecx]
mov dword [esp + 0x44], eax
call fcn.00475f80
mov dword [esp + 0x14], eax
test eax, eax
jne 0x47fada
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x18]
mov eax, dword [edx + 0x44]
cmp eax, dword [ecx + 0x48]
jne 0x47b258
mov eax, dword [esp + 0xc]
test byte [eax + edi*4 + 3], 0x20
je 0x47b444
cmp byte [edx + 0x19], 0
je 0x47b2a3
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x47b286
mov eax, dword [edx + 0x10]
mov ecx, dword [esp + 0x28]
lea eax, [eax + eax*4]
mov esi, dword [ecx + eax*8 + 0x18]
mov dword [edx + 0x4c], esi
mov dword [edx + 0x48], esi
mov eax, dword [ecx + eax*8 + 4]
mov dword [edx + 0x54], eax
jmp 0x47b3c9
mov edi, dword [esp + 0x38]
mov ecx, 0xbe01
mov ax, word [edi + 0x1c]
and ax, cx
or ax, 1
mov word [edi + 0x1c], ax
jmp 0x47b7b1
test byte [edx + 0x1c], 4
mov ecx, dword [esp + 0x44]
jne 0x47b346
cmp byte [ecx + 0x51], 1
je 0x47b2c5
xorps xmm0, xmm0
movlpd qword [esp + 0xa8], xmm0
jmp 0x47b32c
cmp word [ecx + 0x32], 0
jne 0x47b318
movsx eax, word [ecx + 0x54]
mov edi, dword [ecx + eax*4 + 0x80]
movzx esi, word [ecx + eax*2 + 0x56]
mov eax, dword [esp + 0x44]
add eax, 0x18
mov ecx, dword [edi + 0x40]
push eax
movzx eax, byte [ecx + esi*2]
movzx edx, byte [ecx + esi*2 + 1]
mov ecx, edi
shl eax, 8
or edx, eax
movzx eax, word [edi + 0x12]
and edx, eax
add edx, dword [edi + 0x38]
call fcn.00468ce0
mov ecx, dword [esp + 0x48]
add esp, 4
mov edi, dword [esp + 0x48]
mov edx, dword [esp + 0x34]
or byte [ecx + 0x50], 2
mov eax, dword [ecx + 0x18]
mov dword [esp + 0xa8], eax
mov eax, dword [ecx + 0x1c]
mov dword [esp + 0xac], eax
movzx eax, word [ecx + 0x2c]
add eax, dword [ecx + 0x20]
movzx esi, word [ecx + 0x2e]
mov dword [edx + 0x54], eax
mov eax, dword [esp + 0xa8]
mov dword [edx + 0x48], eax
jmp 0x47b3ad
cmp word [ecx + 0x32], 0
jne 0x47b399
movsx eax, word [ecx + 0x54]
mov edi, dword [ecx + eax*4 + 0x80]
movzx esi, word [ecx + eax*2 + 0x56]
mov eax, dword [esp + 0x44]
add eax, 0x18
mov ecx, dword [edi + 0x40]
push eax
movzx eax, byte [ecx + esi*2]
movzx edx, byte [ecx + esi*2 + 1]
mov ecx, edi
shl eax, 8
or edx, eax
movzx eax, word [edi + 0x12]
and edx, eax
add edx, dword [edi + 0x38]
call fcn.00468ce0
mov ecx, dword [esp + 0x48]
add esp, 4
mov edi, dword [esp + 0x48]
mov edx, dword [esp + 0x34]
or byte [ecx + 0x50], 2
mov eax, dword [ecx + 0x24]
mov dword [edx + 0x48], eax
movzx eax, word [ecx + 0x2c]
add eax, dword [ecx + 0x20]
movzx esi, word [ecx + 0x2e]
mov dword [edx + 0x54], eax
mov eax, dword [edx + 0x48]
cmp eax, esi
ja 0x47b3b9
mov dword [edx + 0x4c], eax
jmp 0x47b3bc
mov dword [edx + 0x4c], esi
mov ecx, dword [esp + 8]
cmp eax, dword [ecx + 0x58]
ja 0x47d522
mov eax, dword [esp + 0x18]
mov ecx, dword [edx + 0x54]
mov eax, dword [eax + 0x48]
mov dword [edx + 0x44], eax
mov al, byte [ecx]
cmp al, 0x80
jae 0x47b3ed
movzx ecx, al
mov eax, 1
mov dword [esp + 0x9c], ecx
jmp 0x47b407
lea edx, [esp + 0x9c]
call fcn.0045b490
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0x34]
movzx eax, al
movzx eax, al
mov dword [edx + 0x50], eax
xor eax, eax
mov word [edx + 0x16], ax
mov eax, dword [esp + 0x3c]
mov dword [eax], ecx
cmp esi, ecx
jae 0x47b42b
mov dword [edx + 0x54], 0
mov dword [edx + 0x4c], 0
cmp ecx, 0x18003
ja 0x47b7dc
cmp ecx, dword [edx + 0x48]
ja 0x47b7dc
mov esi, dword [esp + 0x30]
movzx eax, word [edx + 0x16]
cmp eax, esi
jg 0x47b620
mov ecx, dword [esp + 0x3c]
mov eax, dword [edx + 0x50]
cmp eax, dword [ecx]
jae 0x47b5ed
mov eax, dword [edx + 0x54]
mov dword [esp + 0x48], eax
test eax, eax
jne 0x47b4cb
xorps xmm0, xmm0
lea eax, [esp + 0xe0]
push eax
movaps xmmword [esp + 0xe4], xmm0
movaps xmmword [esp + 0xf4], xmm0
movq qword [esp + 0x104], xmm0
mov eax, dword [edx + 0x1c]
xor edx, edx
shr eax, 2
not eax
and eax, 1
push eax
push dword [ecx]
mov ecx, dword [esp + 0x50]
call fcn.00472fe0
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x47b5c3
mov eax, dword [esp + 0xe4]
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x48], eax
movzx edx, word [edx + 0x16]
mov esi, dword [esp + 0x34]
mov dword [esp + 0x24], edx
mov eax, dword [ecx + edx*4]
mov esi, dword [esi + 0x50]
add esi, dword [esp + 0x48]
mov dword [esp + 0x20], eax
mov eax, dword [ecx]
add eax, dword [esp + 0x48]
mov dword [esp + 0x2c], eax
nop
mov al, byte [esi]
cmp al, 0x80
jae 0x47b503
movzx ecx, al
inc esi
mov dword [esp + 0xa0], ecx
jmp 0x47b521
lea edx, [esp + 0xa0]
mov ecx, esi
call fcn.0045b490
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0x24]
movzx eax, al
add esi, eax
mov eax, dword [esp + 0x34]
mov dword [eax + edx*4 + 0x58], ecx
call fcn.00476160
mov ecx, dword [esp + 0x20]
add ecx, eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x9c], ecx
cmp ecx, eax
jb 0x47b55d
mov eax, dword [esp + 0x3c]
inc edx
mov dword [esp + 0x24], edx
mov dword [eax + edx*4], ecx
cmp edx, dword [esp + 0x30]
jg 0x47b562
cmp esi, dword [esp + 0x2c]
jb 0x47b4f0
jmp 0x47b562
mov esi, dword [esp + 0x2c]
inc esi
mov eax, dword [esp + 0x34]
mov word [eax + 0x16], dx
mov eax, esi
mov edx, dword [esp + 0x34]
sub eax, dword [esp + 0x48]
cmp dword [edx + 0x54], 0
mov dword [edx + 0x50], eax
jne 0x47b59e
lea ecx, [esp + 0xe0]
call fcn.00472890
mov ecx, dword [esp + 0x20]
mov eax, 1
mov edx, dword [esp + 0x34]
mov word [esp + 0xfc], ax
cmp esi, dword [esp + 0x2c]
ja 0x47b5b5
mov eax, dword [edx + 0x48]
cmp ecx, eax
ja 0x47b5b5
cmp esi, dword [esp + 0x2c]
jne 0x47b5e9
cmp ecx, eax
je 0x47b5e9
mov ecx, 0x11148
call fcn.004beda0
mov dword [esp + 0x14], eax
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
inc edi
mov dword [esp + 0x10], edi
test edx, edx
jne 0x47fcff
mov edx, dword [esp + 0xc]
jmp 0x4798e0
mov esi, dword [esp + 0x30]
movzx eax, word [edx + 0x16]
cmp eax, esi
jg 0x47b620
mov eax, dword [esp + 0xc]
cmp byte [eax + edi*4 + 1], 0xf8
jne 0x47b286
mov edx, dword [eax + edi*4 + 0x10]
mov edi, dword [esp + 0x38]
mov ecx, edi
push 0x800
call fcn.00472cd0
add esp, 4
jmp 0x47b7b1
mov ecx, dword [esp + 0x3c]
mov eax, dword [edx + 0x4c]
cmp eax, dword [ecx + esi*4 + 4]
jb 0x47b663
mov edi, dword [esp + 0x38]
mov eax, 0x2460
test word [edi + 0x1c], ax
je 0x47b647
mov ecx, edi
call fcn.00472840
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x3c]
mov ecx, dword [edx + 0x54]
mov edx, dword [edx + esi*4 + 0x58]
push edi
add ecx, dword [eax + esi*4]
call fcn.00476200
add esp, 4
jmp 0x47b7aa
mov eax, dword [esp + 0xc]
mov ecx, dword [edx + esi*4 + 0x58]
mov dword [esp + 0x24], ecx
mov dword [esp + 0xa0], ecx
mov al, byte [eax + edi*4 + 3]
test al, 0xc0
je 0x47b68c
cmp ecx, 0xc
jb 0x47b688
test cl, 1
je 0x47b697
test al, al
js 0x47b697
call fcn.00476160
mov esi, eax
test esi, esi
jne 0x47b6b6
mov edi, dword [esp + 0x38]
lea eax, [esp + 0xa8]
xor edx, edx
cmp ecx, 0xd
mov dword [esp + 0x104], edx
cmova eax, edx
jmp 0x47b767
xorps xmm0, xmm0
lea ecx, [esp + 0xe0]
movaps xmmword [esp + 0xe0], xmm0
movaps xmmword [esp + 0xf0], xmm0
movq qword [esp + 0x100], xmm0
call fcn.00472890
mov edi, dword [esp + 0x38]
mov eax, 1
mov ecx, dword [esp + 0x3c]
movups xmm0, xmmword [edi]
movups xmmword [esp + 0xe0], xmm0
movups xmm0, xmmword [edi + 0x10]
movups xmmword [esp + 0xf0], xmm0
movq xmm0, qword [edi + 0x20]
movq qword [esp + 0x100], xmm0
mov word [edi + 0x1c], ax
lea eax, [esp + 0xe0]
push eax
mov eax, dword [esp + 0x38]
mov dword [edi + 0x20], 0
mov dword [edi + 0x24], 0
mov eax, dword [eax + 0x1c]
shr eax, 2
not eax
and eax, 1
push eax
mov eax, dword [esp + 0x38]
push esi
mov edx, dword [ecx + eax*4]
mov ecx, dword [esp + 0x50]
call fcn.00472fe0
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x47b5c3
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0x24]
mov edx, ecx
mov ecx, eax
push edi
call fcn.00476200
add esp, 4
cmp dword [esp + 0x104], 0
je 0x47b7aa
mov ax, word [edi + 0x1c]
mov ecx, 0xe7ff
and ax, cx
mov ecx, 0x200
or ax, cx
mov word [edi + 0x1c], ax
mov eax, dword [esp + 0xe4]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x104]
mov dword [edi + 0x24], eax
mov al, byte [esp + 0x4c]
mov byte [edi + 0x1e], al
mov eax, 0x1000
test word [edi + 0x1c], ax
je 0x47b5c3
mov ecx, edi
call fcn.004725f0
mov ecx, dword [esp + 8]
test eax, eax
jne 0x47fcdd
mov esi, dword [esp + 0x1c]
jmp case.default.0x479943
mov ecx, 0x11106
jmp 0x47b5ba
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 4]
mov esi, dword [edx + edi*4 + 0x10]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov al, byte [esi]
test al, al
je 0x47a95a
push dword [esp + 0x4c]
mov dl, al
lea esi, [esi + 1]
mov ecx, edi
call fcn.00479750
mov al, byte [esi]
add esp, 4
add edi, 0x28
test al, al
jne 0x47b806
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
inc edi
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 8]
jmp 0x4798da
mov edx, dword [esp + 0xc]
xor eax, eax
mov ecx, dword [esp + 0x28]
xorps xmm0, xmm0
mov dword [esp + 0x34], eax
mov dword [esp + 0x44], eax
mov eax, dword [edx + edi*4 + 4]
mov esi, dword [edx + edi*4 + 0x10]
movlpd qword [esp + 0x80], xmm0
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [edx + edi*4 + 8]
mov dword [esp + 0x30], ecx
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [ecx + eax*8]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x18]
movzx edx, byte [eax + 0x57]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x3c], edx
mov eax, dword [eax + edi*4 + 0xc]
mov edi, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [esp + 0x1c], eax
test esi, esi
je 0x47b8c4
mov al, byte [esi]
mov edi, ecx
push dword [esp + 0x4c]
mov dl, al
mov ecx, edi
call fcn.00479750
mov al, byte [esi + 1]
lea esi, [esi + 1]
add esp, 4
add edi, 0x28
test al, al
jne 0x47b8a3
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x84]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x20], eax
mov dword [esp + 0x2c], ecx
mov ecx, eax
call fcn.00476050
mov esi, eax
mov ecx, esi
call fcn.00476160
mov edi, eax
mov ecx, 0x4000
mov eax, dword [esp + 0x20]
test word [eax + 0x1c], cx
je 0x47b91f
mov ecx, dword [esp + 0x2c]
or ecx, dword [esp + 0x38]
je 0x47b916
mov ecx, eax
call fcn.00472650
jmp 0x47b91f
mov eax, dword [eax + 0x10]
add dword [esp + 0x44], eax
sub edi, eax
mov eax, edi
cdq
add dword [esp + 0x2c], eax
adc dword [esp + 0x38], edx
cmp esi, 0x7f
ja 0x47b936
mov edx, 1
jmp 0x47b953
xor ecx, ecx
xor edx, edx
nop word [eax + eax]
shrd esi, ecx, 7
inc edx
shr ecx, 7
mov eax, esi
or eax, ecx
je 0x47b953
cmp edx, 9
jl 0x47b940
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x34]
sub eax, 0x28
add ecx, edx
mov dword [esp + 0x20], eax
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x34], ecx
cmp eax, dword [esp + 0x30]
jae 0x47b8e2
cmp ecx, 0x7e
jle 0x47b9bf
mov eax, ecx
xor edi, edi
cdq
mov ecx, eax
shrd ecx, edx, 7
inc edi
shr edx, 7
mov eax, ecx
or eax, edx
je 0x47b995
cmp edi, 9
jl 0x47b982
mov eax, dword [esp + 0x34]
add eax, edi
xor esi, esi
mov dword [esp + 0x34], eax
cdq
mov ecx, eax
shrd ecx, edx, 7
inc esi
shr edx, 7
mov eax, ecx
or eax, edx
je 0x47b9b7
cmp esi, 9
jl 0x47b9a4
mov ecx, dword [esp + 0x34]
cmp edi, esi
jge 0x47b9c4
inc ecx
mov dword [esp + 0x34], ecx
mov eax, ecx
cdq
mov esi, eax
mov ecx, edx
mov eax, dword [esp + 8]
add esi, dword [esp + 0x2c]
mov dword [esp + 0x2c], esi
adc ecx, dword [esp + 0x38]
mov eax, dword [eax + 0x58]
cdq
cmp ecx, edx
jg 0x47d51e
jl 0x47b9f1
cmp esi, eax
ja 0x47d51e
mov edx, esi
mov esi, dword [esp + 0x1c]
push 0
mov ecx, esi
call fcn.004724c0
add esp, 4
test eax, eax
jne 0x47fcd9
mov ecx, dword [esp + 0x34]
mov edi, dword [esi + 4]
cmp ecx, 0x80
jae 0x47ba23
mov byte [edi], cl
mov eax, 1
jmp 0x47ba4f
test ecx, 0xffffc000
jne 0x47ba42
mov eax, ecx
shr eax, 7
or al, 0x80
mov byte [edi], al
mov al, cl
and al, 0x7f
mov byte [edi + 1], al
mov eax, 2
jmp 0x47ba4f
push 0
push ecx
mov ecx, edi
call fcn.0045b200
add esp, 8
movzx esi, al
mov eax, dword [esp + 0x30]
nop word [eax + eax]
mov edx, dword [esp + 0x3c]
mov ecx, eax
call fcn.00476050
mov ecx, eax
mov dword [esp + 0x20], ecx
cmp ecx, 0x80
jae 0x47ba83
mov byte [esi + edi], cl
mov eax, 1
jmp 0x47bab6
lea edx, [esi + edi]
test ecx, 0xffffc000
jne 0x47baa5
mov eax, ecx
shr eax, 7
or al, 0x80
mov byte [edx], al
mov al, cl
and al, 0x7f
mov byte [edx + 1], al
mov eax, 2
jmp 0x47bab6
push 0
push ecx
mov ecx, edx
call fcn.0045b200
mov ecx, dword [esp + 0x28]
add esp, 8
mov edx, dword [esp + 0x30]
push ecx
mov ecx, dword [esp + 0x38]
movzx eax, al
add esi, eax
lea ecx, [ecx + edi]
call fcn.00476180
add dword [esp + 0x38], eax
add esp, 4
mov eax, dword [esp + 0x30]
add eax, 0x28
mov dword [esp + 0x30], eax
cmp eax, dword [esp + 0x24]
jbe 0x47ba60
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x2c]
mov dword [edx + 0x18], eax
mov eax, 0x10
mov word [edx + 0x1c], ax
mov eax, dword [esp + 0x44]
mov dword [edx + 0x20], 0
test eax, eax
je 0x47bb17
mov dword [edx + 0x10], eax
mov eax, 0x4010
mov word [edx + 0x1c], ax
mov byte [edx + 0x1e], 1
jmp 0x479cb6
mov eax, dword [esp + 0xc]
lea edx, [esp + 0xd0]
xorps xmm0, xmm0
movlpd qword [esp + 0xd0], xmm0
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax]
call fcn.00470230
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xd0]
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0xd4]
mov dword [esi + 0x14], eax
jmp 0x47b5c7
mov edx, dword [esp + 0xc]
mov eax, dword [edx + edi*4 + 4]
mov edi, dword [edx + edi*4 + 0x10]
mov dword [esp + 0x38], eax
test eax, eax
jne 0x47bc57
cmp dword [ecx + 0x94], eax
jg 0x47fa0a
mov ecx, edi
call fcn.0045a580
mov esi, eax
xor edx, edx
mov eax, dword [esp + 8]
mov dword [esp + 0x24], esi
mov ecx, dword [eax + 0x1ec]
add ecx, dword [eax + 0x1e8]
push ecx
mov ecx, eax
call fcn.004af630
mov ecx, dword [esp + 0xc]
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
jne 0x47fade
lea edx, [esi + 0x21]
call fcn.004581e0
mov esi, eax
test esi, esi
je 0x47bc45
mov ecx, dword [esp + 0x24]
lea edx, [esi + 0x20]
inc ecx
mov dword [esi], edx
push ecx
push edi
push edx
call fcn.00510a20
mov ecx, dword [esp + 0x14]
add esp, 0xc
cmp byte [ecx + 0x3e], 0
je 0x47bbfe
mov byte [ecx + 0x3e], 0
mov byte [ecx + 0x45], 1
jmp 0x47bc04
inc dword [ecx + 0x1e8]
mov eax, dword [ecx + 0x1e0]
mov edi, dword [esp + 0x10]
mov dword [esi + 0x18], eax
inc edi
mov eax, dword [ecx + 0x1f0]
mov dword [ecx + 0x1e0], esi
mov dword [esi + 8], eax
mov eax, dword [ecx + 0x1f4]
mov dword [esi + 0xc], eax
mov eax, dword [ecx + 0x1f8]
mov dword [esi + 0x10], eax
mov eax, dword [ecx + 0x1fc]
mov dword [esi + 0x14], eax
mov esi, dword [esp + 0x1c]
jmp 0x4798d6
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 8]
inc edi
mov esi, dword [esp + 0x1c]
jmp 0x4798d6
mov eax, dword [esp + 8]
xor ecx, ecx
mov dword [esp + 0x3c], ecx
mov esi, dword [eax + 0x1e0]
mov dword [esp + 0x24], esi
test esi, esi
je 0x47bc92
nop
push edi
push dword [esi]
call fcn.0045a7e0
add esp, 8
test eax, eax
je 0x47bcbb
mov esi, dword [esi + 0x18]
inc dword [esp + 0x3c]
mov dword [esp + 0x24], esi
test esi, esi
jne 0x47bc70
mov eax, dword [esp + 8]
push edi
push str.no_such_savepoint:__s
push eax
mov eax, dword [esp + 0x24]
add eax, 0x2c
push eax
call fcn.00458380
mov eax, dword [esp + 0x20]
add esp, 0x10
mov dword [esp + 0x14], 1
inc eax
jmp 0x47fd03
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x38]
cmp dword [eax + 0x94], 0
jle 0x47bcd5
cmp edx, 1
je 0x47fa32
cmp dword [esi + 0x18], 0
jne 0x47bd35
cmp byte [eax + 0x45], 0
je 0x47bd35
mov dword [esp + 0x20], 1
cmp edx, 1
jne 0x47bd3d
mov ecx, dword [esp + 0x18]
call fcn.004756a0
mov edi, eax
test edi, edi
jne 0x47fd7f
mov eax, dword [esp + 8]
mov edi, dword [esp + 0x18]
mov ecx, edi
mov byte [eax + 0x3e], 1
call fcn.00475710
mov ecx, dword [esp + 8]
cmp eax, 5
je 0x47fa3a
mov byte [ecx + 0x45], 0
mov eax, dword [edi + 0x50]
mov edi, dword [esp + 0x38]
mov dword [esp + 0x14], eax
jmp 0x47bdfb
mov dword [esp + 0x20], 0
mov eax, dword [eax + 0x1e8]
sub eax, dword [esp + 0x3c]
mov ecx, dword [esp + 8]
dec eax
mov dword [esp + 0x3c], eax
cmp edx, 2
jne 0x47bd8a
cmp dword [ecx + 0x14], 0
jle 0x47bd8a
xor edi, edi
mov esi, edi
nop
mov ecx, dword [ecx + 0x10]
mov edx, 4
mov ecx, dword [edi + ecx + 4]
call fcn.0046b970
mov ecx, dword [esp + 8]
lea edi, [edi + 0x10]
inc esi
cmp esi, dword [ecx + 0x14]
jl 0x47bd60
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
cmp dword [ecx + 0x14], 0
mov dword [esp + 0x24], 0
jle 0x47bddb
xor edi, edi
nop word [eax + eax]
mov ecx, dword [ecx + 0x10]
push eax
mov ecx, dword [edi + ecx + 4]
call fcn.0046bb90
mov ecx, eax
add esp, 4
mov dword [esp + 0x14], ecx
test ecx, ecx
mov ecx, dword [esp + 8]
jne 0x47fab8
mov eax, dword [esp + 0x24]
add edi, 0x10
mov edx, dword [esp + 0x38]
inc eax
cmp eax, dword [ecx + 0x14]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x3c]
jl 0x47bda0
mov edi, dword [esp + 0x38]
cmp edi, 2
jne 0x47bdfb
test byte [ecx + 0x18], 2
je 0x47bdfb
call fcn.00477510
call fcn.0048d560
mov ecx, dword [esp + 8]
or dword [ecx + 0x18], edi
cmp dword [ecx + 0x1e0], esi
je 0x47be36
nop dword [eax]
nop word [eax + eax]
mov edx, dword [ecx + 0x1e0]
mov eax, dword [edx + 0x18]
mov dword [ecx + 0x1e0], eax
call fcn.00457fb0
mov ecx, dword [esp + 8]
dec dword [ecx + 0x1e8]
cmp dword [ecx + 0x1e0], esi
jne 0x47be10
cmp edi, 1
jne 0x47be62
mov eax, dword [esi + 0x18]
mov edx, esi
mov dword [ecx + 0x1e0], eax
call fcn.00457fb0
cmp dword [esp + 0x20], 0
jne 0x47b5c3
mov eax, dword [esp + 8]
dec dword [eax + 0x1e8]
jmp 0x47be95
cmp dword [esp + 0x20], 0
mov eax, dword [esi + 8]
mov dword [ecx + 0x1f0], eax
mov eax, dword [esi + 0xc]
mov dword [ecx + 0x1f4], eax
mov eax, dword [esi + 0x10]
mov dword [ecx + 0x1f8], eax
mov eax, dword [esi + 0x14]
mov dword [ecx + 0x1fc], eax
jne 0x47b7d3
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x3c]
mov edx, edi
push ecx
mov ecx, eax
call fcn.004af630
mov ecx, eax
add esp, 4
mov dword [esp + 0x14], ecx
test ecx, ecx
mov ecx, dword [esp + 8]
jne 0x47fab8
mov esi, dword [esp + 0x1c]
jmp case.default.0x479943
mov eax, dword [esp + 0xc]
mov edx, dword [eax + edi*4 + 8]
test edx, edx
je 0x47beda
test dword [ecx + 0x18], 0x2000000
jne 0x47fa56
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 8]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov esi, dword [eax + ecx*8 + 4]
mov dword [esp + 0x24], esi
test esi, esi
je 0x47c038
mov ecx, esi
call fcn.0046a9b0
mov ecx, eax
mov dword [esp + 0x14], ecx
cmp ecx, 5
je 0x47fa61
test ecx, ecx
jne 0x47fad6
mov eax, dword [esp + 0xc]
cmp dword [eax + edi*4 + 8], ecx
je 0x47c000
mov edx, dword [esp + 0x18]
test byte [edx + 0x58], 0x80
je 0x47c000
mov ecx, dword [esp + 8]
cmp byte [ecx + 0x3e], 0
je 0x47bf48
cmp dword [ecx + 0x90], 1
jle 0x47c000
cmp dword [edx + 0x68], 0
jne 0x47bf63
mov eax, dword [ecx + 0x1e8]
inc dword [ecx + 0x1ec]
add eax, dword [ecx + 0x1ec]
mov dword [edx + 0x68], eax
mov eax, dword [edx + 0x68]
xor edx, edx
dec eax
push eax
call fcn.004af630
mov edx, eax
add esp, 4
mov dword [esp + 0x14], edx
test edx, edx
jne 0x47bfc8
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov esi, dword [esi + 4]
mov edi, dword [eax + 0x68]
call fcn.00468360
mov ecx, dword [esi]
mov edx, edi
call fcn.00465590
mov esi, dword [esp + 0x24]
mov dword [esp + 0x14], eax
cmp byte [esi + 9], 0
je 0x47bfc4
add dword [esi + 0xc], 0xffffffff
jne 0x47bfc4
mov eax, dword [esi + 4]
mov eax, dword [eax + 0x38]
test eax, eax
je 0x47bfc0
push eax
call dword [0x590b04]
add esp, 4
mov byte [esi + 0xa], 0
mov edi, dword [esp + 0x48]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x18]
mov eax, dword [ecx + 0x1f0]
mov dword [edx + 0x98], eax
mov eax, dword [ecx + 0x1f4]
mov dword [edx + 0x9c], eax
mov eax, dword [ecx + 0x1f8]
mov dword [edx + 0xa0], eax
mov eax, dword [ecx + 0x1fc]
mov dword [edx + 0xa4], eax
lea eax, [esp + 0xa4]
mov edx, 1
push eax
mov ecx, esi
call fcn.00470120
mov eax, dword [esp + 0x10]
add esp, 4
mov esi, dword [esp + 0xa4]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 8]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax + 4]
jmp 0x47c043
xor esi, esi
xor eax, eax
mov dword [esp + 0xa4], esi
mov ecx, dword [esp + 0xc]
cmp byte [ecx + edi*4 + 3], 0
je 0x47b5c3
cmp esi, dword [ecx + edi*4 + 0xc]
jne 0x47c062
cmp eax, dword [ecx + edi*4 + 0x10]
je 0x47b5c3
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 8]
mov edx, dword [eax + 0x2c]
call fcn.00457fb0
mov ecx, dword [esp + 8]
mov edx, str.database_schema_has_changed
call fcn.004582f0
mov ecx, dword [esp + 0x18]
mov dword [ecx + 0x2c], eax
mov eax, dword [esp + 0xc]
mov edx, dword [eax + edi*4 + 4]
mov ecx, edx
mov edi, dword [esp + 8]
add ecx, ecx
mov eax, dword [edi + 0x10]
mov eax, dword [eax + ecx*8 + 0xc]
cmp dword [eax], esi
je 0x47c0a9
mov ecx, edi
call fcn.0048d520
mov ecx, dword [esp + 0x18]
mov edx, 0x11
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x14], 0x11
or dword [ecx + 0x58], 0x20
mov ecx, edi
jmp 0x47b5cf
mov edx, dword [esp + 0xc]
lea eax, [esp + 0xb0]
mov ecx, dword [ecx + 0x10]
push eax
mov eax, dword [edx + edi*4 + 4]
mov edx, dword [edx + edi*4 + 0xc]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00470120
mov eax, dword [esp + 0xb4]
add esp, 4
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 8]
inc edi
cdq
mov dword [esi + 0x14], edx
mov edx, dword [esp + 0xc]
mov dword [esi + 0x10], eax
mov dword [esp + 0x10], edi
jmp 0x4798e0
mov edx, dword [esp + 0xc]
mov eax, dword [edx + edi*4 + 4]
shl eax, 4
add eax, dword [ecx + 0x10]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x20], eax
mov eax, dword [edx + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.00472910
mov dword [esi + 0x10], eax
mov ecx, 0xbe04
mov ax, word [esi + 0x1c]
and ax, cx
mov dword [esi + 0x14], edx
mov ecx, dword [esp + 0x20]
or ax, 4
push dword [esi + 0x10]
mov word [esi + 0x1c], ax
mov eax, dword [esp + 0x10]
mov ecx, dword [ecx + 4]
mov edx, dword [eax + edi*4 + 8]
call fcn.00470190
mov edx, dword [esp + 0x10]
add esp, 4
mov dword [esp + 0x14], eax
mov eax, dword [edx + edi*4 + 8]
cmp eax, 1
jne 0x47c194
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0xc]
mov eax, dword [esi + 0x10]
mov dword [ecx], eax
mov ecx, dword [esp + 8]
or dword [ecx + 0x18], 2
jmp 0x47c1aa
cmp eax, 2
jne 0x47c1a6
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0xc]
mov al, byte [esi + 0x10]
mov byte [ecx + 0x4c], al
mov ecx, dword [esp + 8]
cmp dword [edx + edi*4 + 4], 1
jne 0x47b7d3
call fcn.00477510
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
and dword [edx + 0x58], 0xffffffdf
jmp case.default.0x479943
mov eax, dword [esp + 0x18]
test byte [eax + 0x58], 0x20
jne 0x47fa89
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 8]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x20], 0
mov ecx, dword [eax + edi*4 + 8]
mov eax, dword [eax + edi*4 + 0xc]
mov dword [esp + 0x34], eax
shl eax, 4
add eax, dword [esi + 0x10]
mov dword [esp + 0x38], ecx
mov esi, dword [eax + 4]
mov dword [esp + 0x48], esi
cmp dl, 0x35
jne 0x47c22f
mov eax, dword [eax + 0xc]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x30], 1
mov al, byte [eax + 0x4c]
cmp al, byte [edx + 0x57]
jae 0x47c237
mov byte [edx + 0x57], al
jmp 0x47c237
mov dword [esp + 0x30], 0
mov edx, dword [esp + 0xc]
test byte [edx + edi*4 + 3], 2
je 0x47c281
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0x28]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.00472910
mov dword [esi + 0x10], eax
mov ecx, 0xbe04
mov ax, word [esi + 0x1c]
and ax, cx
mov dword [esi + 0x14], edx
or ax, 4
mov word [esi + 0x1c], ax
mov eax, dword [esi + 0x10]
mov dword [esp + 0x38], eax
cmp eax, 2
jl 0x47fa79
mov edx, dword [esp + 0xc]
mov al, byte [edx + edi*4 + 1]
cmp al, 0xfa
jne 0x47c2a1
mov eax, dword [edx + edi*4 + 0x10]
mov dword [esp + 0x20], eax
movzx ecx, word [eax + 8]
movzx eax, word [eax + 6]
add ecx, eax
mov dword [esp + 0x2c], ecx
jmp 0x47c2ad
cmp al, 0xf2
jne 0x47c2ad
mov eax, dword [edx + edi*4 + 0x10]
mov dword [esp + 0x2c], eax
mov esi, dword [edx + edi*4 + 4]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x44], esi
mov eax, dword [edx + 0x1c]
sub eax, esi
lea ecx, [eax + eax*4]
mov eax, dword [edx + 8]
lea eax, [eax + ecx*8]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x2c]
lea eax, [eax*8 + 0x130]
mov dword [esp + 0x3c], eax
mov eax, dword [edx + 0x38]
mov edx, dword [eax + esi*4]
test edx, edx
je 0x47c2fb
mov ecx, dword [esp + 0x18]
call fcn.00474b90
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x38]
mov dword [eax + esi*4], 0
mov esi, dword [esp + 0x24]
mov ecx, esi
mov edx, dword [esp + 0x3c]
push 0
call fcn.004724c0
add esp, 4
test eax, eax
jne 0x47fcd9
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x44]
mov esi, dword [esi + 4]
push 0x60
mov eax, dword [eax + 0x38]
push 0
push esi
mov dword [eax + ecx*4], esi
call fcn.00510fa0
mov eax, dword [esp + 0x40]
add esp, 0xc
mov ecx, dword [esp + 0x2c]
mov byte [esi + 0x18], al
mov eax, dword [esp + 0x24]
mov word [esi + 0x14], cx
push 0x54
push 0
mov eax, dword [eax + 4]
lea eax, [eax + ecx*8]
add eax, 0x60
push eax
mov dword [esi], eax
call fcn.00510fa0
mov edx, dword [esp + 0x44]
add esp, 0xc
mov ecx, dword [esp + 0x48]
or dword [esi + 0x1c], 8
mov byte [esi + 0x19], 1
push dword [esi]
push dword [esp + 0x24]
push dword [esp + 0x38]
call fcn.0046bc40
mov edx, dword [esp + 0x18]
add esp, 0xc
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x20]
mov dword [esi + 8], eax
mov cl, byte [edx + edi*4 + 3]
mov eax, dword [esi]
and cl, 1
mov byte [eax + 0x52], cl
xor eax, eax
cmp byte [edx + edi*4 + 1], 0xfa
setne al
shl eax, 2
xor eax, dword [esi + 0x1c]
and eax, 4
xor dword [esi + 0x1c], eax
jmp 0x47b5c3
mov eax, dword [esp + 0xc]
mov edx, dword [eax + edi*4 + 8]
mov esi, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x38], edx
mov dword [esp + 0x30], esi
mov eax, dword [eax + 0x1c]
sub eax, esi
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 8]
lea eax, [eax + ecx*8]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x24], eax
lea eax, [edx*8 + 0x130]
mov dword [esp + 0x20], eax
mov eax, dword [ecx + 0x38]
mov edx, dword [eax + esi*4]
test edx, edx
je 0x47c412
call fcn.00474b90
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x38]
mov dword [eax + esi*4], 0
mov esi, dword [esp + 0x24]
mov ecx, esi
mov edx, dword [esp + 0x20]
push 0
call fcn.004724c0
add esp, 4
test eax, eax
jne 0x47fcd9
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
mov esi, dword [esi + 4]
push 0x60
mov eax, dword [eax + 0x38]
push 0
push esi
mov dword [esp + 0x38], esi
mov dword [eax + ecx*4], esi
call fcn.00510fa0
mov eax, dword [esp + 0x30]
add esp, 0xc
mov ecx, dword [esp + 0x38]
mov byte [esi + 0x18], 0xff
mov word [esi + 0x14], cx
mov eax, dword [eax + 4]
push 0x54
push 0
lea eax, [eax + ecx*8]
add eax, 0x60
push eax
mov dword [esi], eax
call fcn.00510fa0
mov eax, dword [esp + 0x18]
lea ecx, [esi + 4]
or dword [esi + 0x1c], 1
add esp, 0xc
mov byte [esi + 0x19], 1
xor edx, edx
mov dword [esp + 0x20], ecx
movzx eax, byte [eax + edi*4 + 3]
push 0x41e
or eax, 5
push eax
mov eax, dword [esp + 0x10]
push ecx
push eax
mov ecx, dword [eax]
call fcn.00469a70
mov ecx, eax
add esp, 0x10
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x47c6a5
mov ecx, dword [esi + 4]
lea edx, [eax + 1]
call fcn.0046a9b0
mov dword [esp + 0x14], eax
test eax, eax
jne 0x47c6a5
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + edi*4 + 0x10]
test eax, eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x20]
je 0x47c604
movzx esi, byte [ecx + edi*4 + 3]
mov ecx, dword [eax]
or esi, 2
mov dword [esp + 0x30], ecx
call fcn.00468360
push esi
mov esi, dword [esp + 0x34]
lea edx, [esp + 0xb8]
mov ecx, esi
call fcn.0046fa20
add esp, 4
mov ecx, eax
cmp byte [esi + 9], 0
mov dword [esp + 0x14], ecx
je 0x47c53f
add dword [esi + 0xc], 0xffffffff
jne 0x47c53f
mov eax, dword [esi + 4]
mov eax, dword [eax + 0x38]
test eax, eax
je 0x47c53b
push eax
call dword [0x590b04]
mov ecx, dword [esp + 0x18]
add esp, 4
mov byte [esi + 0xa], 0
test ecx, ecx
jne 0x47c5f7
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x24]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x20]
mov esi, dword [esi]
mov eax, dword [eax]
mov ecx, eax
mov dword [esp + 0x20], eax
call fcn.00468360
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0xb4]
mov edx, dword [eax + 4]
test byte [edx + 0x16], 1
je 0x47c583
mov dword [esp + 0x14], 8
jmp 0x47c5cf
cmp ecx, 1
jne 0x47c599
cmp dword [edx + 0x2c], 0
mov dword [esp + 0x30], 0
cmove ecx, dword [esp + 0x30]
mov dword [esi + 0x44], ecx
or ecx, 0xffffffff
mov word [esi + 0x54], cx
mov ecx, dword [esp + 0x24]
mov dword [esi + 0x10], ecx
mov dword [esi], eax
mov dword [esi + 4], edx
mov byte [esi + 0x50], 1
mov ecx, dword [edx + 8]
mov dword [esi + 8], ecx
test ecx, ecx
je 0x47c5c0
mov dword [ecx + 0xc], esi
mov dword [edx + 8], esi
mov byte [esi + 0x51], 0
mov dword [esp + 0x14], 0
cmp byte [eax + 9], 0
je 0x47c5f7
add dword [eax + 0xc], 0xffffffff
jne 0x47c5f7
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x38]
test eax, eax
je 0x47c5ef
push eax
call dword [0x590b04]
add esp, 4
mov eax, dword [esp + 0x20]
mov byte [eax + 0xa], 0
mov esi, dword [esp + 0x2c]
and dword [esi + 0x1c], 0xfffffffb
jmp 0x47c6a5
mov eax, dword [eax]
mov ecx, eax
mov esi, dword [esi]
mov dword [esp + 0x24], eax
call fcn.00468360
mov eax, dword [esp + 0x24]
mov edx, 1
mov ecx, dword [eax + 4]
test byte [ecx + 0x16], dl
je 0x47c62e
mov dword [esp + 0x14], 8
jmp 0x47c675
cmp dword [ecx + 0x2c], 0
mov dword [esp + 0x20], 0
cmove edx, dword [esp + 0x20]
mov dword [esi + 0x44], edx
or edx, 0xffffffff
mov word [esi + 0x54], dx
mov dword [esi + 0x10], 0
mov dword [esi], eax
mov dword [esi + 4], ecx
mov byte [esi + 0x50], 1
mov edx, dword [ecx + 8]
mov dword [esi + 8], edx
test edx, edx
je 0x47c666
mov dword [edx + 0xc], esi
mov dword [ecx + 8], esi
mov byte [esi + 0x51], 0
mov dword [esp + 0x14], 0
cmp byte [eax + 9], 0
je 0x47c69d
add dword [eax + 0xc], 0xffffffff
jne 0x47c69d
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x38]
test eax, eax
je 0x47c695
push eax
call dword [0x590b04]
add esp, 4
mov eax, dword [esp + 0x24]
mov byte [eax + 0xa], 0
mov esi, dword [esp + 0x2c]
or dword [esi + 0x1c], 4
mov edx, dword [esp + 0xc]
xor eax, eax
cmp byte [edx + edi*4 + 3], 8
setne al
shl eax, 3
xor eax, dword [esi + 0x1c]
and eax, 8
xor dword [esi + 0x1c], eax
jmp 0x47b5c3
mov eax, dword [esp + 0xc]
mov edx, dword [eax + edi*4 + 8]
mov esi, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x30], edx
mov dword [esp + 0x2c], esi
mov eax, dword [eax + 0x1c]
sub eax, esi
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 8]
lea eax, [eax + ecx*8]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x24], eax
lea eax, [edx*8 + 0x130]
mov dword [esp + 0x20], eax
mov eax, dword [ecx + 0x38]
mov edx, dword [eax + esi*4]
test edx, edx
je 0x47c71e
call fcn.00474b90
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x38]
mov dword [eax + esi*4], 0
mov esi, dword [esp + 0x24]
mov ecx, esi
mov edx, dword [esp + 0x20]
push 0
call fcn.004724c0
add esp, 4
test eax, eax
jne 0x47fcd9
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x2c]
mov esi, dword [esi + 4]
push 0x60
mov eax, dword [eax + 0x38]
push 0
push esi
mov dword [eax + ecx*4], esi
call fcn.00510fa0
mov eax, dword [esp + 0x30]
add esp, 0xc
mov ecx, dword [esp + 0x30]
mov byte [esi + 0x18], 0xff
mov word [esi + 0x14], cx
mov eax, dword [eax + 4]
push 0x54
push 0
lea eax, [eax + ecx*8]
add eax, 0x60
push eax
mov dword [esi], eax
call fcn.00510fa0
mov eax, dword [esp + 0x18]
add esp, 0xc
mov ecx, dword [esp + 8]
mov edx, esi
mov eax, dword [eax + edi*4 + 0x10]
mov dword [esi + 8], eax
call fcn.004811a0
jmp 0x47b5bf
mov eax, dword [esp + 0xc]
mov edx, dword [eax + edi*4 + 0xc]
mov esi, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x30], edx
mov dword [esp + 0x2c], esi
mov eax, dword [eax + 0x1c]
sub eax, esi
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 8]
lea eax, [eax + ecx*8]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x20], eax
lea eax, [edx*8 + 0x60]
mov dword [esp + 0x24], eax
mov eax, dword [ecx + 0x38]
mov edx, dword [eax + esi*4]
test edx, edx
je 0x47c7f5
call fcn.00474b90
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x38]
mov dword [eax + esi*4], 0
mov esi, dword [esp + 0x20]
mov ecx, esi
mov edx, dword [esp + 0x24]
push 0
call fcn.004724c0
add esp, 4
test eax, eax
jne 0x47fcd9
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x2c]
mov esi, dword [esi + 4]
push 0x60
mov eax, dword [eax + 0x38]
push 0
push esi
mov dword [eax + ecx*4], esi
call fcn.00510fa0
mov edx, dword [esp + 0x18]
add esp, 0xc
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 8]
mov word [esi + 0x18], 0x1ff
mov word [esi + 0x14], ax
mov eax, dword [edx + edi*4 + 8]
or dword [esi + 0x1c], 4
mov edi, dword [esp + 0x10]
mov dword [esi + 0x10], eax
inc edi
mov esi, dword [esp + 0x1c]
jmp 0x4798da
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0xc]
mov edx, dword [ecx + 0x38]
mov eax, dword [eax + edi*4 + 4]
mov edx, dword [edx + eax*4]
call fcn.00474b90
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [eax + 0x38]
mov edi, dword [esp + 0x10]
inc edi
mov dword [eax + ecx*4], 0
mov ecx, dword [esp + 8]
jmp 0x4798da
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov eax, dword [esp + 0xc]
test byte [esi + 0x1c], 4
movzx edx, byte [eax + edi*4]
mov dword [esp + 0x30], edx
mov byte [esi + 0x19], 0
je 0x47c989
mov eax, dword [eax + edi*4 + 0xc]
mov ecx, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, eax
mov dword [esp + 0x20], eax
call fcn.004796c0
mov ecx, dword [esp + 0x20]
call fcn.00472910
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x20]
mov byte [esi + 0x1a], 0
mov dword [esp + 0x38], edx
movzx ecx, word [eax + 0x1c]
test cl, 4
jne 0x47c93f
test cl, 8
je 0x479976
mov ecx, dword [esp + 0x2c]
call fcn.0050dd30
mov eax, dword [esp + 0x20]
movsd xmm1, qword [eax + 8]
comisd xmm0, xmm1
jbe 0x47c92c
mov eax, dword [esp + 0x30]
test al, 1
jne 0x47c93f
dec eax
jmp 0x47c93b
comisd xmm1, xmm0
jbe 0x47c93f
mov eax, dword [esp + 0x30]
test al, 1
je 0x47c93f
inc eax
mov dword [esp + 0x30], eax
mov ecx, dword [esi]
lea eax, [esp + 0x5c]
push eax
push 0
push dword [esp + 0x40]
xor edx, edx
push dword [esp + 0x38]
call fcn.0046c6d0
mov ecx, eax
add esp, 0x10
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x47fad6
cmp dword [esp + 0x5c], eax
jne 0x47ca0b
mov eax, dword [esp + 0x2c]
mov dword [esi + 0x38], eax
mov eax, dword [esp + 0x38]
mov byte [esi + 0x1a], 1
mov dword [esi + 0x3c], eax
jmp 0x47ca0b
mov ecx, dword [eax + edi*4 + 0x10]
mov eax, dword [esi + 8]
mov dword [esp + 0x18c], eax
lea eax, [edx - 1]
test al, 1
mov word [esp + 0x190], cx
mov ecx, dword [esp + 0x28]
sete al
lea eax, [eax*2 - 1]
mov byte [esp + 0x192], al
mov eax, dword [esp + 0xc]
mov eax, dword [eax + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, 0x4000
mov dword [esp + 0x194], ecx
test word [ecx + 0x1c], ax
je 0x47c9de
call fcn.00472650
mov ecx, dword [esi]
lea eax, [esp + 0x5c]
push eax
push 0
push 0
push 0
lea edx, [esp + 0x19c]
call fcn.0046c6d0
mov ecx, eax
add esp, 0x10
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x47fad6
mov byte [esi + 0x1a], al
mov eax, dword [esp + 0x30]
mov byte [esi + 0x1b], 0
mov dword [esi + 0x44], 0
mov ecx, dword [esp + 0x5c]
cmp eax, 0x3d
jl 0x47ca6a
test ecx, ecx
js 0x47ca54
jne 0x47ca2e
cmp eax, 0x3e
je 0x47ca54
mov dword [esp + 0x5c], 0
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
inc ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 8]
mov edi, dword [esp + 0x10]
jmp 0x4798e0
lea eax, [esp + 0x5c]
mov dword [esp + 0x5c], 0
push eax
push dword [esi]
call fcn.0046cb50
jmp 0x47ca9a
test ecx, ecx
jg 0x47ca86
jne 0x47ca75
cmp eax, 0x3b
je 0x47ca86
mov eax, dword [esi]
xor ecx, ecx
cmp byte [eax + 0x51], 1
setne cl
mov dword [esp + 0x5c], ecx
jmp 0x47caaf
lea eax, [esp + 0x5c]
mov dword [esp + 0x5c], 0
push eax
push dword [esi]
call fcn.0046cce0
mov ecx, eax
add esp, 8
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x47fad6
mov byte [esi + 0x1a], 0
cmp dword [esp + 0x5c], 0
je 0x47ca36
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x1c]
mov ecx, dword [edx + edi*4 + 8]
dec ecx
inc ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 8]
mov edi, dword [esp + 0x10]
jmp 0x4798e0
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esp + 0x28]
mov byte [esi + 0x19], 0
mov eax, dword [edx + edi*4 + 8]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.00472910
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], edx
mov word [esi + 0x1a], 0x100
jmp 0x479cb6
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x38], 0
cmp dword [edx + edi*4 + 0x10], 0
mov eax, dword [eax + 0x38]
mov ecx, dword [edx + edi*4 + 4]
mov esi, dword [eax + ecx*4]
mov eax, dword [edx + edi*4 + 0xc]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x24], esi
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov dword [esp + 0x20], ecx
jle 0x47cbb3
mov eax, dword [esi + 8]
mov dword [esp + 0x114], eax
xor eax, eax
mov dx, word [edx + edi*4 + 0x10]
xor edi, edi
mov word [esp + 0x118], dx
mov dword [esp + 0x11c], ecx
cmp ax, dx
jae 0x47cba6
xor esi, esi
nop
add ecx, esi
mov eax, 0x4000
test word [ecx + 0x1c], ax
je 0x47cb97
call fcn.00472650
mov ecx, dword [esp + 0x11c]
mov dx, word [esp + 0x118]
mov dword [esp + 0x20], ecx
jmp 0x47cb9b
mov ecx, dword [esp + 0x20]
inc edi
movzx eax, dx
add esi, 0x28
cmp edi, eax
jl 0x47cb70
mov edi, dword [esp + 0x48]
lea esi, [esp + 0x114]
jmp 0x47cbf3
mov ecx, dword [esi + 8]
lea eax, [esp + 0x38]
push eax
push 0xbf
lea edx, [esp + 0x270]
call fcn.00476450
mov esi, eax
add esp, 8
test esi, esi
je 0x47fcd9
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
push esi
push dword [edx + 4]
mov edx, dword [edx + 0x18]
mov ecx, dword [ecx + 8]
call fcn.004764c0
add esp, 8
mov eax, dword [esp + 0xc]
mov byte [esi + 6], 0
cmp byte [eax + edi*4], 0x40
jne 0x47cc3c
movzx edx, word [esp + 0x118]
xor ecx, ecx
test edx, edx
jle 0x47cc3c
mov eax, dword [esp + 0x11c]
add eax, 0x1c
nop dword [eax]
test byte [eax], 1
jne 0x47cc2f
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x47cc20
jmp 0x47cc3c
mov eax, dword [esp + 0xc]
mov eax, dword [eax + edi*4 + 8]
dec eax
mov dword [esp + 0x10], eax
lea eax, [esp + 0xb8]
mov edx, esi
mov esi, dword [esp + 0x24]
push eax
push 0
push 0
mov ecx, dword [esi]
push 0
call fcn.0046c6d0
mov edx, dword [esp + 0x1c]
add esp, 0x10
mov ecx, eax
mov dword [esp + 0x14], ecx
cmp dword [edx + edi*4 + 0x10], 0
jne 0x47cc80
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 8]
call fcn.00457fb0
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
test ecx, ecx
jne 0x47b5c3
mov eax, dword [esp + 0xb8]
test eax, eax
mov dword [esi + 0xc], eax
mov al, 1
sete cl
mov byte [esi + 0x1b], 0
sub al, cl
mov dword [esi + 0x44], 0
mov byte [esi + 0x19], al
cmp byte [edx + edi*4], 0x42
jne 0x47ccd2
test ecx, ecx
je 0x47ca3a
mov ecx, dword [edx + edi*4 + 8]
mov esi, dword [esp + 0x1c]
dec ecx
inc ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 8]
mov edi, dword [esp + 0x10]
jmp 0x4798e0
test ecx, ecx
jne 0x47ca3a
mov ecx, dword [edx + edi*4 + 8]
mov esi, dword [esp + 0x1c]
dec ecx
inc ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 8]
mov edi, dword [esp + 0x10]
jmp 0x4798e0
mov ecx, dword [esp + 0xc]
xor edx, edx
mov dword [esp + 0x24], 0
mov eax, dword [ecx + edi*4 + 0xc]
mov ecx, dword [ecx + edi*4 + 4]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
lea eax, [esp + 0x24]
push eax
mov eax, dword [esp + 0x2c]
push 0
mov dword [esp + 0x28], ecx
mov ecx, dword [ecx]
push dword [eax + esi*8 + 0x14]
push dword [eax + esi*8 + 0x10]
call fcn.0046c6d0
mov ecx, dword [esp + 0x30]
add esp, 0x10
mov edx, dword [esp + 0x28]
mov dword [esp + 0x14], eax
mov eax, dword [edx + esi*8 + 0x10]
mov dword [ecx + 0x38], eax
mov eax, dword [edx + esi*8 + 0x14]
mov edx, dword [esp + 0x24]
test edx, edx
mov dword [ecx + 0x3c], eax
sete al
mov byte [ecx + 0x19], 0
mov byte [ecx + 0x1a], al
mov dword [ecx + 0x44], 0
mov byte [ecx + 0x1b], 0
test edx, edx
je 0x47cd7f
mov eax, dword [esp + 0xc]
mov eax, dword [eax + edi*4 + 8]
dec eax
mov dword [esp + 0x10], eax
mov dword [ecx + 0xc], edx
jmp 0x47b5c3
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 0x28]
mov dword [esi + 0x10], eax
mov eax, dword [ecx + 0x2c]
mov dword [esi + 0x14], eax
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 8]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
inc edi
jmp 0x4798da
mov eax, dword [esp + 0xc]
xorps xmm0, xmm0
movlpd qword [esp + 0x50], xmm0
mov dword [esp + 0x30], 0
mov ecx, dword [eax + edi*4 + 4]
mov edi, dword [esp + 0x18]
mov eax, dword [edi + 0x38]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x34], eax
mov esi, dword [eax]
test esi, esi
je 0x47d0c5
test byte [eax + 0x1c], 2
jne 0x47cf0d
cmp byte [esi + 0x51], 1
jne 0x47ce10
test byte [esi + 0x50], 8
jne 0x47ce6f
mov ecx, esi
call fcn.0046c450
mov ecx, eax
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x47facc
cmp byte [esi + 0x51], al
jne 0x47ce40
mov dword [esp + 0x30], 1
lea esi, [eax + 1]
mov dword [esp + 0x14], ecx
xor edi, edi
jmp 0x47cf15
mov ecx, esi
mov dword [esp + 0x30], 0
call fcn.0046c640
mov ecx, eax
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x47ce5f
or byte [esi + 0x50], 8
jmp 0x47ce6b
and byte [esi + 0x50], 0xf7
test ecx, ecx
jne 0x47facc
mov eax, dword [esp + 0x34]
mov edx, dword [eax]
mov dword [esp + 0x24], edx
cmp byte [edx + 0x51], 1
je 0x47ce9f
xorps xmm0, xmm0
mov dword [esp + 0x14], 0
movlpd qword [esp + 0x50], xmm0
mov edi, dword [esp + 0x54]
mov esi, dword [esp + 0x50]
add esi, 1
adc edi, 0
jmp 0x47cf15
cmp word [edx + 0x32], 0
jne 0x47ceea
movsx eax, word [edx + 0x54]
mov edi, dword [edx + eax*4 + 0x80]
movzx esi, word [edx + eax*2 + 0x56]
lea eax, [edx + 0x18]
push eax
mov ecx, dword [edi + 0x40]
movzx edx, byte [ecx + esi*2]
movzx eax, byte [ecx + esi*2 + 1]
mov ecx, edi
shl edx, 8
or edx, eax
movzx eax, word [edi + 0x12]
and edx, eax
add edx, dword [edi + 0x38]
call fcn.00468ce0
mov edx, dword [esp + 0x28]
add esp, 4
mov eax, dword [esp + 0x34]
or byte [edx + 0x50], 2
mov edi, dword [edx + 0x1c]
mov esi, dword [edx + 0x18]
mov dword [esp + 0x14], 0
cmp edi, 0x7fffffff
jl 0x47ce94
jg 0x47cf07
cmp esi, 0xffffffff
jb 0x47ce94
or dword [eax + 0x1c], 2
jmp 0x47cf15
mov edi, dword [esp + 0x54]
mov esi, dword [esp + 0x50]
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0xc]
mov ecx, dword [edx + eax*4 + 0xc]
test ecx, ecx
je 0x47cfc7
mov eax, dword [esp + 0x18]
mov edx, dword [eax + 0xb0]
test edx, edx
je 0x47cf54
mov eax, dword [edx + 4]
test eax, eax
je 0x47cf49
nop
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x47cf40
mov eax, dword [edx + 0xc]
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*8]
jmp 0x47cf5e
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0x28]
lea ecx, [ecx + eax*8]
mov dword [esp + 0x20], ecx
call fcn.00472910
mov ecx, dword [esp + 0x20]
mov dword [ecx + 0x10], eax
mov ax, word [ecx + 0x1c]
mov dword [ecx + 0x14], edx
mov edx, 0xbe04
and ax, dx
mov edx, dword [ecx + 0x10]
or ax, 4
mov word [ecx + 0x1c], ax
mov eax, dword [ecx + 0x14]
cmp edx, 0xffffffff
jne 0x47cf9b
cmp eax, 0x7fffffff
je 0x47fa9b
mov ecx, dword [esp + 0x34]
test byte [ecx + 0x1c], 2
mov ecx, dword [esp + 0x20]
jne 0x47fa9b
add edx, 1
adc eax, 0
cmp edi, eax
jg 0x47cfc1
jl 0x47cfbd
cmp esi, edx
jae 0x47cfc1
mov esi, edx
mov edi, eax
mov dword [ecx + 0x10], esi
mov dword [ecx + 0x14], edi
mov eax, dword [esp + 0x34]
test byte [eax + 0x1c], 2
je 0x47d0a7
mov edi, dword [esp + 0x64]
mov esi, dword [esp + 0x60]
and edi, 0x3fffffff
add esi, 1
mov dword [esp + 0x50], esi
adc edi, 0
xor eax, eax
mov dword [esp + 0x20], eax
xor edx, edx
lea eax, [esp + 0x30]
mov dword [esp + 0x54], edi
push eax
mov eax, dword [esp + 0x38]
push 0
push edi
push esi
mov ecx, dword [eax]
call fcn.0046c6d0
mov edx, eax
add esp, 0x10
mov dword [esp + 0x14], edx
test edx, edx
jne 0x47d0a3
nop
mov ecx, dword [esp + 0x30]
test ecx, ecx
jne 0x47d097
mov eax, dword [esp + 0x20]
inc eax
mov dword [esp + 0x20], eax
cmp eax, 0x64
jge 0x47d097
lea eax, [esp + 0x50]
push eax
push 8
call fcn.00459da0
mov esi, dword [esp + 0x58]
add esp, 8
cmp dword [esp + 0x20], 5
jge 0x47d05a
and esi, 0xffffff
xor edi, edi
jmp 0x47d064
mov edi, dword [esp + 0x54]
and edi, 0x3fffffff
add esi, 1
lea eax, [esp + 0x30]
push eax
mov eax, dword [esp + 0x38]
adc edi, 0
push 0
push edi
push esi
mov ecx, dword [eax]
xor edx, edx
mov dword [esp + 0x60], esi
mov dword [esp + 0x64], edi
call fcn.0046c6d0
mov edx, eax
add esp, 0x10
mov dword [esp + 0x14], edx
test edx, edx
je 0x47d020
jmp 0x47d0a3
test edx, edx
jne 0x47d0a3
test ecx, ecx
je 0x47fa9b
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x1c]
mov word [eax + 0x1a], 0
mov dword [eax + 0x44], 0
mov dword [ecx + 0x10], esi
mov esi, ecx
mov dword [esi + 0x14], edi
jmp 0x47b5c7
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x50]
mov edi, dword [esp + 0x54]
mov dword [ecx + 0x10], esi
mov esi, ecx
mov dword [esi + 0x14], edi
jmp 0x47b5c7
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + edi*4 + 8]
mov ecx, dword [ecx + edi*4 + 4]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x20], eax
cmp dl, 0x46
jne 0x47d129
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 0xc]
mov edi, dword [esp + 0x28]
lea eax, [eax + eax*4]
mov ecx, dword [ecx + eax*8 + 0x10]
mov eax, dword [edi + eax*8 + 0x14]
mov edi, dword [esp + 0x48]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x2c], eax
jmp 0x47d142
mov eax, dword [esp + 0xc]
mov eax, dword [eax + edi*4 + 0xc]
cdq
mov ecx, eax
mov dword [esp + 0x24], eax
mov eax, edx
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0xc]
test byte [edx + edi*4 + 3], 1
je 0x47d154
mov eax, dword [esp + 0x18]
inc dword [eax + 0x5c]
mov eax, dword [esp + 0x2c]
test byte [edx + edi*4 + 3], 2
je 0x47d171
mov edx, dword [esp + 8]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], eax
mov dword [edx + 0x20], ecx
mov dword [edx + 0x24], eax
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x28]
movzx eax, word [ecx + esi*8 + 0x1c]
test al, 1
je 0x47d18e
mov dword [ecx + esi*8 + 4], 0
mov dword [ecx + esi*8 + 0x18], 0
mov cl, byte [edx + edi*4 + 3]
mov byte [esp + 0x43], cl
test cl, 0x10
je 0x47d1a4
mov edx, dword [esp + 0x20]
mov edx, dword [edx + 0xc]
jmp 0x47d1a6
xor edx, edx
test eax, 0x4000
je 0x47d1b7
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + esi*8 + 0x10]
jmp 0x47d1b9
xor ecx, ecx
movzx eax, byte [esp + 0x43]
push edx
shr eax, 3
xor edx, edx
and eax, 1
push eax
mov eax, dword [esp + 0x30]
push ecx
push dword [eax + esi*8 + 0x18]
push dword [eax + esi*8 + 4]
mov eax, dword [esp + 0x34]
push dword [esp + 0x40]
mov esi, dword [esp + 0x3c]
push esi
mov ecx, dword [eax]
call fcn.0046f580
mov ecx, dword [esp + 0x3c]
mov edx, eax
add esp, 0x1c
mov dword [esp + 0x14], eax
mov word [ecx + 0x1a], 0
mov dword [ecx + 0x44], 0
test edx, edx
jne 0x47f8fc
mov eax, dword [esp + 8]
mov edx, dword [eax + 0xc8]
test edx, edx
je 0x47f909
mov eax, dword [esp + 0xc]
mov eax, dword [eax + edi*4 + 0x10]
test eax, eax
je 0x47b5c3
push dword [esp + 0x2c]
movsx ecx, byte [ecx + 0x18]
push esi
mov esi, dword [esp + 0x10]
add ecx, ecx
push eax
mov eax, dword [esi + 0x10]
push dword [eax + ecx*8]
mov eax, dword [esp + 0x1c]
mov ecx, 0x17
test byte [eax + edi*4 + 3], 4
mov eax, 0x12
cmovne eax, ecx
push eax
push dword [esi + 0xc4]
call edx
add esp, 0x18
jmp 0x47b5c3
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov ecx, esi
mov eax, dword [esi + 0x38]
mov dword [esp + 0x20], eax
mov eax, dword [esi + 0x3c]
mov dword [esp + 0x24], eax
call fcn.00475f80
mov ecx, eax
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x47fad6
mov ecx, dword [esi]
call fcn.0046f7d0
mov ecx, eax
mov dword [esi + 0x44], 0
mov dword [esp + 0x14], ecx
test ecx, ecx
mov ecx, dword [esp + 8]
jne 0x47d2ff
mov edx, dword [ecx + 0xc8]
test edx, edx
je 0x47d2ff
mov eax, dword [esp + 0xc]
mov eax, dword [eax + edi*4 + 0x10]
test eax, eax
je 0x47d2ff
test byte [esi + 0x1c], 4
je 0x47d2ff
push dword [esp + 0x24]
movsx ecx, byte [esi + 0x18]
push dword [esp + 0x24]
mov esi, dword [esp + 0x10]
add ecx, ecx
push eax
mov eax, dword [esi + 0x10]
push dword [eax + ecx*8]
push 9
push dword [esi + 0xc4]
call edx
add esp, 0x18
mov ecx, esi
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x1c]
test byte [eax + edi*4 + 8], 1
je case.default.0x479943
mov edx, dword [esp + 0x18]
inc dword [edx + 0x5c]
jmp case.default.0x479943
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov eax, dword [edx + 0x5c]
add dword [ecx + 0x54], eax
inc edi
mov dword [ecx + 0x50], eax
mov dword [edx + 0x5c], 0
mov edx, dword [esp + 0xc]
mov dword [esp + 0x10], edi
jmp 0x4798e0
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edx + edi*4 + 0xc]
mov edx, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
lea eax, [esp + 0xbc]
push eax
mov eax, dword [esp + 0x10]
push dword [eax + edi*4 + 0x10]
call fcn.00481f20
add esp, 8
mov dword [esp + 0x14], eax
cmp dword [esp + 0xbc], 0
mov edx, eax
je 0x47d399
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + edi*4 + 8]
dec ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 8]
jmp 0x47b5cf
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x28]
mov eax, dword [ecx + edi*4 + 8]
mov ecx, dword [ecx + edi*4 + 4]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax + 0x40]
mov eax, dword [ecx + 0x28]
test eax, eax
je 0x47d3e4
mov eax, dword [eax + 4]
lea eax, [eax + eax*2]
shl eax, 4
add eax, dword [ecx + 0x24]
mov esi, dword [eax + 0x14]
mov edi, dword [eax + 0x20]
jmp 0x47d3ec
mov eax, dword [ecx + 0x30]
mov esi, dword [eax + 4]
mov edi, dword [eax]
mov ecx, dword [esp + 0x1c]
mov edx, esi
push 0
call fcn.004724c0
add esp, 4
test eax, eax
jne 0x47faa6
mov ecx, dword [esp + 0x1c]
mov edx, 0xbe10
push esi
push edi
mov ax, word [ecx + 0x1c]
mov dword [ecx + 0x18], esi
and ax, dx
mov esi, ecx
or ax, 0x10
mov word [ecx + 0x1c], ax
push dword [esi + 4]
call fcn.00510a20
mov edi, dword [esp + 0x1c]
add esp, 0xc
mov ecx, dword [esp + 8]
inc edi
mov dword [esp + 0x14], 0
jmp 0x4798d6
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x28]
mov eax, dword [ecx + edi*4 + 8]
mov ecx, dword [ecx + edi*4 + 4]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov ecx, esi
mov dword [esp + 0x24], esi
mov edi, dword [esi]
mov dword [esp + 0x2c], edi
call fcn.00475f80
mov ecx, eax
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x47fad6
test byte [esi + 0x1c], 4
jne 0x47d542
cmp byte [edi + 0x51], 1
je 0x47d4b3
xorps xmm0, xmm0
movlpd qword [esp + 0x80], xmm0
mov ecx, dword [esp + 0x84]
mov esi, dword [esp + 0x80]
jmp 0x47d504
cmp word [edi + 0x32], 0
jne 0x47d4fe
movsx eax, word [edi + 0x54]
movzx esi, word [edi + eax*2 + 0x56]
mov edi, dword [edi + eax*4 + 0x80]
mov eax, dword [esp + 0x2c]
add eax, 0x18
push eax
mov ecx, dword [edi + 0x40]
movzx eax, byte [ecx + esi*2]
movzx edx, byte [ecx + esi*2 + 1]
mov ecx, edi
shl eax, 8
or edx, eax
movzx eax, word [edi + 0x12]
and edx, eax
add edx, dword [edi + 0x38]
call fcn.00468ce0
mov edi, dword [esp + 0x30]
add esp, 4
or byte [edi + 0x50], 2
mov esi, dword [edi + 0x18]
mov ecx, dword [edi + 0x1c]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x58]
cdq
cmp ecx, edx
jg 0x47d51e
jl 0x47d599
cmp esi, eax
jbe 0x47d599
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x18]
push str.string_or_blob_too_big
push ecx
add eax, 0x2c
push eax
call fcn.00458380
mov dword [esp + 0x20], 0x12
jmp 0x47fcfc
cmp word [edi + 0x32], 0
jne 0x47d58d
movsx eax, word [edi + 0x54]
movzx esi, word [edi + eax*2 + 0x56]
mov edi, dword [edi + eax*4 + 0x80]
mov eax, dword [esp + 0x2c]
add eax, 0x18
push eax
mov ecx, dword [edi + 0x40]
movzx eax, byte [ecx + esi*2]
movzx edx, byte [ecx + esi*2 + 1]
mov ecx, edi
shl eax, 8
or edx, eax
movzx eax, word [edi + 0x12]
and edx, eax
add edx, dword [edi + 0x38]
call fcn.00468ce0
mov edi, dword [esp + 0x30]
add esp, 4
or byte [edi + 0x50], 2
mov ecx, dword [esp + 8]
mov esi, dword [edi + 0x24]
cmp esi, dword [ecx + 0x58]
ja 0x47d522
mov ecx, dword [esp + 0x1c]
mov edx, esi
push 0
call fcn.004724c0
add esp, 4
test eax, eax
jne 0x47fcd9
mov edx, dword [esp + 0x1c]
mov ecx, 0xbe10
mov ax, word [edx + 0x1c]
and ax, cx
mov dword [edx + 0x18], esi
or ax, 0x10
mov word [edx + 0x1c], ax
mov eax, dword [esp + 0x24]
test byte [eax + 0x1c], 4
jne 0x47d5dd
push 0
push dword [edx + 4]
jmp 0x47d617
mov eax, dword [edx + 4]
mov dword [esp + 0x24], eax
mov al, byte [edi + 0x51]
test al, al
jne 0x47d5fc
mov dword [esp + 0x14], 4
mov byte [edx + 0x1e], 1
jmp 0x47b5c3
cmp al, 3
jb 0x47d611
mov ecx, edi
call fcn.004689a0
mov ecx, eax
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x47d628
push 0
push dword [esp + 0x28]
push esi
xor edx, edx
mov ecx, edi
call fcn.0046bfc0
mov dword [esp + 0x20], eax
add esp, 0xc
mov edx, dword [esp + 0x1c]
mov byte [edx + 0x1e], 1
jmp 0x47b5c3
mov edx, dword [esp + 0xc]
mov ecx, dword [edx + edi*4 + 4]
mov edi, dword [esp + 0x18]
mov eax, dword [edi + 0x38]
mov esi, dword [eax + ecx*4]
cmp byte [esi + 0x19], 0
je 0x47d668
mov esi, dword [esp + 0x1c]
mov eax, 1
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 8]
inc edi
mov word [esi + 0x1c], ax
jmp 0x4798da
cmp byte [esi + 0x1b], 0
je 0x47d687
mov eax, dword [esi + 0x30]
mov dword [esp + 0x90], eax
mov eax, dword [esi + 0x34]
mov dword [esp + 0x94], eax
jmp 0x47d7d4
mov ecx, dword [esi + 0x20]
test ecx, ecx
je 0x47d724
mov edi, dword [ecx]
lea edx, [esp + 0x90]
push edx
push ecx
mov dword [esp + 0x28], edi
mov eax, dword [edi]
mov eax, dword [eax + 0x30]
call eax
mov dword [esp + 0x1c], eax
add esp, 8
mov eax, dword [esp + 0x18]
mov esi, dword [eax]
mov ecx, esi
mov edx, dword [eax + 0x2c]
call fcn.00457fb0
mov ecx, dword [edi + 8]
mov dword [esp + 0x24], ecx
test ecx, ecx
jne 0x47d6ce
xor esi, esi
jmp 0x47d706
cmp byte [ecx], 0
mov eax, ecx
je 0x47d6db
inc eax
cmp byte [eax], 0
jne 0x47d6d5
sub eax, ecx
mov ecx, esi
and eax, 0x3fffffff
lea edi, [eax + 1]
mov edx, edi
call fcn.004581e0
mov esi, eax
test esi, esi
je 0x47d702
push edi
push dword [esp + 0x28]
push esi
call fcn.00510a20
add esp, 0xc
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
mov dword [eax + 0x2c], esi
push dword [edi + 8]
call fcn.00457f10
add esp, 4
mov dword [edi + 8], 0
jmp 0x47d7d4
mov ecx, esi
call fcn.00475f80
mov ecx, eax
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x47fabe
cmp byte [esi + 0x1a], al
je 0x47d757
mov eax, dword [esi + 0x38]
mov dword [esp + 0x90], eax
mov eax, dword [esi + 0x3c]
mov dword [esp + 0x94], eax
jmp 0x47d7d4
mov edx, dword [esi]
mov dword [esp + 0x24], edx
cmp byte [edx + 0x51], 1
je 0x47d771
xorps xmm0, xmm0
movlpd qword [esp + 0x90], xmm0
jmp 0x47d7cc
cmp word [edx + 0x32], 0
jne 0x47d7b8
movsx eax, word [edx + 0x54]
mov edi, dword [edx + eax*4 + 0x80]
movzx esi, word [edx + eax*2 + 0x56]
lea eax, [edx + 0x18]
push eax
mov ecx, dword [edi + 0x40]
movzx edx, byte [ecx + esi*2]
movzx eax, byte [ecx + esi*2 + 1]
mov ecx, edi
shl edx, 8
or edx, eax
movzx eax, word [edi + 0x12]
and edx, eax
add edx, dword [edi + 0x38]
call fcn.00468ce0
mov edx, dword [esp + 0x28]
add esp, 4
or byte [edx + 0x50], 2
mov eax, dword [edx + 0x18]
mov dword [esp + 0x90], eax
mov eax, dword [edx + 0x1c]
mov dword [esp + 0x94], eax
mov dword [esp + 0x14], 0
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x90]
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x94]
mov dword [esi + 0x14], eax
jmp 0x47b5c7
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax]
mov word [eax + 0x19], 1
mov dword [eax + 0x44], 0
test ecx, ecx
je 0x47a4e6
call fcn.00468830
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
inc edi
mov ecx, dword [esp + 8]
jmp 0x4798da
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
xor eax, eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x2c], eax
mov esi, dword [ecx]
cmp byte [esi + 0x51], 1
jne 0x47d863
test byte [esi + 0x50], 8
je 0x47d863
xor edx, edx
mov dword [esp + 0x14], edx
jmp 0x47d8b1
mov ecx, esi
call fcn.0046c450
mov ecx, eax
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x47d8a5
cmp byte [esi + 0x51], al
jne 0x47d87e
lea eax, [ecx + 1]
jmp 0x47d8a9
mov ecx, esi
mov dword [esp + 0x2c], 0
call fcn.0046c640
mov dword [esp + 0x14], eax
test eax, eax
mov eax, dword [esp + 0x2c]
jne 0x47d89f
or byte [esi + 0x50], 8
jmp 0x47d8a9
and byte [esi + 0x50], 0xf7
jmp 0x47d8a9
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
mov byte [ecx + 0x19], al
mov word [ecx + 0x1a], 0
mov dword [ecx + 0x44], 0
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + edi*4 + 8]
test ecx, ecx
jle 0x47f8fc
mov esi, dword [esp + 0x1c]
test eax, eax
je 0x47d399
dec ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 8]
jmp 0x47b5cf
mov eax, dword [esp + 0x18]
inc dword [eax + 0x74]
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov eax, 1
mov dword [esp + 0x20], eax
mov dword [esp + 0x3c], eax
cmp dword [esi + 0x40], 0
je 0x47d934
mov ecx, dword [esp + 8]
lea eax, [esp + 0x3c]
push eax
mov edx, esi
call fcn.00481920
mov dword [esp + 0x18], eax
add esp, 4
mov eax, dword [esp + 0x3c]
jmp 0x47d97b
mov eax, dword [esi]
mov ecx, eax
mov dword [esp + 0x24], eax
call fcn.0046c450
mov ecx, eax
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x47d96a
mov ecx, dword [esp + 0x24]
cmp byte [ecx + 0x51], al
jne 0x47d95b
mov eax, 1
jmp 0x47d96e
xor eax, eax
call fcn.0046c5c0
mov dword [esp + 0x14], eax
xor eax, eax
jmp 0x47d96e
mov eax, dword [esp + 0x20]
mov word [esi + 0x1a], 0
mov dword [esi + 0x44], 0
mov edx, dword [esp + 0x14]
mov byte [esi + 0x19], al
mov esi, dword [esp + 0x1c]
test eax, eax
je 0x47d399
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + edi*4 + 8]
dec ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 8]
jmp 0x47b5cf
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
lea eax, [esp + 0x8c]
mov ecx, dword [esp + 8]
mov edx, esi
push eax
mov dword [esp + 0x90], 0
call fcn.00481ce0
add esp, 4
jmp 0x47da24
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [eax + 0x38]
cmp dword [eax + ecx*4], 0
je 0x47b5c7
jmp 0x47d9f8
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov eax, dword [edx + edi*4 + 0xc]
mov dword [esp + 0x8c], eax
lea eax, [esp + 0x8c]
push eax
push dword [esi]
mov eax, dword [edx + edi*4 + 0x10]
call eax
add esp, 8
mov dword [esp + 0x14], eax
mov dword [esi + 0x44], 0
cmp dword [esp + 0x8c], 0
jne 0x47da60
mov ecx, dword [esp + 0xc]
mov byte [esi + 0x19], 0
mov eax, dword [ecx + edi*4 + 8]
dec eax
mov dword [esp + 0x10], eax
movzx eax, byte [ecx + edi*4 + 3]
mov ecx, dword [esp + 0x18]
inc dword [ecx + eax*4 + 0x6c]
mov byte [esi + 0x1a], 0
jmp 0x47f4ec
mov byte [esi + 0x19], 1
mov byte [esi + 0x1a], 0
jmp 0x47f4ec
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x28]
test byte [edx + edi*4 + 3], 1
mov eax, dword [eax + 0x38]
mov ecx, dword [edx + edi*4 + 4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edx + edi*4 + 8]
mov dword [esp + 0x24], ecx
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, dword [ecx]
mov dword [esp + 0x20], eax
je 0x47daa5
mov eax, dword [esp + 0x18]
inc dword [eax + 0x5c]
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x47dacd
mov ecx, esi
call fcn.00472650
mov ecx, eax
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x47b5c3
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp dword [ecx + 0x40], 0
je 0x47dae7
mov edx, ecx
mov ecx, dword [esp + 8]
push esi
call fcn.004817c0
add esp, 4
jmp 0x47b5bf
test byte [edx + edi*4 + 3], 0x10
je 0x47daf3
mov eax, dword [ecx + 0xc]
jmp 0x47daf5
xor eax, eax
mov ecx, dword [esp + 0x20]
push eax
push dword [edx + edi*4 + 0xc]
mov eax, dword [esi + 0x18]
push 0
push 0
cdq
push 0x55509d
push edx
mov edx, dword [esi + 4]
push eax
call fcn.0046f580
mov dword [esp + 0x30], eax
add esp, 0x1c
mov eax, dword [esp + 0x24]
mov dword [eax + 0x44], 0
jmp 0x47b5c3
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov eax, dword [esi + 8]
mov ecx, dword [esi]
mov dword [esp + 0x1a0], eax
mov ax, word [edx + edi*4 + 0xc]
mov word [esp + 0x1a4], ax
mov eax, dword [edx + edi*4 + 8]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x24], ecx
mov byte [esp + 0x1a6], 0
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x1a8], eax
lea edx, [esp + 0x1a0]
lea eax, [esp + 0xc0]
push eax
push 0
push 0
push 0
call fcn.0046c6d0
mov ecx, eax
add esp, 0x10
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x47dbb5
cmp dword [esp + 0xc0], eax
jne 0x47dbb5
mov ecx, dword [esp + 0x24]
call fcn.0046f7d0
mov dword [esp + 0x14], eax
mov dword [esi + 0x44], 0
jmp 0x47b5c3
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov eax, 1
mov ecx, dword [esp + 0x1c]
mov edi, dword [esi]
mov word [ecx + 0x1c], ax
mov ecx, esi
call fcn.00475f80
mov ecx, eax
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x47fac8
cmp byte [esi + 0x19], al
jne 0x47dc5e
lea eax, [esp + 0xd8]
xorps xmm0, xmm0
push eax
mov edx, edi
movlpd qword [esp + 0xdc], xmm0
call fcn.004771e0
mov ecx, eax
add esp, 4
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x47fad6
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0xd8]
inc dword [esp + 0x10]
mov ecx, dword [esp + 8]
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0xdc]
mov dword [esi + 0x14], eax
mov eax, 4
mov word [esi + 0x1c], ax
jmp 0x4798e0
mov esi, dword [esp + 0x1c]
inc dword [esp + 0x10]
mov ecx, dword [esp + 8]
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
jmp 0x4798e0
mov eax, dword [esp + 0xc]
cmp dl, 0x70
mov edx, dword [esp + 0x28]
mov dword [esp + 0x20], 0
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 8]
mov dword [esp + 0x1b4], eax
mov eax, dword [esp + 0xc]
mov ax, word [eax + edi*4 + 0x10]
mov word [esp + 0x1b8], ax
sbb al, al
mov byte [esp + 0x1ba], al
mov eax, dword [esp + 0xc]
mov eax, dword [eax + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x1bc], eax
lea edx, [esp + 0x1b4]
lea eax, [esp + 0x20]
push eax
call fcn.004773a0
mov ecx, dword [esp + 0x10]
add esp, 4
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x20]
test byte [ecx + edi*4], 1
jne 0x47dcfb
neg eax
jmp 0x47dcfc
inc eax
mov edx, dword [esp + 0x14]
test eax, eax
jle 0x47d399
mov ecx, dword [ecx + edi*4 + 8]
dec ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 8]
jmp 0x47b5cf
mov eax, dword [ecx + 4]
xor edx, edx
test eax, eax
je 0x47dd4d
cmp dword [eax + 0x28], 0xbdf20da3
jne 0x47dd46
mov ecx, dword [eax + 0x58]
test ecx, 0x200
je 0x47dd46
and cl, 0xc
cmp cl, 8
jae 0x47dd46
cmp dword [eax + 0x4c], 0
jl 0x47dd46
inc edx
mov eax, dword [eax + 0x34]
test eax, eax
jne 0x47dd23
mov eax, 1
mov word [esi + 0x1c], ax
cmp edx, eax
jg 0x47fb20
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x44], 0
mov eax, dword [ecx + edi*4 + 0xc]
mov esi, dword [ecx + edi*4 + 4]
mov ecx, eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 8]
shl ecx, 4
mov dword [esp + 0x20], ecx
mov eax, dword [eax + 0x10]
mov ecx, dword [eax + ecx + 4]
mov dword [esp + 0x24], ecx
call fcn.00468360
lea eax, [esp + 0x44]
mov edx, esi
mov esi, dword [esp + 0x24]
mov ecx, esi
push eax
call fcn.0046fef0
add esp, 4
mov dword [esp + 0x14], eax
cmp byte [esi + 9], 0
je 0x47ddd0
add dword [esi + 0xc], 0xffffffff
jne 0x47ddd0
mov eax, dword [esi + 4]
mov eax, dword [eax + 0x38]
test eax, eax
je 0x47ddcc
push eax
call dword [0x590b04]
add esp, 4
mov byte [esi + 0xa], 0
cmp dword [esp + 0x14], 0
mov eax, 4
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x44]
mov word [ecx + 0x1c], ax
mov eax, esi
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jne 0x47b5c3
test esi, esi
je 0x47b5c3
mov eax, dword [esp + 0xc]
mov edx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 8]
mov edi, dword [eax + 0x10]
add edi, dword [esp + 0x20]
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x47de31
nop word [eax + eax]
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x20], esi
jne 0x47de2b
mov dword [ecx + 0x20], edx
mov eax, dword [eax]
test eax, eax
jne 0x47de20
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x47de51
nop dword [eax + eax]
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x2c], esi
jne 0x47de4b
mov dword [ecx + 0x2c], edx
mov eax, dword [eax]
test eax, eax
jne 0x47de40
mov al, byte [esp + 0x2c]
inc al
mov byte [esp + 0x5b], al
jmp 0x47b5c3
mov edx, dword [esp + 0xc]
lea eax, [esp + 0x34]
mov ecx, dword [ecx + 0x10]
mov dword [esp + 0x24], 0
mov dword [esp + 0x34], 0
cmp dword [edx + edi*4 + 0xc], 0
cmove eax, dword [esp + 0x24]
push eax
mov eax, dword [edx + edi*4 + 8]
mov edx, dword [edx + edi*4 + 4]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.0046fe60
mov ecx, dword [esp + 0x10]
add esp, 4
mov dword [esp + 0x14], eax
cmp dword [ecx + edi*4 + 0xc], 0
je 0x47b5c7
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x34]
add dword [edx + 0x5c], eax
mov ecx, dword [ecx + edi*4 + 0xc]
test ecx, ecx
jle 0x47b5c7
mov edi, dword [esp + 0x28]
lea ecx, [ecx + ecx*4]
cdq
add dword [edi + ecx*8 + 0x10], eax
adc dword [edi + ecx*8 + 0x14], edx
jmp 0x47b5c7
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov edx, dword [ecx + 0x40]
test edx, edx
je 0x47df12
mov ecx, dword [esp + 8]
call fcn.00481250
inc dword [esp + 0x10]
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
jmp 0x4798e0
mov ecx, dword [ecx]
push 0
mov edx, dword [ecx + 0x44]
mov ecx, dword [ecx]
call fcn.0046fe60
add esp, 4
mov dword [esp + 0x14], eax
jmp 0x47b5c7
mov eax, dword [esp + 0xc]
mov dword [esp + 0x48], 0
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 8]
shl ecx, 4
add ecx, dword [eax + 0x10]
xor eax, eax
cmp dl, 0x76
setne al
mov esi, dword [ecx + 4]
inc eax
mov ecx, esi
mov dword [esp + 0x24], eax
call fcn.00468360
push dword [esp + 0x24]
lea edx, [esp + 0x4c]
mov ecx, esi
call fcn.0046fa20
add esp, 4
mov dword [esp + 0x14], eax
cmp byte [esi + 9], 0
je 0x47df97
add dword [esi + 0xc], 0xffffffff
jne 0x47df97
mov eax, dword [esi + 4]
mov eax, dword [eax + 0x38]
test eax, eax
je 0x47df93
push eax
call dword [0x590b04]
add esp, 4
mov byte [esi + 0xa], 0
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x48]
cdq
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], edx
jmp 0x47b5c7
mov esi, dword [esp + 0xc]
mov eax, str.sqlite_master
mov ecx, str.sqlite_temp_master
mov edx, dword [esi + edi*4 + 4]
cmp edx, 1
push dword [esi + edi*4 + 0x10]
mov edi, dword [esp + 0xc]
cmovne ecx, eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x134], eax
mov eax, dword [esp + 0x1c]
add eax, 0x2c
mov dword [esp + 0x13c], edx
mov dword [esp + 0x138], eax
add edx, edx
mov eax, dword [edi + 0x10]
push ecx
push dword [eax + edx*8]
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
push edi
call fcn.00459a10
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x47e014
mov dword [esp + 0x14], 7
mov ecx, edi
jmp 0x47e067
push 0
lea eax, [esp + 0x134]
mov byte [edi + 0x89], 1
push eax
push fcn.004a05b0
push esi
push edi
mov dword [esp + 0x150], 0
call fcn.0049cfb0
add esp, 0x14
mov edx, esi
test eax, eax
mov ecx, edi
cmove eax, dword [esp + 0x13c]
mov dword [esp + 0x14], eax
call fcn.00457fb0
mov edx, dword [esp + 0x14]
mov ecx, edi
mov byte [ecx + 0x89], 0
test edx, edx
je 0x47e072
call fcn.0048d560
mov edx, dword [esp + 0x14]
mov ecx, edi
cmp edx, 7
je 0x47fcdd
mov esi, dword [esp + 0x1c]
jmp 0x47b5cf
mov eax, dword [esp + 0xc]
mov edx, dword [eax + edi*4 + 4]
call fcn.0048bb70
mov dword [esp + 0x14], eax
jmp 0x47b5c7
mov eax, dword [esp + 0xc]
mov edx, dword [eax + edi*4 + 0x10]
mov ecx, dword [eax + edi*4 + 4]
mov eax, edx
mov edi, dword [esp + 8]
shl ecx, 4
add ecx, dword [edi + 0x10]
test edx, edx
je 0x47e0cd
cmp byte [edx], 0
je 0x47e0c6
nop dword [eax + eax]
inc eax
cmp byte [eax], 0
jne 0x47e0c0
sub eax, edx
and eax, 0x3fffffff
mov ecx, dword [ecx + 0xc]
push 0
push eax
add ecx, 8
call fcn.0045bd10
add esp, 8
mov edx, eax
mov ecx, edi
call fcn.0048d650
mov edx, dword [esp + 0xc]
mov ecx, edi
mov edi, dword [esp + 0x10]
or dword [ecx + 0x18], 2
inc edi
mov dword [esp + 0x10], edi
jmp 0x4798e0
mov eax, dword [esp + 0xc]
push dword [eax + edi*4 + 0x10]
mov edx, dword [eax + edi*4 + 4]
call fcn.0048d3c0
mov ecx, dword [esp + 0xc]
add esp, 4
inc dword [esp + 0x10]
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
jmp 0x4798e0
mov eax, dword [esp + 0xc]
push dword [eax + edi*4 + 0x10]
mov edx, dword [eax + edi*4 + 4]
call fcn.004ab640
mov ecx, dword [esp + 0xc]
add esp, 4
inc dword [esp + 0x10]
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
jmp 0x4798e0
mov esi, dword [esp + 0xc]
mov eax, dword [esi + edi*4 + 8]
mov dword [esp + 0x24], eax
lea edx, [eax*4 + 4]
call fcn.004581e0
mov edx, eax
mov dword [esp + 0x2c], edx
test edx, edx
je 0x47fcd9
mov ecx, dword [esi + edi*4 + 0xc]
lea eax, [ecx + ecx*4]
mov ecx, dword [esi + edi*4 + 4]
mov dword [esp + 0x30], eax
xor esi, esi
mov eax, dword [esp + 0x28]
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*8]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x20], ecx
test eax, eax
jle 0x47e1be
mov edi, ecx
mov ecx, edi
call fcn.00472910
mov edx, dword [esp + 0x2c]
add edi, 0x28
mov dword [edx + esi*4], eax
inc esi
mov eax, dword [esp + 0x24]
cmp esi, eax
jl 0x47e1a0
mov edi, dword [esp + 0x48]
mov dword [edx + esi*4], 0
lea ecx, [esp + 0x70]
mov esi, dword [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x34]
push dword [esi + ecx*8 + 0x10]
mov esi, dword [esp + 0x10]
push eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 0x10]
movzx eax, byte [eax + edi*4 + 3]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00470f60
mov edx, dword [esp + 0x38]
add esp, 0xc
mov ecx, esi
mov edi, eax
call fcn.00457fb0
mov ecx, dword [esp + 0x30]
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x70]
cdq
sub dword [esi + ecx*8 + 0x10], eax
mov eax, esi
sbb dword [eax + ecx*8 + 0x14], edx
mov ecx, dword [esp + 0x20]
call fcn.00472ba0
mov esi, dword [esp + 0x70]
test esi, esi
je 0x47e249
test edi, edi
je 0x47fcd9
mov ecx, dword [esp + 0x20]
mov edx, edi
push fcn.00457f10
push 1
push 0xffffffffffffffff
call fcn.00472e30
add esp, 0xc
movzx edx, byte [esp + 0x4c]
mov ecx, dword [esp + 0x20]
call fcn.004724a0
inc dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
jmp 0x4798e0
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x28]
mov eax, dword [ecx + edi*4 + 4]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x1c], 0x20
lea esi, [edx + eax*8]
mov eax, dword [ecx + edi*4 + 8]
lea edi, [eax + eax*4]
jne 0x47e2a1
mov ecx, esi
call fcn.00472c20
test byte [esi + 0x1c], 0x20
je 0x47fcd9
mov eax, dword [esp + 0x28]
mov ecx, dword [esi + 0x10]
push dword [eax + edi*8 + 0x14]
push dword [eax + edi*8 + 0x10]
call fcn.00460b00
mov esi, dword [esp + 0x24]
add esp, 8
inc dword [esp + 0x10]
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
jmp 0x4798e0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + edi*4 + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x1c], 0x20
lea ecx, [ecx + eax*8]
mov dword [esp + 0x24], ecx
je 0x47e35f
mov esi, dword [ecx + 0x10]
movzx eax, word [esi + 0x1a]
test al, 2
jne 0x47e311
test al, 1
jne 0x47e30c
mov ecx, dword [esi + 8]
call fcn.00460c10
mov ecx, dword [esp + 0x24]
mov dword [esi + 8], eax
or word [esi + 0x1a], 2
mov eax, dword [esi + 8]
test eax, eax
je 0x47e35f
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], edx
mov dword [esi + 8], eax
test eax, eax
jne 0x47e33e
mov ecx, esi
call fcn.00460ab0
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0xc]
push edx
push ecx
mov ecx, dword [esp + 0x30]
mov eax, dword [eax + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.00472bf0
add esp, 8
jmp 0x47f4ec
call fcn.00472ba0
jmp case.0x479943.16
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x28]
mov eax, dword [ecx + edi*4 + 4]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x1c], 0x20
lea esi, [edx + eax*8]
mov eax, dword [ecx + edi*4 + 0xc]
mov ecx, dword [ecx + edi*4 + 0x10]
mov dword [esp + 0x24], ecx
lea eax, [eax + eax*4]
mov dword [esp + 0x20], eax
jne 0x47e3b2
mov ecx, esi
call fcn.00472c20
test byte [esi + 0x1c], 0x20
je 0x47fcd9
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
test ecx, ecx
je 0x47e3d9
push dword [edx + eax*8 + 0x14]
push dword [edx + eax*8 + 0x10]
mov edx, ecx
mov ecx, dword [esi + 0x10]
call fcn.00460e20
add esp, 8
test eax, eax
jne 0x479976
mov ecx, dword [esp + 0x24]
test ecx, ecx
js 0x47e3f6
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x28]
push dword [ecx + eax*8 + 0x14]
push dword [ecx + eax*8 + 0x10]
mov ecx, dword [esi + 0x10]
call fcn.00460b00
add esp, 8
inc dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
jmp 0x4798e0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x28]
mov edx, dword [eax + edi*4 + 0x10]
mov eax, dword [eax + edi*4 + 0xc]
mov dword [esp + 0x24], edx
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x2c], ecx
cmp byte [eax + edi*4 + 3], 0
je 0x47e464
mov eax, dword [esp + 0x18]
mov ecx, dword [edx + 0x14]
mov eax, dword [eax + 0xb0]
test eax, eax
je 0x47e460
nop dword [eax]
cmp dword [eax + 0x18], ecx
je 0x47dc62
mov eax, dword [eax + 4]
test eax, eax
jne 0x47e450
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 8]
mov eax, dword [eax + 0xb8]
cmp eax, dword [edi + 0x80]
jge 0x47fb3a
test byte [ecx + 0x1c], 0x40
jne 0x47e557
mov ecx, dword [edx + 0xc]
mov esi, dword [edx + 8]
add esi, ecx
lea eax, [esi + esi*4]
lea ecx, [ecx + eax*2]
mov eax, dword [edx + 0x10]
lea ecx, [ecx + 0x12]
lea edx, [eax + ecx*4]
mov ecx, edi
call fcn.004581b0
mov edi, eax
mov dword [esp + 0x20], edi
test edi, edi
je 0x47fcd9
mov ecx, dword [esp + 0x2c]
call fcn.00472890
mov eax, dword [esp + 0x2c]
mov ecx, 0x40
mov edx, dword [esp + 0x24]
mov word [eax + 0x1c], cx
mov ecx, dword [esp + 0x18]
mov dword [eax + 0x10], edi
mov dword [edi], ecx
mov dword [edi + 0x3c], esi
mov eax, dword [edx + 0xc]
mov dword [edi + 0x40], eax
mov eax, dword [esp + 0x10]
mov dword [edi + 0x2c], eax
mov eax, dword [ecx + 8]
mov dword [edi + 0xc], eax
mov eax, dword [ecx + 0x1c]
mov dword [edi + 0x34], eax
mov eax, dword [ecx + 0x38]
mov dword [edi + 0x14], eax
mov eax, dword [ecx + 0x24]
mov dword [edi + 0x28], eax
mov eax, dword [ecx + 4]
mov dword [edi + 8], eax
mov eax, dword [ecx + 0x20]
mov dword [edi + 0x30], eax
mov eax, dword [edx + 0x14]
mov dword [edi + 0x18], eax
mov eax, dword [ecx + 0xc8]
mov dword [edi + 0x10], eax
mov eax, dword [ecx + 0xc4]
mov dword [edi + 0x38], eax
lea eax, [esi*4 + 9]
add eax, esi
lea ecx, [edi + eax*8]
lea eax, [edi + 0x48]
cmp eax, ecx
je 0x47e55a
mov esi, dword [esp + 8]
mov edi, 0x80
nop
mov word [eax + 0x1c], di
mov dword [eax], esi
add eax, 0x28
cmp eax, ecx
jne 0x47e540
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
jmp 0x47e55a
mov edi, dword [ecx + 0x10]
mov ecx, dword [esp + 0x18]
lea esi, [edi + 0x20]
mov dword [esp + 0x28], esi
inc dword [ecx + 0xb8]
mov eax, dword [ecx + 0xb0]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x60]
mov dword [esi], eax
mov eax, dword [esp + 0x64]
mov dword [esi + 4], eax
mov eax, dword [ecx + 0x5c]
mov dword [edi + 0x44], eax
mov dword [ecx + 8], esi
mov dword [ecx + 0x5c], 0
mov dword [ecx + 0xb0], edi
mov eax, dword [edi + 0x3c]
mov dword [ecx + 0x1c], eax
movzx eax, word [edi + 0x40]
mov dword [ecx + 0x24], eax
mov eax, dword [ecx + 0x1c]
inc eax
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov esi, dword [esp + 0x18]
mov dword [esi + 0x38], ecx
mov eax, dword [edx]
mov dword [esi + 4], eax
mov dword [esp + 0xc], eax
mov eax, dword [edx + 4]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x24]
lea ecx, [ecx + eax*4]
mov dword [esi + 0xc8], ecx
mov eax, dword [edx + 0x10]
push eax
push 0
mov dword [esi + 0xc4], eax
or esi, 0xffffffff
push ecx
call fcn.00510fa0
mov ecx, dword [esp + 0x14]
add esp, 0xc
mov edx, dword [esp + 0xc]
inc esi
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x10]
jmp 0x4798e0
mov eax, dword [esp + 0x18]
push 0x1000
mov edx, dword [eax + 0xb0]
mov eax, dword [edx + 0x2c]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 8]
mov eax, dword [eax + ecx*4 + 4]
mov ecx, dword [esp + 0x10]
add eax, dword [ecx + edi*4 + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
lea edx, [eax + ecx*8]
mov ecx, esi
call fcn.00472cd0
mov ecx, dword [esp + 0xc]
add esp, 4
inc dword [esp + 0x10]
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
jmp 0x4798e0
test dword [ecx + 0x18], 0x1000000
mov eax, dword [esp + 0xc]
je 0x47e67e
mov eax, dword [eax + edi*4 + 8]
mov edi, dword [esp + 0x10]
cdq
add dword [ecx + 0x1f8], eax
adc dword [ecx + 0x1fc], edx
inc edi
mov edx, dword [esp + 0xc]
mov dword [esp + 0x10], edi
jmp 0x4798e0
cmp dword [eax + edi*4 + 4], 0
mov eax, dword [eax + edi*4 + 8]
cdq
je 0x47e6a8
add dword [ecx + 0x1f0], eax
mov edi, dword [esp + 0x10]
adc dword [ecx + 0x1f4], edx
inc edi
mov edx, dword [esp + 0xc]
mov dword [esp + 0x10], edi
jmp 0x4798e0
mov edi, dword [esp + 0x18]
add dword [edi + 0x90], eax
adc dword [edi + 0x94], edx
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
inc edi
mov dword [esp + 0x10], edi
jmp 0x4798e0
mov edx, dword [esp + 0xc]
cmp dword [edx + edi*4 + 4], 0
je 0x47e704
mov eax, dword [ecx + 0x1f0]
or eax, dword [ecx + 0x1f4]
jne 0x479b2b
mov eax, dword [ecx + 0x1f8]
or eax, dword [ecx + 0x1fc]
jne 0x479b2b
mov edi, dword [edx + edi*4 + 8]
dec edi
inc edi
jmp 0x4798da
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x18]
mov eax, dword [eax + 0x90]
or eax, dword [esi + 0x94]
mov esi, dword [esp + 0x1c]
jmp 0x47e6e1
mov eax, dword [esp + 0x18]
mov edx, dword [eax + 0xb0]
test edx, edx
je 0x47e74f
mov eax, dword [edx + 4]
test eax, eax
je 0x47e73c
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x47e733
mov eax, dword [esp + 0xc]
mov eax, dword [eax + edi*4 + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
lea esi, [eax + ecx*8]
jmp 0x47e761
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + edi*4 + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
mov dword [esp + 0x24], esi
call fcn.00472910
mov dword [esi + 0x10], eax
mov ecx, 0xbe04
movzx eax, word [esi + 0x1c]
and ax, cx
mov dword [esi + 0x14], edx
mov ecx, dword [esp + 0x28]
or ax, 4
mov word [esi + 0x1c], ax
mov eax, dword [esp + 0xc]
mov eax, dword [eax + edi*4 + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.00472910
mov dword [esi + 0x10], eax
mov ecx, 0xbe04
movzx eax, word [esi + 0x1c]
and ax, cx
mov dword [esi + 0x14], edx
mov ecx, dword [esi + 0x10]
or ax, 4
mov word [esi + 0x1c], ax
mov eax, dword [esp + 0x24]
cmp dword [eax + 0x14], edx
jg 0x47e7d2
jl 0x47e7cc
cmp dword [eax + 0x10], ecx
jae 0x47e7d2
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], edx
inc dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
jmp 0x4798e0
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 4]
lea eax, [eax + eax*4]
cmp dword [esi + eax*8 + 0x14], 0
mov esi, dword [esp + 0x1c]
jl 0x479b2b
jg 0x47e6f9
mov esi, dword [esp + 0x28]
cmp dword [esi + eax*8 + 0x10], 0
mov esi, dword [esp + 0x1c]
jbe 0x479b2b
mov edi, dword [edx + edi*4 + 8]
dec edi
inc edi
jmp 0x4798da
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 4]
lea eax, [eax + eax*4]
cmp dword [esi + eax*8 + 0x14], 0
mov esi, dword [esp + 0x1c]
jg 0x479b2b
jl 0x47e6f9
mov ecx, dword [esp + 0x28]
cmp dword [ecx + eax*8 + 0x10], 0
mov ecx, dword [esp + 8]
jae 0x479b2b
mov edi, dword [edx + edi*4 + 8]
dec edi
inc edi
jmp 0x4798da
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x28]
mov eax, dword [edx + edi*4 + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + edi*4 + 0xc]
cdq
add dword [esi + ecx*8 + 0x10], eax
mov eax, esi
adc dword [eax + ecx*8 + 0x14], edx
mov edx, esi
mov eax, dword [eax + ecx*8 + 0x10]
mov esi, dword [esp + 0x1c]
or eax, dword [edx + ecx*8 + 0x14]
mov edx, dword [esp + 0xc]
jne 0x47e8b8
mov ecx, dword [edx + edi*4 + 8]
dec ecx
inc ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 8]
mov edi, dword [esp + 0x10]
jmp 0x4798e0
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 8]
mov edi, dword [esp + 0x10]
jmp 0x4798e0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x28]
movzx edx, byte [eax + edi*4 + 3]
mov eax, dword [eax + edi*4 + 8]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [esp + 0x18]
mov esi, dword [eax + 0xc]
xor eax, eax
test edx, edx
jle 0x47e8fd
mov dword [esi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, edx
jl 0x47e8f2
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + edi*4 + 0x10]
mov dword [esp + 0x1c8], eax
mov eax, dword [ecx + edi*4 + 0xc]
mov ecx, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x1f8], eax
inc dword [eax + 0x18]
mov eax, 1
mov ecx, dword [esp + 0x1c8]
mov word [esp + 0x1ec], ax
mov eax, dword [esp + 8]
mov dword [esp + 0x1d4], 0
mov dword [esp + 0x1f4], 0
mov dword [esp + 0x1f0], 0
mov dword [esp + 0x1d0], eax
mov dword [esp + 0x208], 0
mov dword [esp + 0x1fc], 0
mov byte [esp + 0x20c], 0
test byte [ecx + 2], 0x20
je 0x47e997
mov eax, dword [esp + 0xc]
mov eax, dword [eax + edi*4 - 4]
mov dword [esp + 0x1fc], eax
push esi
push edx
lea eax, [esp + 0x1d0]
push eax
mov eax, dword [ecx + 0x10]
call eax
add esp, 0xc
cmp dword [esp + 0x208], 0
je 0x47e9e6
mov dl, 1
lea ecx, [esp + 0x1d0]
call fcn.004730d0
push eax
mov eax, dword [esp + 0x1c]
push 0x56b764
push dword [esp + 0x10]
add eax, 0x2c
push eax
call fcn.00458380
mov eax, dword [esp + 0x218]
add esp, 0x10
mov dword [esp + 0x14], eax
cmp byte [esp + 0x20c], 0
je 0x47ea12
mov eax, dword [esp + 0xc]
mov eax, dword [eax + edi*4 - 0x10]
test eax, eax
je 0x47ea12
mov ecx, dword [esp + 0x28]
lea eax, [eax + eax*4]
push 0
push 1
lea ecx, [ecx + eax*8]
call fcn.00472bf0
add esp, 8
lea ecx, [esp + 0x1d0]
call fcn.00472890
jmp 0x47b5c3
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x28]
mov eax, dword [ecx + edi*4 + 4]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov edx, dword [ecx + edi*4 + 0x10]
mov ecx, esi
call fcn.004727b0
mov dword [esp + 0x14], eax
test eax, eax
je 0x47ea6b
mov dl, 1
mov ecx, esi
call fcn.004730d0
push eax
mov eax, dword [esp + 0x1c]
push 0x56b764
push dword [esp + 0x10]
add eax, 0x2c
push eax
call fcn.00458380
add esp, 0x10
movzx edx, byte [esp + 0x4c]
mov ecx, esi
call fcn.004724a0
movzx eax, word [esi + 0x1c]
test al, 0x12
je 0x47b5c3
mov edx, dword [esi + 0x18]
test eax, 0x4000
je 0x47ea90
add edx, dword [esi + 0x10]
mov eax, dword [esi]
xor ecx, ecx
cmp edx, dword [eax + 0x58]
setg cl
test ecx, ecx
mov ecx, dword [esp + 8]
jne 0x47d522
mov esi, dword [esp + 0x1c]
jmp case.default.0x479943
mov esi, dword [esp + 0xc]
lea eax, [esp + 0x264]
push eax
lea eax, [esp + 0x264]
mov dword [esp + 0x260], 0
push eax
push dword [esi + edi*4 + 8]
mov edx, dword [esi + edi*4 + 4]
mov dword [esp + 0x270], 0xffffffff
mov dword [esp + 0x26c], 0xffffffff
call fcn.004bd9d0
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x14], ecx
cmp ecx, 5
jne 0x47eb12
mov dword [esp + 0x14], 0
mov dword [esp + 0x25c], 1
mov eax, dword [esi + edi*4 + 0xc]
xor esi, esi
mov ecx, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [esp + esi*4 + 0x25c]
mov ecx, edi
cdq
push edx
push eax
call fcn.00472bf0
inc esi
add esp, 8
add edi, 0x28
cmp esi, 3
jl 0x47eb22
jmp 0x47b5c3
mov eax, dword [esp + 0xc]
mov esi, dword [eax + edi*4 + 0xc]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 8]
add ecx, ecx
cmp esi, 0xffffffff
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8 + 4]
mov dword [esp + 0x24], eax
mov eax, dword [eax + 4]
mov ecx, dword [eax]
mov dword [esp + 0x20], ecx
movzx edx, byte [ecx + 5]
cmove esi, edx
mov dword [esp + 0x2c], edx
cmp byte [ecx + 0x10], 3
jae 0x47eb94
mov eax, dword [ecx + 0x40]
cmp dword [eax], 0
je 0x47eb96
cmp dword [ecx + 0x4c], 0
jl 0x47eb96
jg 0x47eb94
cmp dword [ecx + 0x48], 0
jbe 0x47eb96
mov esi, edx
cmp byte [ecx + 0xf], 0
mov eax, 0x55509d
jne 0x47eba7
mov eax, dword [ecx + 0xa8]
cmp esi, 5
jne 0x47ebd5
mov ecx, eax
call fcn.0045a580
test eax, eax
je 0x47ebd1
mov ecx, dword [esp + 0x20]
cmp byte [ecx + 4], 0
mov eax, dword [ecx + 0x3c]
mov eax, dword [eax]
jne 0x47ebd5
cmp dword [eax], 2
jl 0x47ebd1
cmp dword [eax + 0x34], 0
jne 0x47ebd5
mov esi, edx
jmp 0x47ec45
cmp esi, edx
je 0x47ec45
cmp edx, 5
je 0x47ebe3
cmp esi, 5
jne 0x47ec45
mov eax, dword [esp + 8]
cmp byte [eax + 0x3e], 0
je 0x47fb62
cmp dword [eax + 0x90], 1
jg 0x47fb62
cmp edx, 5
jne 0x47ec18
call fcn.00465d40
mov dword [esp + 0x14], eax
test eax, eax
jne 0x47ec41
mov ecx, dword [esp + 0x20]
mov edx, esi
jmp 0x47ec22
cmp edx, 4
jne 0x47ec27
mov edx, 2
call fcn.00465af0
mov ecx, dword [esp + 0x24]
xor edx, edx
cmp esi, 5
sete dl
inc edx
call fcn.00471620
mov dword [esp + 0x14], eax
test eax, eax
je 0x47ec45
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x20]
mov edx, esi
call fcn.00465af0
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x28]
mov ecx, dword [ecx + edi*4 + 8]
lea ecx, [ecx + ecx*4]
lea esi, [edx + ecx*8]
mov ecx, 0xa02
mov dword [esp + 0x1c], esi
mov word [esi + 0x1c], cx
cmp eax, 6
jne 0x47ec78
xor ecx, ecx
jmp 0x47ec7f
mov ecx, dword [eax*4 + 0x556444]
mov dword [esi + 4], ecx
call fcn.0045a580
movzx edx, byte [esp + 0x4c]
mov ecx, esi
mov dword [esi + 0x18], eax
mov byte [esi + 0x1e], 1
call fcn.004724a0
jmp 0x47b5c7
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 8]
lea ecx, [ecx + 0x2c]
call fcn.004ae1f0
mov dword [esp + 0x14], eax
jmp 0x47b5c7
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 8]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov ecx, dword [eax + ecx*8 + 4]
call fcn.0046b3f0
mov ecx, eax
mov dword [esp + 0x14], ecx
cmp ecx, 0x65
jne 0x47b5c7
mov eax, dword [esp + 0xc]
mov dword [esp + 0x14], 0
mov ecx, dword [eax + edi*4 + 8]
dec ecx
xor edx, edx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 8]
jmp 0x47b5cf
mov edx, dword [esp + 0xc]
cmp dword [edx + edi*4 + 4], 0
jne 0x47ed1b
call fcn.00477510
mov edi, dword [esp + 0x10]
inc edi
jmp 0x4798da
mov edi, dword [esp + 0x18]
or dword [edi + 0x58], 0x20
mov edi, dword [esp + 0x10]
inc edi
jmp 0x4798da
mov edx, dword [esp + 0xc]
mov al, byte [edx + edi*4 + 0xc]
mov byte [esp + 0xc4], al
test al, al
jne 0x47ed4d
test dword [ecx + 0x18], 0x4000
jne case.default.0x479943
mov eax, dword [edx + edi*4 + 4]
mov ecx, dword [ecx + 0x10]
add eax, eax
push dword [esp + 0xc4]
mov edx, dword [edx + edi*4 + 8]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00471500
mov ecx, eax
add esp, 4
mov dword [esp + 0x14], ecx
cmp cl, 6
jne 0x47b5c7
mov eax, dword [esp + 0xc]
push dword [eax + edi*4 + 0x10]
mov eax, dword [esp + 0x1c]
push str.database_table_is_locked:__s
push dword [esp + 0x10]
add eax, 0x2c
push eax
call fcn.00458380
add esp, 0x10
jmp 0x47b5c7
mov eax, dword [esp + 0xc]
mov esi, dword [eax + edi*4 + 0x10]
mov edx, esi
call fcn.004af540
mov dword [esp + 0x14], eax
test esi, esi
je 0x47b5c3
mov eax, dword [esp + 0x18]
mov edi, dword [esi + 8]
mov dword [esp + 0x20], edi
mov esi, dword [eax]
mov ecx, esi
mov edx, dword [eax + 0x2c]
call fcn.00457fb0
mov ecx, dword [edi + 8]
mov dword [esp + 0x24], ecx
test ecx, ecx
jne 0x47ede3
xor esi, esi
jmp 0x47ee21
cmp byte [ecx], 0
mov eax, ecx
je 0x47edf6
nop word [eax + eax]
inc eax
cmp byte [eax], 0
jne 0x47edf0
sub eax, ecx
mov ecx, esi
and eax, 0x3fffffff
lea edi, [eax + 1]
mov edx, edi
call fcn.004581e0
mov esi, eax
test esi, esi
je 0x47ee1d
push edi
push dword [esp + 0x28]
push esi
call fcn.00510a20
add esp, 0xc
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
mov dword [eax + 0x2c], esi
push dword [edi + 8]
call fcn.00457f10
add esp, 4
mov dword [edi + 8], 0
jmp 0x47b5c3
mov eax, dword [esp + 0x18]
add eax, 0x2c
push eax
mov eax, dword [esp + 0x10]
push dword [eax + edi*4 + 0x10]
mov edx, dword [eax + edi*4 + 4]
call fcn.004aeff0
add esp, 8
mov dword [esp + 0x14], eax
jmp 0x47b5c7
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x58]
and eax, 0xfffffffb
or eax, 8
mov dword [edx + 0x58], eax
mov eax, dword [esp + 0xc]
push dword [eax + edi*4 + 0x10]
mov edx, dword [eax + edi*4 + 4]
call fcn.004af310
mov ecx, dword [esp + 0x1c]
add esp, 4
mov dword [esp + 0x14], eax
and dword [ecx + 0x58], 0xfffffff3
jmp 0x47b5c7
mov eax, dword [esp + 0xc]
lea ecx, [esp + 0x2c]
mov dword [esp + 0x2c], 0
push ecx
mov eax, dword [eax + edi*4 + 0x10]
mov esi, dword [eax + 8]
push esi
mov dword [esp + 0x40], esi
mov eax, dword [esi]
mov dword [esp + 0x44], eax
mov eax, dword [eax + 0x18]
call eax
mov ecx, dword [esp + 0x20]
add esp, 8
mov dword [esp + 0x14], eax
mov eax, dword [ecx]
mov edx, dword [ecx + 0x2c]
mov ecx, eax
mov dword [esp + 0x24], eax
call fcn.00457fb0
mov ecx, dword [esi + 8]
mov dword [esp + 0x30], ecx
test ecx, ecx
jne 0x47eeeb
xor esi, esi
jmp 0x47ef26
cmp byte [ecx], 0
mov eax, ecx
je 0x47eef8
inc eax
cmp byte [eax], 0
jne 0x47eef2
sub eax, ecx
mov ecx, dword [esp + 0x24]
and eax, 0x3fffffff
inc eax
mov edx, eax
mov dword [esp + 0x20], eax
call fcn.004581e0
mov esi, eax
test esi, esi
je 0x47ef26
push dword [esp + 0x20]
push dword [esp + 0x34]
push esi
call fcn.00510a20
add esp, 0xc
mov eax, dword [esp + 0x18]
mov dword [eax + 0x2c], esi
mov esi, dword [esp + 0x38]
push dword [esi + 8]
call fcn.00457f10
add esp, 4
mov dword [esi + 8], 0
cmp dword [esp + 0x14], 0
jne 0x47b5c3
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x18]
mov dword [eax], esi
mov eax, dword [esp + 0xc]
mov edi, dword [eax + edi*4 + 4]
mov eax, dword [edx + 0x1c]
sub eax, edi
lea ecx, [eax + eax*4]
mov eax, dword [edx + 8]
lea esi, [eax + ecx*8]
mov eax, dword [edx + 0x38]
mov edx, dword [eax + edi*4]
test edx, edx
je 0x47ef8f
mov ecx, dword [esp + 0x18]
call fcn.00474b90
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x38]
mov dword [eax + edi*4], 0
push 0
mov edx, 0x60
mov ecx, esi
call fcn.004724c0
add esp, 4
test eax, eax
jne 0x47efe8
mov eax, dword [esp + 0x18]
mov esi, dword [esi + 4]
push 0x60
push 0
mov eax, dword [eax + 0x38]
push esi
mov dword [eax + edi*4], esi
call fcn.00510fa0
mov ecx, dword [esp + 0x14]
xor eax, eax
mov edx, dword [esp + 0x18]
add esp, 0xc
inc dword [esp + 0x10]
mov edi, dword [esp + 0x10]
mov byte [esi + 0x18], 0xff
mov word [esi + 0x14], ax
mov eax, dword [esp + 0x2c]
mov dword [esi + 0x20], eax
mov esi, dword [esp + 0x1c]
jmp 0x4798e0
mov eax, dword [esp + 8]
push dword [esp + 0x2c]
mov byte [eax + 0x40], 1
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 0x1c]
call eax
add esp, 4
jmp 0x47b5c3
mov ecx, dword [esp + 0xc]
mov esi, dword [esp + 0x28]
add esi, 0x28
mov eax, dword [ecx + edi*4 + 0xc]
mov ecx, dword [ecx + edi*4 + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x18]
lea esi, [esi + edx*8]
movd xmm0, esi
mov dword [esp + 0x3c], esi
mov eax, dword [eax + 0x38]
mov esi, dword [esi + 0x10]
pshufd xmm3, xmm0, 0
mov eax, dword [eax + ecx*4]
xor ecx, ecx
mov dword [esp + 0x34], eax
mov eax, dword [eax + 0x20]
mov dword [esp + 0x2c], eax
mov eax, dword [eax]
mov dword [esp + 0x20], eax
mov eax, dword [eax]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x28]
mov eax, dword [eax + edx*8 + 0x10]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x18]
mov edx, dword [eax + 0xc]
mov dword [esp + 0x24], edx
test esi, esi
jle 0x47f121
cmp esi, 8
jb 0x47f101
cmp dword [0x598a80], 2
jl 0x47f101
movaps xmm2, xmmword [0x578ac0]
mov eax, esi
and eax, reloc.OLEAUT32.dll_VariantInit
jns 0x47f097
dec eax
or eax, 0xfffffff8
inc eax
movaps xmm1, xmmword [0x578ad0]
mov edx, esi
sub edx, eax
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x24]
mov edi, dword [esp + 0x38]
nop
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm0, xmm0, 0
lea edx, [edx + 0x20]
paddd xmm0, xmm2
add ecx, 8
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x20], xmm0
movd xmm0, eax
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x10], xmm0
cmp ecx, edi
jl 0x47f0b0
mov edi, dword [esp + 0x48]
mov edx, dword [esp + 0x24]
cmp ecx, esi
jge 0x47f121
mov edi, dword [esp + 0x3c]
lea eax, [ecx + 1]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov edi, dword [esp + 0x48]
mov dword [edx + ecx*4], eax
inc ecx
add eax, 0x28
cmp ecx, esi
jl 0x47f116
mov ecx, dword [esp + 0x18]
push edx
push esi
mov eax, dword [ecx + 0x58]
and eax, 0xfffffff7
or eax, 4
mov dword [ecx + 0x58], eax
mov eax, dword [esp + 0x14]
push dword [eax + edi*4 + 0x10]
mov eax, dword [esp + 0x3c]
push dword [esp + 0x50]
push dword [esp + 0x3c]
mov eax, dword [eax + 0x20]
call eax
mov dword [esp + 0x28], eax
add esp, 0x14
mov eax, dword [esp + 0x18]
mov esi, dword [eax]
mov ecx, esi
mov edx, dword [eax + 0x2c]
and dword [eax + 0x58], 0xfffffff3
call fcn.00457fb0
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x38], ecx
test ecx, ecx
jne 0x47f17a
xor esi, esi
jmp 0x47f1b3
cmp byte [ecx], 0
mov eax, ecx
je 0x47f187
inc eax
cmp byte [eax], 0
jne 0x47f181
sub eax, ecx
mov ecx, esi
and eax, 0x3fffffff
inc eax
mov edx, eax
mov dword [esp + 0x24], eax
call fcn.004581e0
mov esi, eax
test esi, esi
je 0x47f1b3
push dword [esp + 0x24]
push dword [esp + 0x3c]
push esi
call fcn.00510a20
add esp, 0xc
mov eax, dword [esp + 0x18]
mov dword [eax + 0x2c], esi
mov esi, dword [esp + 0x20]
push dword [esi + 8]
call fcn.00457f10
add esp, 4
mov dword [esi + 8], 0
cmp dword [esp + 0x14], 0
jne 0x47f1f8
mov eax, dword [esp + 0x30]
push dword [esp + 0x2c]
mov eax, dword [eax + 0x28]
call eax
add esp, 4
test eax, eax
je 0x47f1f8
mov eax, dword [esp + 0xc]
mov eax, dword [eax + edi*4 + 8]
dec eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x34]
mov byte [eax + 0x19], 0
jmp 0x47b5c3
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edx + edi*4 + 0xc]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x2c], ecx
cmp byte [ecx + 0x19], 0
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x20], eax
je 0x47f24f
mov ecx, eax
call fcn.00472ba0
inc dword [esp + 0x10]
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
jmp 0x4798e0
mov eax, dword [ecx + 0x20]
push 0x48
push 0
mov eax, dword [eax]
mov dword [esp + 0x2c], eax
mov esi, dword [eax]
lea eax, [esp + 0x218]
push eax
call fcn.00510fa0
add esp, 0xc
lea ecx, [esp + 0x218]
call fcn.00472890
mov eax, dword [esp + 0x20]
mov ecx, 1
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x218], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [esp + 0x228], xmm0
movq xmm0, qword [eax + 0x20]
movq qword [esp + 0x238], xmm0
mov word [eax + 0x1c], cx
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0
mov eax, dword [esp + 0x234]
and eax, 0xbe01
or eax, ecx
mov word [esp + 0x234], ax
mov eax, dword [esp + 0xc]
push dword [eax + edi*4 + 8]
lea eax, [esp + 0x214]
push eax
mov eax, dword [esp + 0x34]
push dword [eax + 0x20]
mov eax, dword [esi + 0x2c]
call eax
mov dword [esp + 0x20], eax
add esp, 0xc
mov eax, dword [esp + 0x18]
mov esi, dword [eax]
mov ecx, esi
mov edx, dword [eax + 0x2c]
call fcn.00457fb0
mov ecx, dword [esp + 0x24]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x2c], ecx
test ecx, ecx
jne 0x47f316
xor esi, esi
jmp 0x47f34d
cmp byte [ecx], 0
mov eax, ecx
je 0x47f326
nop dword [eax]
inc eax
cmp byte [eax], 0
jne 0x47f320
sub eax, ecx
mov ecx, esi
and eax, 0x3fffffff
lea edi, [eax + 1]
mov edx, edi
call fcn.004581e0
mov esi, eax
test esi, esi
je 0x47f34d
push edi
push dword [esp + 0x30]
push esi
call fcn.00510a20
add esp, 0xc
mov eax, dword [esp + 0x18]
mov dword [eax + 0x2c], esi
mov esi, dword [esp + 0x24]
push dword [esi + 8]
call fcn.00457f10
mov ecx, dword [esp + 0x18]
add esp, 4
movzx edx, byte [esp + 0x4c]
mov dword [esi + 8], 0
mov eax, dword [esp + 0x250]
test eax, eax
cmovne ecx, eax
mov dword [esp + 0x14], ecx
lea ecx, [esp + 0x218]
call fcn.004724a0
mov esi, dword [esp + 0x20]
mov ecx, esi
call fcn.00472890
movups xmm0, xmmword [esp + 0x218]
mov eax, 1
movups xmmword [esi], xmm0
movups xmm0, xmmword [esp + 0x228]
movups xmmword [esi + 0x10], xmm0
movq xmm0, qword [esp + 0x238]
movq qword [esi + 0x20], xmm0
mov word [esp + 0x234], ax
mov dword [esp + 0x238], 0
mov dword [esp + 0x23c], 0
jmp 0x47ea77
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x38], ecx
cmp byte [ecx + 0x19], 0
jne 0x47b5c7
mov eax, dword [ecx + 0x20]
mov edi, dword [esp + 0x18]
mov esi, dword [eax]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x30], esi
mov edx, dword [esi]
mov eax, dword [eax + 0x58]
and eax, 0xfffffff7
mov dword [esp + 0x3c], edx
or eax, 4
mov dword [edi + 0x58], eax
push dword [ecx + 0x20]
mov eax, dword [edx + 0x24]
call eax
mov ecx, edi
mov dword [esp + 0x18], eax
add esp, 4
mov eax, dword [ecx]
and dword [ecx + 0x58], 0xfffffff3
mov edx, dword [ecx + 0x2c]
mov ecx, eax
mov dword [esp + 0x24], eax
call fcn.00457fb0
mov ecx, dword [esi + 8]
mov edi, dword [esp + 0x48]
mov dword [esp + 0x2c], ecx
test ecx, ecx
jne 0x47f462
xor esi, esi
jmp 0x47f4a4
cmp byte [ecx], 0
mov eax, ecx
je 0x47f476
nop dword [eax]
inc eax
cmp byte [eax], 0
jne 0x47f470
sub eax, ecx
mov ecx, dword [esp + 0x24]
and eax, 0x3fffffff
inc eax
mov edx, eax
mov dword [esp + 0x20], eax
call fcn.004581e0
mov esi, eax
test esi, esi
je 0x47f4a4
push dword [esp + 0x20]
push dword [esp + 0x30]
push esi
call fcn.00510a20
add esp, 0xc
mov eax, dword [esp + 0x18]
mov dword [eax + 0x2c], esi
mov esi, dword [esp + 0x30]
push dword [esi + 8]
call fcn.00457f10
add esp, 4
mov dword [esi + 8], 0
cmp dword [esp + 0x14], 0
jne case.0x479943.16
mov eax, dword [esp + 0x38]
push dword [eax + 0x20]
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 0x28]
call eax
add esp, 4
test eax, eax
jne 0x47f4ec
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + edi*4 + 8]
dec ecx
mov dword [esp + 0x10], ecx
mov esi, dword [esp + 8]
cmp dword [esi + 0xe8], 0
jne 0x47fca2
mov ecx, dword [esi + 0x11c]
test ecx, ecx
je 0x47b5c3
mov eax, dword [esp + 0x68]
cmp eax, dword [esp + 0x74]
jb 0x47b5c3
mov edi, dword [esi + 0x124]
xor edx, edx
div edi
push dword [esi + 0x120]
sub edi, edx
add edi, dword [esp + 0x6c]
mov dword [esp + 0x78], edi
call ecx
add esp, 4
test eax, eax
je 0x47b5c3
mov dword [esp + 0x14], 9
jmp 0x47fcff
mov ecx, dword [esp + 0xc]
mov edx, 1
mov eax, dword [ecx + edi*4 + 0x10]
mov eax, dword [eax + 8]
mov dword [esp + 0x24], eax
mov eax, dword [ecx + edi*4 + 4]
mov ecx, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.004724a0
mov ecx, eax
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x47b5c3
mov edi, dword [esp + 0x24]
push dword [esi + 4]
push edi
mov eax, dword [edi]
mov eax, dword [eax + 0x4c]
call eax
mov dword [esp + 0x1c], eax
add esp, 8
mov eax, dword [esp + 0x18]
mov esi, dword [eax]
mov ecx, esi
mov edx, dword [eax + 0x2c]
call fcn.00457fb0
mov ecx, dword [edi + 8]
mov dword [esp + 0x20], ecx
test ecx, ecx
jne 0x47f5b9
xor esi, esi
jmp 0x47f5f1
cmp byte [ecx], 0
mov eax, ecx
je 0x47f5c6
inc eax
cmp byte [eax], 0
jne 0x47f5c0
sub eax, ecx
mov ecx, esi
and eax, 0x3fffffff
lea edi, [eax + 1]
mov edx, edi
call fcn.004581e0
mov esi, eax
test esi, esi
je 0x47f5ed
push edi
push dword [esp + 0x24]
push esi
call fcn.00510a20
add esp, 0xc
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
mov dword [eax + 0x2c], esi
push dword [edi + 8]
call fcn.00457f10
mov ecx, dword [esp + 0x1c]
add esp, 4
mov dword [edi + 8], 0
and dword [ecx + 0x58], 0xffffffdf
jmp 0x47b5c3
mov edx, dword [esp + 0xc]
mov eax, dword [edx + edi*4 + 0x10]
mov edx, dword [edx + edi*4 + 8]
mov eax, dword [eax + 8]
mov dword [esp + 0x20], eax
mov eax, dword [eax]
mov dword [esp + 0x24], eax
cmp dword [eax + 0x34], 0
je case.default.0x479943
mov al, byte [ecx + 0x44]
mov ecx, dword [esp + 0x28]
mov byte [esp + 0x43], al
mov eax, dword [esp + 0x18]
mov esi, dword [eax + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [eax + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
xor eax, eax
test edx, edx
jle 0x47f66b
mov dword [esi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, edx
jl 0x47f660
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov al, byte [eax + edi*4 + 3]
mov byte [ecx + 0x44], al
lea eax, [esp + 0x128]
push eax
mov eax, dword [esp + 0x28]
push esi
push edx
push dword [esp + 0x2c]
mov eax, dword [eax + 0x34]
call eax
mov ecx, dword [esp + 0x18]
add esp, 0x10
mov dword [esp + 0x14], eax
mov al, byte [esp + 0x43]
mov byte [ecx + 0x44], al
mov eax, dword [esp + 0x18]
mov esi, dword [eax]
mov ecx, esi
mov edx, dword [eax + 0x2c]
call fcn.00457fb0
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 8]
mov dword [esp + 0x2c], ecx
test ecx, ecx
jne 0x47f6c6
xor esi, esi
jmp 0x47f702
cmp byte [ecx], 0
mov eax, ecx
je 0x47f6d6
nop dword [eax]
inc eax
cmp byte [eax], 0
jne 0x47f6d0
sub eax, ecx
mov ecx, esi
and eax, 0x3fffffff
inc eax
mov edx, eax
mov dword [esp + 0x24], eax
call fcn.004581e0
mov esi, eax
test esi, esi
je 0x47f702
push dword [esp + 0x24]
push dword [esp + 0x30]
push esi
call fcn.00510a20
add esp, 0xc
mov eax, dword [esp + 0x18]
mov dword [eax + 0x2c], esi
mov esi, dword [esp + 0x20]
push dword [esi + 8]
call fcn.00457f10
mov ecx, dword [esp + 0xc]
add esp, 4
cmp dword [esp + 0x14], 0
mov dword [esi + 8], 0
mov esi, dword [esp + 0xc]
jne 0x47f751
cmp dword [esi + edi*4 + 4], 0
je 0x47f751
mov eax, dword [esp + 0x128]
mov edx, dword [esp + 0x12c]
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], edx
mov dword [ecx + 0x20], eax
mov dword [ecx + 0x24], edx
mov edx, dword [esp + 0x14]
cmp dl, 0x13
jne 0x47f7ae
mov eax, dword [esi + edi*4 + 0x10]
cmp byte [eax + 0x10], 0
je 0x47f7ae
mov al, byte [esi + edi*4 + 3]
cmp al, 4
jne 0x47f782
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
inc edi
mov dword [esp + 0x14], 0
jmp 0x4798d6
cmp al, 5
jne 0x47f79b
mov esi, dword [esp + 0x18]
mov eax, 2
mov byte [esi + 0x56], al
mov esi, dword [esp + 0x1c]
jmp 0x47b5cf
mov esi, dword [esp + 0x18]
movzx eax, al
mov byte [esi + 0x56], al
mov esi, dword [esp + 0x1c]
jmp 0x47b5cf
mov esi, dword [esp + 0x18]
inc dword [esi + 0x5c]
mov esi, dword [esp + 0x1c]
jmp 0x47b5cf
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [eax + 0x10]
add ecx, ecx
inc dword [esp + 0x10]
mov edi, dword [esp + 0x10]
mov eax, dword [eax + ecx*8 + 4]
mov ecx, dword [esp + 8]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x2c]
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], 0
jmp 0x4798e0
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [eax + 0x10]
add ecx, ecx
mov esi, dword [eax + ecx*8 + 4]
mov ecx, dword [edx + edi*4 + 0xc]
test ecx, ecx
je 0x47f81e
mov eax, dword [esi + 4]
mov edi, dword [eax + 0x2c]
cmp edi, ecx
cmovb edi, ecx
jmp 0x47f820
xor edi, edi
mov ecx, esi
call fcn.00468360
mov eax, dword [esi + 4]
mov eax, dword [eax]
test edi, edi
jle 0x47f836
mov dword [eax + 0x9c], edi
cmp byte [esi + 9], 0
mov edi, dword [eax + 0x9c]
je 0x47f860
add dword [esi + 0xc], 0xffffffff
jne 0x47f860
mov eax, dword [esi + 4]
mov ecx, dword [eax + 0x38]
test ecx, ecx
je 0x47f85c
push ecx
call dword [0x590b04]
add esp, 4
mov byte [esi + 0xa], 0
mov esi, dword [esp + 0x1c]
mov eax, edi
inc dword [esp + 0x10]
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 8]
cdq
mov dword [esi + 0x14], edx
mov edx, dword [esp + 0xc]
mov dword [esi + 0x10], eax
jmp 0x4798e0
mov edx, dword [esp + 0xc]
mov eax, dword [edx + edi*4 + 8]
test eax, eax
je 0x47f893
dec eax
mov dword [esp + 0x10], eax
cmp dword [ecx + 0xa4], 0
je case.default.0x479943
mov eax, dword [esp + 0x18]
test dword [eax + 0x58], 0x800
jne case.default.0x479943
mov edx, dword [edx + edi*4 + 0x10]
mov edi, eax
test edx, edx
jne 0x47f8c9
mov edx, dword [edi + 0xa8]
test edx, edx
je case.default.0x479943
mov ecx, edi
call fcn.00479240
mov edi, dword [esp + 8]
mov esi, eax
push esi
push dword [edi + 0xa8]
mov ecx, dword [edi + 0xa4]
call ecx
add esp, 8
mov edx, esi
mov ecx, edi
call fcn.00457fb0
mov esi, dword [esp + 0x1c]
mov ecx, edi
jmp case.default.0x479943
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 8]
jmp 0x47b5cf
mov esi, dword [esp + 0x1c]
mov ecx, eax
jmp case.default.0x479943
mov esi, dword [esp + 0x18]
mov ecx, dword [edx + edi*4 + 4]
mov dword [esi + 0x50], ecx
mov al, byte [edx + edi*4 + 8]
mov byte [esi + 0x56], al
mov eax, dword [esp + 0x10]
mov dword [esi + 0x4c], eax
test ecx, ecx
je 0x47f9b9
mov al, byte [edx + edi*4 + 3]
test al, al
je 0x47f96c
movzx eax, al
mov eax, dword [eax*4 + 0x5559ec]
test eax, eax
je 0x47f96e
mov ecx, dword [edx + edi*4 + 0x10]
test ecx, ecx
je 0x47f96e
push ecx
push eax
push str._s_constraint_failed:__s
push dword [esp + 0x14]
add esi, 0x2c
push esi
call fcn.00458380
add esp, 0x14
jmp 0x47f994
xor eax, eax
mov ecx, dword [edx + edi*4 + 0x10]
add esi, 0x2c
test ecx, ecx
je 0x47f981
push ecx
push 0x56b764
jmp 0x47f987
push eax
push str._s_constraint_failed
push dword [esp + 0x10]
push esi
call fcn.00458380
add esp, 0x10
push dword [esi]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
push dword [esi + 0xa8]
push dword [esp + 0x18]
push str.abort_at__d_in___s_:__s
push dword [eax + edi*4 + 4]
call fcn.00459d60
add esp, 0x14
mov ecx, esi
call fcn.00475710
mov ecx, dword [esp + 8]
cmp eax, 5
jne 0x47f9d3
mov edi, eax
mov dword [esi + 0x50], edi
jmp 0x47fd83
cmp dword [esi + 0x50], 0
mov edi, 0x65
mov eax, 1
cmovne edi, eax
jmp 0x47fd83
lea ecx, [esp + 0x148]
call fcn.00472890
mov ecx, edi
jmp 0x47fcdd
mov eax, 0x14
mov dword [esp + 0x14], eax
jmp 0x47fade
push str.cannot_open_savepoint___SQL_statements_in_progress
push ecx
mov eax, dword [esp + 0x20]
add eax, 0x2c
push eax
call fcn.00458380
mov eax, dword [esp + 0x1c]
add esp, 0xc
mov dword [esp + 0x14], 5
inc eax
jmp 0x47fd03
push str.cannot_release_savepoint___SQL_statements_in_progress
push eax
jmp 0x47fa10
mov eax, dword [esp + 0x10]
mov dword [edi + 0x4c], eax
mov edi, 5
mov eax, dword [esp + 0x18]
mov byte [ecx + 0x3e], 0
mov dword [eax + 0x50], edi
jmp 0x47fd83
mov eax, 8
mov dword [esp + 0x14], eax
jmp 0x47fade
mov ecx, dword [esp + 0x18]
mov edi, 5
mov eax, dword [esp + 0x10]
mov dword [ecx + 0x4c], eax
mov dword [ecx + 0x50], edi
jmp 0x47fd7f
mov ecx, 0x11473
call fcn.004beda0
mov dword [esp + 0x14], eax
jmp 0x47fada
mov eax, dword [esp + 0x10]
mov dword [esp + 0x14], 4
inc eax
jmp 0x47fd03
mov eax, 0xd
mov dword [esp + 0x14], eax
jmp 0x47fada
mov eax, dword [esp + 0x10]
mov dword [esp + 0x14], 7
inc eax
jmp 0x47fd03
mov eax, dword [esp + 0x14]
jmp 0x47fade
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x14]
jmp 0x47fae2
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 8]
jmp 0x47fae2
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 8]
mov edi, dword [esp + 0x18]
cmp byte [ecx + 0x40], 0
je 0x47faf3
mov eax, 7
mov dword [esp + 0x14], eax
jmp 0x47fafe
cmp eax, 0xc0a
je 0x47fcff
mov ecx, eax
call fcn.004bced0
push eax
push 0x56b764
push dword [esp + 0x10]
lea eax, [edi + 0x2c]
push eax
call fcn.00458380
add esp, 0x10
jmp 0x47fcff
mov eax, dword [esp + 0x18]
mov dword [esp + 0x14], 6
mov byte [eax + 0x56], 2
mov eax, dword [esp + 0x10]
inc eax
jmp 0x47fd03
mov eax, dword [esp + 0x18]
push str.too_many_levels_of_trigger_recursion
add eax, 0x2c
mov dword [esp + 0x18], 1
push edi
push eax
call fcn.00458380
mov eax, dword [esp + 0x1c]
add esp, 0xc
inc eax
jmp 0x47fd03
mov ecx, str.out_of
mov dword [esp + 0x14], 1
cmp esi, 5
mov eax, str.into
cmovne eax, ecx
push eax
mov eax, dword [esp + 0x1c]
push str.cannot_change__s_wal_mode_from_within_a_transaction
push dword [esp + 0x10]
add eax, 0x2c
push eax
call fcn.00458380
mov eax, dword [esp + 0x20]
add esp, 0x10
inc eax
jmp 0x47fd03
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 8]
mov ecx, dword [eax + edi*4 + 4]
mov edx, dword [eax + edi*4 + 8]
mov dword [esp + 0x70], ecx
test ecx, ecx
je 0x47fbd3
cmp byte [esi + 0x3e], 0
jne 0x47fbd3
test edx, edx
jne 0x47fbd3
cmp dword [esi + 0x94], edx
jle 0x47fbd3
push str.cannot_commit_transaction___SQL_statements_in_progress
push esi
jmp 0x47fa10
movzx eax, byte [esi + 0x3e]
cmp ecx, eax
jne 0x47fc19
test ecx, ecx
jne 0x47fbe6
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x47fbf5
test edx, edx
mov eax, str.cannot_rollback___no_transaction_is_active
mov ecx, str.cannot_commit___no_transaction_is_active
cmove eax, ecx
push eax
mov eax, dword [esp + 0x1c]
add eax, 0x2c
push esi
push eax
call fcn.00458380
mov eax, dword [esp + 0x1c]
add esp, 0xc
mov dword [esp + 0x14], 1
inc eax
jmp 0x47fd03
test edx, edx
je 0x47fc4e
mov edx, 0x204
mov ecx, esi
call fcn.004bcdb0
mov byte [esi + 0x3e], 1
mov ecx, esi
call fcn.004bc640
mov eax, dword [esp + 0x18]
mov edi, 1
mov ecx, 0x65
cmp dword [eax + 0x50], 0
cmove edi, ecx
jmp 0x47fd7f
mov ecx, dword [esp + 0x18]
mov edx, 1
call fcn.004756a0
mov edi, eax
test edi, edi
jne 0x47fd7f
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x18]
mov byte [esi + 0x3e], al
call fcn.00475710
cmp eax, 5
jne 0x47fc2d
mov edx, dword [esp + 0x18]
mov edi, 5
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 8]
mov dword [edx + 0x4c], eax
mov al, 1
sub al, byte [esp + 0x70]
mov byte [ecx + 0x3e], al
mov dword [edx + 0x50], edi
jmp 0x47fd83
mov esi, ecx
mov eax, dword [str.interrupted]
mov ecx, str.unknown_error
mov edx, dword [esp + 0x18]
test eax, eax
mov dword [esp + 0x14], 9
cmovne ecx, eax
push ecx
push 0x56b764
lea eax, [edx + 0x2c]
mov dword [edx + 0x50], 9
push esi
push eax
call fcn.00458380
add esp, 0x10
jmp 0x47fcff
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x18]
push str.out_of_memory
push ecx
add eax, 0x2c
mov byte [ecx + 0x40], 1
push eax
call fcn.00458380
mov dword [esp + 0x20], 7
add esp, 0xc
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push dword [edx + 0x2c]
mov dword [edx + 0x50], ecx
push dword [edx + 0xa8]
push eax
push str.statement_aborts_at__d:___s___s
push ecx
call fcn.00459d60
mov ecx, dword [esp + 0x2c]
add esp, 0x14
call fcn.00475710
cmp dword [esp + 0x14], 0xc0a
mov ecx, dword [esp + 8]
jne 0x47fd41
mov byte [ecx + 0x40], 1
mov al, byte [esp + 0x5b]
mov edi, 1
test al, al
je 0x47fd83
movzx esi, al
mov eax, dword [esp + 8]
dec esi
mov ecx, esi
add ecx, ecx
mov eax, dword [eax + 0x10]
push dword [eax + ecx*8 + 0xc]
call fcn.00492d90
add esp, 4
cmp esi, edi
je 0x47fd7f
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x10]
push dword [eax + 0x1c]
call fcn.00492d90
add esp, 4
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x60]
mov dword [ecx + 0x20], eax
mov eax, dword [esp + 0x64]
mov dword [ecx + 0x24], eax
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x68]
add dword [ecx + 0x7c], eax
call fcn.004742e0
mov ecx, dword [esp + 0x32c]
mov eax, edi
pop edi
pop esi
xor ecx, esp
call fcn.0050ce8d
mov esp, ebp
pop ebp
ret