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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2fc
mov eax, dword [0x52a51c]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, ecx
mov dword [ebp - 0xdc], 0
push ebx
push esi
push edi
mov edi, dword [eax]
mov ebx, dword [eax + 8]
mov esi, dword [eax + 4]
mov dword [ebp - 0xe8], ebx
mov cl, byte [edi + 0x3e]
mov ebx, dword [edi + 0x20]
mov byte [ebp - 0x118], cl
xor ecx, ecx
mov dword [ebp - 0x13c], ecx
mov ecx, eax
mov dword [ebp - 0x134], ebx
mov ebx, dword [edi + 0x24]
mov dword [ebp - 0xe4], eax
mov dword [ebp - 0x10c], esi
mov dword [ebp - 0xd8], esi
mov dword [ebp - 0xe0], edi
mov byte [ebp - 0x125], 0
mov dword [ebp - 0x15c], 0
mov dword [ebp - 0x14c], 0
mov dword [ebp - 0x140], 0
mov dword [ebp - 0x138], ebx
call fcn.0046c430
mov ecx, dword [ebp - 0xe4]
cmp dword [ecx + 0x50], 7
je 0x474565
mov dword [ecx + 0x50], 0
mov dword [ecx + 0x88], 0
mov dword [ecx + 0x8c], 0
mov dword [ecx + 0x14], 0
cmp dword [edi + 0xf0], 0
mov dword [edi + 0x1c4], 0
jne 0x47823b
cmp dword [edi + 0x124], 0
je 0x472986
mov eax, dword [ecx + 0x7c]
test eax, eax
jne 0x472978
mov edx, dword [edi + 0x12c]
jmp 0x472980
xor edx, edx
div dword [edi + 0x12c]
mov dword [ebp - 0x140], edx
mov eax, dword [ecx + 0x4c]
lea eax, [eax + eax*4]
lea esi, [esi + eax*4]
mov dword [ebp - 0xd8], esi
cmp byte [edi + 0x41], 0
jne 0x474565
mov dl, byte [esi]
mov ecx, dword [ebp - 0x14c]
movzx ebx, dl
inc ecx
mov dword [ebp - 0x14c], ecx
mov byte [ebp - 0xe9], dl
lea eax, [ebx - 1]
cmp eax, 0x9a
ja case.default.0x4729c5
jmp dword [eax*4 + 0x478288]
mov edx, dword [ebp - 0xd8]
mov ecx, edx
mov ebx, dword [ebp - 0xe8]
sub ecx, dword [ebp - 0x10c]
mov eax, dword [edx + 4]
lea esi, [eax + eax*4]
mov eax, 4
mov word [ebx + esi*8 + 8], ax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ebx + esi*8], eax
mov dword [ebx + esi*8 + 4], edx
jmp 0x477db0
mov eax, dword [ebp - 0xd8]
mov ebx, dword [ebp - 0xe8]
mov edx, dword [ebp - 0x10c]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + ecx*8]
lea eax, [eax + eax*4]
lea esi, [edx + eax*4]
mov eax, 0x80
mov word [ebx + ecx*8 + 8], ax
jmp case.default.0x4729c5
mov edx, dword [ebp - 0xd8]
mov ebx, dword [ebp - 0xe8]
mov esi, dword [ebp - 0xd8]
mov eax, dword [edx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
dec eax
cdq
mov dword [ebx + ecx*8], eax
mov eax, 4
mov dword [ebx + ecx*8 + 4], edx
mov word [ebx + ecx*8 + 8], ax
cmp dword [esi + 8], 0
jne 0x477db0
jmp case.default.0x4729c5
mov eax, dword [ebp - 0xd8]
mov ebx, dword [ebp - 0xe8]
mov edx, dword [ebp - 0x10c]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + ecx*8]
lea eax, [eax + eax*4]
mov eax, dword [edx + eax*4 + 8]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea esi, [edx + eax*4]
mov eax, 0x80
mov word [ebx + ecx*8 + 8], ax
jmp case.default.0x4729c5
mov edx, dword [ebp - 0xd8]
mov ebx, dword [ebp - 0xe8]
mov eax, dword [edx + 4]
sub edx, dword [ebp - 0x10c]
lea esi, [eax + eax*4]
mov eax, 4
mov ecx, dword [ebx + esi*8]
mov word [ebx + esi*8 + 8], ax
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ebx + esi*8], eax
lea eax, [ecx + ecx*4]
mov ecx, dword [ebp - 0x10c]
mov dword [ebx + esi*8 + 4], edx
lea esi, [ecx + eax*4]
jmp case.default.0x4729c5
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xe8]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
je 0x477dd8
mov ecx, dword [ebp - 0xd8]
mov eax, 0x66666667
sub ecx, dword [ebp - 0x10c]
mov esi, dword [ebp - 0xe4]
imul ecx
sar edx, 3
mov edi, edx
shr edi, 0x1f
add edi, edx
mov edx, dword [ebp - 0xd8]
cmp dword [edx + 4], 0
jne 0x477dfa
mov ecx, dword [esi + 0xb0]
test ecx, ecx
je 0x477dfa
mov eax, dword [ecx + 4]
mov edi, dword [ebp - 0xe0]
dec dword [esi + 0xb8]
mov dword [esi + 0xb0], eax
mov eax, dword [esi + 0x5c]
add dword [edi + 0x54], eax
mov dword [edi + 0x50], eax
call fcn.0046cf00
mov ecx, dword [ebp - 0xd8]
mov ebx, dword [edi + 0x20]
mov dword [ebp - 0x134], ebx
mov ebx, dword [edi + 0x24]
cmp dword [ecx + 8], 4
mov dword [ebp - 0x138], ebx
jne 0x472bae
lea ecx, [eax + eax*4]
mov eax, dword [esi + 4]
mov eax, dword [eax + ecx*4 + 8]
dec eax
mov edx, dword [esi + 4]
lea eax, [eax + eax*4]
mov ecx, dword [esi + 8]
mov dword [ebp - 0x10c], edx
mov dword [ebp - 0xe8], ecx
lea esi, [edx + eax*4]
jmp case.default.0x4729c5
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 8]
lea ecx, [eax + ecx*8]
mov eax, 0x2460
test word [ecx + 8], ax
je 0x472c09
call fcn.00472830
mov ecx, eax
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x477dd8
mov eax, 4
mov word [ecx + 8], ax
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x477dd8
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 8]
lea edx, [eax + ecx*8]
mov eax, 0x2460
test word [edx + 8], ax
je 0x472c54
mov ecx, edx
call fcn.00472830
mov edx, eax
jmp 0x472c5d
mov eax, 4
mov word [edx + 8], ax
mov eax, dword [ebp - 0xd8]
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
jmp 0x477dd8
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 8]
lea ecx, [eax + ecx*8]
mov eax, 0x2460
test word [ecx + 8], ax
je 0x472ca1
call fcn.00472830
mov ecx, eax
jmp 0x472caa
mov eax, 4
mov word [ecx + 8], ax
mov eax, 8
mov word [ecx + 8], ax
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 0x10]
movsd xmm0, qword [eax]
movsd qword [ecx], xmm0
jmp 0x477dd8
mov edx, dword [ebp - 0xd8]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 8]
lea esi, [eax + ecx*8]
mov eax, 0x2460
test word [esi + 8], ax
je 0x472cfd
mov ecx, esi
call fcn.00472830
mov edx, dword [ebp - 0xd8]
mov esi, eax
jmp 0x472d06
mov eax, 4
mov word [esi + 8], ax
mov ecx, dword [edx + 0x10]
mov byte [edx], 0x1b
call fcn.0044f550
mov bl, byte [ebp - 0x118]
mov dword [edx + 4], eax
cmp bl, 1
je 0x472d8a
push 0
push 1
mov edx, ecx
mov ecx, esi
push 0xffffffffffffffff
call fcn.0046ad60
add esp, 0xc
mov dword [ebp - 0xdc], eax
cmp eax, 0x12
je 0x478109
movzx edx, bl
mov ecx, esi
call fcn.0046a160
test eax, eax
jne 0x474565
mov edx, dword [ebp - 0xd8]
mov dword [esi + 0x18], eax
mov eax, 0x800
or word [esi + 8], ax
cmp byte [edx + 1], 0xff
jne 0x472d7a
mov edx, dword [edx + 0x10]
mov ecx, edi
call fcn.0044c8e0
mov edx, dword [ebp - 0xd8]
mov byte [edx + 1], 0xff
mov eax, dword [esi + 0x10]
mov dword [edx + 0x10], eax
mov eax, dword [esi + 0xc]
mov dword [edx + 4], eax
mov eax, dword [edx + 4]
cmp eax, dword [edi + 0x58]
jg 0x478109
jmp 0x472da4
mov edx, dword [ebp - 0xd8]
mov bl, byte [ebp - 0x118]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 8]
lea edx, [eax + ecx*8]
mov eax, 0x2460
test word [edx + 8], ax
je 0x472dcc
mov ecx, edx
call fcn.00472830
mov edx, eax
jmp 0x472dd5
mov eax, 4
mov word [edx + 8], ax
mov esi, dword [ebp - 0xd8]
mov eax, 0xa02
mov word [edx + 8], ax
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 0x10]
mov dword [edx + 0x10], eax
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 4]
mov dword [edx + 0xc], eax
mov byte [edx + 0xa], bl
cmp byte [esi + 3], 0
je case.default.0x4729c5
mov eax, dword [esi + 0xc]
mov ebx, dword [ebp - 0xe8]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + ecx*8]
or eax, dword [ebx + ecx*8 + 4]
je case.default.0x4729c5
mov eax, 0xa10
mov word [edx + 8], ax
jmp case.default.0x4729c5
mov ebx, dword [ebp - 0xd8]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 8]
lea esi, [eax + ecx*8]
mov eax, 0x2460
test word [esi + 8], ax
je 0x472e5e
mov ecx, esi
call fcn.00472830
mov esi, eax
jmp 0x472e67
mov eax, 4
mov word [esi + 8], ax
mov edi, dword [ebx + 0xc]
mov eax, 1
sub edi, dword [ebx + 8]
mov ecx, 0x101
cmp dword [ebx + 4], 0
cmovne eax, ecx
movzx ebx, ax
mov word [esi + 8], bx
test edi, edi
jle 0x472ea3
lea esp, [esp]
add esi, 0x28
mov ecx, esi
call fcn.0046aab0
dec edi
mov word [esi + 8], bx
test edi, edi
jg 0x472e90
mov edi, dword [ebp - 0xe0]
jmp 0x477dd8
mov eax, dword [ebp - 0xd8]
mov edx, 0xff7f
mov ebx, dword [ebp - 0xe8]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
mov ax, word [ebx + ecx*8 + 8]
and ax, dx
or ax, 1
mov word [ebx + ecx*8 + 8], ax
jmp 0x477dd8
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 8]
lea esi, [eax + ecx*8]
mov eax, 0x2460
test word [esi + 8], ax
je 0x472f09
mov ecx, esi
call fcn.00472830
mov esi, eax
jmp 0x472f12
mov eax, 4
mov word [esi + 8], ax
mov eax, dword [ebp - 0xd8]
mov ecx, esi
push 0
push 0
push dword [eax + 4]
mov edx, dword [eax + 0x10]
call fcn.0046ad60
mov al, byte [ebp - 0x118]
add esp, 0xc
mov byte [esi + 0xa], al
jmp 0x477dd8
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 0x3c]
lea esi, [eax + ecx*8]
lea ecx, [esi - 0x28]
call fcn.0046ac20
test eax, eax
jne 0x478109
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 8]
lea eax, [eax + ecx*8]
mov ecx, 0x2460
test word [eax + 8], cx
je 0x472f8e
mov ecx, eax
call fcn.00472830
jmp 0x472f97
mov ecx, 4
mov word [eax + 8], cx
push 0x800
lea edx, [esi - 0x28]
mov ecx, eax
call fcn.0046ac50
add esp, 4
jmp 0x477dd8
mov edx, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xe8]
mov eax, dword [edx + 4]
mov ebx, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
nop
mov edx, edi
mov ecx, esi
call fcn.0046ad10
mov eax, 0x1000
test word [esi + 8], ax
je 0x472ff3
mov ecx, esi
call fcn.0046a2b0
test eax, eax
jne 0x47455f
add edi, 0x28
add esi, 0x28
dec ebx
jne 0x472fd0
mov edi, dword [ebp - 0xe0]
jmp 0x477dd8
mov edx, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xe8]
mov eax, dword [edx + 4]
mov ebx, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
jmp 0x473030
push 0x1000
mov edx, edi
mov ecx, esi
call fcn.0046ac50
mov eax, 0x1000
add esp, 4
test word [esi + 8], ax
je 0x47305b
mov ecx, esi
call fcn.0046a2b0
test eax, eax
jne 0x47455f
mov eax, ebx
dec ebx
test eax, eax
je 0x472ea3
add esi, 0x28
add edi, 0x28
jmp 0x473030
mov eax, dword [ebp - 0xd8]
mov ebx, dword [ebp - 0xe8]
push 0x1000
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
lea edx, [ebx + eax*8]
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
call fcn.0046ac50
add esp, 4
jmp 0x477dd8
mov eax, dword [edi + 0x124]
test eax, eax
je 0x4730c9
cmp ecx, dword [ebp - 0x140]
jb 0x4730c9
push dword [edi + 0x128]
call eax
add esp, 4
test eax, eax
jne 0x477ebc
mov ecx, dword [ebp - 0xe4]
xor edx, edx
call fcn.0046dc20
mov dword [ebp - 0xdc], eax
test eax, eax
jne 0x477de4
mov ecx, dword [ebp - 0xe4]
lea edx, [eax + 1]
call fcn.0046daf0
mov dword [ebp - 0xdc], eax
test eax, eax
jne 0x477de4
mov edi, dword [ebp - 0xe4]
mov ecx, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xe8]
mov eax, dword [edi + 0x48]
add eax, 2
or eax, 1
mov dword [edi + 0x48], eax
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov dword [edi + 0x14], esi
xor edi, edi
cmp dword [ecx + 8], edi
jle 0x473161
mov eax, 0x1000
test word [esi + 8], ax
je 0x47314b
mov ecx, esi
call fcn.0046a2b0
test eax, eax
jne 0x47455f
mov ecx, esi
call fcn.0046a3c0
mov ecx, dword [ebp - 0xd8]
inc edi
add esi, 0x28
cmp edi, dword [ecx + 8]
jl 0x473131
mov edi, dword [ebp - 0xe0]
cmp byte [edi + 0x41], 0
jne 0x474565
sub ecx, dword [ebp - 0x10c]
mov eax, 0x66666667
mov esi, dword [ebp - 0xe4]
mov edi, 0x64
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
inc eax
add eax, edx
mov dword [esi + 0x4c], eax
jmp 0x474637
mov edx, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xe8]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
mov eax, dword [edx + 8]
mov dword [ebp - 0xf4], ebx
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx ecx, word [ebx + 8]
mov al, byte [edi + 8]
or al, cl
test al, 1
je 0x4731e8
mov ecx, esi
call fcn.0046aab0
mov edi, dword [ebp - 0xe0]
jmp 0x477dd8
test ecx, 0x4000
je 0x4731ff
mov ecx, ebx
call fcn.0046a320
test eax, eax
jne 0x47455f
mov eax, 0x4000
test word [edi + 8], ax
je 0x473219
mov ecx, edi
call fcn.0046a320
test eax, eax
jne 0x47455f
test byte [ebx + 8], 0x12
jne 0x473239
mov dl, byte [ebp - 0x118]
mov ecx, ebx
push 0
call fcn.0046a3e0
add esp, 4
test eax, eax
jne 0x47455f
test byte [edi + 8], 0x12
jne 0x473259
mov dl, byte [ebp - 0x118]
mov ecx, edi
push 0
call fcn.0046a3e0
add esp, 4
test eax, eax
jne 0x47455f
mov eax, dword [ebx + 0xc]
add eax, dword [edi + 0xc]
cdq
mov ebx, eax
mov ecx, edx
mov eax, dword [ebp - 0xe0]
mov eax, dword [eax + 0x58]
cdq
cmp ecx, edx
jg 0x478103
jl 0x473280
cmp ebx, eax
ja 0x478103
xor eax, eax
lea edx, [ebx + 2]
cmp esi, edi
mov ecx, esi
sete al
push eax
call fcn.0046a180
add esp, 4
test eax, eax
jne 0x47455f
mov ax, word [esi + 8]
mov ecx, 0xbe02
and ax, cx
or ax, 2
mov word [esi + 8], ax
cmp esi, edi
je 0x4732c6
push dword [edi + 0xc]
push dword [edi + 0x10]
push dword [esi + 0x10]
call fcn.004cd4f0
add esp, 0xc
mov eax, dword [ebp - 0xf4]
push dword [eax + 0xc]
push dword [eax + 0x10]
mov eax, dword [esi + 0x10]
add eax, dword [edi + 0xc]
push eax
call fcn.004cd4f0
mov eax, dword [esi + 0x10]
add esp, 0xc
mov edi, dword [ebp - 0xe0]
mov byte [ebx + eax], 0
mov eax, dword [esi + 0x10]
mov byte [eax + ebx + 1], 0
mov eax, 0x200
or word [esi + 8], ax
mov al, byte [ebp - 0x118]
mov dword [esi + 0xc], ebx
mov byte [esi + 0xa], al
jmp 0x477dd8
mov edi, dword [ebp - 0xd8]
mov esi, dword [ebp - 0xe8]
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
lea ebx, [esi + eax*8]
mov ecx, ebx
call fcn.00472810
movzx eax, ax
mov dword [ebp - 0x104], eax
mov eax, dword [edi + 8]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov ecx, eax
mov dword [ebp - 0xf8], eax
call fcn.00472810
movzx ecx, ax
mov eax, dword [edi + 0xc]
mov dword [ebp - 0xf4], ecx
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov esi, dword [ebp - 0xf8]
mov dword [ebp - 0x110], eax
mov al, byte [esi + 8]
or al, byte [ebx + 8]
test al, 1
jne 0x4735a7
mov al, cl
and al, byte [ebp - 0x104]
test al, 4
je 0x473479
mov ecx, dword [ebx]
mov eax, esi
mov edx, dword [ebx + 4]
mov byte [ebp - 0xe9], 1
mov esi, dword [eax]
mov edi, dword [eax + 4]
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0x148], esi
mov dword [ebp - 0x144], edi
movzx eax, byte [eax]
add eax, 0xffffffa7
cmp eax, 3
ja case.default.0x4733b7
jmp dword [eax*4 + 0x4784f4]
push edx
push ecx
lea ecx, [ebp - 0x148]
call fcn.00450950
add esp, 8
test eax, eax
jne 0x473482
mov edx, dword [ebp - 0x144]
mov eax, dword [ebp - 0x148]
jmp 0x47344f
push edx
push ecx
lea ecx, [ebp - 0x148]
call fcn.004509f0
jmp 0x4733cb
push edx
push ecx
lea ecx, [ebp - 0x148]
call fcn.00450a40
jmp 0x4733cb
mov eax, ecx
or eax, edx
je 0x4735a7
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
jne 0x473421
test esi, esi
jne 0x473421
cmp edi, 0x80000000
je 0x473482
push edx
push ecx
push edi
push esi
call fcn.004e0630
jmp 0x47344f
mov eax, ecx
or eax, edx
je 0x4735a7
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
jne 0x473446
mov ecx, 1
xor edx, edx
push edx
push ecx
push edi
push esi
call fcn.004e06e0
mov ecx, dword [ebp - 0x110]
mov edi, dword [ebp - 0xe0]
mov dword [ecx], eax
mov ax, word [ecx + 8]
mov dword [ecx + 4], edx
mov edx, 0xbe04
and ax, dx
or ax, 4
mov word [ecx + 8], ax
jmp 0x477dd8
mov byte [ebp - 0xe9], 0
jmp 0x473488
mov esi, dword [ebp - 0xf8]
mov ecx, ebx
call fcn.0046a760
mov ecx, esi
movsd qword [ebp - 0x120], xmm0
call fcn.0046a760
mov eax, dword [ebp - 0xd8]
movapd xmm1, xmm0
movsd qword [ebp - 0x158], xmm1
movzx eax, byte [eax]
add eax, 0xffffffa7
cmp eax, 3
ja case.default.0x4734bb
jmp dword [eax*4 + 0x478504]
addsd xmm1, qword [ebp - 0x120]
jmp 0x47354b
subsd xmm1, qword [ebp - 0x120]
jmp 0x47354b
mulsd xmm1, qword [ebp - 0x120]
jmp 0x47354b
movsd xmm0, qword [ebp - 0x120]
xorps xmm2, xmm2
ucomisd xmm0, xmm2
lahf
test ah, 0x44
jnp 0x4735a7
divsd xmm1, xmm0
jmp 0x47354b
movsd xmm0, qword [ebp - 0x120]
call fcn.004fb5af
movsd xmm0, qword [ebp - 0x158]
mov esi, eax
mov edi, edx
call fcn.004fb5af
mov ecx, esi
or ecx, edi
je 0x4735a7
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x473537
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push eax
call fcn.004e06e0
mov ecx, eax
call fcn.004fb74f
movapd xmm1, xmm0
movapd xmm0, xmm1
call fcn.0044f510
test eax, eax
jne 0x4735a7
mov ecx, dword [ebp - 0x110]
mov edx, 0xbe08
mov ax, word [ecx + 8]
and ax, dx
movsd qword [ecx], xmm1
or ax, 8
mov word [ecx + 8], ax
mov eax, dword [ebp - 0xf4]
or al, byte [ebp - 0x104]
test al, 8
jne 0x472ea3
cmp byte [ebp - 0xe9], 0
jne 0x472ea3
call fcn.0046a7c0
mov edi, dword [ebp - 0xe0]
jmp 0x477dd8
mov ecx, dword [ebp - 0x110]
call fcn.0046aab0
mov edi, dword [ebp - 0xe0]
jmp 0x477dd8
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 4]
test eax, eax
je 0x477dd8
mov ecx, dword [ebp - 0xe8]
lea eax, [eax + eax*4]
push 0
push 0
lea ecx, [ecx + eax*8]
call fcn.0046ab10
add esp, 8
jmp 0x477dd8
mov edx, dword [ebp - 0xd8]
xor edi, edi
mov eax, dword [ebp - 0xe4]
mov esi, dword [ebp - 0xe8]
movzx ebx, byte [edx + 3]
mov ecx, dword [eax + 0xc]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x104], ecx
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [ebp - 0xf4], eax
mov dword [ebp - 0x1bc], eax
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
test ebx, ebx
jle 0x47366c
mov eax, 0x1000
mov dword [ecx + edi*4], esi
test word [esi + 8], ax
je 0x473656
mov ecx, esi
call fcn.0046a2b0
test eax, eax
jne 0x47455f
mov ecx, dword [ebp - 0x104]
mov eax, 0x1000
inc edi
add esi, 0x28
cmp edi, ebx
jl 0x473633
mov esi, dword [ebp - 0x1bc]
mov edx, dword [ebp - 0xd8]
jmp 0x473672
mov esi, dword [ebp - 0xf4]
mov eax, dword [edx + 0x10]
mov ecx, edx
sub ecx, dword [ebp - 0x10c]
mov dword [ebp - 0x1b8], eax
mov eax, 0x66666667
push dword [ebp - 0x104]
imul ecx
mov eax, dword [ebp - 0xe4]
mov ecx, 0xbe01
sar edx, 3
mov edi, edx
mov dword [ebp - 0x1b0], eax
shr edi, 0x1f
add edi, edx
mov dword [ebp - 0x1ac], edi
mov ax, word [esi + 8]
and ax, cx
mov ecx, dword [ebp - 0x134]
or ax, 1
mov word [esi + 8], ax
lea eax, [ebp - 0x1bc]
mov esi, dword [ebp - 0xe0]
push ebx
push eax
mov eax, dword [ebp - 0x1b8]
mov dword [esi + 0x20], ecx
mov ecx, dword [ebp - 0x138]
mov byte [ebp - 0x1a3], 0
mov dword [esi + 0x24], ecx
mov eax, dword [eax + 0xc]
call eax
mov eax, dword [esi + 0x20]
add esp, 0xc
cmp byte [ebp - 0x1a3], 0
mov dword [ebp - 0x134], eax
mov eax, dword [esi + 0x24]
mov dword [ebp - 0x138], eax
je 0x473765
cmp dword [ebp - 0x1a8], 0
je 0x47374c
push dword [ebp - 0x1bc]
call fcn.00470140
add esp, 4
push eax
mov eax, dword [ebp - 0xe4]
push 0x50b7b4
add eax, 0x2c
push esi
push eax
call fcn.0044ce00
mov eax, dword [ebp - 0x1a8]
add esp, 0x10
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0xd8]
mov edx, edi
mov ecx, dword [ebp - 0xe4]
push dword [eax + 4]
call fcn.0046e140
add esp, 4
movzx edx, byte [ebp - 0x118]
mov ecx, dword [ebp - 0x1bc]
call fcn.0046a160
mov ecx, dword [ebp - 0x1bc]
call fcn.0046ac20
mov edi, esi
test eax, eax
jne 0x478109
jmp 0x477dd8
mov edx, dword [ebp - 0xd8]
mov ebx, dword [ebp - 0xe8]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea edx, [ebx + eax*8]
mov al, byte [ecx + 8]
or al, byte [esi + 8]
mov dword [ebp - 0xf4], edx
test al, 1
je 0x4737d4
mov ecx, edx
call fcn.0046aab0
jmp 0x477dd8
call fcn.0046a6b0
mov ebx, eax
mov edi, edx
mov ecx, esi
mov dword [ebp - 0x198], ebx
mov dword [ebp - 0x194], edi
call fcn.0046a6b0
mov esi, eax
mov eax, dword [ebp - 0xd8]
mov cl, byte [eax]
cmp cl, 0x55
jne 0x473808
and ebx, esi
and edi, edx
jmp 0x473895
cmp cl, 0x56
jne 0x473816
or ebx, esi
or edi, edx
jmp 0x473895
mov eax, esi
or eax, edx
je 0x473895
test edx, edx
jg 0x47384a
jl 0x473826
test esi, esi
jae 0x47383f
mov al, 0xaf
sub al, cl
mov cl, al
cmp edx, 0xffffffff
jl 0x47384a
jg 0x473838
cmp esi, 0xffffffc0
jbe 0x47384a
neg esi
adc edx, 0
neg edx
test edx, edx
jl 0x47386c
jg 0x47384a
cmp esi, 0x40
jb 0x47386c
test edi, edi
jg 0x473863
jl 0x473854
test ebx, ebx
jae 0x473863
cmp cl, 0x57
je 0x473863
or eax, 0xffffffff
cdq
mov ebx, eax
mov edi, edx
jmp 0x473895
xor eax, eax
cdq
mov ebx, eax
mov edi, edx
jmp 0x473895
movq xmm1, qword [ebp - 0x198]
movd xmm0, esi
cmp cl, 0x57
jne 0x4738bf
psllq xmm1, xmm0
movq qword [ebp - 0x120], xmm1
mov ebx, dword [ebp - 0x120]
mov edi, dword [ebp - 0x11c]
mov ecx, dword [ebp - 0xf4]
mov edx, 0xbe04
mov ax, word [ecx + 8]
and ax, dx
mov dword [ecx + 4], edi
mov edi, dword [ebp - 0xe0]
or ax, 4
mov dword [ecx], ebx
mov word [ecx + 8], ax
jmp 0x477dd8
psrlq xmm1, xmm0
movq qword [ebp - 0x120], xmm1
test edi, edi
jg 0x473889
jl 0x4738d5
test ebx, ebx
jae 0x473889
mov ecx, 0x40
or eax, 0xffffffff
sub ecx, esi
or edx, 0xffffffff
call fcn.004fb360
mov ebx, dword [ebp - 0x120]
mov edi, dword [ebp - 0x11c]
or ebx, eax
or edi, edx
jmp 0x473895
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xe8]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.0046a860
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 8]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
jmp 0x477dd8
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xe8]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx eax, word [esi + 8]
test al, 4
jne 0x47398f
test al, 8
jne 0x47395c
test al, 2
je 0x473963
mov edx, 1
mov ecx, esi
call fcn.00472620
jmp 0x473963
mov ecx, esi
call fcn.0046a7c0
movzx eax, word [esi + 8]
test al, 4
jne 0x47398f
mov edi, dword [ebp - 0xd8]
cmp dword [edi + 8], 0
jne 0x477db6
mov dword [ebp - 0xdc], 0x14
mov eax, 0x14
jmp 0x475bbb
and eax, 0xbe04
or eax, 4
mov word [esi + 8], ax
jmp 0x477dd8
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xe8]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 4
lea ecx, [ecx + eax*8]
je 0x477dd8
call fcn.0046a890
jmp 0x477dd8
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xe8]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, 0x4000
test word [esi + 8], ax
je 0x4739f9
mov ecx, esi
call fcn.0046a320
mov dword [ebp - 0xdc], eax
jmp 0x473a03
mov dword [ebp - 0xdc], 0
mov eax, dword [ebp - 0xd8]
mov ecx, esi
push dword [ebp - 0x118]
mov dl, byte [eax + 8]
call fcn.0046a9e0
add esp, 4
jmp 0x477dd8
mov edx, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xe8]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
movzx ebx, word [ecx + eax*8 + 8]
lea esi, [ecx + eax*8]
movzx ecx, word [edi + 8]
mov al, bl
mov edx, ecx
or al, dl
mov dword [ebp - 0x100], edx
test al, 1
mov eax, dword [ebp - 0xd8]
mov al, byte [eax + 3]
je 0x473ad2
test al, al
jns 0x473a88
test dl, 1
je 0x473a7e
test bl, 1
je 0x473a7e
test ebx, 0x100
jne 0x473a7e
xor edx, edx
jmp 0x473bd2
mov edx, 1
jmp 0x473bd2
test al, 0x20
je 0x473abf
mov eax, dword [ebp - 0xd8]
mov edx, 0xbe01
mov ebx, dword [ebp - 0xe8]
mov edi, dword [ebp - 0xe0]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov ax, word [ebx + ecx*8 + 8]
and ax, dx
or ax, 1
mov word [ebx + ecx*8 + 8], ax
jmp 0x477dd8
test al, 0x10
jne 0x477db0
mov edi, dword [ebp - 0xe0]
jmp 0x477dd8
and al, 0x47
cmp al, 0x43
jl 0x473b01
and cl, 0xe
cmp cl, 2
jne 0x473ae9
xor edx, edx
mov ecx, edi
call fcn.00472620
mov al, byte [esi + 8]
and al, 0xe
cmp al, 2
jne 0x473b77
xor edx, edx
mov ecx, esi
call fcn.00472620
jmp 0x473b77
cmp al, 0x42
jne 0x473b77
test cl, 2
jne 0x473b43
test cl, 0xc
je 0x473b43
mov dl, byte [ebp - 0x118]
mov ecx, edi
push 1
call fcn.0046a3e0
mov ax, word [edi + 8]
add esp, 4
mov ecx, dword [ebp - 0x100]
xor ax, cx
mov ecx, 0x1ff
and ax, cx
xor ax, word [edi + 8]
movzx eax, ax
mov dword [ebp - 0x100], eax
movzx eax, word [esi + 8]
test al, 2
jne 0x473b77
test al, 0xc
je 0x473b77
mov dl, byte [ebp - 0x118]
mov ecx, esi
push 1
call fcn.0046a3e0
mov ax, word [esi + 8]
mov ecx, 0x1ff
xor ax, bx
add esp, 4
and ax, cx
xor ax, word [esi + 8]
movzx ebx, ax
mov eax, 0x4000
test word [edi + 8], ax
je 0x473b98
mov ecx, edi
call fcn.0046a320
and dword [ebp - 0x100], 0xbfff
mov eax, 0x4000
test word [esi + 8], ax
je 0x473bab
mov ecx, esi
call fcn.0046a320
and ebx, 0xbfff
mov eax, dword [ebp - 0xe0]
cmp byte [eax + 0x41], 0
jne 0x47827e
mov eax, dword [ebp - 0xd8]
mov edx, edi
mov ecx, esi
push dword [eax + 0x10]
call fcn.0046eeb0
add esp, 4
mov edx, eax
mov eax, dword [ebp - 0xd8]
movzx ecx, byte [eax]
add ecx, 0xffffffb2
cmp ecx, 4
ja case.default.0x473be3
jmp dword [ecx*4 + 0x478514]
xor eax, eax
test edx, edx
sete al
jmp 0x473c1e
xor eax, eax
test edx, edx
setne al
jmp 0x473c1e
xor eax, eax
test edx, edx
sets al
jmp 0x473c1e
xor eax, eax
test edx, edx
setle al
jmp 0x473c1e
xor eax, eax
test edx, edx
setg al
jmp 0x473c1e
xor eax, eax
test edx, edx
setns al
mov ecx, dword [ebp - 0x100]
mov word [edi + 8], cx
mov edi, dword [ebp - 0xd8]
mov word [esi + 8], bx
test byte [edi + 3], 0x20
je 0x473c6d
mov ecx, dword [edi + 8]
mov edx, 0xbe04
mov ebx, dword [ebp - 0xe8]
mov edi, dword [ebp - 0xe0]
lea esi, [ecx + ecx*4]
mov cx, word [ebx + esi*8 + 8]
and cx, dx
cdq
or cx, 4
mov dword [ebx + esi*8], eax
mov word [ebx + esi*8 + 8], cx
mov dword [ebx + esi*8 + 4], edx
jmp 0x477dd8
test eax, eax
jne 0x477db6
mov edi, dword [ebp - 0xe0]
jmp 0x477dd8
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0x13c], ecx
jmp case.default.0x4729c5
mov edx, dword [ebp - 0xd8]
mov eax, 0
mov esi, dword [ebp - 0xd8]
mov ebx, dword [ebp - 0x13c]
test byte [edx + 3], 1
mov ecx, dword [esi + 4]
cmove ebx, eax
mov dword [ebp - 0x124], ecx
mov eax, dword [edx + 0xc]
mov ecx, dword [esi + 8]
xor esi, esi
mov edx, dword [edx + 0x10]
mov dword [ebp - 0x13c], ebx
mov dword [ebp - 0xfc], eax
mov dword [ebp - 0x114], edx
mov dword [ebp - 0xf4], ecx
test eax, eax
jle 0x473d6e
lea edi, [edx + 0x14]
test ebx, ebx
je 0x473cec
mov ecx, dword [ebx + esi*4]
jmp 0x473cee
mov ecx, esi
mov eax, dword [edx + 0x10]
mov edx, dword [ebp - 0xe8]
push dword [edi]
movzx ebx, byte [eax + esi]
mov eax, dword [ebp - 0xf4]
add eax, ecx
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov eax, dword [ebp - 0x124]
add eax, ecx
mov ecx, dword [ebp - 0xe8]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.0046eeb0
add esp, 4
mov dword [ebp - 0x15c], eax
test eax, eax
jne 0x473d5c
mov edx, dword [ebp - 0x114]
inc esi
mov ebx, dword [ebp - 0x13c]
add edi, 4
cmp esi, dword [ebp - 0xfc]
jl 0x473ce3
mov edi, dword [ebp - 0xe0]
xor ecx, ecx
mov dword [ebp - 0x13c], ecx
jmp 0x477dd8
test ebx, ebx
je 0x473d68
neg eax
mov dword [ebp - 0x15c], eax
mov edi, dword [ebp - 0xe0]
xor ecx, ecx
mov dword [ebp - 0x13c], ecx
jmp 0x477dd8
mov eax, dword [ebp - 0x15c]
test eax, eax
mov ecx, dword [ebp - 0x10c]
mov eax, dword [ebp - 0xd8]
jns 0x473da2
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea esi, [ecx + eax*4]
jmp case.default.0x4729c5
jne 0x473db5
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea esi, [ecx + eax*4]
jmp case.default.0x4729c5
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea esi, [ecx + eax*4]
jmp case.default.0x4729c5
mov ebx, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xe8]
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
lea ecx, [ecx + eax*8]
je 0x473de9
mov esi, 2
jmp 0x473dfb
call fcn.0046a6b0
or eax, edx
je 0x473df9
mov esi, 1
jmp 0x473dfb
xor esi, esi
mov eax, dword [ebx + 8]
mov ebx, dword [ebp - 0xe8]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 8], 1
lea ecx, [ebx + eax*8]
je 0x473e18
mov eax, 2
jmp 0x473e2a
call fcn.0046a6b0
or eax, edx
je 0x473e28
mov eax, 1
jmp 0x473e2a
xor eax, eax
mov ecx, dword [ebp - 0xd8]
lea eax, [eax + esi*2]
cmp byte [ecx], 0x48
jne 0x473e42
movzx edx, byte [esi + eax + 0x50ef08]
jmp 0x473e4a
movzx edx, byte [esi + eax + 0x50e94c]
mov eax, dword [ecx + 0xc]
mov esi, dword [ebp - 0xd8]
lea ecx, [eax + eax*4]
cmp edx, 2
jne 0x473e76
mov ax, word [ebx + ecx*8 + 8]
mov edx, 0xbe01
and ax, dx
or ax, 1
mov word [ebx + ecx*8 + 8], ax
jmp case.default.0x4729c5
mov eax, edx
cdq
mov dword [ebx + ecx*8], eax
mov ax, word [ebx + ecx*8 + 8]
mov dword [ebx + ecx*8 + 4], edx
mov edx, 0xbe04
and ax, dx
or ax, 4
mov word [ebx + ecx*8 + 8], ax
jmp case.default.0x4729c5
mov edx, dword [ebp - 0xd8]
mov ebx, dword [ebp - 0xe8]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
mov ecx, esi
call fcn.0046aab0
test byte [edi + 8], 1
jne 0x472ea3
mov eax, 4
mov ecx, edi
mov word [esi + 8], ax
call fcn.0046a6b0
or eax, edx
jne 0x473ef4
mov edi, dword [ebp - 0xe0]
mov eax, 1
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x477dd8
mov edi, dword [ebp - 0xe0]
xor eax, eax
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x477dd8
mov edx, dword [ebp - 0xd8]
mov ebx, dword [ebp - 0xe8]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
mov ecx, esi
call fcn.0046aab0
test byte [edi + 8], 1
jne 0x472ea3
mov eax, 4
mov ecx, edi
mov word [esi + 8], ax
call fcn.0046a6b0
mov edi, dword [ebp - 0xe0]
not eax
not edx
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x477dd8
mov eax, dword [ebp - 0xe4]
mov ecx, dword [esi + 4]
mov eax, dword [eax + 0xc8]
cmp byte [eax + ecx], 0
jne 0x477db0
mov byte [eax + ecx], 1
jmp case.default.0x4729c5
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xe8]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
lea ecx, [ecx + eax*8]
je 0x473fa9
mov ecx, dword [ebp - 0xd8]
mov esi, dword [ebp - 0xd8]
mov ecx, dword [ecx + 0xc]
jmp 0x473fd8
call fcn.0046a760
xorps xmm1, xmm1
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x473fc2
mov ecx, 1
jmp 0x473fc4
xor ecx, ecx
mov esi, dword [ebp - 0xd8]
cmp byte [esi], 0x2e
jne 0x473fd8
xor eax, eax
test ecx, ecx
sete al
mov ecx, eax
test ecx, ecx
jne 0x477db0
jmp case.default.0x4729c5
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xe8]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
jne 0x477db0
jmp 0x477dd8
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xe8]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
je 0x477db0
jmp 0x477dd8
mov ebx, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xe8]
mov eax, dword [ebx + 8]
mov dword [ebp - 0xf8], eax
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov eax, dword [ebp - 0xe4]
mov ecx, dword [ebx + 4]
mov dword [ebp - 0xf0], edx
mov eax, dword [eax + 0x38]
mov ebx, dword [eax + ecx*4]
mov dword [ebp - 0x110], ebx
cmp byte [ebx + 0x1a], 0
mov esi, dword [ebx + 0x50]
mov ecx, dword [ebx]
mov dword [ebp - 0x100], esi
mov dword [ebp - 0x108], ecx
je 0x474082
mov ecx, ebx
call fcn.0046e660
jmp 0x474093
test ecx, ecx
je 0x4740af
cmp byte [ecx + 0x49], 1
je 0x4740af
mov ecx, ebx
call fcn.0046e6c0
mov dword [ebp - 0xdc], eax
test eax, eax
jne 0x475bbb
mov edx, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x108]
jmp 0x4740b9
mov dword [ebp - 0xdc], 0
mov edi, dword [ebp - 0xe4]
mov eax, dword [ebx + 0x3c]
cmp eax, dword [edi + 0x48]
mov edi, dword [ebp - 0xe0]
je 0x474228
cmp byte [ebx + 0x19], 0
je 0x474111
test ecx, ecx
jne 0x4740ff
mov eax, dword [ebx + 0x10]
lea edi, [ebx + 0x40]
mov ecx, dword [ebp - 0xe8]
lea eax, [eax + eax*4]
mov esi, dword [ecx + eax*8 + 0xc]
mov dword [ebx + 0x44], esi
mov dword [edi], esi
mov eax, dword [ecx + eax*8 + 0x10]
mov dword [ebx + 0x4c], eax
jmp 0x47419a
mov ecx, edx
call fcn.0046aab0
mov eax, dword [ebp - 0xf0]
jmp 0x47451c
test byte [ebx + 0x1c], 4
jne 0x474151
lea edx, [ebp - 0x1f0]
call fcn.00462800
mov edx, dword [ebp - 0x108]
lea edi, [ebx + 0x40]
movsx eax, word [edx + 0x4c]
mov ecx, dword [edx + 0x20]
mov eax, dword [edx + eax*4 + 0x78]
mov esi, dword [eax + 0x3c]
movzx eax, word [edx + 0x28]
sub esi, ecx
cmp eax, esi
mov dword [ebx + 0x4c], ecx
cmovb esi, eax
mov eax, dword [ebp - 0x1f0]
mov dword [edi], eax
jmp 0x47417d
lea edi, [ebx + 0x40]
mov edx, edi
call fcn.00462860
mov edx, dword [ebp - 0x108]
movsx eax, word [edx + 0x4c]
mov ecx, dword [edx + 0x20]
mov eax, dword [edx + eax*4 + 0x78]
mov esi, dword [eax + 0x3c]
movzx eax, word [edx + 0x28]
sub esi, ecx
cmp eax, esi
mov dword [ebx + 0x4c], ecx
cmovb esi, eax
mov eax, dword [edi]
cmp eax, esi
ja 0x474188
mov dword [ebx + 0x44], eax
jmp 0x47418b
mov dword [ebx + 0x44], esi
mov ecx, dword [ebp - 0xe0]
cmp eax, dword [ecx + 0x58]
ja 0x4780ff
mov eax, dword [ebp - 0xe4]
mov ecx, dword [ebx + 0x4c]
mov eax, dword [eax + 0x48]
mov dword [ebx + 0x3c], eax
mov al, byte [ecx]
cmp al, 0x80
jae 0x4741bf
movzx ecx, al
mov eax, 1
mov dword [ebp - 0x164], ecx
jmp 0x4741d3
lea edx, [ebp - 0x164]
call fcn.00450780
mov ecx, dword [ebp - 0x164]
movzx eax, al
mov edx, dword [ebp - 0x100]
movzx eax, al
mov dword [ebx + 0x48], eax
xor eax, eax
mov word [ebx + 0x16], ax
mov dword [edx], ecx
cmp ecx, 0x18003
ja 0x474207
cmp ecx, dword [edi]
ja 0x474207
mov edi, dword [ebp - 0xe0]
cmp esi, ecx
mov esi, edx
jae 0x474238
mov dword [ebx + 0x4c], eax
mov dword [ebx + 0x44], eax
jmp 0x474238
mov ecx, 0x11e08
call fcn.004c1ac0
mov edi, dword [ebp - 0xe0]
mov esi, dword [ebp - 0xd8]
mov dword [ebp - 0xdc], eax
jmp 0x477de4
movzx eax, word [ebx + 0x16]
cmp eax, dword [ebp - 0xf8]
jg 0x474401
mov eax, dword [ebx + 0x48]
cmp eax, dword [esi]
jae 0x4743c4
mov ecx, dword [ebx + 0x4c]
mov dword [ebp - 0x12c], ecx
test ecx, ecx
jne 0x4742aa
mov ecx, dword [ebp - 0x108]
lea eax, [ebp - 0x2a8]
push eax
xorps xmm0, xmm0
xor edx, edx
movdqu xmmword [ebp - 0x2a8], xmm0
movdqu xmmword [ebp - 0x298], xmm0
movq qword [ebp - 0x288], xmm0
mov eax, dword [ebx + 0x1c]
shr eax, 2
not eax
and eax, 1
push eax
push dword [esi]
call fcn.0046af70
add esp, 0xc
mov dword [ebp - 0xdc], eax
test eax, eax
jne 0x474e58
mov ecx, dword [ebp - 0x298]
mov dword [ebp - 0x12c], ecx
movzx ebx, word [ebx + 0x16]
mov eax, dword [ebp - 0x110]
mov edx, dword [ebp - 0x100]
mov edi, dword [esi + ebx*4]
mov esi, dword [eax + 0x48]
add esi, ecx
mov ecx, dword [edx]
add ecx, dword [ebp - 0x12c]
lea edx, [eax + 0x54]
lea edx, [edx + ebx*4]
mov dword [ebp - 0x104], ecx
mov dword [ebp - 0x114], edx
lea esp, [esp]
mov al, byte [esi]
cmp al, 0x80
jae 0x4742f2
movzx ecx, al
inc esi
mov dword [ebp - 0x160], ecx
jmp 0x474310
lea edx, [ebp - 0x160]
mov ecx, esi
call fcn.00450780
mov ecx, dword [ebp - 0x160]
mov edx, dword [ebp - 0x114]
movzx eax, al
add esi, eax
mov dword [edx], ecx
call fcn.0046e810
add edi, eax
mov dword [ebp - 0x164], edi
cmp edi, eax
jb 0x474348
mov eax, dword [ebp - 0x100]
inc ebx
add edx, 4
mov dword [ebp - 0x114], edx
mov dword [eax + ebx*4], edi
cmp ebx, dword [ebp - 0xf8]
jg 0x47434f
cmp esi, dword [ebp - 0x104]
jb 0x4742e0
jmp 0x47434f
mov esi, dword [ebp - 0x104]
inc esi
mov eax, dword [ebp - 0x110]
mov word [eax + 0x16], bx
mov eax, esi
mov ebx, dword [ebp - 0x110]
sub eax, dword [ebp - 0x12c]
cmp dword [ebx + 0x4c], 0
mov dword [ebx + 0x48], eax
jne 0x474387
lea ecx, [ebp - 0x2a8]
call fcn.0046a690
mov eax, 1
mov word [ebp - 0x2a0], ax
mov eax, dword [ebp - 0x104]
cmp esi, eax
jb 0x474398
ja 0x47439d
cmp edi, dword [ebx + 0x40]
jne 0x47439d
cmp edi, dword [ebx + 0x40]
jbe 0x4743be
mov ecx, 0x11e5c
call fcn.004c1ac0
mov edi, dword [ebp - 0xe0]
mov esi, dword [ebp - 0xd8]
mov dword [ebp - 0xdc], eax
jmp 0x477de4
mov esi, dword [ebp - 0x100]
movzx eax, word [ebx + 0x16]
cmp eax, dword [ebp - 0xf8]
jg 0x474401
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xf0]
cmp byte [eax + 1], 0xf8
jne 0x474101
mov edx, dword [eax + 0x10]
push 0x800
call fcn.0046ac50
mov eax, dword [ebp - 0xf0]
add esp, 4
jmp 0x47451c
mov ecx, dword [ebp - 0xf0]
mov eax, 0x2460
test word [ecx + 8], ax
je 0x47441d
call fcn.0046aab0
mov ecx, dword [ebp - 0xf0]
mov eax, dword [ebp - 0xf8]
mov edx, dword [ebp - 0x110]
mov edi, dword [ebp - 0xf8]
mov ebx, dword [ebx + eax*4 + 0x54]
mov eax, dword [edx + 0x44]
cmp eax, dword [esi + edi*4 + 4]
mov edi, dword [ebp - 0xe0]
mov dword [ebp - 0x160], ebx
jb 0x47446a
mov eax, dword [ebp - 0xf8]
push ecx
mov ecx, dword [edx + 0x4c]
mov edx, ebx
add ecx, dword [esi + eax*4]
call fcn.0046e960
mov eax, dword [ebp - 0xf0]
add esp, 4
jmp 0x474513
mov eax, dword [ebp - 0xd8]
mov al, byte [eax + 3]
test al, 0xc0
je 0x474485
cmp ebx, 0xc
jb 0x474481
test bl, 1
je 0x474492
test al, al
js 0x474492
mov ecx, ebx
call fcn.0046e810
mov ecx, eax
test ecx, ecx
jne 0x4744b8
push dword [ebp - 0xf0]
xor eax, eax
lea ecx, [ebp - 0x1f0]
cmp ebx, 0xd
mov edx, ebx
cmova ecx, eax
call fcn.0046e960
mov eax, dword [ebp - 0xf0]
add esp, 4
jmp 0x474513
mov eax, dword [edx + 0x1c]
push dword [ebp - 0xf0]
shr eax, 2
not eax
and eax, 1
push eax
mov eax, dword [ebp - 0xf8]
push ecx
mov ecx, dword [ebp - 0x108]
mov edx, dword [esi + eax*4]
call fcn.0046af70
add esp, 0xc
mov dword [ebp - 0xdc], eax
test eax, eax
jne 0x474e58
mov eax, dword [ebp - 0xf0]
mov edx, ebx
push eax
mov ecx, dword [eax + 0x10]
call fcn.0046e960
mov eax, dword [ebp - 0xf0]
mov ecx, 0xefff
add esp, 4
and word [eax + 8], cx
mov cl, byte [ebp - 0x118]
mov byte [eax + 0xa], cl
movzx ecx, word [eax + 8]
test ecx, 0x1000
je 0x472ea3
mov ebx, dword [eax + 0x10]
test ebx, ebx
je 0x472ea3
mov edi, dword [eax + 0xc]
mov esi, ecx
and esi, 0x12
lea edx, [edi + 2]
cmp dword [eax + 0x18], edx
jge 0x474672
push 0
mov ecx, eax
call fcn.0046a180
add esp, 4
test eax, eax
je 0x474685
mov edi, dword [ebp - 0xe0]
mov eax, dword [ebp - 0xe4]
push str.out_of_memory
add eax, 0x2c
mov byte [edi + 0x41], 1
push edi
push eax
call fcn.0044ce00
mov dword [ebp - 0xdc], 7
mov eax, dword [ebp - 0xdc]
add esp, 0xc
mov ebx, dword [ebp - 0xe0]
mov esi, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xe4]
sub esi, dword [ebp - 0x10c]
mov dword [edx + 0x50], eax
mov eax, edx
push dword [eax + 0x2c]
push dword [eax + 0xa8]
mov eax, 0x66666667
imul esi
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push str.statement_aborts_at__d:___s___s
push dword [ebp - 0xdc]
call fcn.0044eab0
mov esi, dword [ebp - 0xe4]
add esp, 0x14
mov ecx, esi
call fcn.0046dc90
cmp dword [ebp - 0xdc], 0xc0a
jne 0x4745f9
mov byte [ebx + 0x41], 1
mov al, byte [ebp - 0x125]
mov edi, 1
test al, al
je 0x474637
movzx esi, al
mov eax, dword [ebx + 0x10]
dec esi
mov ecx, esi
add ecx, ecx
push dword [eax + ecx*8 + 0xc]
call fcn.0048ef30
add esp, 4
cmp esi, edi
je 0x474631
mov eax, dword [ebx + 0x10]
push dword [eax + 0x1c]
call fcn.0048ef30
add esp, 4
mov esi, dword [ebp - 0xe4]
mov eax, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0x134]
mov dword [eax + 0x20], ecx
mov ecx, dword [ebp - 0x138]
mov dword [eax + 0x24], ecx
mov ecx, esi
mov eax, dword [ebp - 0x14c]
add dword [esi + 0x7c], eax
call fcn.0046c4a0
mov ecx, dword [ebp - 4]
mov eax, edi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004c8a23
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0xf0]
and ecx, 0xd
mov eax, dword [eax + 0x14]
mov dword [edx + 0x10], eax
mov word [edx + 8], cx
push edi
push ebx
mov ebx, dword [ebp - 0xf0]
push dword [ebx + 0x10]
call fcn.004cd4f0
mov eax, dword [ebx + 0x10]
add esp, 0xc
or esi, 0x200
mov byte [edi + eax], 0
mov eax, dword [ebx + 0x10]
mov byte [edi + eax + 1], 0
mov edi, dword [ebp - 0xe0]
mov word [ebx + 8], si
jmp 0x477dd8
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xe8]
mov esi, dword [eax + 0x10]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov al, byte [esi]
test al, al
je 0x472ea3
mov edi, edi
push dword [ebp - 0x118]
mov dl, al
lea esi, [esi + 1]
mov ecx, edi
call fcn.004726b0
mov al, byte [esi]
add esp, 4
add edi, 0x28
test al, al
jne 0x4746e0
mov edi, dword [ebp - 0xe0]
jmp 0x477dd8
mov ebx, dword [ebp - 0xd8]
xor eax, eax
mov ecx, dword [ebp - 0xe8]
xorps xmm0, xmm0
mov dword [ebp - 0xf0], eax
movlpd qword [ebp - 0x158], xmm0
mov eax, dword [ebx + 4]
mov esi, dword [ebx + 0x10]
movlpd qword [ebp - 0x170], xmm0
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [ebx + 8]
mov dword [ebp - 0x104], edi
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [edi + eax*8]
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0xe4]
movzx edx, byte [eax + 0x57]
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x114], edx
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
mov dword [ebp - 0xfc], ebx
test esi, esi
je 0x4747a5
mov al, byte [esi]
lea esp, [esp]
push dword [ebp - 0x118]
mov dl, al
mov ecx, edi
call fcn.004726b0
mov al, byte [esi + 1]
lea esi, [esi + 1]
add esp, 4
add edi, 0x28
test al, al
jne 0x474780
mov edx, dword [ebp - 0x114]
mov eax, dword [ebp - 0x154]
mov esi, dword [ebp - 0x12c]
mov dword [ebp - 0x108], eax
mov eax, dword [ebp - 0x158]
mov dword [ebp - 0x110], eax
mov eax, dword [ebp - 0x16c]
mov dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0x170]
mov dword [ebp - 0x100], eax
jmp 0x4747e0
mov ecx, esi
call fcn.0046e710
mov edi, eax
mov ecx, edi
mov dword [esi + 0x1c], edi
call fcn.0046e810
mov ebx, eax
mov eax, 0x4000
test word [esi + 8], ax
je 0x474828
mov ecx, dword [ebp - 0x110]
or ecx, dword [ebp - 0x108]
je 0x474817
mov ecx, esi
call fcn.0046a320
jmp 0x474828
mov eax, dword [esi]
cdq
add dword [ebp - 0x100], eax
adc dword [ebp - 0xf8], edx
sub ebx, dword [esi]
mov eax, ebx
cdq
add dword [ebp - 0x110], eax
adc dword [ebp - 0x108], edx
cmp edi, 0x7f
ja 0x474843
mov eax, 1
jmp 0x47484e
push 0
push edi
call fcn.00450800
add esp, 8
mov ecx, dword [ebp - 0xf0]
sub esi, 0x28
mov ebx, dword [ebp - 0x104]
add ecx, eax
mov edx, dword [ebp - 0x114]
mov dword [ebp - 0xf0], ecx
cmp esi, ebx
jae 0x4747e0
cmp ecx, 0x7e
jle 0x4748a7
mov eax, ecx
cdq
push edx
push eax
call fcn.00450800
mov esi, eax
mov eax, dword [ebp - 0xf0]
add eax, esi
mov dword [ebp - 0xf0], eax
cdq
push edx
push eax
call fcn.00450800
mov ecx, dword [ebp - 0xf0]
add esp, 0x10
cmp esi, eax
jge 0x4748ae
inc ecx
mov dword [ebp - 0xf0], ecx
mov edi, dword [ebp - 0xe0]
mov eax, ecx
cdq
mov ecx, eax
mov eax, edx
mov edx, ecx
mov dword [ebp - 0x124], ecx
add edx, dword [ebp - 0x110]
mov ecx, eax
mov esi, edx
mov dword [ebp - 0xf4], eax
adc ecx, dword [ebp - 0x108]
add esi, dword [ebp - 0x100]
mov eax, dword [edi + 0x58]
adc ecx, dword [ebp - 0xf8]
mov dword [ebp - 0x114], edx
cdq
cmp ecx, edx
jg 0x478109
jl 0x474901
cmp esi, eax
ja 0x478109
mov esi, dword [ebp - 0xfc]
mov eax, dword [ebp - 0x114]
cmp dword [esi + 0x18], eax
jge 0x47492a
push 0
mov edx, eax
mov ecx, esi
call fcn.0046a180
add esp, 4
test eax, eax
jne 0x474565
jmp 0x474935
mov eax, dword [esi + 0x14]
and word [esi + 8], 0xd
mov dword [esi + 0x10], eax
mov ecx, dword [ebp - 0xf0]
mov edi, dword [esi + 0x10]
cmp ecx, 0x80
jae 0x47494f
mov byte [edi], cl
mov eax, 1
jmp 0x474965
push dword [ebp - 0xf4]
mov ecx, edi
push dword [ebp - 0x124]
call fcn.004505a0
add esp, 8
movzx esi, al
jmp 0x474970
mov ebx, dword [ebx + 0x1c]
cmp ebx, 0x80
jae 0x474985
mov byte [esi + edi], bl
mov eax, 1
jmp 0x474993
push 0
push ebx
lea ecx, [esi + edi]
call fcn.004505a0
add esp, 8
mov ecx, dword [ebp - 0xf0]
push ebx
mov ebx, dword [ebp - 0x104]
mov edx, ebx
movzx eax, al
lea ecx, [ecx + edi]
add esi, eax
call fcn.0046e830
add dword [ebp - 0xf0], eax
add ebx, 0x28
add esp, 4
mov dword [ebp - 0x104], ebx
cmp ebx, dword [ebp - 0x12c]
jbe 0x474970
mov ebx, dword [ebp - 0xfc]
mov eax, dword [ebp - 0x114]
mov ecx, dword [ebp - 0x100]
mov dword [ebx + 0xc], eax
mov eax, 0x10
mov word [ebx + 8], ax
mov eax, ecx
or eax, dword [ebp - 0xf8]
je 0x4749fc
mov eax, 0x4010
mov dword [ebx], ecx
mov word [ebx + 8], ax
mov edi, dword [ebp - 0xe0]
mov byte [ebx + 0xa], 1
jmp 0x477dd8
mov eax, dword [ebp - 0xd8]
lea edx, [ebp - 0x170]
mov esi, dword [ebp - 0xe4]
xorps xmm0, xmm0
movlpd qword [ebp - 0x170], xmm0
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x38]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax]
call fcn.00467c60
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 8]
lea ecx, [eax + ecx*8]
mov eax, 0x2460
test word [ecx + 8], ax
je 0x474a78
call fcn.00472830
mov ecx, eax
mov eax, dword [ebp - 0x170]
mov dword [ecx], eax
mov eax, dword [ebp - 0x16c]
mov dword [ecx + 4], eax
jmp 0x477dd8
mov eax, 4
mov word [ecx + 8], ax
mov eax, dword [ebp - 0x170]
mov dword [ecx], eax
mov eax, dword [ebp - 0x16c]
mov dword [ecx + 4], eax
jmp 0x477dd8
mov ebx, dword [ebp - 0xd8]
mov eax, dword [ebx + 4]
mov esi, dword [ebx + 0x10]
mov dword [ebp - 0x100], eax
test eax, eax
jne 0x474b7d
cmp dword [edi + 0x9c], eax
jg 0x477ed0
mov ecx, esi
call fcn.0044f550
mov ecx, dword [edi + 0x1f4]
xor edx, edx
add ecx, dword [edi + 0x1f0]
mov ebx, eax
push ecx
mov ecx, edi
call fcn.004b06a0
add esp, 4
mov dword [ebp - 0xdc], eax
test eax, eax
jne 0x475bbb
lea eax, [ebx + 0x21]
mov ecx, edi
push 0
push eax
call fcn.0044cb60
mov edi, eax
add esp, 8
test edi, edi
je 0x474b65
lea ecx, [ebx + 1]
push ecx
lea edx, [edi + 0x20]
push esi
push edx
mov dword [edi], edx
call fcn.004cd4f0
mov ecx, dword [ebp - 0xe0]
add esp, 0xc
cmp byte [ecx + 0x3f], 0
je 0x474b2c
mov byte [ecx + 0x3f], 0
mov byte [ecx + 0x46], 1
jmp 0x474b32
inc dword [ecx + 0x1f0]
mov eax, dword [ecx + 0x1e8]
mov dword [edi + 0x18], eax
mov eax, dword [ecx + 0x1f8]
mov dword [ecx + 0x1e8], edi
mov dword [edi + 8], eax
mov eax, dword [ecx + 0x1fc]
mov dword [edi + 0xc], eax
mov eax, dword [ecx + 0x200]
mov dword [edi + 0x10], eax
mov eax, dword [ecx + 0x204]
mov dword [edi + 0x14], eax
add dword [ebp - 0xd8], 0x14
mov edi, dword [ebp - 0xe0]
mov esi, dword [ebp - 0xd8]
jmp 0x472995
mov ebx, dword [edi + 0x1e8]
xor ecx, ecx
mov dword [ebp - 0xf8], ecx
test ebx, ebx
je 0x474bac
nop
push esi
push dword [ebx]
call fcn.0044f860
add esp, 8
test eax, eax
je 0x474be0
inc dword [ebp - 0xf8]
mov ebx, dword [ebx + 0x18]
test ebx, ebx
jne 0x474b90
mov eax, dword [ebp - 0xe4]
push esi
push str.no_such_savepoint:__s
add eax, 0x2c
push edi
push eax
call fcn.0044ce00
add esp, 0x10
add dword [ebp - 0xd8], 0x14
mov eax, 1
mov dword [ebp - 0xdc], 1
jmp 0x474591
cmp dword [edi + 0x9c], 0
mov edx, dword [ebp - 0x100]
jle 0x474bf8
cmp edx, 1
je 0x477f01
cmp dword [ebx + 0x18], 0
jne 0x474c56
cmp byte [edi + 0x46], 0
je 0x474c56
mov dword [ebp - 0x104], 1
cmp edx, 1
jne 0x474c60
mov esi, dword [ebp - 0xe4]
mov ecx, esi
call fcn.0046dc20
mov edi, eax
test edi, edi
jne 0x474637
mov edi, dword [ebp - 0xe0]
mov ecx, esi
mov byte [edi + 0x3f], 1
call fcn.0046dc90
cmp eax, 5
je 0x477f34
mov byte [edi + 0x46], 0
mov eax, dword [esi + 0x50]
mov dword [ebp - 0xdc], eax
jmp 0x474d4b
mov dword [ebp - 0x104], 0
mov eax, dword [edi + 0x1f0]
sub eax, dword [ebp - 0xf8]
mov ecx, dword [ebp - 0xe0]
dec eax
mov dword [ebp - 0xf8], eax
cmp edx, 2
jne 0x474d83
mov edx, dword [edi + 0x18]
xor edi, edi
shr edx, 1
and edx, 1
mov dword [ebp - 0xfc], edx
cmp dword [ecx + 0x14], edi
jle 0x474ce4
xor eax, eax
test edx, edx
sete al
xor esi, esi
mov dword [ebp - 0xf4], eax
mov ecx, dword [ecx + 0x10]
mov edx, 0x204
push eax
mov ecx, dword [esi + ecx + 4]
call fcn.004621e0
add esp, 4
mov dword [ebp - 0xdc], eax
test eax, eax
jne 0x475bbb
mov ecx, dword [ebp - 0xe0]
inc edi
mov eax, dword [ebp - 0xf4]
add esi, 0x10
cmp edi, dword [ecx + 0x14]
jl 0x474ca6
mov eax, dword [ebp - 0xf8]
mov edx, dword [ebp - 0x100]
xor edi, edi
cmp dword [ecx + 0x14], edi
jle 0x474d2c
xor esi, esi
mov ecx, dword [ecx + 0x10]
push eax
mov ecx, dword [esi + ecx + 4]
call fcn.004624f0
add esp, 4
mov dword [ebp - 0xdc], eax
test eax, eax
jne 0x475bbb
mov ecx, dword [ebp - 0xe0]
inc edi
mov eax, dword [ebp - 0xf8]
add esi, 0x10
mov edx, dword [ebp - 0x100]
cmp edi, dword [ecx + 0x14]
jl 0x474cf3
cmp dword [ebp - 0xfc], 0
mov edi, dword [ebp - 0xe0]
je 0x474d4b
mov ecx, edi
call fcn.0046fbc0
call fcn.00488990
or dword [edi + 0x18], 2
cmp dword [edi + 0x1e8], ebx
je 0x474dcf
jmp 0x474d60
cmp dword [edi + 0x208], 0
mov ecx, dword [edi + 0x1e8]
mov eax, dword [ecx + 0x18]
mov dword [edi + 0x1e8], eax
je 0x474d92
mov edx, ecx
mov ecx, edi
call fcn.0044c8a0
jmp 0x474dc1
mov dword [ebp - 0xfc], 0
jmp 0x474cea
cmp ecx, dword [edi + 0x114]
jb 0x474db8
cmp ecx, dword [edi + 0x118]
jae 0x474db8
mov eax, dword [edi + 0x110]
mov dword [ecx], eax
dec dword [edi + 0xfc]
mov dword [edi + 0x110], ecx
jmp 0x474dc1
push ecx
call fcn.0044c830
add esp, 4
dec dword [edi + 0x1f0]
cmp dword [edi + 0x1e8], ebx
jne 0x474d60
mov esi, dword [ebp - 0x100]
cmp esi, 1
jne 0x474e01
mov eax, dword [ebx + 0x18]
mov edx, ebx
mov ecx, edi
mov dword [edi + 0x1e8], eax
call fcn.0044c8e0
cmp dword [ebp - 0x104], 0
jne 0x477dd8
dec dword [edi + 0x1f0]
jmp 0x474e37
cmp dword [ebp - 0x104], 0
mov eax, dword [ebx + 8]
mov dword [edi + 0x1f8], eax
mov eax, dword [ebx + 0xc]
mov dword [edi + 0x1fc], eax
mov eax, dword [ebx + 0x10]
mov dword [edi + 0x200], eax
mov eax, dword [ebx + 0x14]
mov dword [edi + 0x204], eax
je 0x474e37
cmp esi, 2
jne 0x477dd8
mov ecx, dword [ebp - 0xf8]
mov edx, esi
push ecx
mov ecx, edi
call fcn.004b06a0
add esp, 4
mov dword [ebp - 0xdc], eax
test eax, eax
jne 0x475bbb
mov esi, dword [ebp - 0xd8]
jmp 0x477de4
mov edx, dword [ebp - 0xd8]
mov edx, dword [edx + 8]
test edx, edx
je 0x474e7d
test dword [edi + 0x18], 0x2000000
jne 0x477f65
mov eax, dword [ebp - 0xd8]
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x10]
add ecx, ecx
mov esi, dword [eax + ecx*8 + 4]
test esi, esi
je 0x474f94
mov ecx, esi
call fcn.00461250
mov ebx, eax
mov dword [ebp - 0xdc], ebx
cmp ebx, 5
je 0x477f79
test ebx, ebx
jne 0x475bb5
mov eax, dword [ebp - 0xd8]
cmp dword [eax + 8], ebx
je 0x474f61
mov ebx, dword [ebp - 0xe4]
test byte [ebx + 0x58], 0x20
je 0x474f61
cmp byte [edi + 0x3f], 0
je 0x474ee9
cmp dword [edi + 0x98], 1
jle 0x474f61
cmp dword [ebx + 0x68], 0
jne 0x474f04
mov eax, dword [edi + 0x1f0]
inc dword [edi + 0x1f4]
add eax, dword [edi + 0x1f4]
mov dword [ebx + 0x68], eax
mov eax, dword [ebx + 0x68]
xor edx, edx
dec eax
mov ecx, edi
push eax
call fcn.004b06a0
mov ecx, eax
add esp, 4
mov dword [ebp - 0xdc], ecx
test ecx, ecx
jne 0x474f31
mov edx, dword [ebx + 0x68]
mov ecx, esi
call fcn.004624a0
mov dword [ebp - 0xdc], eax
mov eax, dword [edi + 0x1f8]
mov dword [ebx + 0x98], eax
mov eax, dword [edi + 0x1fc]
mov dword [ebx + 0x9c], eax
mov eax, dword [edi + 0x200]
mov dword [ebx + 0xa0], eax
mov eax, dword [edi + 0x204]
mov dword [ebx + 0xa4], eax
lea eax, [ebp - 0x180]
mov edx, 1
push eax
mov ecx, esi
call fcn.00467b30
mov eax, dword [ebp - 0xd8]
add esp, 4
mov esi, dword [ebp - 0x180]
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax + 4]
jmp 0x474f9e
xor esi, esi
xor eax, eax
mov dword [ebp - 0x180], esi
mov ecx, dword [ebp - 0xd8]
cmp byte [ecx + 3], 0
je 0x477dd8
cmp esi, dword [ecx + 0xc]
jne 0x474fbc
cmp eax, dword [ecx + 0x10]
je 0x477dd8
mov ebx, dword [ebp - 0xe4]
mov ecx, edi
mov edx, dword [ebx + 0x2c]
call fcn.0044c8e0
mov edx, str.database_schema_has_changed
mov ecx, edi
call fcn.0044cd60
mov dword [ebx + 0x2c], eax
mov eax, dword [ebp - 0xd8]
mov edx, dword [eax + 4]
mov ecx, edx
mov eax, dword [edi + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
cmp dword [eax], esi
je 0x474ffa
mov ecx, edi
call fcn.00488950
mov esi, dword [ebp - 0xd8]
mov eax, ebx
or dword [eax + 0x58], 8
mov eax, 0x11
mov dword [ebp - 0xdc], eax
jmp 0x477de4
mov edx, dword [ebp - 0xd8]
lea eax, [ebp - 0x1c0]
mov ecx, dword [edi + 0x10]
push eax
mov eax, dword [edx + 4]
mov edx, dword [edx + 0xc]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00467b30
mov eax, dword [ebp - 0xd8]
add esp, 4
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 8]
lea ecx, [eax + ecx*8]
mov eax, 0x2460
test word [ecx + 8], ax
je 0x475075
call fcn.00472830
mov ecx, eax
mov eax, dword [ebp - 0x1c0]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x477dd8
mov eax, 4
mov word [ecx + 8], ax
mov eax, dword [ebp - 0x1c0]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x477dd8
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xe8]
mov esi, dword [eax + 4]
mov eax, dword [eax + 0xc]
shl esi, 4
add esi, dword [edi + 0x10]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov ecx, edi
call fcn.0046a860
mov eax, dword [ebp - 0xd8]
push dword [edi]
mov ecx, dword [esi + 4]
mov edx, dword [eax + 8]
call fcn.00467bb0
mov dword [ebp - 0xdc], eax
add esp, 4
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 8]
cmp eax, 1
jne 0x4750f1
mov eax, dword [edi]
mov ecx, dword [esi + 0xc]
mov edi, dword [ebp - 0xe0]
mov dword [ecx], eax
or dword [edi + 0x18], 2
jmp 0x475104
cmp eax, 2
jne 0x4750fe
mov ecx, dword [esi + 0xc]
mov al, byte [edi]
mov byte [ecx + 0x4c], al
mov edi, dword [ebp - 0xe0]
mov esi, dword [ebp - 0xd8]
cmp dword [esi + 4], 1
jne case.default.0x4729c5
mov ecx, edi
call fcn.0046fbc0
mov eax, dword [ebp - 0xe4]
and dword [eax + 0x58], 0xfffffff7
jmp case.default.0x4729c5
mov ebx, dword [ebp - 0xd8]
mov eax, dword [ebp - 0xe4]
mov ecx, dword [ebx + 4]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x475157
mov eax, dword [esi + 0x20]
cmp eax, dword [ebx + 8]
je 0x47528f
jmp 0x475157
mov ebx, dword [ebp - 0xd8]
mov eax, dword [ebp - 0xe4]
test byte [eax + 0x58], 8
jne 0x477fc1
mov eax, dword [ebp - 0xd8]
xor edi, edi
mov esi, dword [ebp - 0xe0]
mov dword [ebp - 0xfc], edi
mov ecx, dword [eax + 0xc]
mov ebx, dword [eax + 8]
mov eax, ecx
shl eax, 4
add eax, dword [esi + 0x10]
mov dword [ebp - 0xf4], ecx
mov esi, dword [eax + 4]
mov dword [ebp - 0x124], esi
cmp dl, 0x37
jne 0x4751bd
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0x114], 1
mov al, byte [eax + 0x4c]
cmp al, byte [edx + 0x57]
jae 0x4751c3
mov byte [edx + 0x57], al
jmp 0x4751c3
mov dword [ebp - 0x114], edi
mov edx, dword [ebp - 0xd8]
test byte [edx + 3], 4
je 0x4751f9
mov ecx, dword [ebp - 0xe8]
lea eax, [ebx + ebx*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.0046a860
mov ebx, dword [esi]
cmp ebx, 2
jl 0x477fac
mov ecx, dword [ebp - 0xf4]
mov edx, dword [ebp - 0xd8]
mov al, byte [edx + 1]
cmp al, 0xfa
jne 0x475215
mov eax, dword [edx + 0x10]
mov dword [ebp - 0xfc], eax
movzx edi, word [eax + 8]
movzx eax, word [eax + 6]
add edi, eax
jmp 0x47521c
cmp al, 0xf2
jne 0x47521c
mov edi, dword [edx + 0x10]
mov edx, dword [edx + 4]
push 1
push ecx
mov ecx, dword [ebp - 0xe4]
push edi
call fcn.00472500
mov esi, eax
add esp, 0xc
test esi, esi
je 0x47455f
push dword [esi]
mov edi, dword [ebp - 0xfc]
mov edx, ebx
mov ecx, dword [ebp - 0x124]
or dword [esi + 0x1c], 8
push edi
push dword [ebp - 0x114]
mov byte [esi + 0x19], 1
mov dword [esi + 0x20], ebx
call fcn.00462640
mov ecx, dword [ebp - 0xd8]
add esp, 0xc
mov dword [ebp - 0xdc], eax
xor eax, eax
mov dword [esi + 8], edi
mov edi, dword [ebp - 0xe0]
cmp byte [ecx + 1], 0xfa
setne al
shl eax, 2
xor eax, dword [esi + 0x1c]
and eax, 4
xor dword [esi + 0x1c], eax
mov eax, dword [ebp - 0xd8]
mov cl, byte [eax + 3]
mov eax, dword [esi]
and cl, 3
mov byte [eax + 0x4a], cl
jmp 0x477dd8
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xe4]
push 1
push 0xffffffffffffffff
push dword [eax + 8]
mov edx, dword [eax + 4]
call fcn.00472500
mov esi, eax
add esp, 0xc
test esi, esi
je 0x474565
mov eax, dword [ebp - 0xd8]
lea edi, [esi + 4]
or dword [esi + 0x1c], 1
xor edx, edx
mov byte [esi + 0x19], 1
push 0x41e
movzx eax, byte [eax + 3]
or eax, 5
push eax
mov eax, dword [ebp - 0xe0]
push edi
push eax
mov ecx, dword [eax]
call fcn.00460220
add esp, 0x10
mov dword [ebp - 0xdc], eax
test eax, eax
jne 0x475391
mov ecx, dword [edi]
lea edx, [eax + 1]
call fcn.00461250
mov dword [ebp - 0xdc], eax
test eax, eax
jne 0x475391
mov eax, dword [ebp - 0xd8]
mov ecx, dword [edi]
mov ebx, dword [eax + 0x10]
test ebx, ebx
je 0x475374
movzx eax, byte [eax + 3]
lea edx, [ebp - 0x1a0]
or eax, 2
push eax
call fcn.004675b0
add esp, 4
mov dword [ebp - 0xdc], eax
test eax, eax
jne 0x47536e
push dword [esi]
mov edx, dword [ebp - 0x1a0]
mov ecx, dword [edi]
push ebx
push 1
mov dword [esi + 8], ebx
call fcn.00462640
add esp, 0xc
mov dword [ebp - 0xdc], eax
and dword [esi + 0x1c], 0xfffffffb
jmp 0x475391
push dword [esi]
mov edx, 1
push 0
push 1
call fcn.00462640
add esp, 0xc
mov dword [ebp - 0xdc], eax
or dword [esi + 0x1c], 4
mov edi, dword [ebp - 0xd8]
xor eax, eax
cmp byte [edi + 3], 8
mov edi, dword [ebp - 0xe0]
setne al
shl eax, 3
xor eax, dword [esi + 0x1c]
and eax, 8
xor dword [esi + 0x1c], eax
jmp 0x477dd8
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xe4]
push 1
push 0xffffffffffffffff
push dword [eax + 8]
mov edx, dword [eax + 4]
call fcn.00472500
add esp, 0xc
test eax, eax
je 0x474565
mov edx, dword [ebp - 0xd8]
push eax
mov ecx, dword [edx + 0x10]
mov dword [eax + 8], ecx
mov ecx, edi
mov edx, dword [edx + 0xc]
call fcn.00479af0
mov esi, dword [ebp - 0xd8]
add esp, 4
mov dword [ebp - 0xdc], eax
jmp 0x477de4
mov eax, dword [ebp - 0xd8]
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 0x38]
mov edx, dword [eax + ecx*4]
mov edi, dword [edx + 0x28]
mov ecx, edi
mov esi, dword [edx + 0x2c]
add ecx, 1
mov eax, esi
mov dword [edx + 0x28], ecx
adc eax, 0
or edi, esi
mov dword [edx + 0x2c], eax
je 0x477db0
mov edi, dword [ebp - 0xe0]
jmp 0x477dd8
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xe4]
push 0
push 0xffffffffffffffff
push dword [eax + 0xc]
mov edx, dword [eax + 4]
call fcn.00472500
add esp, 0xc
test eax, eax
je 0x474565
mov ecx, dword [ebp - 0xd8]
mov byte [eax + 0x19], 1
mov ecx, dword [ecx + 8]
or dword [eax + 0x1c], 4
mov dword [eax + 0x10], ecx
jmp 0x477dd8
mov esi, dword [ebp - 0xe4]
mov ecx, esi
mov eax, dword [ebp - 0xd8]
mov edx, dword [esi + 0x38]
mov eax, dword [eax + 4]
mov edx, dword [edx + eax*4]
call fcn.0046ce50
mov eax, dword [ebp - 0xd8]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x38]
mov dword [eax + ecx*4], 0
jmp 0x477dd8
mov edx, dword [ebp - 0xd8]
mov eax, dword [ebp - 0xe4]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov ecx, dword [ebp - 0xe8]
test byte [esi + 0x1c], 4
mov byte [esi + 0x19], 0
je 0x475591
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov al, byte [edi + 8]
and al, 0xe
cmp al, 2
jne 0x4754fd
xor edx, edx
mov ecx, edi
call fcn.00472620
mov ecx, edi
call fcn.0046a6b0
movzx ecx, word [edi + 8]
mov dword [ebp - 0xfc], eax
mov dword [ebp - 0x104], edx
test cl, 4
jne 0x475547
test cl, 8
je 0x477db0
mov ecx, eax
call fcn.004fb74f
movsd xmm1, qword [edi]
comisd xmm0, xmm1
jbe 0x47553b
test bl, 1
je 0x475547
dec ebx
jmp 0x475547
comisd xmm1, xmm0
jbe 0x475547
test bl, 1
jne 0x475547
inc ebx
mov edi, dword [ebp - 0xfc]
lea eax, [ebp - 0x130]
mov ecx, dword [esi]
xor edx, edx
push eax
push 0
push dword [ebp - 0x104]
push edi
call fcn.00463200
mov dword [ebp - 0xdc], eax
add esp, 0x10
mov eax, dword [ebp - 0x104]
mov dword [esi + 0x34], eax
mov eax, dword [ebp - 0xdc]
mov dword [esi + 0x30], edi
test eax, eax
jne 0x475bbb
mov edi, dword [ebp - 0xe0]
jmp 0x475602
mov eax, dword [esi + 8]
test bl, 1
mov dword [ebp - 0x24c], eax
mov ax, word [edx + 0x10]
mov word [ebp - 0x248], ax
sete al
lea eax, [eax*2 - 1]
mov byte [ebp - 0x246], al
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, 0x4000
mov dword [ebp - 0x244], ecx
test word [ecx + 8], ax
je 0x4755d7
call fcn.0046a320
mov ecx, dword [esi]
lea eax, [ebp - 0x130]
push eax
push 0
push 0
push 0
lea edx, [ebp - 0x24c]
call fcn.00463200
add esp, 0x10
mov dword [ebp - 0xdc], eax
test eax, eax
jne 0x475bbb
mov byte [esi + 0x1a], 0
mov dword [esi + 0x3c], 0
mov eax, dword [ebp - 0x130]
cmp ebx, 0x40
jl 0x47564c
test eax, eax
js 0x475632
jne 0x475623
cmp ebx, 0x41
je 0x475632
mov dword [ebp - 0x130], 0
jmp 0x477dd8
lea eax, [ebp - 0x130]
mov dword [ebp - 0x130], 0
push eax
push dword [esi]
call fcn.00463810
jmp 0x475688
test eax, eax
jg 0x475670
jne 0x475657
cmp ebx, 0x3e
je 0x475670
mov eax, dword [esi]
xor ecx, ecx
cmp byte [eax + 0x49], 1
mov eax, dword [ebp - 0xdc]
setne cl
mov dword [ebp - 0x130], ecx
jmp 0x475699
lea eax, [ebp - 0x130]
mov dword [ebp - 0x130], 0
push eax
push dword [esi]
call fcn.004639c0
add esp, 8
mov dword [ebp - 0xdc], eax
test eax, eax
jne 0x475bbb
cmp dword [ebp - 0x130], 0
jne 0x477db0
mov esi, dword [ebp - 0xd8]
jmp 0x477de4
mov edx, dword [ebp - 0xd8]
mov eax, dword [ebp - 0xe4]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov ecx, dword [ebp - 0xe8]
mov byte [esi + 0x19], 0
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.0046a6b0
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], edx
mov byte [esi + 0x1a], 1
jmp 0x477dd8
mov edx, dword [ebp - 0xd8]
mov eax, dword [ebp - 0xe4]
mov ebx, dword [ebp - 0xe8]
mov dword [ebp - 0x114], 0
cmp dword [edx + 0x10], 0
mov eax, dword [eax + 0x38]
mov ecx, dword [edx + 4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0xfc], ecx
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*8]
jle 0x475789
mov eax, dword [ecx + 8]
xor edi, edi
mov dx, word [edx + 0x10]
mov dword [ebp - 0x224], eax
xor eax, eax
mov word [ebp - 0x220], dx
mov dword [ebp - 0x21c], ebx
cmp ax, dx
jae 0x47577b
xor esi, esi
lea esp, [esp]
lea ecx, [esi + ebx]
mov eax, 0x4000
test word [ecx + 8], ax
je 0x475770
call fcn.0046a320
mov ebx, dword [ebp - 0x21c]
mov dx, word [ebp - 0x220]
inc edi
movzx eax, dx
add esi, 0x28
cmp edi, eax
jl 0x475750
mov edi, dword [ebp - 0xe0]
lea esi, [ebp - 0x224]
jmp 0x4757da
mov ecx, dword [ecx + 8]
lea eax, [ebp - 0x114]
push eax
push 0xbf
lea edx, [ebp - 0xc8]
call fcn.0046eb10
mov esi, eax
add esp, 8
test esi, esi
je 0x474565
mov eax, 0x4000
test word [ebx + 8], ax
je 0x4757c2
mov ecx, ebx
call fcn.0046a320
mov ecx, dword [ebp - 0xfc]
mov edx, dword [ebx + 0xc]
push esi
push dword [ebx + 0x10]
mov ecx, dword [ecx + 8]
call fcn.0046eb80
add esp, 8
mov eax, dword [ebp - 0xd8]
xor ebx, ebx
mov byte [esi + 6], 0
cmp byte [eax], 0x43
jne 0x475814
movzx edx, word [esi + 4]
xor ecx, ecx
test edx, edx
jle 0x475814
mov eax, dword [esi + 8]
add eax, 8
jmp 0x475800
test byte [eax], 1
jne 0x47580f
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x475800
jmp 0x475814
mov ebx, 1
lea eax, [ebp - 0x188]
mov edx, esi
mov esi, dword [ebp - 0xfc]
push eax
push 0
push 0
mov ecx, dword [esi]
push 0
call fcn.00463200
mov edx, dword [ebp - 0x114]
add esp, 0x10
mov ecx, edi
mov dword [ebp - 0xdc], eax
call fcn.0044c8e0
mov eax, dword [ebp - 0xdc]
test eax, eax
jne 0x474e58
mov eax, dword [ebp - 0x188]
xor ecx, ecx
test eax, eax
mov dword [esi + 0xc], eax
mov al, 1
mov byte [esi + 0x1a], 0
sete cl
mov dword [esi + 0x3c], 0
sub al, cl
mov byte [esi + 0x19], al
mov esi, dword [ebp - 0xd8]
cmp byte [esi], 0x45
jne 0x475891
test ecx, ecx
jne 0x477db0
add esi, 0x14
jmp 0x47298f
test ebx, ebx
jne 0x477db0
test ecx, ecx
je 0x477db0
add esi, 0x14
jmp 0x47298f
mov edx, dword [ebp - 0xd8]
mov eax, dword [ebp - 0xe4]
mov dword [ebp - 0xfc], 0
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x38]
mov ebx, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
xor edx, edx
mov ecx, dword [ebp - 0xe8]
lea eax, [eax + eax*4]
mov esi, dword [ecx + eax*8]
mov edi, dword [ecx + eax*8 + 4]
lea eax, [ebp - 0xfc]
mov ecx, dword [ebx]
push eax
push 0
push edi
push esi
call fcn.00463200
mov dword [ebp - 0xdc], eax
add esp, 0x10
mov eax, dword [ebp - 0xfc]
mov dword [ebx + 0x30], esi
mov dword [ebx + 0x34], edi
mov word [ebx + 0x19], 0
mov dword [ebx + 0x3c], 0
mov dword [ebx + 0xc], eax
test eax, eax
jne 0x477db0
mov edi, dword [ebp - 0xe0]
jmp 0x477dd8
mov ebx, dword [ebp - 0xd8]
mov esi, dword [ebp - 0xe4]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 8]
lea edx, [eax + ecx*8]
mov eax, 0x2460
test word [edx + 8], ax
je 0x475955
mov ecx, edx
call fcn.00472830
mov edx, eax
jmp 0x47595e
mov eax, 4
mov word [edx + 8], ax
mov eax, dword [esi + 0x38]
mov ecx, dword [ebx + 4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 0x28]
mov dword [edx], eax
mov eax, dword [ecx + 0x2c]
mov dword [edx + 4], eax
mov eax, dword [ebp - 0xd8]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x38]
mov eax, dword [eax + ecx*4]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
jmp 0x477dd8
mov ebx, dword [ebp - 0xd8]
xorps xmm0, xmm0
mov esi, dword [ebp - 0xe4]
movlpd qword [ebp - 0x120], xmm0
mov dword [ebp - 0x110], 0
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 8]
lea edx, [eax + ecx*8]
mov eax, 0x2460
mov dword [ebp - 0xfc], edx
test word [edx + 8], ax
je 0x4759db
mov ecx, edx
call fcn.00472830
mov dword [ebp - 0xfc], eax
jmp 0x4759e4
mov eax, 4
mov word [edx + 8], ax
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x38]
mov ebx, dword [eax + ecx*4]
mov dword [ebp - 0x108], ebx
mov ecx, dword [ebx]
test ecx, ecx
je 0x475c18
test byte [ebx + 0x1c], 2
jne 0x475a85
lea edx, [ebp - 0x110]
call fcn.004631a0
mov dword [ebp - 0xdc], eax
test eax, eax
jne 0x475bc1
cmp dword [ebp - 0x110], eax
je 0x475a3d
mov edi, 1
xor esi, esi
mov dword [ebp - 0x120], edi
mov dword [ebp - 0x11c], esi
jmp 0x475a91
mov ecx, dword [ebx]
lea edx, [ebp - 0x120]
call fcn.00462800
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x120]
mov dword [ebp - 0xdc], eax
cmp esi, 0x7fffffff
jl 0x475a71
jg 0x475a6b
cmp edi, 0xffffffff
jb 0x475a71
or dword [ebx + 0x1c], 2
jmp 0x475a91
add edi, 1
mov dword [ebp - 0x120], edi
adc esi, 0
mov dword [ebp - 0x11c], esi
jmp 0x475a91
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x120]
mov eax, dword [ebp - 0xd8]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x475b38
mov eax, dword [ebp - 0xe4]
mov edx, dword [eax + 0xb0]
test edx, edx
je 0x475ad4
mov eax, dword [edx + 4]
test eax, eax
je 0x475ac9
lea esp, [esp]
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x475ac0
mov eax, dword [edx + 0x10]
lea ecx, [ecx + ecx*4]
lea ebx, [eax + ecx*8]
jmp 0x475ae0
lea eax, [ecx + ecx*4]
mov ecx, dword [ebp - 0xe8]
lea ebx, [ecx + eax*8]
mov ecx, ebx
call fcn.0046a860
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
cmp eax, 0xffffffff
jne 0x475afd
cmp ecx, 0x7fffffff
je 0x477fda
mov edx, dword [ebp - 0x108]
test byte [edx + 0x1c], 2
jne 0x477fda
add eax, 1
adc ecx, 0
cmp esi, ecx
jg 0x475b2d
jl 0x475b1d
cmp edi, eax
jae 0x475b2d
mov edi, eax
mov esi, ecx
mov dword [ebp - 0x120], edi
mov dword [ebp - 0x11c], esi
mov dword [ebx], edi
mov dword [ebx + 4], esi
mov ebx, dword [ebp - 0x108]
test byte [ebx + 0x1c], 2
je 0x475bf7
xor ebx, ebx
lea eax, [ebp - 0x120]
push eax
push 8
call fcn.0044eaf0
mov esi, dword [ebp - 0x11c]
lea eax, [ebp - 0x110]
mov edi, dword [ebp - 0x120]
and esi, 0x3fffffff
push eax
mov eax, dword [ebp - 0x108]
add edi, 1
push 0
adc esi, 0
mov dword [ebp - 0x120], edi
push esi
mov ecx, dword [eax]
xor edx, edx
push edi
mov dword [ebp - 0x11c], esi
call fcn.00463200
add esp, 0x18
mov dword [ebp - 0xdc], eax
test eax, eax
jne 0x475bf1
cmp dword [ebp - 0x110], eax
jne 0x475bf1
inc ebx
cmp ebx, 0x64
jl 0x475b44
mov dword [ebp - 0xdc], 0xd
mov eax, dword [ebp - 0xdc]
mov esi, dword [ebp - 0xe4]
mov ebx, dword [ebp - 0xe0]
cmp byte [ebx + 0x41], 0
je 0x477fee
mov eax, 7
mov dword [ebp - 0xdc], 7
mov edx, str.unknown_error
mov ecx, eax
call fcn.004bfb60
jmp 0x478013
mov ebx, dword [ebp - 0x108]
mov eax, dword [ebp - 0xfc]
mov byte [ebx + 0x1a], 0
mov dword [ebx + 0x3c], 0
mov dword [eax], edi
mov edi, dword [ebp - 0xe0]
mov dword [eax + 4], esi
jmp 0x477dd8
mov eax, dword [ebp - 0xfc]
mov edi, dword [ebp - 0x120]
mov esi, dword [ebp - 0x11c]
mov dword [eax], edi
mov edi, dword [ebp - 0xe0]
mov dword [eax + 4], esi
jmp 0x477dd8
mov ebx, dword [ebp - 0xd8]
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 4]
lea esi, [eax + eax*4]
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xfc], eax
mov eax, dword [ebx + 0xc]
cmp dl, 0x4b
jne 0x475c75
mov edx, dword [ebp - 0xe8]
lea eax, [eax + eax*4]
mov edi, dword [edx + eax*8]
mov ebx, dword [edx + eax*8 + 4]
jmp 0x475c80
cdq
mov ebx, edx
mov edi, eax
mov edx, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0xd8]
test byte [ecx + 3], 1
je 0x475c95
mov eax, dword [ebp - 0xe4]
inc dword [eax + 0x5c]
test byte [ecx + 3], 2
je 0x475cb3
mov eax, dword [ebp - 0xe0]
mov dword [ebp - 0x134], edi
mov dword [ebp - 0x138], ebx
mov dword [eax + 0x20], edi
mov dword [eax + 0x24], ebx
movzx eax, word [edx + esi*8 + 8]
test al, 1
je 0x475ccc
mov dword [edx + esi*8 + 0x10], 0
mov dword [edx + esi*8 + 0xc], 0
mov cl, byte [ecx + 3]
mov byte [ebp - 0xe9], cl
test cl, 0x10
je 0x475ce5
mov edx, dword [ebp - 0xfc]
mov edx, dword [edx + 0xc]
jmp 0x475ce7
xor edx, edx
test eax, 0x4000
je 0x475cf9
mov eax, dword [ebp - 0xe8]
mov ecx, dword [eax + esi*8]
jmp 0x475cfb
xor ecx, ecx
movzx eax, byte [ebp - 0xe9]
push edx
shr eax, 3
xor edx, edx
and eax, 1
push eax
mov eax, dword [ebp - 0xe8]
push ecx
push dword [eax + esi*8 + 0xc]
push dword [eax + esi*8 + 0x10]
mov esi, dword [ebp - 0xfc]
push ebx
push edi
mov ecx, dword [esi]
call fcn.00466e40
add esp, 0x1c
mov dword [ebp - 0xdc], eax
mov byte [esi + 0x1a], 0
mov dword [esi + 0x3c], 0
test eax, eax
jne 0x476021
mov eax, dword [ebp - 0xe0]
mov edx, dword [eax + 0xd4]
test edx, edx
je 0x477dd6
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x472ea3
movsx ecx, byte [esi + 0x18]
push ebx
push edi
mov edi, dword [ebp - 0xe0]
add ecx, ecx
push eax
mov eax, dword [edi + 0x10]
push dword [eax + ecx*8]
mov eax, dword [ebp - 0xd8]
mov ecx, 0x17
test byte [eax + 3], 4
mov eax, 0x12
cmovne eax, ecx
push eax
push dword [edi + 0xd0]
call edx
add esp, 0x18
jmp 0x477dd8
mov eax, dword [ebp - 0xd8]
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esi]
call fcn.00467060
mov dword [ebp - 0xdc], eax
mov dword [esi + 0x3c], 0
test eax, eax
jne 0x475e18
mov edx, dword [edi + 0xd4]
test edx, edx
je 0x475e18
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x475e12
test byte [esi + 0x1c], 4
je 0x475e12
push dword [esi + 0x34]
movsx ecx, byte [esi + 0x18]
push dword [esi + 0x30]
add ecx, ecx
push eax
mov eax, dword [edi + 0x10]
push dword [eax + ecx*8]
push 9
push dword [edi + 0xd0]
call edx
add esp, 0x18
mov eax, dword [ebp - 0xdc]
mov esi, dword [ebp - 0xd8]
test byte [esi + 8], 1
je 0x477de4
mov ecx, dword [ebp - 0xe4]
inc dword [ecx + 0x5c]
jmp 0x477de4
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 0x5c]
add dword [edi + 0x54], eax
mov dword [edi + 0x50], eax
mov eax, dword [ebp - 0xe4]
mov dword [eax + 0x5c], 0
jmp case.default.0x4729c5
mov edx, dword [ebp - 0xd8]
mov eax, dword [ebp - 0xe4]
mov dword [ebp - 0x12c], 0
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
mov edx, dword [ebp - 0xe8]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
lea eax, [ebp - 0x12c]
push eax
mov eax, dword [ebp - 0xd8]
push dword [eax + 0x10]
call fcn.0047bf20
add esp, 8
mov dword [ebp - 0xdc], eax
cmp dword [ebp - 0x12c], 0
jne 0x477db0
mov esi, dword [ebp - 0xd8]
jmp 0x477de4
mov ebx, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xe8]
mov esi, dword [ebp - 0xe4]
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x38]
mov ecx, dword [eax + ecx*4]
call fcn.0047be80
mov dword [ebp - 0xdc], eax
mov eax, ebx
mov ecx, dword [eax + 0xc]
mov eax, dword [esi + 0x38]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x3c], 0
jmp 0x477dd8
mov edx, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xe8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, dword [ebp - 0xe4]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xf4], eax
test byte [eax + 0x1c], 4
mov ebx, dword [eax]
mov ecx, ebx
jne 0x475f68
lea edx, [ebp - 0x210]
call fcn.00462800
mov eax, dword [edi + 0x58]
cdq
cmp dword [ebp - 0x20c], edx
jg 0x478109
mov edi, dword [ebp - 0x210]
jl 0x475f60
cmp edi, eax
ja 0x478103
mov dword [ebp - 0x17c], edi
jmp 0x475f88
lea edx, [ebp - 0x17c]
call fcn.00462860
mov eax, dword [ebp - 0xe0]
mov edi, dword [ebp - 0x17c]
cmp edi, dword [eax + 0x58]
ja 0x4780fb
mov edx, 0x20
cmp edi, edx
cmova edx, edi
cmp dword [esi + 0x18], edx
jge 0x475fad
push 0
mov ecx, esi
call fcn.0046a180
add esp, 4
test eax, eax
jne 0x47455f
jmp 0x475fb8
mov eax, dword [esi + 0x14]
and word [esi + 8], 0xd
mov dword [esi + 0x10], eax
mov ax, word [esi + 8]
mov ecx, 0xbe10
and ax, cx
mov dword [esi + 0xc], edi
or ax, 0x10
mov word [esi + 8], ax
mov eax, dword [ebp - 0xf4]
test byte [eax + 0x1c], 4
jne 0x476008
push 0
push dword [esi + 0x10]
xor edx, edx
mov ecx, ebx
push edi
call fcn.00462a90
mov edi, dword [ebp - 0xe0]
add esp, 0xc
mov byte [esi + 0xa], 1
mov esi, dword [ebp - 0xd8]
mov dword [ebp - 0xdc], eax
jmp 0x477de4
push dword [esi + 0x10]
push edi
push 0
push ebx
call fcn.00462e70
add esp, 0x10
mov dword [ebp - 0xdc], eax
mov byte [esi + 0xa], 1
mov edi, dword [ebp - 0xe0]
mov esi, dword [ebp - 0xd8]
jmp 0x477de4
mov eax, dword [ebp - 0xd8]
mov esi, dword [ebp - 0xe4]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 8]
lea edi, [eax + ecx*8]
mov eax, 0x2460
test word [edi + 8], ax
je 0x476060
mov ecx, edi
call fcn.00472830
mov edi, eax
jmp 0x476069
mov eax, 4
mov word [edi + 8], ax
mov eax, dword [ebp - 0xd8]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x38]
mov esi, dword [eax + ecx*4]
cmp byte [esi + 0x19], 0
je 0x476092
mov eax, 1
mov word [edi + 8], ax
mov edi, dword [ebp - 0xe0]
jmp 0x477dd8
cmp byte [esi + 0x1a], 0
je 0x4760c6
mov eax, dword [esi + 0x30]
mov dword [ebp - 0x178], eax
mov eax, dword [esi + 0x34]
mov dword [ebp - 0x174], eax
mov eax, dword [ebp - 0x178]
mov dword [edi], eax
mov eax, dword [ebp - 0x174]
mov dword [edi + 4], eax
mov edi, dword [ebp - 0xe0]
jmp 0x477dd8
mov ecx, dword [esi + 0x24]
test ecx, ecx
je 0x476110
mov esi, dword [ecx]
lea edx, [ebp - 0x178]
push edx
push ecx
mov eax, dword [esi]
mov eax, dword [eax + 0x30]
call eax
mov ecx, dword [ebp - 0xe4]
add esp, 8
mov edx, esi
mov dword [ebp - 0xdc], eax
call fcn.0046fc90
mov eax, dword [ebp - 0x178]
mov dword [edi], eax
mov eax, dword [ebp - 0x174]
mov dword [edi + 4], eax
mov edi, dword [ebp - 0xe0]
jmp 0x477dd8
mov eax, dword [esi]
cmp byte [eax + 0x49], 1
je 0x47612f
mov ecx, esi
call fcn.0046e6c0
mov dword [ebp - 0xdc], eax
test eax, eax
jne 0x475bbb
jmp 0x476137
xor ecx, ecx
mov dword [ebp - 0xdc], ecx
cmp byte [esi + 0x19], 0
je 0x47615e
add dword [ebp - 0xd8], 0x14
mov eax, 1
mov esi, dword [ebp - 0xd8]
mov word [edi + 8], ax
mov edi, dword [ebp - 0xe0]
jmp 0x472995
mov ecx, dword [esi]
lea edx, [ebp - 0x178]
call fcn.00462800
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0x178]
mov dword [edi], eax
mov eax, dword [ebp - 0x174]
mov dword [edi + 4], eax
mov edi, dword [ebp - 0xe0]
jmp 0x477dd8
mov eax, dword [ebp - 0xd8]
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax]
mov byte [eax + 0x19], 1
mov dword [eax + 0x3c], 0
test ecx, ecx
je 0x477dd8
call fcn.0045ee50
jmp 0x477dd8
mov eax, dword [ebp - 0xd8]
lea edx, [ebp - 0x100]
mov dword [ebp - 0x100], 0
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esi]
call fcn.004631a0
mov ecx, dword [ebp - 0x100]
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0xd8]
mov byte [esi + 0x19], cl
mov byte [esi + 0x1a], 0
mov dword [esi + 0x3c], 0
mov eax, dword [eax + 0xc]
mov dword [esi + 0xc], eax
mov esi, dword [ebp - 0xd8]
cmp dword [esi + 8], 0
jle case.default.0x4729c5
test ecx, ecx
jne 0x477db0
jmp case.default.0x4729c5
mov eax, dword [ebp - 0xe4]
inc dword [eax + 0x74]
mov eax, dword [ebp - 0xd8]
mov ebx, 1
mov dword [ebp - 0xf8], ebx
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
cmp dword [esi + 0x38], 0
je 0x47627a
lea edx, [ebp - 0xf8]
mov ecx, esi
call fcn.0047bdb0
mov ebx, dword [ebp - 0xf8]
mov dword [ebp - 0xdc], eax
jmp 0x4762b2
mov edi, dword [esi]
mov ecx, edi
call fcn.00462f60
mov dword [ebp - 0xdc], eax
test eax, eax
jne 0x4762a1
cmp byte [edi + 0x49], al
je 0x4762a1
mov ecx, edi
xor ebx, ebx
call fcn.004630b0
mov dword [ebp - 0xdc], eax
mov edi, dword [ebp - 0xe0]
mov byte [esi + 0x1a], 0
mov dword [esi + 0x3c], 0
mov byte [esi + 0x19], bl
test ebx, ebx
jne 0x477db0
jmp 0x477dd8
mov ebx, dword [ebp - 0xd8]
mov eax, dword [ebp - 0xe4]
mov ecx, dword [ebx + 4]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
lea eax, [ebp - 0x150]
push eax
mov edx, esi
mov dword [ebp - 0x150], 0
mov ecx, edi
call fcn.0047be10
add esp, 4
jmp 0x47634d
mov eax, dword [ebp - 0xd8]
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 0x38]
cmp dword [eax + ecx*4], 0
je 0x477dd8
mov eax, dword [ebp - 0xd8]
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov ecx, dword [ebp - 0xd8]
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x150], eax
lea eax, [ebp - 0x150]
push eax
push dword [esi]
mov eax, dword [ecx + 0x10]
call eax
mov ebx, dword [ebp - 0xd8]
add esp, 8
mov dword [esi + 0x3c], 0
cmp dword [ebp - 0x150], 0
mov dword [ebp - 0xdc], eax
jne 0x47637a
mov ecx, dword [ebp - 0xe4]
mov byte [esi + 0x19], 0
movzx eax, byte [ebx + 3]
inc dword [ecx + eax*4 + 0x6c]
jmp case.0x4729c5.16
mov byte [esi + 0x19], 1
jmp 0x477a5b
mov edx, dword [ebp - 0xd8]
mov eax, dword [ebp - 0xe4]
test byte [edx + 3], 1
mov eax, dword [eax + 0x38]
mov ecx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
mov eax, dword [edx + 8]
mov ecx, dword [ebp - 0xe8]
mov ebx, dword [edi]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
je 0x4763b8
mov eax, dword [ebp - 0xe4]
inc dword [eax + 0x5c]
mov eax, 0x4000
test word [esi + 8], ax
je 0x4763de
mov ecx, esi
call fcn.0046a320
mov dword [ebp - 0xdc], eax
test eax, eax
jne 0x476021
mov edx, dword [ebp - 0xd8]
cmp dword [edi + 0x38], 0
je 0x476404
mov edx, esi
mov ecx, edi
call fcn.0047af50
mov edi, dword [ebp - 0xe0]
mov esi, dword [ebp - 0xd8]
mov dword [ebp - 0xdc], eax
jmp 0x477de4
test byte [edx + 3], 0x10
je 0x47640f
mov eax, dword [edi + 0xc]
jmp 0x476411
xor eax, eax
push eax
push dword [edx + 0xc]
mov eax, dword [esi + 0xc]
mov ecx, ebx
push 0
push 0
cdq
push 0x50af83
push edx
mov edx, dword [esi + 0x10]
push eax
call fcn.00466e40
mov esi, dword [ebp - 0xd8]
add esp, 0x1c
mov dword [edi + 0x3c], 0
mov edi, dword [ebp - 0xe0]
mov dword [ebp - 0xdc], eax
jmp 0x477de4
mov edx, dword [ebp - 0xd8]
mov eax, dword [ebp - 0xe4]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov ecx, dword [ebp - 0xe8]
mov eax, dword [esi + 8]
mov edi, dword [esi]
mov dword [ebp - 0x238], eax
mov ax, word [edx + 0xc]
mov word [ebp - 0x234], ax
mov eax, dword [edx + 8]
lea edx, [ebp - 0x238]
mov byte [ebp - 0x232], 0
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, edi
mov dword [ebp - 0x230], eax
lea eax, [ebp - 0x184]
push eax
push 0
push 0
push 0
call fcn.00463200
add esp, 0x10
mov dword [ebp - 0xdc], eax
test eax, eax
jne 0x4764d2
cmp dword [ebp - 0x184], eax
jne 0x4764d2
mov ecx, edi
call fcn.00467060
mov dword [ebp - 0xdc], eax
mov edi, dword [ebp - 0xe0]
mov dword [esi + 0x3c], 0
mov esi, dword [ebp - 0xd8]
jmp 0x477de4
mov ebx, dword [ebp - 0xd8]
mov edi, dword [ebp - 0xe4]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 8]
lea esi, [eax + ecx*8]
mov eax, 0x2460
test word [esi + 8], ax
je 0x476518
mov ecx, esi
call fcn.00472830
mov esi, eax
jmp 0x476521
mov eax, 4
mov word [esi + 8], ax
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov edi, dword [eax + ecx*4]
mov eax, 1
mov ebx, dword [edi]
mov word [esi + 8], ax
mov eax, dword [edi]
cmp byte [eax + 0x49], 1
je 0x476554
mov ecx, edi
call fcn.0046e6c0
mov dword [ebp - 0xdc], eax
test eax, eax
jne 0x475bbb
jmp 0x47655c
xor ecx, ecx
mov dword [ebp - 0xdc], ecx
cmp byte [edi + 0x19], 0
mov edi, dword [ebp - 0xe0]
jne 0x4765ae
lea eax, [ebp - 0x158]
xorps xmm0, xmm0
push eax
mov edx, ebx
movlpd qword [ebp - 0x158], xmm0
mov ecx, edi
call fcn.0046f970
add esp, 4
mov dword [ebp - 0xdc], eax
test eax, eax
jne 0x475bbb
mov eax, dword [ebp - 0x158]
mov dword [esi], eax
mov eax, dword [ebp - 0x154]
mov dword [esi + 4], eax
mov eax, 4
mov word [esi + 8], ax
mov esi, dword [ebp - 0xd8]
add esi, 0x14
jmp 0x47298f
mov eax, dword [ebp - 0xd8]
cmp byte [ebp - 0xe9], 0x73
mov dword [ebp - 0x104], 0
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 0x38]
mov edx, dword [eax + ecx*4]
mov ecx, dword [ebp - 0xd8]
mov eax, dword [edx + 8]
mov dword [ebp - 0x260], eax
mov ax, word [ecx + 0x10]
mov word [ebp - 0x25c], ax
sbb al, al
mov byte [ebp - 0x25a], al
mov eax, dword [ecx + 0xc]
mov ecx, dword [ebp - 0xe8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, edi
mov dword [ebp - 0x258], eax
lea eax, [ebp - 0x104]
push eax
lea eax, [ebp - 0x260]
push eax
call fcn.0046fac0
mov dword [ebp - 0xdc], eax
add esp, 8
mov eax, dword [ebp - 0xd8]
test byte [eax], 1
mov eax, dword [ebp - 0x104]
je 0x47664c
neg eax
jmp 0x47664d
inc eax
test eax, eax
jg 0x477db0
jmp 0x477dd8
mov ebx, dword [ebp - 0xd8]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 8]
lea esi, [eax + ecx*8]
mov eax, 0x2460
test word [esi + 8], ax
je 0x476688
mov ecx, esi
call fcn.00472830
mov esi, eax
jmp 0x476691
mov eax, 4
mov word [esi + 8], ax
mov eax, 1
mov word [esi + 8], ax
mov eax, dword [edi + 0xa4]
inc eax
cmp dword [edi + 0x98], eax
jg 0x478031
mov ebx, dword [ebx + 0xc]
lea eax, [ebp - 0xf0]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0xd8]
push eax
mov eax, ebx
mov dword [ebp - 0xf0], 0
add eax, eax
mov edx, dword [edx + 4]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00467ae0
mov ecx, dword [ebp - 0xf0]
add esp, 4
mov dword [ebp - 0xdc], eax
mov eax, 4
mov word [esi + 8], ax
mov eax, ecx
cdq
mov dword [esi], eax
mov eax, dword [ebp - 0xdc]
mov dword [esi + 4], edx
test eax, eax
jne 0x474e58
test ecx, ecx
je 0x474e58
mov eax, dword [ebp - 0xd8]
mov edx, ebx
push dword [eax + 4]
push ecx
mov ecx, edi
call fcn.0048b0a0
mov al, bl
add esp, 8
inc al
mov byte [ebp - 0x125], al
jmp 0x477dd8
mov edx, dword [ebp - 0xd8]
lea eax, [ebp - 0x124]
xor ecx, ecx
mov dword [ebp - 0x124], 0
cmp dword [edx + 0xc], ecx
cmove eax, ecx
mov ecx, dword [edi + 0x10]
push eax
mov eax, dword [edx + 8]
mov edx, dword [edx + 4]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00467810
mov esi, dword [ebp - 0xd8]
add esp, 4
mov dword [ebp - 0xdc], eax
cmp dword [esi + 0xc], 0
je 0x477de4
mov ecx, dword [ebp - 0xe4]
mov eax, dword [ebp - 0x124]
add dword [ecx + 0x5c], eax
mov ecx, dword [esi + 0xc]
test ecx, ecx
jle case.default.0x4729c5
mov ebx, dword [ebp - 0xe8]
lea ecx, [ecx + ecx*4]
cdq
add dword [ebx + ecx*8], eax
adc dword [ebx + ecx*8 + 4], edx
jmp case.default.0x4729c5
mov eax, dword [ebp - 0xd8]
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov edx, dword [ecx + 0x38]
test edx, edx
je 0x4767d9
mov ecx, edi
call fcn.0047a130
jmp 0x477dd8
mov ecx, dword [ecx]
push 0
mov edx, dword [ecx + 0x3c]
mov ecx, dword [ecx]
call fcn.00467810
mov esi, dword [ebp - 0xd8]
add esp, 4
mov dword [ebp - 0xdc], eax
jmp 0x477de4
mov edx, dword [ebp - 0xd8]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 8]
lea esi, [eax + ecx*8]
mov eax, 0x2460
test word [esi + 8], ax
je 0x47682f
mov ecx, esi
call fcn.00472830
mov edx, dword [ebp - 0xd8]
mov esi, eax
jmp 0x476838
mov eax, 4
mov word [esi + 8], ax
mov ecx, dword [edx + 4]
xor eax, eax
shl ecx, 4
add ecx, dword [edi + 0x10]
cmp byte [edx], 0x79
lea edx, [ebp - 0xf4]
mov dword [ebp - 0xf4], 0
setne al
mov ecx, dword [ecx + 4]
inc eax
push eax
call fcn.004675b0
mov dword [ebp - 0xdc], eax
add esp, 4
mov eax, dword [ebp - 0xf4]
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x477dd8
mov eax, dword [ebp - 0xd8]
mov ecx, str.sqlite_temp_master
mov dword [ebp - 0x208], edi
mov edx, dword [eax + 4]
cmp edx, 1
mov eax, str.sqlite_master
mov dword [ebp - 0x200], edx
cmovne ecx, eax
mov eax, dword [ebp - 0xe4]
add eax, 0x2c
shl edx, 4
mov dword [ebp - 0x204], eax
mov eax, dword [ebp - 0xd8]
push dword [eax + 0x10]
mov eax, dword [edi + 0x10]
push ecx
push dword [edx + eax]
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
push edi
call fcn.0044e710
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x4768e4
mov dword [ebp - 0xdc], 7
jmp 0x476936
push 0
lea eax, [ebp - 0x208]
mov byte [edi + 0x91], 1
push eax
push fcn.0049e730
push esi
push edi
mov dword [ebp - 0x1fc], 0
call fcn.0049a660
add esp, 0x14
mov edx, esi
test eax, eax
mov ecx, edi
cmove eax, dword [ebp - 0x1fc]
mov dword [ebp - 0xdc], eax
call fcn.0044c8e0
mov eax, dword [ebp - 0xdc]
mov byte [edi + 0x91], 0
test eax, eax
je 0x476943
mov ecx, edi
call fcn.00488990
mov eax, dword [ebp - 0xdc]
cmp eax, 7
je 0x474565
mov esi, dword [ebp - 0xd8]
jmp 0x477de4
mov eax, dword [ebp - 0xd8]
mov ecx, edi
mov edx, dword [eax + 4]
call fcn.00486ce0
mov esi, dword [ebp - 0xd8]
mov dword [ebp - 0xdc], eax
jmp 0x477de4
mov eax, dword [ebp - 0xd8]
mov ecx, edi
push dword [eax + 0x10]
mov edx, dword [eax + 4]
call fcn.00488dc0
add esp, 4
jmp 0x477dd8
mov eax, dword [ebp - 0xd8]
mov ecx, edi
push dword [eax + 0x10]
mov edx, dword [eax + 4]
call fcn.00488730
add esp, 4
jmp 0x477dd8
mov eax, dword [ebp - 0xd8]
mov ecx, edi
push dword [eax + 0x10]
mov edx, dword [eax + 4]
call fcn.004ab7e0
add esp, 4
jmp 0x477dd8
mov eax, dword [ebp - 0xd8]
mov ecx, edi
push 0
mov ebx, dword [eax + 8]
lea eax, [ebx*4 + 4]
push eax
call fcn.0044cb60
mov edi, eax
add esp, 8
mov dword [ebp - 0xf4], edi
test edi, edi
je 0x47455f
mov edx, dword [ebp - 0xd8]
xor esi, esi
mov ecx, dword [edx + 0xc]
lea eax, [ecx + ecx*4]
mov ecx, dword [edx + 4]
mov dword [ebp - 0x124], eax
mov eax, dword [ebp - 0xe8]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*8]
mov dword [ebp - 0xfc], eax
test ebx, ebx
jle 0x476a45
mov edi, eax
mov ecx, edi
call fcn.0046a6b0
mov ecx, dword [ebp - 0xf4]
add edi, 0x28
mov dword [ecx + esi*4], eax
inc esi
cmp esi, ebx
jl 0x476a25
mov edx, dword [ebp - 0xd8]
mov edi, ecx
mov ecx, dword [ebp - 0xe8]
lea eax, [ebp - 0x18c]
push eax
mov eax, dword [ebp - 0x124]
mov dword [edi + esi*4], 0
mov esi, dword [ebp - 0xe0]
push dword [ecx + eax*8]
movzx eax, byte [edx + 3]
mov edx, edi
mov ecx, dword [esi + 0x10]
add eax, eax
push ebx
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00468930
add esp, 0xc
mov edx, edi
mov ecx, esi
mov ebx, eax
call fcn.0044c8e0
mov ecx, dword [ebp - 0x124]
mov edi, dword [ebp - 0xe8]
mov esi, dword [ebp - 0x18c]
mov eax, esi
cdq
sub dword [edi + ecx*8], eax
sbb dword [edi + ecx*8 + 4], edx
mov edi, dword [ebp - 0xfc]
mov ecx, edi
call fcn.0046aab0
test esi, esi
je 0x476ad5
test ebx, ebx
je 0x47455f
push fcn.0044c830
push 1
push 0xffffffffffffffff
mov edx, ebx
mov ecx, edi
call fcn.0046ad60
add esp, 0xc
movzx edx, byte [ebp - 0x118]
mov ecx, edi
call fcn.0046a160
mov edi, dword [ebp - 0xe0]
jmp 0x477dd8
mov edx, dword [ebp - 0xd8]
mov ebx, dword [ebp - 0xe8]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 8], 0x20
lea esi, [ebx + eax*8]
mov eax, dword [edx + 8]
lea edi, [eax + eax*4]
jne 0x476b21
mov ecx, esi
call fcn.0046ab50
test byte [esi + 8], 0x20
je 0x47455f
push dword [ebx + edi*8 + 4]
mov ecx, dword [esi]
push dword [ebx + edi*8]
call fcn.00456410
mov edi, dword [ebp - 0xe0]
add esp, 8
jmp 0x477dd8
mov eax, dword [ebp - 0xd8]
mov ebx, dword [ebp - 0xe8]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 8], 0x20
lea esi, [ebx + eax*8]
je 0x476b92
mov ecx, dword [esi]
lea edx, [ebp - 0x1e8]
call fcn.004567e0
test eax, eax
je 0x476b92
mov eax, dword [ebp - 0xd8]
push dword [ebp - 0x1e4]
push dword [ebp - 0x1e8]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
call fcn.0046ab10
add esp, 8
jmp 0x477a5b
mov ecx, esi
call fcn.0046aab0
jmp case.0x4729c5.16
mov edx, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xe8]
mov eax, dword [edx + 4]
mov ebx, dword [edx + 0x10]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 0x20
lea esi, [ecx + eax*8]
mov eax, dword [edx + 0xc]
lea edi, [eax + eax*4]
jne 0x476bda
mov ecx, esi
call fcn.0046ab50
test byte [esi + 8], 0x20
je 0x47455f
mov ecx, dword [ebp - 0xe8]
test ebx, ebx
je 0x476bfb
push dword [ecx + edi*8 + 4]
mov edx, ebx
push dword [ecx + edi*8]
mov ecx, dword [esi]
call fcn.00456840
add esp, 8
test eax, eax
jne 0x477db0
test ebx, ebx
js 0x472ea3
mov ebx, dword [ebp - 0xe8]
mov ecx, dword [esi]
push dword [ebx + edi*8 + 4]
push dword [ebx + edi*8]
call fcn.00456410
mov edi, dword [ebp - 0xe0]
add esp, 8
jmp 0x477dd8
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xe8]
mov esi, dword [ebp - 0xe4]
mov edx, dword [eax + 0x10]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0xf4], edx
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
mov eax, dword [ebp - 0xd8]
cmp byte [eax + 3], 0
je 0x476c70
mov eax, dword [esi + 0xb0]
mov ecx, dword [edx + 0x14]
test eax, eax
je 0x476c70
cmp dword [eax + 0x1c], ecx
je 0x477dd8
mov eax, dword [eax + 4]
test eax, eax
jne 0x476c60
mov eax, dword [esi + 0xb8]
cmp eax, dword [edi + 0x80]
jge 0x478054
test byte [ebx + 8], 0x40
jne 0x476d76
mov ecx, dword [edx + 0xc]
mov esi, dword [edx + 8]
add esi, ecx
lea eax, [esi + 2]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*2]
mov eax, dword [edx + 0x10]
lea eax, [eax + ecx*4]
mov ecx, edi
cdq
push edx
push eax
call fcn.0044cb30
mov edi, eax
add esp, 8
test edi, edi
je 0x47455f
mov ecx, ebx
call fcn.0046a690
mov ecx, dword [ebp - 0xd8]
mov eax, 0x40
mov word [ebx + 8], ax
mov eax, dword [ebp - 0xf4]
sub ecx, dword [ebp - 0x10c]
mov dword [ebx], edi
mov ebx, dword [ebp - 0xe4]
mov dword [edi], ebx
mov dword [edi + 0x3c], esi
mov eax, dword [eax + 0xc]
mov dword [edi + 0x40], eax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0xf4]
mov dword [edi + 0x2c], eax
mov eax, dword [ebx + 8]
mov dword [edi + 0x10], eax
mov eax, dword [ebx + 0x1c]
mov dword [edi + 0x34], eax
mov eax, dword [ebx + 0x38]
mov dword [edi + 0x18], eax
mov eax, dword [ebx + 0x24]
mov dword [edi + 0x28], eax
mov eax, dword [ebx + 4]
mov dword [edi + 8], eax
mov eax, dword [ebx + 0x20]
mov dword [edi + 0x30], eax
mov eax, dword [edx + 0x14]
mov dword [edi + 0x1c], eax
mov eax, dword [ebx + 0xc8]
mov dword [edi + 0x14], eax
mov eax, dword [ebx + 0xc4]
mov dword [edi + 0x38], eax
lea eax, [esi + 2]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
lea eax, [edi + 0x50]
cmp eax, ecx
je 0x476d7a
mov esi, dword [ebp - 0xe0]
mov ebx, 0x80
mov word [eax + 8], bx
mov dword [eax + 0x20], esi
add eax, 0x28
cmp eax, ecx
jne 0x476d60
mov esi, dword [ebp - 0xe4]
jmp 0x476d7c
mov edi, dword [ebx]
jmp 0x476d7c
mov esi, ebx
inc dword [esi + 0xb8]
lea ebx, [edi + 0x28]
mov eax, dword [esi + 0xb0]
mov dword [edi + 4], eax
mov eax, dword [ebp - 0x134]
mov dword [edi + 0x20], eax
mov eax, dword [ebp - 0x138]
mov dword [edi + 0x24], eax
mov eax, dword [esi + 0x5c]
mov dword [edi + 0x44], eax
mov eax, dword [esi]
mov dword [ebp - 0xe8], ebx
mov eax, dword [eax + 0x50]
mov dword [edi + 0x48], eax
mov dword [esi + 0x5c], 0
mov dword [esi + 0xb0], edi
mov dword [esi + 8], ebx
mov eax, dword [edi + 0x3c]
mov dword [esi + 0x1c], eax
movzx eax, word [edi + 0x40]
mov dword [esi + 0x24], eax
mov eax, dword [esi + 0x1c]
inc eax
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
mov dword [esi + 0x38], ecx
mov ebx, dword [edx]
mov dword [esi + 4], ebx
mov eax, dword [edx + 4]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x24]
mov dword [ebp - 0x10c], ebx
lea ecx, [ecx + eax*4]
mov dword [esi + 0xc8], ecx
mov eax, dword [edx + 0x10]
lea edx, [ebx - 0x14]
push eax
push 0
push ecx
mov dword [esi + 0xc4], eax
mov dword [ebp - 0xd8], edx
call fcn.004ce8d0
mov edi, dword [ebp - 0xe0]
add esp, 0xc
jmp 0x477dd8
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 8]
lea esi, [eax + ecx*8]
mov eax, 0x2460
test word [esi + 8], ax
je 0x476e52
mov ecx, esi
call fcn.00472830
mov esi, eax
jmp 0x476e5b
mov eax, 4
mov word [esi + 8], ax
mov eax, dword [ebp - 0xe4]
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 [ebp - 0xd8]
add eax, dword [ecx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x10]
lea edx, [eax + ecx*8]
mov ecx, esi
call fcn.0046ac50
add esp, 4
jmp 0x477dd8
test dword [edi + 0x18], 0x1000000
mov eax, dword [ebp - 0xd8]
je 0x476ebe
mov eax, dword [eax + 8]
cdq
add dword [edi + 0x200], eax
adc dword [edi + 0x204], edx
jmp 0x477dd8
cmp dword [eax + 4], 0
mov eax, dword [eax + 8]
cdq
je 0x476ed9
add dword [edi + 0x1f8], eax
adc dword [edi + 0x1fc], edx
jmp 0x477dd8
mov esi, dword [ebp - 0xe4]
add dword [esi + 0x90], eax
adc dword [esi + 0x94], edx
jmp 0x477dd8
mov eax, dword [ebp - 0xd8]
cmp dword [eax + 4], 0
je 0x476f25
mov eax, dword [edi + 0x1f8]
or eax, dword [edi + 0x1fc]
jne 0x477dd8
mov eax, dword [edi + 0x200]
or eax, dword [edi + 0x204]
je 0x477db0
jmp 0x477dd8
mov esi, dword [ebp - 0xe4]
mov eax, dword [esi + 0x90]
or eax, dword [esi + 0x94]
jmp 0x476f08
mov eax, dword [ebp - 0xe4]
mov edx, dword [eax + 0xb0]
test edx, edx
je 0x476f73
mov eax, dword [edx + 4]
test eax, eax
je 0x476f59
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x476f50
mov eax, dword [ebp - 0xd8]
mov ebx, dword [ebp - 0xe8]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x10]
lea edi, [eax + ecx*8]
jmp 0x476f88
mov eax, dword [ebp - 0xd8]
mov ebx, dword [ebp - 0xe8]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov ecx, edi
call fcn.0046a860
mov ecx, dword [ebp - 0xd8]
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
mov ecx, esi
call fcn.0046a860
mov ecx, dword [esi + 4]
mov eax, dword [esi]
cmp dword [edi + 4], ecx
jg 0x472ea3
jl 0x476fbd
cmp dword [edi], eax
jae 0x472ea3
mov dword [edi], eax
mov dword [edi + 4], ecx
mov edi, dword [ebp - 0xe0]
jmp 0x477dd8
mov eax, dword [ebp - 0xd8]
mov ebx, dword [ebp - 0xe8]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
cmp dword [ebx + eax*8 + 4], 0
jg 0x477db0
jl 0x477dd8
cmp dword [ebx + eax*8], 0
ja 0x477db0
jmp 0x477dd8
mov edx, dword [ebp - 0xd8]
mov ebx, dword [ebp - 0xe8]
mov eax, dword [edx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
cdq
add dword [ebx + ecx*8], eax
adc dword [ebx + ecx*8 + 4], edx
cmp dword [ebx + ecx*8 + 4], 0
jl 0x477db0
jg 0x477dd8
cmp dword [ebx + ecx*8], 0
jb 0x477db0
jmp 0x477dd8
mov eax, dword [ebp - 0xd8]
mov ebx, dword [ebp - 0xe8]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
mov esi, dword [ebx + ecx*8]
mov eax, esi
mov edi, dword [ebx + ecx*8 + 4]
or eax, edi
je 0x472ea3
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 0xc]
cdq
add eax, esi
mov dword [ebx + ecx*8], eax
adc edx, edi
mov dword [ebx + ecx*8 + 4], edx
jmp 0x477db0
mov eax, dword [ebp - 0xd8]
mov ebx, dword [ebp - 0xe8]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
add dword [ebx + ecx*8], 0xffffffff
mov eax, dword [ebx + ecx*8]
adc dword [ebx + ecx*8 + 4], 0xffffffff
or eax, dword [ebx + ecx*8 + 4]
jmp 0x476f1a
mov eax, dword [ebp - 0xd8]
mov ebx, dword [ebp - 0xe8]
mov eax, dword [eax + 4]
lea esi, [eax + eax*4]
mov edi, dword [ebx + esi*8]
mov ecx, edi
mov edx, dword [ebx + esi*8 + 4]
add ecx, 1
mov eax, edx
mov dword [ebx + esi*8], ecx
adc eax, 0
or edi, edx
mov dword [ebx + esi*8 + 4], eax
je 0x477db0
mov edi, dword [ebp - 0xe0]
jmp 0x477dd8
mov edx, dword [ebp - 0xd8]
mov ebx, dword [ebp - 0xe8]
mov eax, dword [edx + 8]
movzx esi, byte [edx + 3]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
mov eax, dword [ebp - 0xe4]
mov edi, dword [eax + 0xc]
xor eax, eax
test esi, esi
jle 0x477110
mov dword [edi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, esi
jl 0x477105
mov eax, dword [edx + 0x10]
mov ecx, edx
mov dword [ebp - 0x1d8], eax
mov eax, dword [edx + 0xc]
sub ecx, dword [ebp - 0x10c]
push edi
push esi
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [ebp - 0x1d4], eax
inc dword [eax + 0xc]
mov eax, 1
mov word [ebp - 0x2f0], ax
mov eax, dword [ebp - 0xe0]
mov dword [ebp - 0x2d8], eax
lea eax, [ebp - 0x2f8]
mov dword [ebp - 0x1dc], eax
mov eax, dword [ebp - 0xe4]
mov dword [ebp - 0x1d0], eax
mov eax, 0x66666667
imul ecx
mov dword [ebp - 0x2e0], 0
sar edx, 3
mov eax, edx
mov dword [ebp - 0x1c8], 0
shr eax, 0x1f
add eax, edx
mov byte [ebp - 0x1c4], 0
mov dword [ebp - 0x1cc], eax
lea eax, [ebp - 0x1dc]
push eax
mov eax, dword [ebp - 0x1d8]
mov eax, dword [eax + 0x10]
call eax
add esp, 0xc
cmp dword [ebp - 0x1c8], 0
je 0x4771f1
lea eax, [ebp - 0x2f8]
push eax
call fcn.00470140
mov edi, dword [ebp - 0xe0]
add esp, 4
push eax
mov eax, dword [ebp - 0xe4]
push 0x50b7b4
add eax, 0x2c
push edi
push eax
call fcn.0044ce00
mov eax, dword [ebp - 0x1c8]
add esp, 0x10
mov dword [ebp - 0xdc], eax
jmp 0x4771f7
mov edi, dword [ebp - 0xe0]
cmp byte [ebp - 0x1c4], 0
je 0x47721f
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax - 0x10]
test eax, eax
je 0x47721f
lea eax, [eax + eax*4]
push 0
push 1
lea ecx, [ebx + eax*8]
call fcn.0046ab10
add esp, 8
lea ecx, [ebp - 0x2f8]
call fcn.0046a690
jmp 0x477dd8
mov edx, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xe8]
mov eax, dword [edx + 4]
mov edx, dword [edx + 0x10]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.0046a4c0
mov dword [ebp - 0xdc], eax
test eax, eax
je 0x47727a
push esi
call fcn.00470140
add esp, 4
push eax
mov eax, dword [ebp - 0xe4]
push 0x50b7b4
add eax, 0x2c
push edi
push eax
call fcn.0044ce00
add esp, 0x10
movzx edx, byte [ebp - 0x118]
mov ecx, esi
call fcn.0046a160
mov ecx, esi
call fcn.0046ac20
test eax, eax
jne 0x478109
jmp 0x477dd8
lea eax, [ebp - 0xcc]
mov dword [ebp - 0xd4], 0
push eax
lea eax, [ebp - 0xd0]
mov dword [ebp - 0xcc], 0xffffffff
push eax
mov eax, dword [ebp - 0xd8]
mov ecx, edi
mov dword [ebp - 0xd0], 0xffffffff
push dword [eax + 8]
mov edx, dword [eax + 4]
call fcn.004c05a0
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0xdc], ecx
cmp ecx, 5
jne 0x4772ff
mov dword [ebp - 0xdc], 0
mov dword [ebp - 0xd4], 1
mov eax, dword [ebp - 0xd8]
xor esi, esi
mov ecx, dword [ebp - 0xe8]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [ebp + esi*4 - 0xd4]
mov ecx, edi
cdq
push edx
push eax
call fcn.0046ab10
inc esi
add esp, 8
add edi, 0x28
cmp esi, 3
jl 0x477316
mov edi, dword [ebp - 0xe0]
jmp 0x477dd8
mov ebx, dword [ebp - 0xd8]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 8]
lea edx, [eax + ecx*8]
mov eax, 0x2460
mov dword [ebp - 0xf4], edx
test word [edx + 8], ax
je 0x477376
mov ecx, edx
call fcn.00472830
mov dword [ebp - 0xf4], eax
jmp 0x47737f
mov eax, 4
mov word [edx + 8], ax
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x10]
add ecx, ecx
mov esi, dword [ebx + 0xc]
cmp esi, 0xffffffff
mov eax, dword [eax + ecx*8 + 4]
mov dword [ebp - 0x124], eax
mov eax, dword [eax + 4]
mov edi, dword [eax]
movzx ebx, byte [edi + 5]
cmove esi, ebx
cmp byte [edi + 0x10], 3
jae 0x4773bf
mov eax, dword [edi + 0x40]
cmp dword [eax], 0
je 0x4773c1
cmp dword [edi + 0x4c], 0
jl 0x4773c1
jg 0x4773bf
cmp dword [edi + 0x48], 0
jbe 0x4773c1
mov esi, ebx
cmp byte [edi + 0xf], 0
mov ecx, 0x50af83
jne 0x4773d2
mov ecx, dword [edi + 0xa8]
cmp esi, 5
jne 0x477421
call fcn.0044f550
test eax, eax
je 0x4773eb
mov ecx, edi
call fcn.0045ba00
test eax, eax
jne 0x477421
mov esi, ebx
mov eax, dword [ebp - 0xdc]
test eax, eax
je 0x4773f9
mov esi, ebx
mov edx, esi
mov ecx, edi
call fcn.0045b860
mov ebx, dword [ebp - 0xf4]
mov ecx, 0xa02
mov word [ebx + 8], cx
cmp eax, 6
jne 0x4774a8
xor ecx, ecx
jmp 0x4774af
cmp esi, ebx
je 0x4773ed
cmp ebx, 5
je 0x47742f
cmp esi, 5
jne 0x4773ed
mov eax, dword [ebp - 0xe0]
cmp byte [eax + 0x3f], 0
je 0x478081
cmp dword [eax + 0x98], 1
jg 0x478081
cmp ebx, 5
jne 0x47746d
mov ecx, edi
call fcn.0045bba0
mov dword [ebp - 0xdc], eax
test eax, eax
jne 0x4773f7
mov edx, esi
mov ecx, edi
call fcn.0045b860
jmp 0x477489
cmp ebx, 4
jne 0x47747c
lea edx, [ebx - 2]
mov ecx, edi
call fcn.0045b860
cmp dword [ebp - 0xdc], 0
jne 0x4773f7
mov ecx, dword [ebp - 0x124]
xor edx, edx
cmp esi, 5
sete dl
inc edx
call fcn.00469070
mov dword [ebp - 0xdc], eax
jmp 0x4773f3
mov ecx, dword [eax*4 + 0x50e424]
mov dword [ebx + 0x10], ecx
call fcn.0044f550
movzx edx, byte [ebp - 0x118]
mov ecx, ebx
mov dword [ebx + 0xc], eax
mov byte [ebx + 0xa], 1
call fcn.0046a160
mov edi, dword [ebp - 0xe0]
jmp 0x477dd8
mov ecx, dword [ebp - 0xe4]
mov edx, edi
lea ecx, [ecx + 0x2c]
call fcn.004aeef0
mov dword [ebp - 0xdc], eax
jmp 0x477de4
mov eax, dword [ebp - 0xd8]
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x10]
add ecx, ecx
mov ecx, dword [eax + ecx*8 + 4]
call fcn.00461c90
mov dword [ebp - 0xdc], eax
cmp eax, 0x65
jne 0x474e58
mov dword [ebp - 0xdc], 0
jmp 0x477db0
cmp dword [esi + 4], 0
jne 0x477539
mov ecx, edi
call fcn.0046fbc0
jmp case.default.0x4729c5
mov eax, dword [ebp - 0xe4]
or dword [eax + 0x58], 8
jmp case.default.0x4729c5
mov eax, dword [ebp - 0xd8]
mov al, byte [eax + 0xc]
mov byte [ebp - 0x19c], al
test al, al
jne 0x477568
test dword [edi + 0x18], 0x4000
jne 0x477dd8
mov eax, dword [ebp - 0xd8]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0xd8]
push dword [ebp - 0x19c]
mov eax, dword [eax + 4]
add eax, eax
mov edx, dword [edx + 8]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00468f60
add esp, 4
mov dword [ebp - 0xdc], eax
cmp al, 6
jne 0x474e58
mov eax, dword [ebp - 0xd8]
push dword [eax + 0x10]
mov eax, dword [ebp - 0xe4]
push str.database_table_is_locked:__s
add eax, 0x2c
push edi
push eax
call fcn.0044ce00
add esp, 0x10
jmp 0x477dd8
mov eax, dword [ebp - 0xd8]
mov ecx, edi
mov esi, dword [eax + 0x10]
mov edx, esi
call fcn.004b0600
mov dword [ebp - 0xdc], eax
test esi, esi
je 0x474e58
mov edx, dword [esi + 8]
mov ecx, dword [ebp - 0xe4]
call fcn.0046fc90
jmp 0x477dd8
mov eax, dword [ebp - 0xd8]
xorps xmm0, xmm0
mov ecx, dword [ebp - 0xe8]
movq qword [ebp - 0x2b0], xmm0
movdqu xmmword [ebp - 0x2d0], xmm0
mov eax, dword [eax + 8]
movdqu xmmword [ebp - 0x2c0], xmm0
mov dword [ebp - 0x2b0], edi
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
lea ecx, [ebp - 0x2d0]
call fcn.0046aca0
mov dword [ebp - 0xdc], eax
lea eax, [ebp - 0x2d0]
push eax
call fcn.00470140
add esp, 4
test eax, eax
je 0x477676
mov ecx, dword [ebp - 0xe4]
add ecx, 0x2c
push ecx
push eax
mov eax, dword [ebp - 0xd8]
mov ecx, edi
mov edx, dword [eax + 4]
call fcn.004b00f0
add esp, 8
mov dword [ebp - 0xdc], eax
lea ecx, [ebp - 0x2d0]
call fcn.0046a690
jmp 0x477dd8
mov eax, dword [ebp - 0xd8]
mov ecx, edi
inc dword [edi + 0xa4]
push dword [eax + 0x10]
mov edx, dword [eax + 4]
call fcn.004b03d0
mov esi, dword [ebp - 0xd8]
add esp, 4
dec dword [edi + 0xa4]
mov dword [ebp - 0xdc], eax
jmp 0x477de4
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0x108], 0
mov eax, dword [eax + 0x10]
mov esi, dword [eax + 8]
test esi, esi
je 0x4780e0
mov edi, dword [esi]
test edi, edi
je 0x4780e0
lea eax, [ebp - 0x108]
push eax
mov eax, dword [edi + 0x18]
push esi
call eax
mov ecx, dword [ebp - 0xe4]
add esp, 8
mov edx, esi
mov dword [ebp - 0xdc], eax
call fcn.0046fc90
mov eax, dword [ebp - 0xdc]
test eax, eax
jne 0x476021
mov eax, dword [ebp - 0x108]
mov ecx, dword [ebp - 0xe4]
push 0
push 0xffffffffffffffff
mov dword [eax], esi
mov eax, dword [ebp - 0xd8]
push 0
mov edx, dword [eax + 4]
call fcn.00472500
add esp, 0xc
test eax, eax
je 0x4780cd
mov ecx, dword [ebp - 0x108]
mov edi, dword [ebp - 0xe0]
mov dword [eax + 0x24], ecx
inc dword [esi + 4]
jmp 0x477dd8
mov ebx, dword [ebp - 0xd8]
mov edi, dword [ebp - 0xe8]
add edi, 0x28
mov dword [ebp - 0x12c], 0
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 4]
mov ebx, dword [ebp - 0xe4]
lea edx, [eax + eax*4]
mov esi, dword [edi + edx*8]
lea edi, [edi + edx*8]
mov eax, dword [ebx + 0x38]
mov ebx, dword [ebx + 0xc]
movd xmm0, edi
mov dword [ebp - 0xf4], edi
mov eax, dword [eax + ecx*4]
xor ecx, ecx
mov dword [ebp - 0x110], eax
pshufd xmm3, xmm0, 0
mov eax, dword [eax + 0x24]
mov dword [ebp - 0xfc], eax
mov eax, dword [eax]
mov dword [ebp - 0x104], eax
mov eax, dword [eax]
mov dword [ebp - 0x114], eax
mov eax, dword [ebp - 0xe8]
mov edx, dword [eax + edx*8]
mov dword [ebp - 0x124], edx
test esi, esi
jle 0x47787f
cmp esi, 8
jb 0x477867
cmp dword [0x53a43c], 2
jl 0x477867
movdqa xmm2, xmmword [0x519720]
mov eax, esi
and eax, reloc.WS2_32.dll_getsockopt
jns 0x477800
dec eax
or eax, 0xfffffff8
inc eax
movdqa xmm1, xmmword [0x519730]
mov edi, esi
sub edi, eax
mov edx, ebx
mov edi, edi
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
movdqu xmmword [edx - 0x20], xmm0
movd xmm0, eax
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movdqu xmmword [edx - 0x10], xmm0
cmp ecx, edi
jl 0x477810
mov edi, dword [ebp - 0xf4]
mov edx, dword [ebp - 0x124]
cmp ecx, esi
jge 0x47787f
lea eax, [ecx + 1]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [ebx + ecx*4], eax
inc ecx
add eax, 0x28
cmp ecx, esi
jl 0x477874
mov eax, dword [ebp - 0xd8]
mov edi, dword [ebp - 0x114]
push ebx
push esi
push dword [eax + 0x10]
mov esi, dword [ebp - 0xfc]
mov eax, dword [edi + 0x20]
push edx
push esi
call eax
mov edx, dword [ebp - 0x104]
add esp, 0x14
mov ecx, dword [ebp - 0xe4]
mov dword [ebp - 0xdc], eax
call fcn.0046fc90
cmp dword [ebp - 0xdc], 0
jne 0x4778cb
mov eax, dword [edi + 0x28]
push esi
call eax
add esp, 4
jmp 0x4778d1
mov eax, dword [ebp - 0x12c]
mov ecx, dword [ebp - 0x110]
mov byte [ecx + 0x19], 0
test eax, eax
jne 0x477db0
mov edi, dword [ebp - 0xe0]
jmp 0x477dd8
mov edi, dword [ebp - 0xd8]
mov eax, dword [ebp - 0xe4]
mov ecx, dword [edi + 4]
mov eax, dword [eax + 0x38]
mov edx, dword [eax + ecx*4]
mov eax, dword [edi + 0xc]
mov ecx, dword [ebp - 0xe8]
cmp byte [edx + 0x19], 0
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
je 0x47792a
mov ecx, edi
call fcn.0046aab0
mov edi, dword [ebp - 0xe0]
jmp 0x477dd8
mov eax, dword [edx + 0x24]
xorps xmm0, xmm0
mov ebx, 0xbe01
mov esi, dword [eax]
mov ecx, dword [esi]
movdqu xmmword [ebp - 0x27c], xmm0
mov dword [ebp - 0x264], 0
movq qword [ebp - 0x26c], xmm0
mov dword [ebp - 0x27c], edi
mov ax, word [edi + 8]
and ax, bx
or ax, 1
mov word [edi + 8], ax
mov eax, dword [ebp - 0xd8]
push dword [eax + 8]
lea eax, [ebp - 0x27c]
push eax
push dword [edx + 0x24]
mov eax, dword [ecx + 0x2c]
call eax
mov ecx, dword [ebp - 0xe4]
add esp, 0xc
mov edx, esi
mov dword [ebp - 0xdc], eax
call fcn.0046fc90
mov eax, dword [ebp - 0x268]
test eax, eax
mov ecx, dword [ebp - 0xdc]
movzx edx, byte [ebp - 0x118]
cmovne ecx, eax
mov dword [ebp - 0xdc], ecx
mov ecx, edi
call fcn.0046a160
mov ecx, edi
call fcn.0046ac20
mov edi, dword [ebp - 0xe0]
test eax, eax
jne 0x478109
jmp 0x477dd8
mov eax, dword [ebp - 0xd8]
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 0x38]
mov edi, dword [eax + ecx*4]
cmp byte [edi + 0x19], 0
jne 0x472ea3
mov eax, dword [edi + 0x24]
push eax
mov esi, dword [eax]
mov ebx, dword [esi]
mov eax, dword [ebx + 0x24]
call eax
mov ecx, dword [ebp - 0xe4]
add esp, 4
mov edx, esi
mov dword [ebp - 0xdc], eax
call fcn.0046fc90
cmp dword [ebp - 0xdc], 0
jne 0x477a37
push dword [edi + 0x24]
mov eax, dword [ebx + 0x28]
call eax
mov edi, dword [ebp - 0xe0]
add esp, 4
test eax, eax
jne 0x477a5b
jmp case.0x4729c5.16
mov edi, dword [ebp - 0xe0]
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0x10c]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*4]
add ecx, 0xffffffec
mov dword [ebp - 0xd8], ecx
cmp dword [edi + 0xf0], 0
jne 0x478235
mov ecx, dword [edi + 0x124]
test ecx, ecx
je 0x477dd8
mov esi, dword [ebp - 0x14c]
cmp esi, dword [ebp - 0x140]
jb 0x477dd8
mov ebx, dword [edi + 0x12c]
xor edx, edx
mov eax, esi
div ebx
push dword [edi + 0x128]
sub ebx, edx
add ebx, esi
mov dword [ebp - 0x140], ebx
call ecx
mov esi, dword [ebp - 0xd8]
add esp, 4
test eax, eax
je case.default.0x4729c5
mov ebx, dword [ebp - 0xe0]
mov eax, 9
mov dword [ebp - 0xdc], 9
jmp 0x47459d
mov edx, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xe8]
mov eax, dword [edx + 0x10]
mov edi, dword [eax + 8]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 2
lea esi, [ecx + eax*8]
je 0x477b10
cmp byte [esi + 0xa], 1
je 0x477b10
mov dl, 1
mov ecx, esi
call fcn.0044ee80
mov dword [ebp - 0xdc], eax
test eax, eax
jne 0x476021
mov eax, dword [edi]
push dword [esi + 0x10]
push edi
mov eax, dword [eax + 0x4c]
call eax
mov esi, dword [ebp - 0xe4]
add esp, 8
mov edx, edi
mov dword [ebp - 0xdc], eax
mov ecx, esi
call fcn.0046fc90
and dword [esi + 0x58], 0xfffffff7
mov edi, dword [ebp - 0xe0]
jmp 0x477dd8
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 0x10]
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x4780e0
mov edx, dword [ebx]
test edx, edx
je 0x4780e0
cmp dword [edx + 0x34], 0
mov esi, dword [ebp - 0xd8]
mov esi, dword [esi + 8]
je 0x477dd8
mov al, byte [edi + 0x45]
mov ecx, dword [ebp - 0xe8]
mov byte [ebp - 0xe9], al
mov eax, dword [ebp - 0xe4]
mov edi, dword [eax + 0xc]
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
xor eax, eax
test esi, esi
jle 0x477bab
mov dword [edi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, esi
jl 0x477ba0
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xe0]
mov al, byte [eax + 3]
mov byte [ecx + 0x45], al
lea eax, [ebp - 0x1f8]
push eax
mov eax, dword [edx + 0x34]
push edi
push esi
push ebx
call eax
mov edi, dword [ebp - 0xe0]
add esp, 0x10
mov esi, dword [ebp - 0xe4]
mov edx, ebx
mov dword [ebp - 0xdc], eax
mov ecx, esi
mov al, byte [ebp - 0xe9]
mov byte [edi + 0x45], al
call fcn.0046fc90
cmp dword [ebp - 0xdc], 0
mov eax, dword [ebp - 0xd8]
jne 0x477c26
cmp dword [eax + 4], 0
je 0x477c26
mov ebx, dword [ebp - 0x1f8]
mov ecx, dword [ebp - 0x1f4]
mov dword [ebp - 0x134], ebx
mov dword [ebp - 0x138], ecx
mov dword [edi + 0x20], ebx
mov dword [edi + 0x24], ecx
mov ecx, dword [ebp - 0xdc]
cmp cl, 0x13
jne 0x477c79
mov eax, dword [eax + 0x10]
cmp byte [eax + 0x10], 0
je 0x477c79
mov eax, dword [ebp - 0xd8]
mov al, byte [eax + 3]
cmp al, 4
jne 0x477c5d
mov esi, dword [ebp - 0xd8]
xor ecx, ecx
mov dword [ebp - 0xdc], ecx
add esi, 0x14
jmp 0x47298f
cmp al, 5
jne 0x477c6e
mov eax, 2
mov byte [esi + 0x56], al
jmp 0x477dd8
movzx eax, al
mov byte [esi + 0x56], al
jmp 0x477dd8
inc dword [esi + 0x5c]
jmp 0x477dd8
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 8]
lea edx, [eax + ecx*8]
mov eax, 0x2460
test word [edx + 8], ax
je 0x477caf
mov ecx, edx
call fcn.00472830
mov edx, eax
jmp 0x477cb8
mov eax, 4
mov word [edx + 8], ax
mov eax, dword [ebp - 0xd8]
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x2c]
mov dword [edx], eax
mov dword [edx + 4], 0
jmp 0x477dd8
mov ebx, dword [ebp - 0xd8]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 8]
lea esi, [eax + ecx*8]
mov eax, 0x2460
test word [esi + 8], ax
je 0x477d0c
mov ecx, esi
call fcn.00472830
mov esi, eax
jmp 0x477d15
mov eax, 4
mov word [esi + 8], ax
mov ecx, dword [ebx + 4]
xor edx, edx
mov eax, dword [edi + 0x10]
add ecx, ecx
mov ecx, dword [eax + ecx*8 + 4]
mov eax, dword [ebp - 0xd8]
mov edi, dword [eax + 0xc]
test edi, edi
je 0x477d3b
mov eax, dword [ecx + 4]
mov edx, dword [eax + 0x2c]
cmp edx, edi
cmovb edx, edi
call fcn.00460d80
mov edi, dword [ebp - 0xe0]
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x477dd8
cmp dword [edi + 0xb0], 0
je 0x477daa
mov eax, dword [ebp - 0xe4]
test dword [eax + 0x58], 0x200
jne 0x477daa
mov edx, dword [ebp - 0xd8]
mov edx, dword [edx + 0x10]
test edx, edx
jne 0x477d80
mov edx, dword [eax + 0xa8]
test edx, edx
je 0x477da4
mov ecx, eax
call fcn.00472040
mov ecx, dword [edi + 0xb0]
mov esi, eax
push esi
push dword [edi + 0xb4]
call ecx
add esp, 8
mov edx, esi
mov ecx, edi
call fcn.0044c8e0
mov esi, dword [ebp - 0xd8]
cmp dword [esi + 8], 0
je case.default.0x4729c5
mov edi, dword [ebp - 0xd8]
mov eax, dword [edi + 8]
mov ecx, dword [ebp - 0x10c]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea edi, [ecx + eax*4]
mov dword [ebp - 0xd8], edi
mov edi, dword [ebp - 0xe0]
jmp 0x477dd8
mov edi, eax
mov esi, dword [ebp - 0xd8]
mov eax, dword [ebp - 0xdc]
add esi, 0x14
mov dword [ebp - 0xd8], esi
test eax, eax
je 0x472995
jmp 0x474591
mov ecx, dword [edx + 4]
mov dword [esi + 0x50], ecx
mov al, byte [edx + 8]
mov byte [esi + 0x56], al
mov dword [esi + 0x4c], edi
test ecx, ecx
je 0x477e96
mov al, byte [edx + 3]
test al, al
je 0x477e48
movzx eax, al
mov eax, dword [eax*4 + 0x50cd84]
test eax, eax
je 0x477e4a
mov ecx, dword [edx + 0x10]
test ecx, ecx
je 0x477e4a
push ecx
push eax
push str._s_constraint_failed:__s
push dword [ebp - 0xe0]
add esi, 0x2c
push esi
call fcn.0044ce00
add esp, 0x14
jmp 0x477e71
xor eax, eax
mov ecx, dword [edx + 0x10]
add esi, 0x2c
test ecx, ecx
je 0x477e5c
push ecx
push 0x50b7b4
jmp 0x477e62
push eax
push str._s_constraint_failed
push dword [ebp - 0xe0]
push esi
call fcn.0044ce00
add esp, 0x10
push dword [esi]
mov esi, dword [ebp - 0xe4]
mov eax, dword [ebp - 0xd8]
push dword [esi + 0xa8]
push edi
push str.abort_at__d_in___s_:__s
push dword [eax + 4]
call fcn.0044eab0
add esp, 0x14
mov ecx, esi
call fcn.0046dc90
cmp eax, 5
je 0x477f58
cmp dword [esi + 0x50], 0
mov edi, 0x65
mov eax, 1
cmovne edi, eax
jmp 0x474637
mov dword [ebp - 0xdc], 9
mov eax, 9
jmp 0x474591
mov eax, dword [ebp - 0xe4]
push str.cannot_open_savepoint___SQL_statements_in_progress
add eax, 0x2c
push edi
push eax
call fcn.0044ce00
add esp, 0xc
mov eax, 5
add ebx, 0x14
mov dword [ebp - 0xdc], eax
mov dword [ebp - 0xd8], ebx
jmp 0x474591
push str.cannot_release_savepoint___SQL_statements_in_progress
mov eax, dword [ebp - 0xe4]
add eax, 0x2c
push edi
push eax
call fcn.0044ce00
add esp, 0xc
mov dword [ebp - 0xdc], 5
add dword [ebp - 0xd8], 0x14
mov eax, 5
jmp 0x474591
mov ecx, dword [ebp - 0xd8]
mov eax, 0x66666667
sub ecx, dword [ebp - 0x10c]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x4c], eax
mov byte [edi + 0x3f], 0
mov edi, 5
mov dword [esi + 0x50], edi
jmp 0x474637
mov dword [ebp - 0xdc], 8
mov eax, 8
jmp 0x475bbb
mov ecx, dword [ebp - 0xd8]
mov eax, 0x66666667
sub ecx, dword [ebp - 0x10c]
mov edi, 5
mov esi, dword [ebp - 0xe4]
imul ecx
mov dword [esi + 0x50], edi
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x4c], eax
jmp 0x474637
mov ecx, 0x121b5
call fcn.004c1ac0
mov dword [ebp - 0xdc], eax
jmp 0x475bb5
mov eax, 0x204
add ebx, 0x14
mov dword [ebp - 0xdc], eax
mov dword [ebp - 0xd8], ebx
jmp 0x474591
mov dword [ebp - 0xdc], 0xd
mov eax, 0xd
jmp 0x475bbb
cmp eax, 0xc0a
je 0x474597
cmp eax, 0x204
je 0x47800e
mov edx, str.unknown_error
mov ecx, eax
call fcn.004bfb60
jmp 0x478013
mov eax, str.abort_due_to_ROLLBACK
push eax
push 0x50b7b4
lea eax, [esi + 0x2c]
push ebx
push eax
call fcn.0044ce00
mov eax, dword [ebp - 0xdc]
add esp, 0x10
jmp 0x474597
mov esi, dword [ebp - 0xe4]
mov eax, 6
add ebx, 0x14
mov dword [ebp - 0xdc], eax
mov dword [ebp - 0xd8], ebx
mov byte [esi + 0x56], 2
jmp 0x474591
push str.too_many_levels_of_trigger_recursion
lea eax, [esi + 0x2c]
mov dword [ebp - 0xdc], 1
push edi
push eax
call fcn.0044ce00
add esp, 0xc
mov eax, 1
add dword [ebp - 0xd8], 0x14
jmp 0x474591
mov ebx, dword [ebp - 0xe0]
mov ecx, str.out_of
cmp esi, 5
mov dword [ebp - 0xdc], 1
mov eax, str.into
cmovne eax, ecx
push eax
mov eax, dword [ebp - 0xe4]
push str.cannot_change__s_wal_mode_from_within_a_transaction
add eax, 0x2c
push ebx
push eax
call fcn.0044ce00
mov esi, dword [ebp - 0xd8]
add esp, 0x10
add esi, 0x14
mov eax, 1
jmp 0x47459d
push dword [ebp - 0x108]
mov eax, dword [edi + 0x1c]
call eax
add esp, 4
jmp 0x47455f
add dword [ebp - 0xd8], 0x14
mov eax, 6
mov dword [ebp - 0xdc], 6
jmp 0x474591
mov edi, eax
jmp 0x478109
mov edi, ecx
jmp 0x478109
mov edi, dword [ebp - 0xe0]
mov eax, dword [ebp - 0xe4]
push str.string_or_blob_too_big
add eax, 0x2c
push edi
push eax
call fcn.0044ce00
mov dword [ebp - 0xdc], 0x12
mov eax, 0x12
jmp 0x47458e
mov eax, dword [ebp - 0xd8]
mov ebx, dword [eax + 4]
mov ecx, dword [eax + 8]
test ebx, ebx
je 0x47815e
cmp byte [edi + 0x3f], 0
jne 0x47815e
test ecx, ecx
jne 0x47815e
cmp dword [edi + 0x9c], ecx
jle 0x47815e
push str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x477f06
movzx eax, byte [edi + 0x3f]
cmp ebx, eax
jne 0x478199
test ebx, ebx
jne 0x478171
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x478180
test ecx, ecx
mov eax, str.cannot_rollback___no_transaction_is_active
mov edx, str.cannot_commit___no_transaction_is_active
cmove eax, edx
push eax
mov eax, dword [ebp - 0xe4]
add eax, 0x2c
push edi
push eax
call fcn.0044ce00
add esp, 0xc
jmp 0x474bc5
test ecx, ecx
je 0x4781d0
mov edx, 0x204
mov ecx, edi
call fcn.004bfa10
mov esi, dword [ebp - 0xe4]
mov byte [edi + 0x3f], 1
mov ecx, edi
call fcn.004bf060
cmp dword [esi + 0x50], 0
mov edi, 1
mov eax, 0x65
cmove edi, eax
jmp 0x474637
mov esi, dword [ebp - 0xe4]
mov edx, 1
mov ecx, esi
call fcn.0046dc20
mov edi, eax
test edi, edi
jne 0x474637
mov edi, dword [ebp - 0xe0]
mov ecx, esi
mov byte [edi + 0x3f], bl
call fcn.0046dc90
cmp eax, 5
jne 0x4781b3
mov ecx, dword [ebp - 0xd8]
mov eax, 0x66666667
sub ecx, dword [ebp - 0x10c]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x4c], eax
mov al, 1
sub al, bl
mov byte [edi + 0x3f], al
mov edi, 5
mov dword [esi + 0x50], edi
jmp 0x474637
mov ecx, dword [ebp - 0xe4]
mov eax, dword [str.interrupted]
test eax, eax
mov dword [ecx + 0x50], 9
mov ecx, str.unknown_error
cmovne ecx, eax
mov dword [ebp - 0xdc], 9
mov eax, dword [ebp - 0xe4]
push ecx
push 0x50b7b4
add eax, 0x2c
push edi
push eax
call fcn.0044ce00
add esp, 0x10
mov eax, 9
jmp 0x474591
mov edi, eax
jmp 0x474565