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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2bc
mov eax, dword [0x5bf500]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, ecx
mov dword [ebp - 0xe0], 0
push ebx
push esi
push edi
mov esi, dword [eax]
xor edx, edx
mov edi, dword [eax + 4]
mov dword [ebp - 0xdc], eax
mov dword [ebp - 0x108], edi
mov cl, byte [esi + 0x3e]
mov byte [ebp - 0x110], cl
mov ecx, dword [eax + 8]
mov dword [ebp - 0xe8], ecx
mov ecx, dword [esi + 0x20]
mov dword [ebp - 0x138], ecx
mov ecx, dword [esi + 0x24]
mov dword [ebp - 0x134], ecx
mov ecx, eax
mov dword [ebp - 0xd8], edi
mov dword [ebp - 0xe4], esi
mov byte [ebp - 0x125], 0
mov dword [ebp - 0x164], 0
mov dword [ebp - 0x13c], 0
mov dword [ebp - 0x150], 0
mov dword [ebp - 0x140], edx
call fcn.004640c0
mov ebx, dword [ebp - 0xdc]
cmp dword [ebx + 0x50], 7
je 0x46c40a
mov dword [ebx + 0x50], 0
mov dword [ebx + 0x88], 0
mov dword [ebx + 0x8c], 0
mov dword [ebx + 0x14], 0
cmp dword [esi + 0xf0], 0
mov dword [esi + 0x1c4], 0
jne 0x4700fd
cmp dword [esi + 0x124], 0
je 0x46a70e
mov ecx, dword [esi + 0x12c]
xor edx, edx
mov eax, dword [ebx + 0x7c]
div ecx
sub ecx, edx
mov dword [ebp - 0x150], ecx
mov eax, dword [ebx + 0x4c]
xor ecx, ecx
mov dword [ebp - 0x194], 0xbe01
lea eax, [eax + eax*4]
lea edi, [edi + eax*4]
mov dword [ebp - 0xd8], edi
lea esp, [esp]
cmp byte [esi + 0x41], 0
jne 0x46c404
mov dl, byte [edi]
inc dword [ebp - 0x13c]
movzx ebx, dl
mov byte [ebp - 0xed], dl
lea eax, [ebx - 1]
cmp eax, 0x9d
ja case.0x46a759.62
jmp dword [eax*4 + 0x47012c]
mov edx, dword [ebp - 0xd8]
mov ecx, edx
mov ebx, dword [ebp - 0xe8]
sub ecx, dword [ebp - 0x108]
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
mov edi, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xe0]
mov edi, dword [edi + 8]
mov edx, dword [ebp - 0x108]
dec edi
mov esi, dword [ebp - 0xe4]
lea edi, [edi + edi*4]
lea edi, [edx + edi*4]
jmp case.0x46a759.62
mov eax, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xe8]
mov ebx, dword [ebp - 0x108]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + ecx*8]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*4]
mov eax, 0x80
mov word [edx + ecx*8 + 8], ax
jmp 0x46adfe
mov edx, dword [ebp - 0xd8]
mov ebx, dword [ebp - 0xe8]
mov edi, 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 [edi + 8], 0
mov ecx, dword [ebp - 0xe0]
jne 0x46a7a9
jmp case.0x46a759.62
mov eax, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xe8]
mov ebx, dword [ebp - 0x108]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + ecx*8]
lea eax, [eax + eax*4]
mov eax, dword [ebx + eax*4 + 8]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea edi, [ebx + eax*4]
mov eax, 0x80
mov word [edx + ecx*8 + 8], ax
jmp 0x46adfe
mov edx, dword [ebp - 0xd8]
mov ebx, dword [ebp - 0xe8]
mov edi, dword [ebp - 0x108]
mov eax, dword [edx + 4]
sub edx, edi
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 dword [ebx + esi*8 + 4], edx
lea edi, [edi + eax*4]
jmp 0x46adf8
mov eax, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xe8]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 8], 1
je 0x46cc4a
mov ecx, dword [ebp - 0xd8]
mov eax, 0x66666667
sub ecx, dword [ebp - 0x108]
mov edi, dword [ebp - 0xdc]
imul ecx
sar edx, 3
mov esi, edx
shr esi, 0x1f
add esi, edx
mov edx, dword [ebp - 0xd8]
cmp dword [edx + 4], 0
jne 0x46fce0
mov ecx, dword [edi + 0xb0]
test ecx, ecx
je 0x46fce0
mov eax, dword [ecx + 4]
mov esi, dword [ebp - 0xe4]
dec dword [edi + 0xb8]
mov dword [edi + 0xb0], eax
mov eax, dword [edi + 0x5c]
add dword [esi + 0x54], eax
mov dword [esi + 0x50], eax
call fcn.00464b70
mov ecx, dword [esi + 0x20]
mov dword [ebp - 0x138], ecx
mov ecx, dword [esi + 0x24]
mov dword [ebp - 0x134], ecx
mov ecx, dword [ebp - 0xd8]
cmp dword [ecx + 8], 4
jne 0x46a966
lea ecx, [eax + eax*4]
mov eax, dword [edi + 4]
mov eax, dword [eax + ecx*4 + 8]
dec eax
mov edx, dword [edi + 4]
lea eax, [eax + eax*4]
mov ecx, dword [edi + 8]
mov dword [ebp - 0x108], edx
mov dword [ebp - 0xe8], ecx
lea edi, [edx + eax*4]
jmp 0x46adfe
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0xdc]
mov eax, dword [eax + 8]
lea ecx, [eax + ecx*8]
mov eax, 0x2460
test word [ecx + 8], ax
je 0x46a9c7
call fcn.0046a5d0
mov edi, dword [ebp - 0xd8]
mov ecx, eax
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x46adfe
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
mov edi, dword [ebp - 0xd8]
jmp 0x46adfe
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0xdc]
mov eax, dword [eax + 8]
lea edx, [eax + ecx*8]
mov eax, 0x2460
test word [edx + 8], ax
je 0x46aa18
mov ecx, edx
call fcn.0046a5d0
mov edx, eax
jmp 0x46aa21
mov eax, 4
mov word [edx + 8], ax
mov eax, dword [ebp - 0xd8]
mov edi, 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 0x46adfe
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0xdc]
mov eax, dword [eax + 8]
lea ecx, [eax + ecx*8]
mov eax, 0x2460
test word [ecx + 8], ax
je 0x46aa6b
call fcn.0046a5d0
mov ecx, eax
jmp 0x46aa74
mov eax, 4
mov word [ecx + 8], ax
mov edi, dword [ebp - 0xd8]
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 0x46adfe
mov ebx, dword [ebp - 0xd8]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0xdc]
mov eax, dword [eax + 8]
lea esi, [eax + ecx*8]
mov eax, 0x2460
test word [esi + 8], ax
je 0x46aac7
mov ecx, esi
call fcn.0046a5d0
mov esi, eax
jmp 0x46aad0
mov eax, 4
mov word [esi + 8], ax
mov edi, dword [ebx + 0x10]
mov ecx, edi
mov byte [ebx], 0x19
call fcn.00447620
mov edx, dword [ebp - 0xd8]
mov bl, byte [ebp - 0x110]
mov dword [edx + 4], eax
cmp bl, 1
je 0x46ab5c
push 0
push 1
push 0xffffffffffffffff
mov edx, edi
mov ecx, esi
call fcn.004628e0
add esp, 0xc
mov dword [ebp - 0xe0], eax
cmp eax, 0x12
je 0x46ab6e
movzx edx, bl
mov ecx, esi
call fcn.00461cb0
test eax, eax
jne 0x46c3fe
mov edx, dword [ebp - 0xd8]
mov dword [esi + 0x18], eax
mov eax, 0x800
or word [esi + 8], ax
cmp byte [edx + 1], 0xff
jne 0x46ab4c
mov edx, dword [edx + 0x10]
mov ecx, dword [ebp - 0xe4]
call fcn.00444ae0
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 esi, dword [ebp - 0xe4]
mov eax, dword [edx + 4]
cmp eax, dword [esi + 0x58]
jle 0x46ac58
push str.string_or_blob_too_big
push dword [ebp - 0xdc]
call fcn.00463200
add esp, 8
mov dword [ebp - 0xe0], 0x12
mov ebx, dword [ebp - 0xdc]
mov ecx, dword [ebp - 0xd8]
mov eax, dword [ebp - 0xe0]
sub ecx, dword [ebp - 0x108]
mov dword [ebx + 0x50], eax
mov eax, dword [ebp - 0xdc]
push dword [eax + 0x2c]
push dword [eax + 0xa8]
mov eax, 0x66666667
imul ecx
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 - 0xe0]
call fcn.00446b80
mov ecx, dword [ebp - 0xdc]
add esp, 0x14
call fcn.004658f0
cmp dword [ebp - 0xe0], 0xc0a
mov esi, dword [ebp - 0xe4]
jne 0x46abfb
mov byte [esi + 0x41], 1
mov al, byte [ebp - 0x125]
mov edi, 1
test al, al
je 0x46fe5b
movzx esi, al
mov eax, dword [ebp - 0xe4]
dec esi
mov ecx, esi
add ecx, ecx
mov eax, dword [eax + 0x10]
push dword [eax + ecx*8 + 0xc]
call fcn.004870b0
add esp, 4
cmp esi, edi
je 0x46fe55
mov esi, dword [ebp - 0xe4]
mov eax, dword [esi + 0x10]
push dword [eax + 0x1c]
call fcn.004870b0
add esp, 4
jmp 0x46fe5b
mov edx, dword [ebp - 0xd8]
mov bl, byte [ebp - 0x110]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0xdc]
mov eax, dword [eax + 8]
lea edx, [eax + ecx*8]
mov eax, 0x2460
test word [edx + 8], ax
je 0x46ac80
mov ecx, edx
call fcn.0046a5d0
mov edx, eax
jmp 0x46ac89
mov eax, 4
mov word [edx + 8], ax
mov edi, 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 [edi + 3], 0
je 0x46adfe
mov eax, dword [edi + 0xc]
mov ebx, dword [ebp - 0xe8]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + ecx*8]
or eax, dword [ebx + ecx*8 + 4]
mov ecx, dword [ebp - 0xe0]
mov ebx, dword [ebp - 0xdc]
je 0x46ae0a
mov eax, 0xa10
mov word [edx + 8], ax
jmp 0x46ae0a
mov ebx, dword [ebp - 0xd8]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0xdc]
mov eax, dword [eax + 8]
lea esi, [eax + ecx*8]
mov eax, 0x2460
test word [esi + 8], ax
je 0x46ad1e
mov ecx, esi
call fcn.0046a5d0
mov esi, eax
jmp 0x46ad27
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 0x46adf2
lea ecx, [ecx]
add esi, 0x28
mov ecx, esi
call fcn.004625f0
dec edi
mov word [esi + 8], bx
test edi, edi
jg 0x46ad50
jmp 0x46adf2
mov eax, dword [ebp - 0xd8]
mov ebx, 0xff7f
mov edx, dword [ebp - 0xe8]
mov edi, dword [ebp - 0xd8]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
mov ax, word [edx + ecx*8 + 8]
and ax, bx
or ax, 1
mov word [edx + ecx*8 + 8], ax
jmp 0x46adfe
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0xdc]
mov eax, dword [eax + 8]
lea esi, [eax + ecx*8]
mov eax, 0x2460
test word [esi + 8], ax
je 0x46adc6
mov ecx, esi
call fcn.0046a5d0
mov esi, eax
jmp 0x46adcf
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.004628e0
add esp, 0xc
mov al, byte [ebp - 0x110]
mov byte [esi + 0xa], al
mov edi, dword [ebp - 0xd8]
mov esi, dword [ebp - 0xe4]
mov ecx, dword [ebp - 0xe0]
mov ebx, dword [ebp - 0xdc]
add edi, 0x14
mov dword [ebp - 0xd8], edi
test ecx, ecx
je 0x46a730
jmp 0x46ab91
mov eax, dword [ebp - 0xd8]
mov edi, dword [ebp - 0xdc]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x3c]
lea esi, [eax + ecx*8]
lea ecx, [esi - 0x28]
call fcn.00462760
test eax, eax
jne 0x46ab6e
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 8]
lea eax, [eax + ecx*8]
mov ecx, 0x2460
test word [eax + 8], cx
je 0x46ae6e
mov ecx, eax
call fcn.0046a5d0
jmp 0x46ae77
mov ecx, 4
mov word [eax + 8], cx
push 0x800
lea edx, [esi - 0x28]
mov ecx, eax
call fcn.004627c0
add esp, 4
jmp 0x46adf2
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.00462890
mov eax, 0x1000
test word [esi + 8], ax
je 0x46aed3
mov ecx, esi
call fcn.00461e00
test eax, eax
jne 0x46c3fe
add edi, 0x28
add esi, 0x28
dec ebx
jne 0x46aeb0
jmp 0x46adf2
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]
push 0x1000
mov edx, edi
mov ecx, esi
call fcn.004627c0
mov eax, 0x1000
add esp, 4
test word [esi + 8], ax
je 0x46af2d
mov ecx, esi
call fcn.00461e00
test eax, eax
jne 0x46c3fe
mov eax, ebx
dec ebx
test eax, eax
je 0x46adf2
add esi, 0x28
add edi, 0x28
jmp 0x46af02
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xe8]
push 0x1000
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.004627c0
mov edi, dword [ebp - 0xd8]
add esp, 4
jmp 0x46adfe
mov eax, dword [esi + 0x124]
test eax, eax
je 0x46afa7
mov edx, dword [ebp - 0x13c]
cmp edx, dword [ebp - 0x150]
jb 0x46afa7
push dword [esi + 0x128]
call eax
add esp, 4
test eax, eax
jne 0x46fd9c
mov ecx, dword [ebp - 0xdc]
xor edx, edx
call fcn.00465880
mov ecx, eax
mov dword [ebp - 0xe0], ecx
test ecx, ecx
jne case.0x46a759.62
mov ecx, dword [ebp - 0xdc]
lea edx, [eax + 1]
call fcn.00465750
mov ecx, eax
mov dword [ebp - 0xe0], ecx
test ecx, ecx
jne case.0x46a759.62
mov edi, dword [ebp - 0xdc]
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 0x46b043
mov eax, 0x1000
test word [esi + 8], ax
je 0x46b02d
mov ecx, esi
call fcn.00461e00
test eax, eax
jne 0x46c3fe
mov ecx, esi
call fcn.00461f10
mov ecx, dword [ebp - 0xd8]
inc edi
add esi, 0x28
cmp edi, dword [ecx + 8]
jl 0x46b013
mov esi, dword [ebp - 0xe4]
cmp byte [esi + 0x41], 0
jne 0x46c404
sub ecx, dword [ebp - 0x108]
mov eax, 0x66666667
imul ecx
mov ecx, dword [ebp - 0xdc]
mov edi, 0x64
sar edx, 3
mov eax, edx
shr eax, 0x1f
inc eax
add eax, edx
mov dword [ecx + 0x4c], eax
jmp 0x46fe5b
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 - 0xec], 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 0x46b0c4
mov ecx, esi
call fcn.004625f0
jmp 0x46adf2
test ecx, 0x4000
je 0x46b0db
mov ecx, ebx
call fcn.00461e70
test eax, eax
jne 0x46c3fe
mov eax, 0x4000
test word [edi + 8], ax
je 0x46b0f5
mov ecx, edi
call fcn.00461e70
test eax, eax
jne 0x46c3fe
test byte [ebx + 8], 0x12
jne 0x46b115
mov dl, byte [ebp - 0x110]
mov ecx, ebx
push 0
call fcn.00461f30
add esp, 4
test eax, eax
jne 0x46c3fe
test byte [edi + 8], 0x12
jne 0x46b135
mov dl, byte [ebp - 0x110]
mov ecx, edi
push 0
call fcn.00461f30
add esp, 4
test eax, eax
jne 0x46c3fe
mov eax, dword [ebx + 0xc]
add eax, dword [edi + 0xc]
cdq
mov ebx, eax
mov ecx, edx
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 0x58]
cdq
cmp ecx, edx
jg 0x46ab6e
jl 0x46b15c
cmp ebx, eax
ja 0x46ab6e
xor eax, eax
lea edx, [ebx + 2]
cmp esi, edi
mov ecx, esi
sete al
push eax
call fcn.00461cd0
add esp, 4
test eax, eax
jne 0x46c3fe
mov ax, word [esi + 8]
mov ecx, 0xbe02
and ax, cx
or ax, 2
mov word [esi + 8], ax
cmp esi, edi
je 0x46b1a2
push dword [edi + 0xc]
push dword [edi + 0x10]
push dword [esi + 0x10]
call fcn.005256b0
add esp, 0xc
mov eax, dword [ebp - 0xec]
push dword [eax + 0xc]
push dword [eax + 0x10]
mov eax, dword [esi + 0x10]
add eax, dword [edi + 0xc]
push eax
call fcn.005256b0
mov eax, dword [esi + 0x10]
add esp, 0xc
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 dword [esi + 0xc], ebx
jmp 0x46ade9
mov ebx, dword [ebp - 0xd8]
mov esi, dword [ebp - 0xe8]
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov dword [ebp - 0xec], ecx
call fcn.0046a5b0
movzx eax, ax
mov dword [ebp - 0x118], eax
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea ebx, [esi + eax*8]
mov ecx, ebx
mov dword [ebp - 0x104], ebx
call fcn.0046a5b0
movzx ecx, ax
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0x114], ecx
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [ebp - 0x10c], eax
mov al, byte [ebx + 8]
mov ebx, dword [ebp - 0xec]
or al, byte [ebx + 8]
test al, 1
jne 0x46b46e
mov al, cl
and al, byte [ebp - 0x118]
test al, 4
je 0x46b34e
mov eax, dword [ebp - 0x104]
mov ecx, dword [ebx]
mov edx, dword [ebx + 4]
mov byte [ebp - 0xed], 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.0x46b292
jmp dword [eax*4 + 0x4703a4]
push edx
push ecx
lea ecx, [ebp - 0x148]
call fcn.00448a10
add esp, 8
test eax, eax
jne 0x46b355
mov edx, dword [ebp - 0x144]
mov eax, dword [ebp - 0x148]
jmp 0x46b32a
push edx
push ecx
lea ecx, [ebp - 0x148]
call fcn.00448ab0
jmp 0x46b2a6
push edx
push ecx
lea ecx, [ebp - 0x148]
call fcn.00448b00
jmp 0x46b2a6
mov eax, ecx
or eax, edx
je 0x46b46e
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
jne 0x46b2fc
test esi, esi
jne 0x46b2fc
cmp edi, 0x80000000
je 0x46b355
push edx
push ecx
push edi
push esi
call fcn.00538ad0
jmp 0x46b32a
mov eax, ecx
or eax, edx
je 0x46b46e
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
jne 0x46b321
mov ecx, 1
xor edx, edx
push edx
push ecx
push edi
push esi
call fcn.00538b80
mov ecx, dword [ebp - 0x10c]
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 0x46adf2
mov byte [ebp - 0xed], 0
mov ecx, ebx
call fcn.004622a0
mov ecx, dword [ebp - 0x104]
movsd qword [ebp - 0x120], xmm0
call fcn.004622a0
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.0x46b38c
jmp dword [eax*4 + 0x4703b4]
addsd xmm1, qword [ebp - 0x120]
jmp 0x46b418
subsd xmm1, qword [ebp - 0x120]
jmp 0x46b418
mulsd xmm1, qword [ebp - 0x120]
jmp 0x46b418
movsd xmm0, qword [ebp - 0x120]
xorps xmm2, xmm2
ucomisd xmm0, xmm2
lahf
test ah, 0x44
jnp 0x46b46e
divsd xmm1, xmm0
jmp 0x46b418
movsd xmm0, qword [ebp - 0x120]
call fcn.005263af
movsd xmm0, qword [ebp - 0x158]
mov esi, eax
mov edi, edx
call fcn.005263af
mov ecx, esi
or ecx, edi
je 0x46b46e
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x46b404
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push eax
call fcn.00538b80
mov ecx, eax
call fcn.0052654f
movapd xmm1, xmm0
movapd xmm0, xmm1
call fcn.004475e0
test eax, eax
jne 0x46b46e
mov ecx, dword [ebp - 0x10c]
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 - 0x114]
or al, byte [ebp - 0x118]
test al, 8
jne 0x46adf2
cmp byte [ebp - 0xed], 0
jne 0x46adf2
call fcn.00462300
jmp 0x46adf2
mov ecx, dword [ebp - 0x10c]
call fcn.004625f0
jmp 0x46adf2
mov eax, dword [edi + 4]
test eax, eax
je case.0x46a759.62
mov ecx, dword [ebp - 0xe8]
lea eax, [eax + eax*4]
push 0
push 0
lea ecx, [ecx + eax*8]
call fcn.00462650
add esp, 8
jmp 0x46adfe
mov eax, dword [ebp - 0xd8]
mov ecx, esi
push 0
movzx ebx, byte [eax + 3]
lea eax, [ebx*4 + 0x1c]
push eax
call fcn.00444d60
mov esi, eax
add esp, 8
test esi, esi
je 0x46c3fe
mov eax, dword [ebp - 0xd8]
mov dword [esi], 0
mov ecx, dword [eax + 0x10]
mov dword [esi + 4], ecx
mov ecx, eax
sub ecx, dword [ebp - 0x108]
mov eax, 0x66666667
imul ecx
mov byte [esi + 0x1a], bl
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x10], eax
mov eax, dword [ebp - 0xdc]
mov dword [esi + 0xc], eax
mov eax, dword [ebp - 0xd8]
mov word [eax], 0xec24
mov dword [eax + 0x10], esi
jmp 0x46b51e
mov eax, dword [ebp - 0xd8]
mov esi, dword [eax + 0x10]
mov eax, dword [eax + 0xc]
mov ebx, dword [ebp - 0xe8]
mov dword [ebp - 0xec], esi
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
cmp dword [esi], edi
je 0x46b56a
movzx ecx, byte [esi + 0x1a]
dec ecx
mov dword [esi], edi
js 0x46b56a
lea edx, [esi + 0x1c]
mov esi, dword [ebp - 0xd8]
lea edx, [edx + ecx*4]
nop
mov eax, dword [esi + 8]
lea edx, [edx - 4]
add eax, ecx
dec ecx
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [edx + 4], eax
jns 0x46b550
mov esi, dword [ebp - 0xec]
mov ecx, dword [esi]
mov edx, 0xbe01
mov ebx, dword [ebp - 0xe4]
mov ax, word [ecx + 8]
and ax, dx
or ax, 1
mov word [ecx + 8], ax
mov eax, dword [ebp - 0x138]
mov byte [esi + 0x19], 0
mov dword [ebx + 0x20], eax
mov eax, dword [ebp - 0x134]
mov dword [ebx + 0x24], eax
lea eax, [esi + 0x1c]
mov ecx, dword [esi + 4]
push eax
movzx eax, byte [esi + 0x1a]
push eax
mov eax, dword [ecx + 0xc]
push esi
call eax
mov eax, dword [ebx + 0x20]
add esp, 0xc
cmp byte [esi + 0x19], 0
mov dword [ebp - 0x138], eax
mov eax, dword [ebx + 0x24]
mov dword [ebp - 0x134], eax
je 0x46b610
cmp dword [esi + 0x14], 0
je 0x46b5f6
push dword [esi]
call fcn.00467e50
add esp, 4
push eax
push 0x592278
push dword [ebp - 0xdc]
call fcn.00463200
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0xd8]
mov edx, dword [esi + 0x10]
mov ecx, dword [ebp - 0xdc]
push dword [eax + 4]
call fcn.00465da0
add esp, 4
test byte [edi + 8], 0x12
je 0x46b633
movzx edx, byte [ebp - 0x110]
mov ecx, dword [esi]
call fcn.00461cb0
mov ecx, dword [esi]
call fcn.00462760
test eax, eax
jne 0x46ab6e
mov edi, dword [ebp - 0xd8]
mov esi, ebx
jmp 0x46adfe
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 - 0xec], edx
test al, 1
je 0x46b683
mov ecx, edx
call fcn.004625f0
jmp 0x46adf2
call fcn.004621f0
mov ebx, eax
mov edi, edx
mov ecx, esi
mov dword [ebp - 0x188], ebx
mov dword [ebp - 0x184], edi
call fcn.004621f0
mov esi, eax
mov eax, dword [ebp - 0xd8]
mov cl, byte [eax]
cmp cl, 0x55
jne 0x46b6b7
and ebx, esi
and edi, edx
jmp 0x46b741
cmp cl, 0x56
jne 0x46b6c2
or ebx, esi
or edi, edx
jmp 0x46b741
mov eax, esi
or eax, edx
je 0x46b741
test edx, edx
jg 0x46b6f6
jl 0x46b6d2
test esi, esi
jae 0x46b6eb
mov al, 0xaf
sub al, cl
mov cl, al
cmp edx, 0xffffffff
jl 0x46b6f6
jg 0x46b6e4
cmp esi, 0xffffffc0
jbe 0x46b6f6
neg esi
adc edx, 0
neg edx
test edx, edx
jl 0x46b718
jg 0x46b6f6
cmp esi, 0x40
jb 0x46b718
test edi, edi
jg 0x46b70f
jl 0x46b700
test ebx, ebx
jae 0x46b70f
cmp cl, 0x57
je 0x46b70f
or eax, 0xffffffff
cdq
mov ebx, eax
mov edi, edx
jmp 0x46b741
xor eax, eax
cdq
mov ebx, eax
mov edi, edx
jmp 0x46b741
movq xmm1, qword [ebp - 0x188]
movd xmm0, esi
cmp cl, 0x57
jne 0x46b765
psllq xmm1, xmm0
movq qword [ebp - 0x120], xmm1
mov ebx, dword [ebp - 0x120]
mov edi, dword [ebp - 0x11c]
mov ecx, dword [ebp - 0xec]
mov edx, 0xbe04
mov ax, word [ecx + 8]
and ax, dx
mov dword [ecx], ebx
or ax, 4
mov dword [ecx + 4], edi
mov word [ecx + 8], ax
jmp 0x46adf2
psrlq xmm1, xmm0
movq qword [ebp - 0x120], xmm1
test edi, edi
jg 0x46b735
jl 0x46b77b
test ebx, ebx
jae 0x46b735
mov ecx, 0x40
or eax, 0xffffffff
sub ecx, esi
or edx, 0xffffffff
call fcn.005266f0
mov ebx, dword [ebp - 0x120]
mov edi, dword [ebp - 0x11c]
or ebx, eax
or edi, edx
jmp 0x46b741
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.004623a0
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 8]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
jmp 0x46adf2
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 0x46b85a
test al, 8
jne 0x46b802
test al, 2
je 0x46b809
mov edx, 1
mov ecx, esi
call fcn.0046a3c0
jmp 0x46b809
mov ecx, esi
call fcn.00462300
movzx eax, word [esi + 8]
test al, 4
jne 0x46b85a
mov edi, dword [ebp - 0xd8]
cmp dword [edi + 8], 0
jne 0x46a7a3
mov ecx, 0x14
mov dword [ebp - 0xe0], ecx
mov esi, dword [ebp - 0xe4]
cmp byte [esi + 0x41], 0
je 0x46fece
mov ecx, 7
mov dword [ebp - 0xe0], 7
mov edx, str.unknown_error
call fcn.004b92b0
jmp 0x46fef3
and eax, 0xbe04
or eax, 4
mov word [esi + 8], ax
jmp 0x46adf2
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 0x46a9df
call fcn.004623d0
mov edi, dword [ebp - 0xd8]
jmp 0x46adfe
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 0x46b8ca
mov ecx, esi
call fcn.00461e70
mov dword [ebp - 0xe0], eax
jmp 0x46b8d4
mov dword [ebp - 0xe0], 0
mov eax, dword [ebp - 0xd8]
mov ecx, esi
push dword [ebp - 0x110]
mov dl, byte [eax + 8]
call fcn.00462520
add esp, 4
jmp 0x46adf2
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xe8]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
movzx edx, word [ecx + eax*8 + 8]
lea esi, [ecx + eax*8]
movzx ecx, word [ebx + 8]
mov eax, ecx
mov dword [ebp - 0xf4], edx
mov dword [ebp - 0xf8], eax
mov al, dl
or al, cl
test al, 1
je 0x46b9a9
mov edi, dword [ebp - 0xd8]
mov al, byte [edi + 3]
test al, al
jns 0x46b965
test cl, 1
je 0x46b95b
test dl, 1
je 0x46b95b
test edx, 0x100
jne 0x46b95b
xor edx, edx
jmp 0x46ba4c
mov edx, 1
jmp 0x46ba4c
test al, 0x20
je 0x46b990
mov eax, dword [edi + 8]
mov ebx, 0xbe01
mov edx, dword [ebp - 0xe8]
lea ecx, [eax + eax*4]
mov ax, word [edx + ecx*8 + 8]
and ax, bx
or ax, 1
mov word [edx + ecx*8 + 8], ax
jmp 0x46adf8
mov ecx, dword [ebp - 0xe0]
test al, 0x10
jne 0x46a7a9
mov esi, dword [ebp - 0xe4]
jmp case.0x46a759.62
mov eax, dword [ebp - 0xd8]
mov al, byte [eax + 3]
and al, 0x47
cmp al, 0x43
jl 0x46ba62
and cl, 0xe
cmp cl, 2
jne 0x46b9cd
xor edx, edx
mov ecx, ebx
call fcn.0046a3c0
mov al, byte [esi + 8]
and al, 0xe
cmp al, 2
jne 0x46b9df
xor edx, edx
mov ecx, esi
call fcn.0046a3c0
mov edi, dword [ebp - 0xf4]
mov eax, 0x4000
test word [ebx + 8], ax
je 0x46ba06
mov ecx, ebx
call fcn.00461e70
and dword [ebp - 0xf8], 0xbfff
mov eax, 0x4000
test word [esi + 8], ax
je 0x46ba1f
mov ecx, esi
call fcn.00461e70
and edi, 0xbfff
mov dword [ebp - 0xf4], edi
mov eax, dword [ebp - 0xe4]
cmp byte [eax + 0x41], 0
jne 0x470123
mov eax, dword [ebp - 0xd8]
mov edx, ebx
mov ecx, esi
push dword [eax + 0x10]
call fcn.00466b20
mov edi, dword [ebp - 0xd8]
add esp, 4
mov edx, eax
movzx ecx, byte [edi]
add ecx, 0xffffffb2
cmp ecx, 4
ja case.default.0x46ba5b
jmp dword [ecx*4 + 0x4703c4]
cmp al, 0x42
jne 0x46b9df
test cl, 2
jne 0x46baa8
test cl, 0xc
je 0x46baa8
mov dl, byte [ebp - 0x110]
mov ecx, ebx
push 1
call fcn.00461f30
mov ax, word [ebx + 8]
mov edi, 0x1ff
xor ax, word [ebp - 0xf8]
add esp, 4
and ax, di
xor ax, word [ebx + 8]
movzx eax, ax
mov dword [ebp - 0xf8], eax
jmp 0x46baad
mov edi, 0x1ff
movzx eax, word [esi + 8]
test al, 2
jne 0x46b9df
test al, 0xc
je 0x46b9df
mov dl, byte [ebp - 0x110]
mov ecx, esi
push 1
call fcn.00461f30
mov ax, word [esi + 8]
add esp, 4
mov ecx, dword [ebp - 0xf4]
xor ax, cx
and ax, di
xor ax, word [esi + 8]
movzx edi, ax
mov dword [ebp - 0xf4], edi
jmp 0x46b9e5
xor eax, eax
test edx, edx
sete al
jmp 0x46bb29
xor eax, eax
test edx, edx
setne al
jmp 0x46bb29
xor eax, eax
test edx, edx
sets al
jmp 0x46bb29
xor eax, eax
test edx, edx
setle al
jmp 0x46bb29
xor eax, eax
test edx, edx
setg al
jmp 0x46bb29
xor eax, eax
test edx, edx
setns al
mov ecx, dword [ebp - 0xf8]
mov word [ebx + 8], cx
mov ecx, dword [ebp - 0xf4]
mov word [esi + 8], cx
test byte [edi + 3], 0x20
je 0x46d749
mov ecx, dword [edi + 8]
mov edx, 0xbe04
mov ebx, dword [ebp - 0xe8]
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 0x46adf8
mov edx, dword [edi + 0x10]
mov dword [ebp - 0x140], edx
jmp case.0x46a759.62
test byte [edi + 3], 1
mov eax, 0
mov ebx, dword [ebp - 0x140]
mov ecx, dword [edi + 4]
cmove ebx, eax
mov eax, dword [edi + 0xc]
xor esi, esi
mov edx, dword [edi + 0x10]
mov dword [ebp - 0x114], ecx
mov ecx, dword [edi + 8]
mov dword [ebp - 0x140], ebx
mov dword [ebp - 0x12c], eax
mov dword [ebp - 0xfc], edx
mov dword [ebp - 0xec], ecx
test eax, eax
jle 0x46bc5b
lea edi, [edx + 0x14]
lea ecx, [ecx]
test ebx, ebx
je 0x46bbd9
mov ecx, dword [ebx + esi*4]
jmp 0x46bbdb
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 - 0xec]
add eax, ecx
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov eax, dword [ebp - 0x114]
add eax, ecx
mov ecx, dword [ebp - 0xe8]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.00466b20
add esp, 4
mov dword [ebp - 0x164], eax
test eax, eax
jne 0x46bc49
mov edx, dword [ebp - 0xfc]
inc esi
mov ebx, dword [ebp - 0x140]
add edi, 4
cmp esi, dword [ebp - 0x12c]
jl 0x46bbd0
mov edi, dword [ebp - 0xd8]
xor edx, edx
mov dword [ebp - 0x140], edx
jmp 0x46adf8
test ebx, ebx
je 0x46bc55
neg eax
mov dword [ebp - 0x164], eax
mov edi, dword [ebp - 0xd8]
xor edx, edx
mov dword [ebp - 0x140], edx
jmp 0x46adf8
mov eax, dword [ebp - 0x164]
test eax, eax
mov edx, dword [ebp - 0x108]
mov eax, dword [ebp - 0xd8]
jns 0x46bc8d
mov edi, dword [eax + 4]
dec edi
lea edi, [edi + edi*4]
lea edi, [edx + edi*4]
jmp case.0x46a759.62
mov ebx, dword [ebp - 0xdc]
jne 0x46bca4
mov edi, dword [eax + 8]
dec edi
lea edi, [edi + edi*4]
lea edi, [edx + edi*4]
jmp 0x46ae0a
mov edi, dword [eax + 0xc]
dec edi
lea edi, [edi + edi*4]
lea edi, [edx + edi*4]
jmp 0x46ae0a
mov ebx, dword [ebp - 0xd8]
mov edi, dword [ebp - 0xe8]
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 8], 1
lea ecx, [edi + eax*8]
je 0x46bcd6
mov esi, 2
jmp 0x46bce8
call fcn.004621f0
or eax, edx
je 0x46bce6
mov esi, 1
jmp 0x46bce8
xor esi, esi
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 8], 1
lea ecx, [edi + eax*8]
je 0x46bcff
mov eax, 2
jmp 0x46bd11
call fcn.004621f0
or eax, edx
je 0x46bd0f
mov eax, 1
jmp 0x46bd11
xor eax, eax
cmp byte [ebx], 0x48
lea eax, [eax + esi*2]
jne 0x46bd23
movzx edx, byte [esi + eax + 0x5864dc]
jmp 0x46bd2b
movzx edx, byte [esi + eax + 0x5876d4]
mov eax, dword [ebp - 0xd8]
mov esi, dword [ebp - 0xe4]
mov ebx, dword [ebp - 0xdc]
mov eax, dword [eax + 0xc]
lea ecx, [eax + eax*4]
cmp edx, 2
jne 0x46bd6f
mov ax, word [edi + ecx*8 + 8]
mov edx, 0xbe01
and ax, dx
or ax, 1
mov word [edi + ecx*8 + 8], ax
mov edi, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xe0]
jmp 0x46ae0a
mov eax, edx
cdq
mov dword [edi + ecx*8], eax
mov ax, word [edi + ecx*8 + 8]
mov dword [edi + ecx*8 + 4], edx
mov edx, 0xbe04
and ax, dx
or ax, 4
mov word [edi + ecx*8 + 8], ax
mov edi, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xe0]
jmp 0x46ae0a
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 + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.004625f0
test byte [edi + 8], 1
jne 0x46adf2
mov eax, 4
mov ecx, edi
mov word [esi + 8], ax
call fcn.004621f0
or eax, edx
jne 0x46bdf3
mov eax, 1
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x46adf2
xor eax, eax
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x46adf2
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 + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.004625f0
test byte [edi + 8], 1
jne 0x46adf2
mov eax, 4
mov ecx, edi
mov word [esi + 8], ax
call fcn.004621f0
not eax
not edx
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x46adf2
mov eax, dword [ebp - 0xdc]
mov ecx, dword [edi + 4]
mov eax, dword [eax + 0xc8]
cmp byte [eax + ecx], 0
jne 0x46a7a3
mov byte [eax + ecx], 1
jmp 0x46adfe
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 0x46be96
mov edi, dword [ebp - 0xd8]
mov ecx, dword [edi + 0xc]
jmp 0x46bec5
call fcn.004622a0
xorps xmm1, xmm1
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x46beaf
mov ecx, 1
jmp 0x46beb1
xor ecx, ecx
mov edi, dword [ebp - 0xd8]
cmp byte [edi], 0x2e
jne 0x46bec5
xor eax, eax
test ecx, ecx
sete al
mov ecx, eax
test ecx, ecx
mov ecx, dword [ebp - 0xe0]
jne 0x46a7a9
jmp case.0x46a759.62
mov eax, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xe8]
mov edi, dword [ebp - 0xd8]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 8], 1
jne 0x46a7a9
jmp case.0x46a759.62
mov eax, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xe8]
mov edi, dword [ebp - 0xd8]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 8], 1
je 0x46a7a9
jmp case.0x46a759.62
mov edx, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xe8]
mov eax, dword [edx + 8]
mov dword [ebp - 0xf4], eax
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, dword [ebp - 0xdc]
mov ecx, dword [edx + 4]
mov dword [ebp - 0xf8], esi
mov eax, dword [eax + 0x38]
mov ebx, dword [eax + ecx*4]
mov dword [ebp - 0x118], ebx
cmp byte [ebx + 0x1a], 0
mov edi, dword [ebx + 0x50]
mov edx, dword [ebx]
mov dword [ebp - 0x104], edi
mov dword [ebp - 0x100], edx
je 0x46bf81
mov ecx, ebx
call fcn.004662c0
jmp 0x46bf92
test edx, edx
je 0x46bfaa
cmp byte [edx + 0x42], 1
je 0x46bfaa
mov ecx, ebx
call fcn.00466320
mov ecx, eax
mov dword [ebp - 0xe0], ecx
test ecx, ecx
jne 0x46b82c
mov edx, dword [ebp - 0x100]
jmp 0x46bfb4
mov dword [ebp - 0xe0], 0
mov ecx, dword [ebp - 0xdc]
mov eax, dword [ebx + 0x3c]
cmp eax, dword [ecx + 0x48]
je 0x46c11e
cmp byte [ebx + 0x19], 0
je 0x46bffe
test edx, edx
jne 0x46bff2
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebp - 0xe8]
lea eax, [eax + eax*4]
mov esi, dword [ecx + eax*8 + 0xc]
mov dword [ebx + 0x44], esi
mov dword [ebx + 0x40], esi
mov eax, dword [ecx + eax*8 + 0x10]
mov dword [ebx + 0x4c], eax
jmp 0x46c095
mov ecx, esi
call fcn.004625f0
jmp 0x46c3bd
test byte [ebx + 0x1c], 4
mov ecx, edx
jne 0x46c04a
call fcn.0045a6b0
mov edx, dword [ebp - 0x100]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x190], eax
mov eax, dword [edx + 0x14]
mov dword [ebp - 0x18c], eax
movsx eax, byte [edx + 0x44]
mov ecx, dword [edx + 0x18]
mov eax, dword [edx + eax*4 + 0x78]
mov esi, dword [eax + 0x3c]
movzx eax, word [edx + 0x20]
sub esi, ecx
cmp eax, esi
mov dword [ebx + 0x4c], ecx
cmovb esi, eax
mov eax, dword [ebp - 0x190]
mov dword [ebx + 0x40], eax
jmp 0x46c077
call fcn.0045a6b0
mov edx, dword [ebp - 0x100]
mov eax, dword [edx + 0x1c]
mov dword [ebx + 0x40], eax
movsx eax, byte [edx + 0x44]
mov ecx, dword [edx + 0x18]
mov eax, dword [edx + eax*4 + 0x78]
mov esi, dword [eax + 0x3c]
movzx eax, word [edx + 0x20]
sub esi, ecx
cmp eax, esi
mov dword [ebx + 0x4c], ecx
cmovb esi, eax
mov eax, dword [ebx + 0x40]
cmp eax, esi
ja 0x46c083
mov dword [ebx + 0x44], eax
jmp 0x46c086
mov dword [ebx + 0x44], esi
mov ecx, dword [ebp - 0xe4]
cmp eax, dword [ecx + 0x58]
ja 0x46ab6e
mov eax, dword [ebp - 0xdc]
mov ecx, dword [ebx + 0x4c]
mov eax, dword [eax + 0x48]
mov dword [ebx + 0x3c], eax
mov al, byte [ecx]
cmp al, 0x80
jae 0x46c0ba
movzx ecx, al
mov eax, 1
mov dword [ebp - 0x160], ecx
jmp 0x46c0ce
lea edx, [ebp - 0x160]
call fcn.00448860
mov ecx, dword [ebp - 0x160]
movzx eax, al
movzx eax, al
mov dword [ebx + 0x48], eax
xor eax, eax
mov word [ebx + 0x16], ax
mov dword [edi], ecx
cmp ecx, 0x18003
ja 0x46c0fb
cmp ecx, dword [ebx + 0x40]
ja 0x46c0fb
cmp esi, ecx
mov ecx, dword [ebp - 0xf4]
jae 0x46c130
mov dword [ebx + 0x4c], eax
mov dword [ebx + 0x44], eax
jmp 0x46c130
mov ecx, 0x12314
call fcn.004bb220
mov ecx, eax
mov dword [ebp - 0xe0], ecx
mov edi, dword [ebp - 0xd8]
mov esi, dword [ebp - 0xe4]
jmp case.0x46a759.62
movzx eax, word [ebx + 0x16]
mov ecx, dword [ebp - 0xf4]
cmp eax, ecx
jg 0x46c2d8
mov eax, dword [ebx + 0x48]
cmp eax, dword [edi]
jae 0x46c2a3
mov edx, dword [ebx + 0x4c]
mov dword [ebp - 0xfc], edx
test edx, edx
jne 0x46c1a2
mov ecx, dword [ebp - 0x100]
lea eax, [ebp - 0x248]
push eax
xorps xmm0, xmm0
movdqu xmmword [ebp - 0x248], xmm0
movdqu xmmword [ebp - 0x238], xmm0
movq qword [ebp - 0x228], xmm0
mov eax, dword [ebx + 0x1c]
shr eax, 2
not eax
and eax, 1
push eax
push dword [edi]
call fcn.00462be0
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0xe0], ecx
test ecx, ecx
jne 0x46c10d
mov edx, dword [ebp - 0x238]
mov dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x118]
mov ecx, dword [ebp - 0x104]
movzx ebx, word [ebx + 0x16]
mov esi, dword [eax + 0x48]
mov ecx, dword [ecx]
add esi, edx
mov edi, dword [edi + ebx*4]
add ecx, edx
lea edx, [eax + 0x54]
mov dword [ebp - 0x10c], ecx
lea edx, [edx + ebx*4]
mov dword [ebp - 0x124], edx
mov al, byte [esi]
cmp al, 0x80
jae 0x46c1e2
movzx ecx, al
inc esi
mov dword [ebp - 0x15c], ecx
jmp 0x46c200
lea edx, [ebp - 0x15c]
mov ecx, esi
call fcn.00448860
mov ecx, dword [ebp - 0x15c]
mov edx, dword [ebp - 0x124]
movzx eax, al
add esi, eax
mov dword [edx], ecx
call fcn.00466470
add edi, eax
mov dword [ebp - 0x160], edi
cmp edi, eax
jb 0x46c238
mov eax, dword [ebp - 0x104]
inc ebx
add edx, 4
mov dword [ebp - 0x124], edx
mov dword [eax + ebx*4], edi
cmp ebx, dword [ebp - 0xf4]
jg 0x46c23f
cmp esi, dword [ebp - 0x10c]
jb 0x46c1d0
jmp 0x46c23f
mov esi, dword [ebp - 0x10c]
inc esi
mov eax, dword [ebp - 0x118]
mov word [eax + 0x16], bx
mov eax, esi
mov ebx, dword [ebp - 0x118]
sub eax, dword [ebp - 0xfc]
cmp dword [ebx + 0x4c], 0
mov dword [ebx + 0x48], eax
jne 0x46c277
lea ecx, [ebp - 0x248]
call fcn.004621d0
mov eax, 1
mov word [ebp - 0x240], ax
mov eax, dword [ebp - 0x10c]
cmp esi, eax
jb 0x46c288
ja 0x46c28d
cmp edi, dword [ebx + 0x40]
jne 0x46c28d
cmp edi, dword [ebx + 0x40]
jbe 0x46c297
mov ecx, 0x12368
jmp 0x46c100
mov edi, dword [ebp - 0x104]
mov ecx, dword [ebp - 0xf4]
movzx eax, word [ebx + 0x16]
mov esi, dword [ebp - 0xf8]
cmp eax, ecx
jg 0x46c2d8
mov eax, dword [ebp - 0xd8]
mov ecx, esi
cmp byte [eax + 1], 0xf8
jne 0x46bff4
mov edx, dword [eax + 0x10]
push 0x800
call fcn.004627c0
add esp, 4
jmp 0x46c3bd
mov eax, 0x2460
test word [esi + 8], ax
je 0x46c2ea
mov ecx, esi
call fcn.004625f0
mov ecx, dword [ebp - 0xf4]
mov edx, dword [ebp - 0x118]
mov ebx, dword [ebx + ecx*4 + 0x54]
mov eax, dword [edx + 0x44]
mov dword [ebp - 0x15c], ebx
cmp eax, dword [edi + ecx*4 + 4]
jb 0x46c325
mov eax, dword [ebp - 0xf4]
mov ecx, dword [edx + 0x4c]
mov edx, ebx
push esi
add ecx, dword [edi + eax*4]
call fcn.004665b0
add esp, 4
jmp 0x46c3b4
mov eax, dword [ebp - 0xd8]
mov al, byte [eax + 3]
test al, 0xc0
je 0x46c340
cmp ebx, 0xc
jb 0x46c33c
test bl, 1
je 0x46c34d
test al, al
js 0x46c34d
mov ecx, ebx
call fcn.00466470
mov ecx, eax
test ecx, ecx
jne 0x46c368
xor eax, eax
lea ecx, [ebp - 0x190]
cmp ebx, 0xd
mov edx, ebx
push esi
cmova ecx, eax
call fcn.004665b0
add esp, 4
jmp 0x46c3b4
mov eax, dword [edx + 0x1c]
shr eax, 2
not eax
and eax, 1
push esi
push eax
mov eax, dword [ebp - 0xf4]
push ecx
mov ecx, dword [ebp - 0x100]
mov edx, dword [edi + eax*4]
call fcn.00462be0
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0xe0], ecx
test ecx, ecx
jne 0x46c10d
mov ecx, dword [esi + 0x10]
mov edx, ebx
push esi
call fcn.004665b0
mov eax, 0xefff
add esp, 4
and word [esi + 8], ax
mov al, byte [ebp - 0x110]
mov byte [esi + 0xa], al
movzx ecx, word [esi + 8]
test ecx, 0x1000
je 0x46adf2
mov ebx, dword [esi + 0x10]
test ebx, ebx
je 0x46adf2
mov eax, dword [ebp - 0xf8]
mov esi, ecx
and esi, 0x12
mov edi, dword [eax + 0xc]
lea edx, [edi + 2]
cmp dword [eax + 0x18], edx
jge 0x46c42b
push 0
mov ecx, eax
call fcn.00461cd0
add esp, 4
test eax, eax
je 0x46c43e
mov esi, dword [ebp - 0xe4]
mov ebx, dword [ebp - 0xdc]
push str.out_of_memory
push ebx
mov byte [esi + 0x41], 1
call fcn.00463200
add esp, 8
mov dword [ebp - 0xe0], 7
jmp 0x46ab91
mov edx, dword [ebp - 0xf8]
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 - 0xf8]
push dword [ebx + 0x10]
call fcn.005256b0
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 word [ebx + 8], si
jmp 0x46adf2
mov eax, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xe8]
mov esi, dword [eax + 0x10]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov al, byte [esi]
test al, al
je 0x46c10d
push dword [ebp - 0x110]
mov dl, al
lea esi, [esi + 1]
mov ecx, edi
call fcn.0046a450
mov al, byte [esi]
add esp, 4
add edi, 0x28
test al, al
jne 0x46c491
jmp 0x46adf2
mov edx, dword [ebp - 0xd8]
xor eax, eax
mov ecx, dword [ebp - 0xe8]
xorps xmm0, xmm0
mov dword [ebp - 0xf4], eax
movlpd qword [ebp - 0x158], xmm0
mov eax, dword [edx + 4]
mov esi, dword [edx + 0x10]
movlpd qword [ebp - 0x178], xmm0
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [edx + 8]
mov dword [ebp - 0x104], edi
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea ebx, [edi + eax*8]
mov eax, dword [ebp - 0xdc]
mov dword [ebp - 0x12c], ebx
movzx eax, byte [eax + 0x57]
mov dword [ebp - 0xec], eax
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov dword [ebp - 0xfc], edx
test esi, esi
je 0x46c543
mov al, byte [esi]
push dword [ebp - 0x110]
mov dl, al
mov ecx, edi
call fcn.0046a450
mov al, byte [esi + 1]
lea esi, [esi + 1]
add esp, 4
add edi, 0x28
test al, al
jne 0x46c524
mov eax, dword [ebp - 0x154]
mov esi, ebx
mov dword [ebp - 0x118], eax
mov eax, dword [ebp - 0x158]
mov dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0x174]
mov dword [ebp - 0x10c], eax
mov eax, dword [ebp - 0x178]
mov dword [ebp - 0x100], eax
jmp 0x46c580
mov edx, dword [ebp - 0xec]
mov ecx, esi
call fcn.00466370
mov edi, eax
mov ecx, edi
mov dword [esi + 0x1c], edi
call fcn.00466470
mov ebx, eax
mov eax, 0x4000
test word [esi + 8], ax
je 0x46c5d6
mov ecx, dword [ebp - 0xf8]
or ecx, dword [ebp - 0x118]
je 0x46c5c5
mov ecx, esi
call fcn.00461e70
test eax, eax
jne 0x46c3fe
jmp 0x46c5d6
mov eax, dword [esi]
cdq
add dword [ebp - 0x100], eax
adc dword [ebp - 0x10c], edx
sub ebx, dword [esi]
mov eax, ebx
cdq
add dword [ebp - 0xf8], eax
adc dword [ebp - 0x118], edx
cmp edi, 0x7f
ja 0x46c5f1
mov eax, 1
jmp 0x46c5fc
push 0
push edi
call fcn.004488e0
add esp, 8
mov ecx, dword [ebp - 0xf4]
sub esi, 0x28
mov ebx, dword [ebp - 0x104]
add ecx, eax
mov dword [ebp - 0xf4], ecx
cmp esi, ebx
jae 0x46c580
cmp ecx, 0x7e
jle 0x46c64f
mov eax, ecx
cdq
push edx
push eax
call fcn.004488e0
mov esi, eax
mov eax, dword [ebp - 0xf4]
add eax, esi
mov dword [ebp - 0xf4], eax
cdq
push edx
push eax
call fcn.004488e0
mov ecx, dword [ebp - 0xf4]
add esp, 0x10
cmp esi, eax
jge 0x46c656
inc ecx
mov dword [ebp - 0xf4], ecx
mov edi, dword [ebp - 0x118]
mov eax, ecx
cdq
mov esi, eax
mov eax, edx
mov edx, dword [ebp - 0xf8]
add edx, esi
mov dword [ebp - 0xec], eax
mov dword [ebp - 0x114], esi
mov esi, edx
adc edi, eax
mov dword [ebp - 0xf8], edx
mov eax, dword [ebp - 0xe4]
add esi, dword [ebp - 0x100]
adc edi, dword [ebp - 0x10c]
mov eax, dword [eax + 0x58]
cdq
cmp edi, edx
jg 0x46ab6e
jl 0x46c6a9
cmp esi, eax
ja 0x46ab6e
mov esi, dword [ebp - 0xfc]
mov eax, dword [ebp - 0xf8]
cmp dword [esi + 0x18], eax
jge 0x46c6d8
push 0
mov edx, eax
mov ecx, esi
call fcn.00461cd0
add esp, 4
test eax, eax
jne 0x46c3fe
mov ecx, dword [ebp - 0xf4]
jmp 0x46c6e3
mov eax, dword [esi + 0x14]
and word [esi + 8], 0xd
mov dword [esi + 0x10], eax
mov edi, dword [esi + 0x10]
cmp ecx, 0x80
jae 0x46c6f7
mov byte [edi], cl
mov eax, 1
jmp 0x46c70d
push dword [ebp - 0xec]
mov ecx, edi
push dword [ebp - 0x114]
call fcn.00448680
add esp, 8
mov ecx, dword [ebp - 0xf4]
movzx esi, al
jmp 0x46c720
mov ebx, dword [ebx + 0x1c]
cmp ebx, 0x80
jae 0x46c735
mov byte [esi + edi], bl
mov eax, 1
jmp 0x46c749
push 0
push ebx
lea ecx, [esi + edi]
call fcn.00448680
mov ecx, dword [ebp - 0xf4]
add esp, 8
push ebx
mov ebx, dword [ebp - 0x104]
add ecx, edi
movzx eax, al
mov edx, ebx
add esi, eax
call fcn.00466490
mov ecx, dword [ebp - 0xf4]
add ebx, 0x28
add ecx, eax
mov dword [ebp - 0x104], ebx
add esp, 4
mov dword [ebp - 0xf4], ecx
cmp ebx, dword [ebp - 0x12c]
jbe 0x46c720
mov edx, dword [ebp - 0xfc]
mov eax, dword [ebp - 0xf8]
mov ecx, dword [ebp - 0x100]
mov dword [edx + 0xc], eax
mov eax, 0x10
mov word [edx + 8], ax
mov eax, ecx
or eax, dword [ebp - 0x10c]
je 0x46c7b3
mov eax, 0x4010
mov dword [edx], ecx
mov word [edx + 8], ax
mov byte [edx + 0xa], 1
jmp 0x46adf2
mov eax, dword [ebp - 0xd8]
lea edx, [ebp - 0x178]
mov edi, dword [ebp - 0xdc]
xorps xmm0, xmm0
movlpd qword [ebp - 0x178], xmm0
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x38]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax]
call fcn.0045f970
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 8]
lea ecx, [eax + ecx*8]
mov eax, 0x2460
test word [ecx + 8], ax
je 0x46c82f
call fcn.0046a5d0
mov edi, dword [ebp - 0xd8]
mov ecx, eax
mov eax, dword [ebp - 0x178]
mov dword [ecx], eax
mov eax, dword [ebp - 0x174]
mov dword [ecx + 4], eax
jmp 0x46adfe
mov edi, dword [ebp - 0xd8]
mov eax, 4
mov word [ecx + 8], ax
mov eax, dword [ebp - 0x178]
mov dword [ecx], eax
mov eax, dword [ebp - 0x174]
mov dword [ecx + 4], eax
jmp 0x46adfe
mov eax, dword [ebp - 0xd8]
mov edi, dword [eax + 4]
mov esi, dword [eax + 0x10]
mov dword [ebp - 0x100], edi
test edi, edi
jne 0x46c958
mov edi, dword [ebp - 0xe4]
cmp dword [edi + 0x9c], 0
jg 0x46fdab
mov ecx, esi
call fcn.00447620
mov ecx, dword [edi + 0x1f4]
xor edx, edx
add ecx, dword [edi + 0x1f0]
mov ebx, eax
push ecx
mov ecx, edi
call fcn.004a99b0
mov ecx, eax
add esp, 4
mov dword [ebp - 0xe0], ecx
test ecx, ecx
jne 0x46fec7
push ecx
lea eax, [ebx + 0x21]
mov ecx, edi
push eax
call fcn.00444d60
mov edi, eax
add esp, 8
test edi, edi
je 0x46c93e
lea ecx, [ebx + 1]
push ecx
lea edx, [edi + 0x20]
push esi
push edx
mov dword [edi], edx
call fcn.005256b0
mov esi, dword [ebp - 0xe4]
add esp, 0xc
cmp byte [esi + 0x3f], 0
je 0x46c8f1
mov byte [esi + 0x3f], 0
mov byte [esi + 0x46], 1
jmp 0x46c8f7
inc dword [esi + 0x1f0]
mov eax, dword [esi + 0x1e8]
mov ecx, dword [ebp - 0xe0]
mov dword [edi + 0x18], eax
mov eax, dword [esi + 0x1f8]
mov dword [esi + 0x1e8], edi
mov dword [edi + 8], eax
mov eax, dword [esi + 0x1fc]
mov dword [edi + 0xc], eax
mov eax, dword [esi + 0x200]
mov dword [edi + 0x10], eax
mov eax, dword [esi + 0x204]
mov dword [edi + 0x14], eax
mov edi, dword [ebp - 0xd8]
add edi, 0x14
jmp 0x46a723
mov edi, dword [ebp - 0xd8]
mov esi, dword [ebp - 0xe4]
add edi, 0x14
mov ecx, dword [ebp - 0xe0]
jmp 0x46a723
mov eax, dword [ebp - 0xe4]
xor edi, edi
mov dword [ebp - 0xf8], edi
mov ebx, dword [eax + 0x1e8]
test ebx, ebx
je 0x46c98d
push esi
push dword [ebx]
call fcn.00447940
add esp, 8
test eax, eax
je 0x46c9bf
mov ebx, dword [ebx + 0x18]
inc edi
mov dword [ebp - 0xf8], edi
test ebx, ebx
jne 0x46c970
push esi
push str.no_such_savepoint:__s
push dword [ebp - 0xdc]
call fcn.00463200
mov ecx, dword [ebp - 0xd8]
add esp, 0xc
mov ebx, dword [ebp - 0xdc]
add ecx, 0x14
mov dword [ebp - 0xe0], 1
jmp 0x46ab97
mov esi, dword [ebp - 0xe4]
mov edx, dword [ebp - 0x100]
cmp dword [esi + 0x9c], 0
jle 0x46c9dd
cmp edx, 1
je 0x46fddc
cmp dword [ebx + 0x18], 0
jne 0x46ca39
cmp byte [esi + 0x46], 0
je 0x46ca39
mov dword [ebp - 0x104], 1
cmp edx, 1
jne 0x46ca43
mov ecx, dword [ebp - 0xdc]
call fcn.00465880
mov edi, eax
test edi, edi
jne 0x46fe5b
mov edi, dword [ebp - 0xdc]
mov ecx, edi
mov byte [esi + 0x3f], 1
call fcn.004658f0
cmp eax, 5
je 0x46fde3
mov byte [esi + 0x46], 0
mov eax, dword [edi + 0x50]
mov dword [ebp - 0xe0], eax
jmp 0x46cb50
mov dword [ebp - 0x104], 0
mov eax, dword [esi + 0x1f0]
sub eax, edi
dec eax
mov dword [ebp - 0xf8], eax
cmp edx, 2
jne 0x46cad4
mov ecx, dword [esi + 0x18]
xor edi, edi
shr ecx, 1
and ecx, 1
mov dword [ebp - 0xfc], ecx
cmp dword [esi + 0x14], edi
jle 0x46cade
xor eax, eax
test ecx, ecx
sete al
xor esi, esi
mov dword [ebp - 0xec], eax
jmp 0x46ca80
push eax
mov eax, dword [ebp - 0xe4]
mov edx, 0x204
mov ecx, dword [eax + 0x10]
mov ecx, dword [esi + ecx + 4]
call fcn.0045a080
mov ecx, eax
add esp, 4
mov dword [ebp - 0xe0], ecx
test ecx, ecx
jne 0x46b82c
mov eax, dword [ebp - 0xe4]
inc edi
add esi, 0x10
cmp edi, dword [eax + 0x14]
mov eax, dword [ebp - 0xec]
jl 0x46ca80
mov eax, dword [ebp - 0xf8]
mov esi, dword [ebp - 0xe4]
mov edx, dword [ebp - 0x100]
jmp 0x46cade
mov dword [ebp - 0xfc], 0
xor edi, edi
cmp dword [esi + 0x14], edi
jle 0x46cb37
xor esi, esi
jmp 0x46caf0
push eax
mov eax, dword [ebp - 0xe4]
mov ecx, dword [eax + 0x10]
mov ecx, dword [esi + ecx + 4]
call fcn.0045a370
mov ecx, eax
add esp, 4
mov dword [ebp - 0xe0], ecx
test ecx, ecx
jne 0x46b82c
mov eax, dword [ebp - 0xe4]
inc edi
mov edx, dword [ebp - 0x100]
add esi, 0x10
cmp edi, dword [eax + 0x14]
mov eax, dword [ebp - 0xf8]
jl 0x46caf0
mov esi, dword [ebp - 0xe4]
cmp dword [ebp - 0xfc], 0
je 0x46cb50
mov ecx, esi
call fcn.00467820
call fcn.004809e0
or dword [esi + 0x18], 2
cmp dword [esi + 0x1e8], ebx
je 0x46cbc0
jmp 0x46cb60
cmp dword [esi + 0x208], 0
mov ecx, dword [esi + 0x1e8]
mov eax, dword [ecx + 0x18]
mov dword [esi + 0x1e8], eax
je 0x46cb83
mov edx, ecx
mov ecx, esi
call fcn.00444aa0
jmp 0x46cbb2
cmp ecx, dword [esi + 0x114]
jb 0x46cba9
cmp ecx, dword [esi + 0x118]
jae 0x46cba9
mov eax, dword [esi + 0x110]
mov dword [ecx], eax
dec dword [esi + 0xfc]
mov dword [esi + 0x110], ecx
jmp 0x46cbb2
push ecx
call fcn.00444a30
add esp, 4
dec dword [esi + 0x1f0]
cmp dword [esi + 0x1e8], ebx
jne 0x46cb60
mov edi, dword [ebp - 0x100]
cmp edi, 1
jne 0x46cbf2
mov eax, dword [ebx + 0x18]
mov edx, ebx
mov ecx, esi
mov dword [esi + 0x1e8], eax
call fcn.00444ae0
cmp dword [ebp - 0x104], 0
jne 0x46a9df
dec dword [esi + 0x1f0]
jmp 0x46cc28
cmp dword [ebp - 0x104], 0
mov eax, dword [ebx + 8]
mov dword [esi + 0x1f8], eax
mov eax, dword [ebx + 0xc]
mov dword [esi + 0x1fc], eax
mov eax, dword [ebx + 0x10]
mov dword [esi + 0x200], eax
mov eax, dword [ebx + 0x14]
mov dword [esi + 0x204], eax
je 0x46cc28
cmp edi, 2
jne 0x46a9df
push dword [ebp - 0xf8]
mov edx, edi
mov ecx, esi
call fcn.004a99b0
mov ecx, eax
add esp, 4
mov dword [ebp - 0xe0], ecx
test ecx, ecx
jne 0x46b832
mov edi, dword [ebp - 0xd8]
jmp case.0x46a759.62
mov eax, dword [ebp - 0xd8]
mov edx, dword [eax + 8]
test edx, edx
je 0x46cc6f
test dword [esi + 0x18], 0x2000000
jne 0x46fe17
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x10]
add ecx, ecx
mov esi, dword [eax + ecx*8 + 4]
test esi, esi
je 0x46cd81
mov ecx, esi
call fcn.004592d0
mov ecx, eax
mov dword [ebp - 0xe0], ecx
cmp ecx, 5
je 0x46fe27
test ecx, ecx
jne 0x46b82c
mov eax, dword [ebp - 0xd8]
mov ebx, dword [ebp - 0xe4]
cmp dword [eax + 8], ecx
je 0x46cd4e
mov edi, dword [ebp - 0xdc]
test byte [edi + 0x58], 0x20
je 0x46cd4e
cmp byte [ebx + 0x3f], cl
je 0x46ccd6
cmp dword [ebx + 0x98], 1
jle 0x46cd4e
cmp dword [edi + 0x68], 0
jne 0x46ccf1
mov eax, dword [ebx + 0x1f0]
inc dword [ebx + 0x1f4]
add eax, dword [ebx + 0x1f4]
mov dword [edi + 0x68], eax
mov eax, dword [edi + 0x68]
xor edx, edx
dec eax
mov ecx, ebx
push eax
call fcn.004a99b0
mov ecx, eax
add esp, 4
mov dword [ebp - 0xe0], ecx
test ecx, ecx
jne 0x46cd1e
mov edx, dword [edi + 0x68]
mov ecx, esi
call fcn.0045a320
mov dword [ebp - 0xe0], eax
mov eax, dword [ebx + 0x1f8]
mov dword [edi + 0x98], eax
mov eax, dword [ebx + 0x1fc]
mov dword [edi + 0x9c], eax
mov eax, dword [ebx + 0x200]
mov dword [edi + 0xa0], eax
mov eax, dword [ebx + 0x204]
mov dword [edi + 0xa4], eax
lea eax, [ebp - 0x17c]
mov edx, 1
push eax
mov ecx, esi
call fcn.0045f890
mov eax, dword [ebp - 0xd8]
add esp, 4
mov esi, dword [ebp - 0x17c]
mov ecx, dword [eax + 4]
mov eax, dword [ebx + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax + 4]
jmp 0x46cd91
mov ebx, dword [ebp - 0xe4]
xor esi, esi
mov dword [ebp - 0x17c], esi
xor eax, eax
mov edi, dword [ebp - 0xd8]
cmp byte [edi + 3], 0
je 0x46adf8
cmp esi, dword [edi + 0xc]
jne 0x46cdaf
cmp eax, dword [edi + 0x10]
je 0x46adf8
mov edi, dword [ebp - 0xdc]
mov ecx, ebx
mov edx, dword [edi + 0x2c]
call fcn.00444ae0
mov edx, str.database_schema_has_changed
mov ecx, ebx
call fcn.00444f60
mov dword [edi + 0x2c], eax
mov eax, dword [ebp - 0xd8]
mov edx, dword [eax + 4]
mov ecx, edx
mov eax, dword [ebx + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
cmp dword [eax], esi
mov esi, dword [ebp - 0xe4]
je 0x46cdf3
mov ecx, esi
call fcn.004809a0
mov eax, edi
mov ecx, 0x11
mov edi, dword [ebp - 0xd8]
mov ebx, eax
mov dword [ebp - 0xe0], ecx
or dword [eax + 0x58], 8
jmp 0x46ae0a
mov edx, dword [ebp - 0xd8]
lea eax, [ebp - 0x1a0]
mov ecx, dword [esi + 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.0045f890
mov eax, dword [ebp - 0xd8]
add esp, 4
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0xdc]
mov eax, dword [eax + 8]
lea ecx, [eax + ecx*8]
mov eax, 0x2460
test word [ecx + 8], ax
je 0x46ce76
call fcn.0046a5d0
mov edi, dword [ebp - 0xd8]
mov ecx, eax
mov eax, dword [ebp - 0x1a0]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x46adfe
mov edi, dword [ebp - 0xd8]
mov eax, 4
mov word [ecx + 8], ax
mov eax, dword [ebp - 0x1a0]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x46adfe
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xe4]
mov esi, dword [eax + 4]
mov eax, dword [eax + 0xc]
shl esi, 4
add esi, dword [ecx + 0x10]
mov ecx, dword [ebp - 0xe8]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
mov ecx, ebx
call fcn.004623a0
mov eax, dword [ebp - 0xd8]
push dword [ebx]
mov ecx, dword [esi + 4]
mov edx, dword [eax + 8]
call fcn.0045f8f0
mov edi, dword [ebp - 0xd8]
add esp, 4
mov dword [ebp - 0xe0], eax
mov eax, dword [edi + 8]
cmp eax, 1
jne 0x46cefe
mov ecx, dword [esi + 0xc]
mov esi, dword [ebp - 0xe4]
mov eax, dword [ebx]
mov dword [ecx], eax
or dword [esi + 0x18], 2
jmp 0x46cf11
cmp eax, 2
jne 0x46cf0b
mov ecx, dword [esi + 0xc]
mov al, byte [ebx]
mov byte [ecx + 0x4c], al
mov esi, dword [ebp - 0xe4]
cmp dword [edi + 4], 1
jne 0x46adfe
mov ecx, esi
call fcn.00467820
mov eax, dword [ebp - 0xdc]
mov ebx, eax
mov ecx, dword [ebp - 0xe0]
and dword [eax + 0x58], 0xfffffff7
jmp 0x46ae0a
mov eax, dword [ebp - 0xd8]
mov ebx, dword [ebp - 0xd8]
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 0xdc]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x46cf64
mov eax, dword [esi + 0x20]
cmp eax, dword [ebx + 8]
je 0x46d09e
mov esi, dword [ebp - 0xe4]
mov eax, dword [ebp - 0xdc]
test byte [eax + 0x58], 8
jne 0x46fead
mov eax, dword [ebp - 0xd8]
xor edi, edi
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 - 0xec], ecx
mov esi, dword [eax + 4]
mov dword [ebp - 0x114], esi
cmp dl, 0x37
jne 0x46cfd2
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 0xdc]
mov dword [ebp - 0x124], 1
mov al, byte [eax + 0x4c]
cmp al, byte [edx + 0x57]
jae 0x46cfd8
mov byte [edx + 0x57], al
jmp 0x46cfd8
mov ebx, dword [ebp - 0xd8]
jmp 0x46cf6a
mov dword [ebp - 0x124], edi
mov edx, dword [ebp - 0xd8]
test byte [edx + 3], 4
je 0x46d00e
mov ecx, dword [ebp - 0xe8]
lea eax, [ebx + ebx*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.004623a0
mov ebx, dword [esi]
cmp ebx, 2
jl 0x46fe9c
mov edx, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xec]
mov al, byte [edx + 1]
cmp al, 0xfa
jne 0x46d02a
mov eax, dword [edx + 0x10]
mov dword [ebp - 0xfc], eax
movzx edi, word [eax + 8]
movzx eax, word [eax + 6]
add edi, eax
jmp 0x46d031
cmp al, 0xf2
jne 0x46d031
mov edi, dword [edx + 0x10]
mov edx, dword [edx + 4]
push 1
push ecx
mov ecx, dword [ebp - 0xdc]
push edi
call fcn.0046a2a0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x46c3fe
push dword [esi]
mov edi, dword [ebp - 0xfc]
mov edx, ebx
mov ecx, dword [ebp - 0x114]
or dword [esi + 0x1c], 8
push edi
push dword [ebp - 0x124]
mov byte [esi + 0x19], 1
mov dword [esi + 0x20], ebx
call fcn.0045a4c0
mov ecx, dword [ebp - 0xd8]
add esp, 0xc
mov dword [ebp - 0xe0], eax
xor eax, eax
mov dword [esi + 8], edi
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 + 0x43], cl
jmp 0x46adf2
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xdc]
push 1
push 0xffffffffffffffff
push dword [eax + 8]
mov edx, dword [eax + 4]
call fcn.0046a2a0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x46c3fe
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 - 0xe4]
push edi
push eax
mov ecx, dword [eax]
call fcn.00458320
add esp, 0x10
mov dword [ebp - 0xe0], eax
test eax, eax
jne 0x46d1a0
mov ecx, dword [edi]
lea edx, [eax + 1]
call fcn.004592d0
mov dword [ebp - 0xe0], eax
test eax, eax
jne 0x46d1a0
mov eax, dword [ebp - 0xd8]
mov ecx, dword [edi]
mov ebx, dword [eax + 0x10]
test ebx, ebx
je 0x46d183
movzx eax, byte [eax + 3]
lea edx, [ebp - 0x198]
or eax, 2
push eax
call fcn.0045f310
add esp, 4
mov dword [ebp - 0xe0], eax
test eax, eax
jne 0x46d17d
push dword [esi]
mov edx, dword [ebp - 0x198]
mov ecx, dword [edi]
push ebx
push 1
mov dword [esi + 8], ebx
call fcn.0045a4c0
add esp, 0xc
mov dword [ebp - 0xe0], eax
and dword [esi + 0x1c], 0xfffffffb
jmp 0x46d1a0
push dword [esi]
mov edx, 1
push 0
push 1
call fcn.0045a4c0
add esp, 0xc
mov dword [ebp - 0xe0], eax
or dword [esi + 0x1c], 4
mov edi, dword [ebp - 0xd8]
xor eax, eax
cmp byte [edi + 3], 8
setne al
shl eax, 3
xor eax, dword [esi + 0x1c]
and eax, 8
xor dword [esi + 0x1c], eax
jmp 0x46adf8
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xdc]
push 1
push 0xffffffffffffffff
push dword [eax + 8]
mov edx, dword [eax + 4]
call fcn.0046a2a0
mov edx, eax
add esp, 0xc
test edx, edx
je 0x46c404
mov eax, dword [ebp - 0xd8]
push edx
mov ecx, dword [eax + 0x10]
mov dword [edx + 8], ecx
mov ecx, esi
mov edx, dword [eax + 0xc]
call fcn.004719a0
mov edi, dword [ebp - 0xd8]
mov ecx, eax
add esp, 4
mov dword [ebp - 0xe0], ecx
jmp case.0x46a759.62
mov eax, dword [ebp - 0xd8]
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 0xdc]
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
mov ecx, dword [ebp - 0xe0]
adc eax, 0
or edi, esi
mov dword [edx + 0x2c], eax
mov edi, dword [ebp - 0xd8]
je 0x46a7a9
mov esi, dword [ebp - 0xe4]
jmp case.0x46a759.62
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xdc]
push 0
push 0xffffffffffffffff
push dword [eax + 0xc]
mov edx, dword [eax + 4]
call fcn.0046a2a0
mov ebx, dword [ebp - 0xdc]
add esp, 0xc
test eax, eax
je 0x46c40a
mov ecx, dword [ebp - 0xd8]
mov edi, dword [ebp - 0xd8]
mov byte [eax + 0x19], 1
mov ecx, dword [ecx + 8]
or dword [eax + 0x1c], 4
mov dword [eax + 0x10], ecx
mov ecx, dword [ebp - 0xe0]
jmp 0x46ae0a
mov edi, dword [ebp - 0xdc]
mov ecx, edi
mov eax, dword [ebp - 0xd8]
mov edx, dword [edi + 0x38]
mov eax, dword [eax + 4]
mov edx, dword [edx + eax*4]
call fcn.00464ac0
mov eax, dword [ebp - 0xd8]
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x38]
mov edi, dword [ebp - 0xd8]
mov dword [eax + ecx*4], 0
jmp 0x46adfe
mov edx, dword [ebp - 0xd8]
mov eax, dword [ebp - 0xdc]
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 0x46d3b1
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 0x46d32e
xor edx, edx
mov ecx, edi
call fcn.0046a3c0
mov ecx, edi
call fcn.004621f0
movzx ecx, word [edi + 8]
mov dword [ebp - 0xfc], eax
mov dword [ebp - 0x104], edx
test cl, 4
jne 0x46d378
test cl, 8
je 0x46a79d
mov ecx, eax
call fcn.0052654f
movsd xmm1, qword [edi]
comisd xmm0, xmm1
jbe 0x46d36c
test bl, 1
jne 0x46d378
dec ebx
jmp 0x46d378
comisd xmm1, xmm0
jbe 0x46d378
test bl, 1
je 0x46d378
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.0045af60
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0x104]
mov ecx, dword [ebp - 0xe0]
mov dword [esi + 0x30], edi
mov dword [esi + 0x34], eax
jmp 0x46d41b
mov eax, dword [esi + 8]
mov dword [ebp - 0x220], eax
mov ax, word [edx + 0x10]
mov word [ebp - 0x21c], ax
lea eax, [ebx - 1]
test al, 1
sete al
lea eax, [eax*2 - 1]
mov byte [ebp - 0x21a], al
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, 0x4000
mov dword [ebp - 0x218], ecx
test word [ecx + 8], ax
je 0x46d3f9
call fcn.00461e70
mov ecx, dword [esi]
lea eax, [ebp - 0x130]
push eax
push 0
push 0
push 0
lea edx, [ebp - 0x220]
call fcn.0045af60
mov ecx, eax
mov dword [ebp - 0xe0], ecx
add esp, 0x10
test ecx, ecx
jne 0x46b82c
mov byte [esi + 0x1a], cl
mov dword [esi + 0x3c], ecx
mov eax, dword [ebp - 0x130]
cmp ebx, 0x41
jl 0x46d477
test eax, eax
js 0x46d45d
jne 0x46d442
cmp ebx, 0x42
je 0x46d45d
mov edi, dword [ebp - 0xd8]
mov esi, dword [ebp - 0xe4]
mov dword [ebp - 0x130], 0
jmp case.0x46a759.62
lea eax, [ebp - 0x130]
mov dword [ebp - 0x130], 0
push eax
push dword [esi]
call fcn.0045b560
jmp 0x46d4b3
test eax, eax
jg 0x46d49b
jne 0x46d482
cmp ebx, 0x3f
je 0x46d49b
mov eax, dword [esi]
xor ecx, ecx
cmp byte [eax + 0x42], 1
setne cl
mov dword [ebp - 0x130], ecx
mov ecx, dword [ebp - 0xe0]
jmp 0x46d4c6
lea eax, [ebp - 0x130]
mov dword [ebp - 0x130], 0
push eax
push dword [esi]
call fcn.0045b6f0
mov ecx, eax
add esp, 8
mov dword [ebp - 0xe0], ecx
test ecx, ecx
jne 0x46b82c
cmp dword [ebp - 0x130], 0
mov edi, dword [ebp - 0xd8]
jne 0x46a7a9
mov esi, dword [ebp - 0xe4]
jmp case.0x46a759.62
mov edx, dword [ebp - 0xd8]
mov eax, dword [ebp - 0xdc]
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.004621f0
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], edx
mov byte [esi + 0x1a], 1
jmp 0x46adf2
mov edx, dword [ebp - 0xd8]
mov eax, dword [ebp - 0xdc]
mov dword [ebp - 0xfc], 0
cmp dword [edx + 0x10], 0
mov eax, dword [eax + 0x38]
mov ecx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
mov ecx, dword [ebp - 0xe8]
mov dword [ebp - 0xec], edi
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
jle 0x46d5b9
mov eax, dword [edi + 8]
xor edi, edi
mov dx, word [edx + 0x10]
mov dword [ebp - 0x1e4], eax
xor eax, eax
mov word [ebp - 0x1e0], dx
mov dword [ebp - 0x1dc], ebx
cmp ax, dx
jae 0x46d5ab
xor esi, esi
nop
lea ecx, [esi + ebx]
mov eax, 0x4000
test word [ecx + 8], ax
je 0x46d5a0
call fcn.00461e70
mov ebx, dword [ebp - 0x1dc]
mov dx, word [ebp - 0x1e0]
inc edi
movzx eax, dx
add esi, 0x28
cmp edi, eax
jl 0x46d580
mov edi, dword [ebp - 0xec]
lea esi, [ebp - 0x1e4]
jmp 0x46d604
mov ecx, dword [edi + 8]
lea eax, [ebp - 0xfc]
push eax
push 0xbf
lea edx, [ebp - 0xc8]
call fcn.00466760
mov esi, eax
add esp, 8
test esi, esi
je 0x46c3fe
mov eax, 0x4000
test word [ebx + 8], ax
je 0x46d5f2
mov ecx, ebx
call fcn.00461e70
mov edx, dword [ebx + 0xc]
mov ecx, dword [edi + 8]
push esi
push dword [ebx + 0x10]
call fcn.004667d0
add esp, 8
mov eax, dword [ebp - 0xd8]
xor ebx, ebx
mov byte [esi + 6], 0
cmp byte [eax], 0x44
jne 0x46d639
movzx edx, word [esi + 4]
xor ecx, ecx
test edx, edx
jle 0x46d639
mov eax, dword [esi + 8]
add eax, 8
test byte [eax], 1
jne 0x46d634
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x46d625
jmp 0x46d639
mov ebx, 1
mov ecx, dword [edi]
lea eax, [ebp - 0x19c]
push eax
push 0
push 0
push 0
mov edx, esi
call fcn.0045af60
mov esi, dword [ebp - 0xe4]
add esp, 0x10
mov edx, dword [ebp - 0xfc]
mov ecx, esi
mov dword [ebp - 0xe0], eax
call fcn.00444ae0
mov ecx, dword [ebp - 0xe0]
test ecx, ecx
jne 0x46cc4a
mov eax, dword [ebp - 0x19c]
test eax, eax
mov dword [edi + 0xc], eax
mov al, 1
sete cl
mov byte [edi + 0x1a], 0
sub al, cl
mov dword [edi + 0x3c], 0
mov byte [edi + 0x19], al
mov edi, dword [ebp - 0xd8]
cmp byte [edi], 0x46
jne 0x46d6ba
test ecx, ecx
mov ecx, dword [ebp - 0xe0]
jne 0x46a7a9
add edi, 0x14
jmp 0x46a723
test ebx, ebx
jne 0x46a7a3
test ecx, ecx
mov ecx, dword [ebp - 0xe0]
je 0x46a7a9
add edi, 0x14
jmp 0x46a723
mov edx, dword [ebp - 0xd8]
mov eax, dword [ebp - 0xdc]
mov dword [ebp - 0x124], 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 - 0x124]
mov ecx, dword [ebx]
push eax
push 0
push edi
push esi
call fcn.0045af60
mov dword [ebp - 0xe0], eax
add esp, 0x10
mov eax, dword [ebp - 0x124]
mov dword [ebx + 0x34], edi
mov edi, dword [ebp - 0xd8]
mov dword [ebx + 0x30], esi
mov word [ebx + 0x19], 0
mov dword [ebx + 0x3c], 0
mov dword [ebx + 0xc], eax
mov ecx, dword [ebp - 0xe0]
test eax, eax
jne 0x46a7a9
mov esi, dword [ebp - 0xe4]
jmp case.0x46a759.62
mov ebx, dword [ebp - 0xd8]
mov edi, dword [ebp - 0xdc]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 8]
lea edx, [eax + ecx*8]
mov eax, 0x2460
test word [edx + 8], ax
je 0x46d790
mov ecx, edx
call fcn.0046a5d0
mov edx, eax
jmp 0x46d799
mov eax, 4
mov word [edx + 8], ax
mov eax, dword [edi + 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 [edi + 0x38]
mov edi, dword [ebp - 0xd8]
mov eax, dword [eax + ecx*4]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
jmp 0x46adfe
mov eax, dword [ebp - 0xd8]
xorps xmm0, xmm0
movlpd qword [ebp - 0x120], xmm0
mov dword [ebp - 0x10c], 0
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0xdc]
mov eax, dword [eax + 8]
lea edx, [eax + ecx*8]
mov eax, 0x2460
mov dword [ebp - 0xfc], edx
test word [edx + 8], ax
je 0x46d81c
mov ecx, edx
call fcn.0046a5d0
mov dword [ebp - 0xfc], eax
jmp 0x46d825
mov eax, 4
mov word [edx + 8], ax
mov eax, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xdc]
mov ecx, dword [eax + 4]
mov eax, dword [edx + 0x38]
mov ebx, dword [eax + ecx*4]
mov dword [ebp - 0x100], ebx
test byte [ebx + 0x1c], 2
jne 0x46d8e4
mov ecx, dword [ebx]
lea edx, [ebp - 0x10c]
call fcn.0045af00
mov ecx, eax
mov dword [ebp - 0xe0], ecx
test ecx, ecx
jne 0x46b832
cmp dword [ebp - 0x10c], eax
je 0x46d88a
mov edx, dword [ebp - 0xdc]
mov edi, 1
xor esi, esi
mov dword [ebp - 0x120], edi
mov dword [ebp - 0x11c], esi
jmp 0x46d8f0
mov esi, dword [ebx]
mov ecx, esi
call fcn.0045a6b0
mov edi, dword [esi + 0x10]
mov esi, dword [esi + 0x14]
mov dword [ebp - 0x120], edi
mov dword [ebp - 0x11c], esi
mov dword [ebp - 0xe0], 0
cmp esi, 0x7fffffff
jl 0x46d8ca
jg 0x46d8be
cmp edi, 0xffffffff
jb 0x46d8ca
or dword [ebx + 0x1c], 2
mov edx, dword [ebp - 0xdc]
jmp 0x46d8f0
mov edx, dword [ebp - 0xdc]
add edi, 1
mov dword [ebp - 0x120], edi
adc esi, 0
mov dword [ebp - 0x11c], esi
jmp 0x46d8f0
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x120]
mov eax, dword [ebp - 0xd8]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x46d98a
mov edx, dword [edx + 0xb0]
test edx, edx
je 0x46d926
mov eax, dword [edx + 4]
test eax, eax
je 0x46d91b
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x46d912
mov eax, dword [edx + 0x10]
lea ecx, [ecx + ecx*4]
lea ebx, [eax + ecx*8]
jmp 0x46d932
lea eax, [ecx + ecx*4]
mov ecx, dword [ebp - 0xe8]
lea ebx, [ecx + eax*8]
mov ecx, ebx
call fcn.004623a0
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
cmp eax, 0xffffffff
jne 0x46d94f
cmp ecx, 0x7fffffff
je 0x46d9f9
mov edx, dword [ebp - 0x100]
test byte [edx + 0x1c], 2
jne 0x46d9f9
add eax, 1
adc ecx, 0
cmp esi, ecx
jg 0x46d97f
jl 0x46d96f
cmp edi, eax
jae 0x46d97f
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 - 0x100]
test byte [ebx + 0x1c], 2
je 0x46da09
xor ebx, ebx
lea eax, [ebp - 0x120]
push eax
push 8
call fcn.00446bc0
mov esi, dword [ebp - 0x11c]
lea eax, [ebp - 0x10c]
mov edi, dword [ebp - 0x120]
and esi, 0x3fffffff
push eax
mov eax, dword [ebp - 0x100]
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.0045af60
add esp, 0x18
mov dword [ebp - 0xe0], eax
test eax, eax
jne 0x46da03
cmp dword [ebp - 0x10c], eax
jne 0x46da03
inc ebx
cmp ebx, 0x64
jl 0x46d992
mov ecx, 0xd
jmp 0x46b826
mov ebx, dword [ebp - 0x100]
mov eax, dword [ebp - 0xfc]
mov byte [ebx + 0x1a], 0
mov dword [ebx + 0x3c], 0
mov dword [eax], edi
mov dword [eax + 4], esi
jmp 0x46adf2
mov ebx, dword [ebp - 0xd8]
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 4]
lea esi, [eax + eax*4]
mov eax, dword [ebp - 0xdc]
mov eax, dword [eax + 0x38]
mov edi, dword [eax + ecx*4]
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x124], edi
cmp dl, 0x54
jne 0x46da5f
mov ecx, dword [ebp - 0xe8]
lea eax, [eax + eax*4]
mov ebx, dword [ecx + eax*8]
mov edx, dword [ecx + eax*8 + 4]
jmp 0x46da62
cdq
mov ebx, eax
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0xfc], edx
test byte [eax + 3], 1
je 0x46da7d
mov ecx, dword [ebp - 0xdc]
inc dword [ecx + 0x5c]
test byte [eax + 3], 2
je 0x46da9b
mov ecx, dword [ebp - 0xe4]
mov dword [ebp - 0x138], ebx
mov dword [ebp - 0x134], edx
mov dword [ecx + 0x20], ebx
mov dword [ecx + 0x24], edx
mov ecx, dword [ebp - 0xe8]
movzx ecx, word [ecx + esi*8 + 8]
test cl, 1
je 0x46dac7
mov edi, dword [ebp - 0xe8]
mov dword [edi + esi*8 + 0x10], 0
mov dword [edi + esi*8 + 0xc], 0
mov edi, dword [ebp - 0x124]
mov al, byte [eax + 3]
mov byte [ebp - 0xed], al
test al, 0x10
je 0x46dad9
mov eax, dword [edi + 0xc]
jmp 0x46dadb
xor eax, eax
test ecx, 0x4000
je 0x46daee
mov ecx, dword [ebp - 0xe8]
mov ecx, dword [ecx + esi*8]
jmp 0x46daf0
xor ecx, ecx
push eax
movzx eax, byte [ebp - 0xed]
shr eax, 3
and eax, 1
push eax
mov eax, dword [ebp - 0xe8]
push ecx
mov ecx, dword [edi]
push dword [eax + esi*8 + 0xc]
push dword [eax + esi*8 + 0x10]
push edx
push ebx
xor edx, edx
call fcn.0045eba0
mov esi, dword [ebp - 0xe4]
mov ecx, eax
add esp, 0x1c
mov byte [edi + 0x1a], 0
mov dword [edi + 0x3c], 0
mov edi, dword [ebp - 0xd8]
mov dword [ebp - 0xe0], ecx
test ecx, ecx
jne case.0x46a759.62
mov edx, dword [esi + 0xd4]
test edx, edx
je case.0x46a759.62
mov eax, dword [edi + 0x10]
test eax, eax
je case.0x46a759.62
push dword [ebp - 0xfc]
push ebx
push eax
mov eax, dword [ebp - 0x124]
movsx ecx, byte [eax + 0x18]
mov eax, dword [esi + 0x10]
add ecx, ecx
push dword [eax + ecx*8]
mov eax, edi
mov ecx, 0x17
test byte [eax + 3], 4
mov eax, 0x12
cmovne eax, ecx
push eax
push dword [esi + 0xd0]
call edx
add esp, 0x18
jmp 0x46adfe
mov eax, dword [ebp - 0xd8]
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 0xdc]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esi]
call fcn.0045edb0
mov edi, dword [ebp - 0xd8]
mov ecx, eax
mov dword [ebp - 0xe0], ecx
mov dword [esi + 0x3c], 0
test ecx, ecx
jne 0x46dc1e
mov eax, dword [ebp - 0xe4]
mov edx, dword [eax + 0xd4]
test edx, edx
je 0x46dc1a
mov eax, dword [edi + 0x10]
test eax, eax
je 0x46dc1e
test byte [esi + 0x1c], 4
je 0x46dc1e
push dword [esi + 0x34]
movsx ecx, byte [esi + 0x18]
push dword [esi + 0x30]
mov esi, dword [ebp - 0xe4]
add ecx, ecx
push eax
mov eax, dword [esi + 0x10]
push dword [eax + ecx*8]
push 9
push dword [esi + 0xd0]
call edx
mov ecx, dword [ebp - 0xe0]
add esp, 0x18
jmp 0x46dc24
mov esi, eax
jmp 0x46dc24
mov esi, dword [ebp - 0xe4]
test byte [edi + 8], 1
je case.0x46a759.62
mov eax, dword [ebp - 0xdc]
mov ebx, eax
inc dword [eax + 0x5c]
jmp 0x46ae0a
mov eax, dword [ebp - 0xdc]
mov eax, dword [eax + 0x5c]
add dword [esi + 0x54], eax
mov dword [esi + 0x50], eax
mov eax, dword [ebp - 0xdc]
mov ebx, eax
mov dword [eax + 0x5c], 0
jmp 0x46ae0a
mov edx, dword [ebp - 0xd8]
mov eax, dword [ebp - 0xdc]
mov dword [ebp - 0x100], 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 - 0x100]
push eax
mov eax, dword [ebp - 0xd8]
push dword [eax + 0x10]
call fcn.00473d90
mov edi, dword [ebp - 0xd8]
add esp, 8
cmp dword [ebp - 0x100], 0
mov ecx, eax
mov dword [ebp - 0xe0], ecx
jne 0x46a7a9
jmp case.0x46a759.62
mov ebx, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xe8]
mov edi, dword [ebp - 0xdc]
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov ecx, dword [eax + ecx*4]
call fcn.00473cf0
mov dword [ebp - 0xe0], eax
mov eax, ebx
mov ecx, dword [eax + 0xc]
mov eax, dword [edi + 0x38]
mov edi, ebx
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x3c], 0
jmp 0x46adfe
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 - 0xdc]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xec], eax
test byte [eax + 0x1c], 4
mov ebx, dword [eax]
mov ecx, ebx
jne 0x46dd64
call fcn.0045a6b0
mov eax, dword [ebp - 0xe4]
mov edi, dword [ebx + 0x10]
mov eax, dword [eax + 0x58]
cdq
cmp dword [ebx + 0x14], edx
jg 0x46ab6e
jl 0x46dd7b
cmp edi, eax
jmp 0x46dd75
call fcn.0045a6b0
mov eax, dword [ebp - 0xe4]
mov edi, dword [ebx + 0x1c]
cmp edi, dword [eax + 0x58]
ja 0x46ab6e
mov edx, 0x20
cmp edi, edx
cmova edx, edi
cmp dword [esi + 0x18], edx
jge 0x46dda0
push 0
mov ecx, esi
call fcn.00461cd0
add esp, 4
test eax, eax
jne 0x46c3fe
jmp 0x46ddab
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 - 0xec]
test byte [eax + 0x1c], 4
jne 0x46ddfd
push 0
push dword [esi + 0x10]
xor edx, edx
mov ecx, ebx
push edi
call fcn.0045a890
mov edi, dword [ebp - 0xd8]
mov ecx, eax
mov byte [esi + 0xa], 1
add esp, 0xc
mov esi, dword [ebp - 0xe4]
mov dword [ebp - 0xe0], ecx
jmp case.0x46a759.62
push dword [esi + 0x10]
push edi
push 0
push ebx
call fcn.0045ab80
mov edi, dword [ebp - 0xd8]
mov ecx, eax
mov byte [esi + 0xa], 1
add esp, 0x10
mov esi, dword [ebp - 0xe4]
mov dword [ebp - 0xe0], ecx
jmp case.0x46a759.62
mov eax, dword [ebp - 0xd8]
mov esi, dword [ebp - 0xdc]
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 0x46de57
mov ecx, edi
call fcn.0046a5d0
mov edi, eax
jmp 0x46de60
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 0x46de83
mov eax, 1
mov word [edi + 8], ax
jmp 0x46adf2
cmp byte [esi + 0x1a], 0
je 0x46deab
mov ecx, dword [esi + 0x30]
mov dword [ebp - 0x170], ecx
mov eax, dword [esi + 0x34]
mov dword [ebp - 0x16c], eax
mov dword [edi], ecx
mov eax, dword [ebp - 0x16c]
mov dword [edi + 4], eax
jmp 0x46adf2
mov ecx, dword [esi + 0x24]
test ecx, ecx
je 0x46deef
mov esi, dword [ecx]
lea edx, [ebp - 0x170]
push edx
push ecx
mov eax, dword [esi]
mov eax, dword [eax + 0x30]
call eax
mov ecx, dword [ebp - 0xdc]
add esp, 8
mov edx, esi
mov dword [ebp - 0xe0], eax
call fcn.004678f0
mov ecx, dword [ebp - 0x170]
mov dword [edi], ecx
mov eax, dword [ebp - 0x16c]
mov dword [edi + 4], eax
jmp 0x46adf2
mov eax, dword [esi]
cmp byte [eax + 0x42], 1
je 0x46df10
mov ecx, esi
call fcn.00466320
mov ecx, eax
mov dword [ebp - 0xe0], ecx
test ecx, ecx
jne 0x46b82c
jmp 0x46df18
xor ecx, ecx
mov dword [ebp - 0xe0], ecx
cmp byte [esi + 0x19], 0
je 0x46df3b
mov esi, dword [ebp - 0xe4]
mov eax, 1
mov word [edi + 8], ax
mov edi, dword [ebp - 0xd8]
add edi, 0x14
jmp 0x46a723
mov esi, dword [esi]
mov ecx, esi
call fcn.0045a6b0
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0x170], ecx
mov eax, dword [esi + 0x14]
mov dword [ebp - 0x16c], eax
mov dword [edi], ecx
mov eax, dword [ebp - 0x16c]
mov dword [ebp - 0xe0], 0
mov dword [edi + 4], eax
jmp 0x46adf2
mov eax, dword [ebp - 0xd8]
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 0xdc]
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 0x46a9df
call fcn.00456bc0
mov edi, dword [ebp - 0xd8]
jmp 0x46adfe
mov eax, dword [ebp - 0xd8]
lea edx, [ebp - 0xf8]
mov dword [ebp - 0xf8], 0
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 0xdc]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esi]
call fcn.0045af00
mov edi, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xf8]
mov dword [ebp - 0xe0], 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
cmp dword [edi + 8], 0
jle 0x46adf8
test ecx, ecx
mov ecx, dword [ebp - 0xe0]
jne 0x46a7a9
mov esi, dword [ebp - 0xe4]
jmp case.0x46a759.62
mov eax, dword [ebp - 0xdc]
inc dword [eax + 0x74]
mov eax, dword [ebp - 0xd8]
mov ebx, 1
mov dword [ebp - 0xf4], ebx
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 0xdc]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
cmp dword [esi + 0x38], 0
je 0x46e06f
lea edx, [ebp - 0xf4]
mov ecx, esi
call fcn.00473c20
mov ebx, dword [ebp - 0xf4]
mov dword [ebp - 0xe0], eax
jmp 0x46e0a1
mov edi, dword [esi]
mov ecx, edi
call fcn.0045ac40
mov dword [ebp - 0xe0], eax
test eax, eax
jne 0x46e096
cmp byte [edi + 0x42], al
je 0x46e096
mov ecx, edi
xor ebx, ebx
call fcn.0045ad90
mov dword [ebp - 0xe0], eax
mov byte [esi + 0x1a], 0
mov dword [esi + 0x3c], 0
mov edi, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xe0]
mov byte [esi + 0x19], bl
test ebx, ebx
jne 0x46a7a9
mov esi, dword [ebp - 0xe4]
jmp case.0x46a759.62
mov ebx, dword [ebp - 0xd8]
mov edi, dword [ebp - 0xdc]
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov esi, dword [eax + ecx*4]
lea eax, [ebp - 0x14c]
mov ecx, dword [ebp - 0xe4]
mov edx, esi
push eax
mov dword [ebp - 0x14c], 0
call fcn.00473c80
add esp, 4
jmp 0x46e154
mov eax, dword [ebp - 0xd8]
mov edi, dword [ebp - 0xdc]
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x38]
cmp dword [eax + ecx*4], 0
je 0x46a9df
jmp 0x46e11f
mov edi, dword [ebp - 0xdc]
mov eax, dword [ebp - 0xd8]
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x38]
mov esi, dword [eax + ecx*4]
mov ecx, dword [ebp - 0xd8]
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x14c], eax
lea eax, [ebp - 0x14c]
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 - 0x14c], 0
mov dword [ebp - 0xe0], eax
jne 0x46e17b
mov byte [esi + 0x19], 0
movzx eax, byte [ebx + 3]
inc dword [edi + eax*4 + 0x6c]
jmp 0x46f998
mov byte [esi + 0x19], 1
mov edi, dword [ebp - 0xd8]
mov esi, dword [ebp - 0xe4]
cmp dword [esi + 0xf0], 0
jne 0x4700f7
mov ecx, dword [esi + 0x124]
test ecx, ecx
je 0x46adfe
mov eax, dword [ebp - 0x13c]
cmp eax, dword [ebp - 0x150]
jb 0x46adfe
mov ebx, dword [esi + 0x12c]
xor edx, edx
div ebx
push dword [esi + 0x128]
sub ebx, edx
mov edx, dword [ebp - 0x13c]
add ebx, edx
mov dword [ebp - 0x150], ebx
call ecx
mov ebx, dword [ebp - 0xdc]
add esp, 4
test eax, eax
jne 0x46ffb1
mov ecx, dword [ebp - 0xe0]
jmp 0x46ae0a
mov edx, dword [ebp - 0xd8]
mov eax, dword [ebp - 0xdc]
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]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
je 0x46e229
mov eax, dword [ebp - 0xdc]
inc dword [eax + 0x5c]
mov eax, 0x4000
test word [esi + 8], ax
je 0x46e251
mov ecx, esi
call fcn.00461e70
mov ecx, eax
mov dword [ebp - 0xe0], ecx
test ecx, ecx
jne 0x46c10d
mov edx, dword [ebp - 0xd8]
cmp byte [edx], 0x6e
jne 0x46e278
mov edx, esi
mov ecx, edi
call fcn.00472dc0
mov edi, dword [ebp - 0xd8]
mov ecx, eax
mov esi, dword [ebp - 0xe4]
mov dword [ebp - 0xe0], ecx
jmp case.0x46a759.62
test byte [edx + 3], 0x10
je 0x46e283
mov eax, dword [edi + 0xc]
jmp 0x46e285
xor eax, eax
mov ecx, dword [edi]
push eax
push dword [edx + 0xc]
mov eax, dword [esi + 0xc]
push 0
push 0
cdq
push 0x584694
push edx
mov edx, dword [esi + 0x10]
push eax
call fcn.0045eba0
mov esi, dword [ebp - 0xe4]
mov ecx, eax
mov dword [edi + 0x3c], 0
add esp, 0x1c
mov edi, dword [ebp - 0xd8]
mov dword [ebp - 0xe0], ecx
jmp case.0x46a759.62
mov edx, dword [ebp - 0xd8]
mov eax, dword [ebp - 0xdc]
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 - 0x20c], eax
mov ax, word [edx + 0xc]
mov word [ebp - 0x208], ax
mov eax, dword [edx + 8]
lea edx, [ebp - 0x20c]
mov byte [ebp - 0x206], 0
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, edi
mov dword [ebp - 0x204], eax
lea eax, [ebp - 0x1ac]
push eax
push 0
push 0
push 0
call fcn.0045af60
mov ecx, eax
add esp, 0x10
mov dword [ebp - 0xe0], ecx
test ecx, ecx
jne 0x46e34c
cmp dword [ebp - 0x1ac], eax
jne 0x46e34c
mov ecx, edi
call fcn.0045edb0
mov ecx, eax
mov dword [ebp - 0xe0], ecx
mov edi, dword [ebp - 0xd8]
mov dword [esi + 0x3c], 0
mov esi, dword [ebp - 0xe4]
jmp case.0x46a759.62
mov eax, dword [ebp - 0xd8]
mov ebx, dword [ebp - 0xdc]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 8]
lea esi, [eax + ecx*8]
mov eax, 0x2460
test word [esi + 8], ax
je 0x46e392
mov ecx, esi
call fcn.0046a5d0
mov esi, eax
jmp 0x46e39b
mov eax, 4
mov word [esi + 8], ax
mov eax, dword [ebp - 0xd8]
mov ecx, dword [eax + 4]
mov eax, dword [ebx + 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 + 0x42], 1
je 0x46e3d6
mov ecx, edi
call fcn.00466320
mov ecx, eax
mov dword [ebp - 0xe0], ecx
test ecx, ecx
jne 0x46b82c
jmp 0x46e3de
xor ecx, ecx
mov dword [ebp - 0xe0], ecx
cmp byte [edi + 0x19], 0
jne 0x46e430
mov ecx, dword [ebp - 0xe4]
lea eax, [ebp - 0x158]
xorps xmm0, xmm0
mov edx, ebx
push eax
movlpd qword [ebp - 0x158], xmm0
call fcn.004675e0
mov ecx, eax
add esp, 4
mov dword [ebp - 0xe0], ecx
test ecx, ecx
jne 0x46b82c
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 edi, dword [ebp - 0xd8]
mov esi, dword [ebp - 0xe4]
add edi, 0x14
jmp 0x46a723
mov eax, dword [ebp - 0xd8]
cmp byte [ebp - 0xed], 0x74
mov dword [ebp - 0x104], 0
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 0xdc]
mov eax, dword [eax + 0x38]
mov edx, dword [eax + ecx*4]
mov ecx, dword [ebp - 0xd8]
mov eax, dword [edx + 8]
mov dword [ebp - 0x1f8], eax
mov ax, word [ecx + 0x10]
mov word [ebp - 0x1f4], ax
sbb al, al
mov byte [ebp - 0x1f2], al
mov eax, dword [ecx + 0xc]
mov ecx, dword [ebp - 0xe8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, esi
mov dword [ebp - 0x1f0], eax
lea eax, [ebp - 0x104]
push eax
lea eax, [ebp - 0x1f8]
push eax
call fcn.00467720
mov dword [ebp - 0xe0], eax
add esp, 8
mov eax, dword [ebp - 0xd8]
test byte [eax], 1
mov eax, dword [ebp - 0x104]
jne 0x46e4d4
neg eax
jmp 0x46e4d5
inc eax
mov edi, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xe0]
test eax, eax
jg 0x46a7a9
jmp case.0x46a759.62
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0xdc]
mov eax, dword [eax + 8]
lea esi, [eax + ecx*8]
mov eax, 0x2460
test word [esi + 8], ax
je 0x46e521
mov ecx, esi
call fcn.0046a5d0
mov esi, eax
mov edi, 4
jmp 0x46e52a
mov edi, 4
mov word [esi + 8], di
mov ecx, dword [ebp - 0xe4]
mov eax, 1
mov word [esi + 8], ax
mov eax, dword [ecx + 0xa4]
inc eax
cmp dword [ecx + 0x98], eax
jg 0x46ff0c
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ecx + 0x10]
mov edx, dword [ebp - 0xd8]
mov dword [ebp - 0x12c], 0
mov ebx, dword [eax + 0xc]
lea eax, [ebp - 0x12c]
push eax
mov edx, dword [edx + 4]
mov eax, ebx
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.0045f840
mov ecx, dword [ebp - 0x12c]
add esp, 4
mov dword [ebp - 0xe0], eax
mov eax, ecx
cdq
mov dword [esi], eax
mov eax, dword [ebp - 0xe0]
mov word [esi + 8], di
mov dword [esi + 4], edx
test eax, eax
jne 0x46adf2
mov esi, dword [ebp - 0xe4]
test ecx, ecx
je 0x46a9df
mov eax, dword [ebp - 0xd8]
mov edx, ebx
push dword [eax + 4]
push ecx
mov ecx, esi
call fcn.00483200
mov edi, dword [ebp - 0xd8]
add esp, 8
inc bl
mov byte [ebp - 0x125], bl
jmp 0x46adfe
mov edx, dword [ebp - 0xd8]
lea eax, [ebp - 0x114]
xor ecx, ecx
mov dword [ebp - 0x114], 0
cmp dword [edx + 0xc], ecx
cmove eax, ecx
mov ecx, dword [esi + 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.0045f550
mov edi, dword [ebp - 0xd8]
add esp, 4
mov ecx, eax
mov dword [ebp - 0xe0], ecx
cmp dword [edi + 0xc], 0
je case.0x46a759.62
mov ecx, dword [ebp - 0xdc]
mov eax, dword [ebp - 0x114]
add dword [ecx + 0x5c], eax
mov ecx, dword [edi + 0xc]
test ecx, ecx
jle 0x46adfe
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 0x46adfe
mov eax, dword [ebp - 0xd8]
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 0xdc]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov edx, dword [ecx + 0x38]
test edx, edx
je 0x46e68b
mov ecx, esi
call fcn.00471fe0
mov edi, dword [ebp - 0xd8]
jmp 0x46adfe
mov ecx, dword [ecx]
push 0
mov edx, dword [ecx + 0x34]
mov ecx, dword [ecx]
call fcn.0045f550
mov edi, dword [ebp - 0xd8]
mov ecx, eax
add esp, 4
mov dword [ebp - 0xe0], ecx
jmp case.0x46a759.62
mov edx, dword [ebp - 0xd8]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0xdc]
mov eax, dword [eax + 8]
lea esi, [eax + ecx*8]
mov eax, 0x2460
test word [esi + 8], ax
je 0x46e6e3
mov ecx, esi
call fcn.0046a5d0
mov edx, dword [ebp - 0xd8]
mov esi, eax
jmp 0x46e6ec
mov eax, 4
mov word [esi + 8], ax
mov ecx, dword [edx + 4]
mov eax, dword [ebp - 0xe4]
shl ecx, 4
mov dword [ebp - 0xec], 0
add ecx, dword [eax + 0x10]
xor eax, eax
cmp byte [edx], 0x7a
lea edx, [ebp - 0xec]
setne al
mov ecx, dword [ecx + 4]
inc eax
push eax
call fcn.0045f310
mov dword [ebp - 0xe0], eax
add esp, 4
mov eax, dword [ebp - 0xec]
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x46adf2
mov eax, dword [ebp - 0xd8]
mov ecx, str.sqlite_temp_master
mov dword [ebp - 0x1c8], esi
mov edx, dword [eax + 4]
cmp edx, 1
mov eax, str.sqlite_master
mov dword [ebp - 0x1c0], edx
cmovne ecx, eax
mov eax, dword [ebp - 0xdc]
add eax, 0x2c
shl edx, 4
mov dword [ebp - 0x1c4], eax
mov eax, dword [ebp - 0xd8]
push dword [eax + 0x10]
mov eax, dword [esi + 0x10]
push ecx
push dword [edx + eax]
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
push esi
call fcn.004468e0
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x46e7a4
mov esi, dword [ebp - 0xe4]
mov dword [ebp - 0xe0], 7
jmp 0x46e802
mov eax, dword [ebp - 0xe4]
lea ecx, [ebp - 0x1c8]
push 0
push ecx
push fcn.00496d30
push esi
push eax
mov byte [eax + 0x91], 1
mov dword [ebp - 0x1bc], 0
call fcn.00492bc0
add esp, 0x14
mov edx, esi
mov esi, dword [ebp - 0xe4]
test eax, eax
mov ecx, esi
cmove eax, dword [ebp - 0x1bc]
mov dword [ebp - 0xe0], eax
call fcn.00444ae0
mov ecx, dword [ebp - 0xe0]
mov byte [esi + 0x91], 0
test ecx, ecx
je 0x46e80f
mov ecx, esi
call fcn.004809e0
mov ecx, dword [ebp - 0xe0]
mov ebx, dword [ebp - 0xdc]
cmp ecx, 7
je 0x46c40a
mov edi, dword [ebp - 0xd8]
jmp 0x46ae0a
mov eax, dword [ebp - 0xd8]
mov ecx, esi
mov edx, dword [eax + 4]
call fcn.0047ed40
mov edi, dword [ebp - 0xd8]
mov ecx, eax
mov dword [ebp - 0xe0], ecx
jmp case.0x46a759.62
mov eax, dword [ebp - 0xd8]
mov ecx, esi
push dword [eax + 0x10]
mov edx, dword [eax + 4]
call fcn.00480e10
mov edi, dword [ebp - 0xd8]
add esp, 4
jmp 0x46adfe
mov eax, dword [ebp - 0xd8]
mov ecx, esi
push dword [eax + 0x10]
mov edx, dword [eax + 4]
call fcn.00480780
mov edi, dword [ebp - 0xd8]
add esp, 4
jmp 0x46adfe
mov eax, dword [ebp - 0xd8]
mov ecx, esi
push dword [eax + 0x10]
mov edx, dword [eax + 4]
call fcn.004a4b20
mov edi, dword [ebp - 0xd8]
add esp, 4
jmp 0x46adfe
mov eax, dword [ebp - 0xd8]
mov ecx, esi
push 0
mov ebx, dword [eax + 8]
lea eax, [ebx*4 + 4]
push eax
call fcn.00444d60
mov edi, eax
add esp, 8
mov dword [ebp - 0xec], edi
test edi, edi
je 0x46c404
mov eax, dword [ebp - 0xd8]
xor esi, esi
mov edx, dword [ebp - 0xe8]
mov ecx, dword [eax + 0xc]
lea ecx, [ecx + ecx*4]
mov dword [ebp - 0x114], ecx
mov ecx, dword [eax + 4]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
mov dword [ebp - 0x12c], ecx
test ebx, ebx
jle 0x46e936
mov edi, ecx
jmp 0x46e910
mov ecx, edi
call fcn.004621f0
mov ecx, dword [ebp - 0xec]
add edi, 0x28
mov dword [ecx + esi*4], eax
inc esi
cmp esi, ebx
jl 0x46e910
mov eax, dword [ebp - 0xd8]
mov edi, ecx
mov edx, dword [ebp - 0xe8]
mov dword [edi + esi*4], 0
lea ecx, [ebp - 0x1a8]
mov esi, dword [ebp - 0xe4]
movzx eax, byte [eax + 3]
push ecx
mov ecx, dword [ebp - 0x114]
add eax, eax
push dword [edx + ecx*8]
mov ecx, dword [esi + 0x10]
mov edx, edi
push ebx
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00460500
add esp, 0xc
mov edx, edi
mov ecx, esi
mov ebx, eax
call fcn.00444ae0
mov ecx, dword [ebp - 0x114]
mov edi, dword [ebp - 0xe8]
mov esi, dword [ebp - 0x1a8]
mov eax, esi
cdq
sub dword [edi + ecx*8], eax
sbb dword [edi + ecx*8 + 4], edx
mov edi, dword [ebp - 0x12c]
mov ecx, edi
call fcn.004625f0
test esi, esi
je 0x46e9c0
test ebx, ebx
je 0x46c3fe
push fcn.00444a30
push 1
push 0xffffffffffffffff
mov edx, ebx
mov ecx, edi
call fcn.004628e0
add esp, 0xc
movzx edx, byte [ebp - 0x110]
mov ecx, edi
call fcn.00461cb0
jmp 0x46adf2
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 0x46ea06
mov ecx, esi
call fcn.00462690
test byte [esi + 8], 0x20
je 0x46c3fe
push dword [ebx + edi*8 + 4]
mov ecx, dword [esi]
push dword [ebx + edi*8]
call fcn.0044e440
add esp, 8
jmp 0x46adf2
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 0x46ea71
mov ecx, dword [esi]
lea edx, [ebp - 0x1d0]
call fcn.0044e810
test eax, eax
je 0x46ea71
mov eax, dword [ebp - 0xd8]
push dword [ebp - 0x1cc]
push dword [ebp - 0x1d0]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
call fcn.00462650
add esp, 8
jmp 0x46e17f
mov ecx, esi
call fcn.004625f0
jmp 0x46f998
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 0x46eab9
mov ecx, esi
call fcn.00462690
test byte [esi + 8], 0x20
je 0x46c3fe
mov ecx, dword [ebp - 0xe8]
test ebx, ebx
je 0x46eada
push dword [ecx + edi*8 + 4]
mov edx, ebx
push dword [ecx + edi*8]
mov ecx, dword [esi]
call fcn.0044e870
add esp, 8
test eax, eax
jne 0x46a79d
test ebx, ebx
js 0x46adf2
mov eax, dword [ebp - 0xe8]
mov ecx, dword [esi]
push dword [eax + edi*8 + 4]
push dword [eax + edi*8]
call fcn.0044e440
add esp, 8
jmp 0x46adf2
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xe8]
mov edx, dword [eax + 0x10]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0xec], edx
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
mov eax, dword [ebp - 0xd8]
cmp byte [eax + 3], 0
je 0x46eb50
mov eax, dword [ebp - 0xdc]
mov ecx, dword [edx + 0x14]
mov eax, dword [eax + 0xb0]
test eax, eax
je 0x46eb50
lea esp, [esp]
cmp dword [eax + 0x1c], ecx
je 0x46a9df
mov eax, dword [eax + 4]
test eax, eax
jne 0x46eb40
mov ecx, dword [ebp - 0xdc]
mov eax, dword [ecx + 0xb8]
cmp eax, dword [esi + 0x80]
jge 0x46ff30
test byte [ebx + 8], 0x40
jne 0x46ec66
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, dword [ebp - 0xe4]
cdq
push edx
push eax
call fcn.00444d30
mov edi, eax
add esp, 8
test edi, edi
je 0x46c3fe
mov ecx, ebx
call fcn.004621d0
mov ecx, dword [ebp - 0xd8]
mov eax, 0x40
mov word [ebx + 8], ax
mov eax, dword [ebp - 0xec]
sub ecx, dword [ebp - 0x108]
mov dword [ebx], edi
mov ebx, dword [ebp - 0xdc]
mov dword [edi + 0x3c], esi
mov dword [edi], ebx
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 - 0xec]
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]
mov esi, dword [ebp - 0xe4]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
lea eax, [edi + 0x50]
cmp eax, ecx
je 0x46ec6a
mov ebx, 0x80
lea ebx, [ebx]
mov word [eax + 8], bx
mov dword [eax + 0x20], esi
add eax, 0x28
cmp eax, ecx
jne 0x46ec50
mov ecx, dword [ebp - 0xdc]
jmp 0x46ec6c
mov edi, dword [ebx]
jmp 0x46ec6c
mov ecx, ebx
inc dword [ecx + 0xb8]
lea ebx, [edi + 0x28]
mov eax, dword [ecx + 0xb0]
mov dword [edi + 4], eax
mov eax, dword [ebp - 0x138]
mov dword [edi + 0x20], eax
mov eax, dword [ebp - 0x134]
mov dword [edi + 0x24], eax
mov eax, dword [ecx + 0x5c]
mov dword [edi + 0x44], eax
mov eax, dword [ecx]
mov dword [ebp - 0xe8], ebx
mov eax, dword [eax + 0x50]
mov dword [edi + 0x48], eax
mov dword [ecx + 0xb0], edi
mov dword [ecx + 0x5c], 0
mov dword [ecx + 8], ebx
mov eax, dword [edi + 0x3c]
mov dword [ecx + 0x1c], eax
movzx eax, word [edi + 0x40]
mov edi, dword [ebp - 0xdc]
mov dword [ecx + 0x24], eax
mov eax, dword [ecx + 0x1c]
inc eax
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
mov dword [edi + 0x38], ecx
mov ebx, dword [edx]
mov dword [edi + 4], ebx
mov eax, dword [edx + 4]
mov dword [edi + 0x20], eax
mov eax, dword [edi + 0x24]
mov dword [ebp - 0x108], ebx
lea ecx, [ecx + eax*4]
mov dword [edi + 0xc8], ecx
mov eax, dword [edx + 0x10]
lea edx, [ebx - 0x14]
push eax
push 0
push ecx
mov dword [edi + 0xc4], eax
mov dword [ebp - 0xd8], edx
call fcn.00525d00
mov edi, dword [ebp - 0xd8]
add esp, 0xc
jmp 0x46adfe
mov eax, dword [ebp - 0xd8]
mov edi, dword [ebp - 0xdc]
mov eax, dword [eax + 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 0x46ed48
mov ecx, esi
call fcn.0046a5d0
mov esi, eax
jmp 0x46ed51
mov eax, 4
mov word [esi + 8], ax
mov edx, dword [edi + 0xb0]
push 0x1000
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.004627c0
add esp, 4
jmp 0x46adf2
test dword [esi + 0x18], 0x1000000
mov eax, dword [ebp - 0xd8]
mov edi, eax
je 0x46edb0
mov eax, dword [eax + 8]
cdq
add dword [esi + 0x200], eax
adc dword [esi + 0x204], edx
jmp case.0x46a759.62
cmp dword [eax + 4], 0
mov eax, dword [eax + 8]
mov ebx, dword [ebp - 0xdc]
cdq
je 0x46edd1
add dword [esi + 0x1f8], eax
adc dword [esi + 0x1fc], edx
jmp 0x46ae0a
add dword [ebx + 0x90], eax
mov eax, ebx
adc dword [eax + 0x94], edx
jmp 0x46ae0a
mov eax, dword [ebp - 0xd8]
cmp dword [eax + 4], 0
je 0x46ee1f
mov eax, dword [esi + 0x1f8]
or eax, dword [esi + 0x1fc]
mov edi, dword [ebp - 0xd8]
jne case.0x46a759.62
mov eax, dword [esi + 0x200]
or eax, dword [esi + 0x204]
je 0x46a7a9
jmp case.0x46a759.62
mov edi, dword [ebp - 0xdc]
mov eax, dword [edi + 0x90]
or eax, dword [edi + 0x94]
jmp 0x46edfc
mov eax, dword [ebp - 0xdc]
mov edx, dword [eax + 0xb0]
test edx, edx
je 0x46ee6d
mov eax, dword [edx + 4]
test eax, eax
je 0x46ee59
lea ebx, [ebx]
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x46ee50
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x10]
lea edi, [eax + ecx*8]
jmp 0x46ee82
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xe8]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov ecx, edi
call fcn.004623a0
mov ecx, dword [ebp - 0xd8]
mov eax, dword [ecx + 8]
mov ecx, dword [ebp - 0xe8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.004623a0
mov ecx, dword [esi + 4]
mov eax, dword [esi]
cmp dword [edi + 4], ecx
jg 0x46adf2
jl 0x46eebd
cmp dword [edi], eax
jae 0x46adf2
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x46adf2
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 0x46fcd5
jl 0x46cc4a
cmp dword [ebx + eax*8], 0
ja 0x46fcd5
mov edi, dword [ebp - 0xd8]
jmp case.0x46a759.62
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 0x46a79d
jg 0x46a9df
cmp dword [ebx + ecx*8], 0
jb 0x46a79d
mov edi, dword [ebp - 0xd8]
jmp 0x46adfe
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 0x46adf2
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 0x46a79d
mov eax, dword [ebp - 0xd8]
mov ebx, dword [ebp - 0xe8]
mov edi, dword [ebp - 0xd8]
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]
mov ecx, dword [ebp - 0xe0]
je 0x46a7a9
jmp case.0x46a759.62
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
mov ecx, dword [ebp - 0xe0]
adc eax, 0
or edi, edx
mov dword [ebx + esi*8 + 4], eax
mov edi, dword [ebp - 0xd8]
je 0x46a7a9
mov esi, dword [ebp - 0xe4]
jmp case.0x46a759.62
mov eax, dword [ebp - 0xd8]
mov ecx, esi
push 0
movzx ebx, byte [eax + 3]
lea eax, [ebx*4 + 0x1c]
push eax
call fcn.00444d60
mov esi, eax
add esp, 8
test esi, esi
je 0x46c3fe
mov eax, dword [ebp - 0xd8]
mov dword [esi + 8], 0
mov ecx, dword [eax + 0x10]
mov dword [esi + 4], ecx
mov ecx, eax
sub ecx, dword [ebp - 0x108]
mov eax, 0x66666667
imul ecx
mov byte [esi + 0x1a], bl
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x10], eax
mov eax, dword [ebp - 0xdc]
mov dword [esi + 0xc], eax
mov eax, dword [ebp - 0xd8]
mov word [eax], 0xec90
mov dword [eax + 0x10], esi
jmp 0x46f07a
mov eax, dword [ebp - 0xd8]
mov esi, dword [eax + 0x10]
mov eax, dword [eax + 0xc]
mov ebx, dword [ebp - 0xe8]
mov dword [ebp - 0xec], esi
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
cmp dword [esi + 8], edi
je 0x46f0c9
movzx ecx, byte [esi + 0x1a]
dec ecx
mov dword [esi + 8], edi
js 0x46f0c9
lea edx, [esi + 0x1c]
mov esi, dword [ebp - 0xd8]
lea edx, [edx + ecx*4]
lea ecx, [ecx]
mov eax, dword [esi + 8]
add eax, ecx
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [edx], eax
sub edx, 4
dec ecx
jns 0x46f0b0
mov esi, dword [ebp - 0xec]
inc dword [edi + 0xc]
mov eax, 1
mov word [ebp - 0x2b0], ax
mov eax, dword [ebp - 0xe4]
mov dword [ebp - 0x298], eax
lea eax, [ebp - 0x2b8]
mov dword [ebp - 0x2a0], 0
mov ecx, dword [esi + 4]
mov dword [esi], eax
lea eax, [esi + 0x1c]
push eax
movzx eax, byte [esi + 0x1a]
push eax
mov word [esi + 0x18], 0
mov eax, dword [ecx + 0x10]
push esi
call eax
add esp, 0xc
cmp byte [esi + 0x19], 0
je 0x46f154
cmp dword [esi + 0x14], 0
je 0x46f149
lea eax, [ebp - 0x2b8]
push eax
call fcn.00467e50
add esp, 4
push eax
push 0x592278
push dword [ebp - 0xdc]
call fcn.00463200
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [ebp - 0xe0], eax
lea ecx, [ebp - 0x2b8]
call fcn.004621d0
cmp byte [esi + 0x18], 0
mov edi, dword [ebp - 0xd8]
je 0x46adf8
mov eax, dword [edi - 0x10]
test eax, eax
je 0x46adf8
lea eax, [eax + eax*4]
push 0
push 1
lea ecx, [ebx + eax*8]
call fcn.00462650
add esp, 8
jmp 0x46adf8
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.00462010
mov dword [ebp - 0xe0], eax
test eax, eax
je 0x46f1cc
push esi
call fcn.00467e50
add esp, 4
push eax
push 0x592278
push dword [ebp - 0xdc]
call fcn.00463200
add esp, 0xc
movzx edx, byte [ebp - 0x110]
mov ecx, esi
call fcn.00461cb0
mov ecx, esi
call fcn.00462760
test eax, eax
jne 0x46ab6e
jmp 0x46adf2
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, esi
mov dword [ebp - 0xd0], 0xffffffff
push dword [eax + 8]
mov edx, dword [eax + 4]
call fcn.004b9cf0
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0xe0], ecx
cmp ecx, 5
jne 0x46f251
mov dword [ebp - 0xe0], 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]
jmp 0x46f270
mov eax, dword [ebp + esi*4 - 0xd4]
mov ecx, edi
cdq
push edx
push eax
call fcn.00462650
inc esi
add esp, 8
add edi, 0x28
cmp esi, 3
jl 0x46f270
jmp 0x46adf2
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0xdc]
mov eax, dword [eax + 8]
lea edx, [eax + ecx*8]
mov eax, 0x2460
mov dword [ebp - 0xec], edx
test word [edx + 8], ax
je 0x46f2ca
mov ecx, edx
call fcn.0046a5d0
mov dword [ebp - 0xec], eax
jmp 0x46f2d3
mov eax, 4
mov word [edx + 8], ax
mov eax, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xe4]
mov esi, dword [eax + 0xc]
mov ecx, dword [eax + 4]
mov eax, dword [edx + 0x10]
add ecx, ecx
cmp esi, 0xffffffff
mov eax, dword [eax + ecx*8 + 4]
mov dword [ebp - 0x114], eax
mov eax, dword [eax + 4]
mov edi, dword [eax]
movzx ebx, byte [edi + 5]
cmove esi, ebx
cmp byte [edi + 0x10], 3
jae 0x46f31f
mov eax, dword [edi + 0x40]
cmp dword [eax], 0
je 0x46f321
cmp dword [edi + 0x4c], 0
jl 0x46f321
jg 0x46f31f
cmp dword [edi + 0x48], 0
jbe 0x46f321
mov esi, ebx
cmp byte [edi + 0xf], 0
mov ecx, 0x584694
jne 0x46f332
mov ecx, dword [edi + 0xa8]
cmp esi, 5
jne 0x46f387
call fcn.00447620
test eax, eax
je 0x46f34b
mov ecx, edi
call fcn.00453960
test eax, eax
jne 0x46f381
mov esi, ebx
mov eax, dword [ebp - 0xe0]
test eax, eax
je 0x46f359
mov esi, ebx
mov edx, esi
mov ecx, edi
call fcn.004537c0
mov ebx, dword [ebp - 0xec]
mov ecx, 0xa02
mov word [ebx + 8], cx
cmp eax, 6
jne 0x46f408
xor ecx, ecx
jmp 0x46f40f
mov edx, dword [ebp - 0xe4]
cmp esi, ebx
je 0x46f34d
cmp ebx, 5
je 0x46f395
cmp esi, 5
jne 0x46f34d
cmp byte [edx + 0x3f], 0
je 0x46ff5c
cmp dword [edx + 0x98], 1
jg 0x46ff5c
cmp ebx, 5
jne 0x46f3cd
mov ecx, edi
call fcn.00453b00
mov dword [ebp - 0xe0], eax
test eax, eax
jne 0x46f357
mov edx, esi
mov ecx, edi
call fcn.004537c0
jmp 0x46f3e9
cmp ebx, 4
jne 0x46f3dc
lea edx, [ebx - 2]
mov ecx, edi
call fcn.004537c0
cmp dword [ebp - 0xe0], 0
jne 0x46f357
mov ecx, dword [ebp - 0x114]
xor edx, edx
cmp esi, 5
sete dl
inc edx
call fcn.00460b30
mov dword [ebp - 0xe0], eax
jmp 0x46f353
mov ecx, dword [eax*4 + 0x5888e8]
mov dword [ebx + 0x10], ecx
call fcn.00447620
movzx edx, byte [ebp - 0x110]
mov ecx, ebx
mov dword [ebx + 0xc], eax
mov byte [ebx + 0xa], 1
call fcn.00461cb0
jmp 0x46adf2
mov ecx, dword [ebp - 0xdc]
mov edx, esi
lea ecx, [ecx + 0x2c]
call fcn.004a81f0
mov ecx, eax
mov dword [ebp - 0xe0], ecx
jmp case.0x46a759.62
mov eax, dword [ebp - 0xd8]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x10]
add ecx, ecx
mov ecx, dword [eax + ecx*8 + 4]
call fcn.00459bb0
mov edi, dword [ebp - 0xd8]
mov ecx, eax
mov dword [ebp - 0xe0], ecx
cmp ecx, 0x65
jne case.0x46a759.62
mov dword [ebp - 0xe0], 0
xor ecx, ecx
jmp 0x46a7a9
cmp dword [edi + 4], 0
jne 0x46f49f
mov ecx, esi
call fcn.00467820
jmp 0x46adfe
mov eax, dword [ebp - 0xdc]
mov ebx, eax
or dword [eax + 0x58], 8
jmp 0x46ae0a
mov eax, dword [ebp - 0xd8]
mov al, byte [eax + 0xc]
mov byte [ebp - 0x1a4], al
test al, al
jne 0x46f4d0
test dword [esi + 0x18], 0x4000
jne 0x46cc4a
mov eax, dword [ebp - 0xd8]
mov ecx, dword [esi + 0x10]
mov edx, dword [ebp - 0xd8]
push dword [ebp - 0x1a4]
mov eax, dword [eax + 4]
add eax, eax
mov edx, dword [edx + 8]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00460a40
mov ecx, eax
add esp, 4
mov dword [ebp - 0xe0], ecx
cmp cl, 6
jne 0x46cc4a
mov eax, dword [ebp - 0xd8]
push dword [eax + 0x10]
push str.database_table_is_locked:__s
push dword [ebp - 0xdc]
call fcn.00463200
mov edi, dword [ebp - 0xd8]
add esp, 0xc
jmp 0x46adfe
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xe4]
mov esi, dword [eax + 0x10]
mov edx, esi
call fcn.004a9910
mov ecx, eax
mov dword [ebp - 0xe0], ecx
test esi, esi
je 0x46c10d
mov edx, dword [esi + 8]
mov ecx, dword [ebp - 0xdc]
call fcn.004678f0
jmp 0x46adf2
mov eax, dword [ebp - 0xd8]
xorps xmm0, xmm0
mov ecx, dword [ebp - 0xe8]
movq qword [ebp - 0x250], xmm0
movdqu xmmword [ebp - 0x270], xmm0
mov eax, dword [eax + 8]
movdqu xmmword [ebp - 0x260], xmm0
mov dword [ebp - 0x250], esi
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
lea ecx, [ebp - 0x270]
call fcn.00462820
mov dword [ebp - 0xe0], eax
lea eax, [ebp - 0x270]
push eax
call fcn.00467e50
add esp, 4
test eax, eax
je 0x46f5e8
mov ecx, dword [ebp - 0xdc]
add ecx, 0x2c
push ecx
push eax
mov eax, dword [ebp - 0xd8]
mov ecx, esi
mov edx, dword [eax + 4]
call fcn.004a93f0
add esp, 8
mov dword [ebp - 0xe0], eax
lea ecx, [ebp - 0x270]
call fcn.004621d0
mov edi, dword [ebp - 0xd8]
jmp 0x46adfe
mov eax, dword [ebp - 0xd8]
mov ecx, esi
inc dword [esi + 0xa4]
push dword [eax + 0x10]
mov edx, dword [eax + 4]
call fcn.004a96d0
mov edi, dword [ebp - 0xd8]
mov ecx, eax
add esp, 4
mov dword [ebp - 0xe0], ecx
dec dword [esi + 0xa4]
jmp case.0x46a759.62
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0x118], 0
mov eax, dword [eax + 0x10]
mov esi, dword [eax + 8]
test esi, esi
je 0x46ffc0
mov edi, dword [esi]
test edi, edi
je 0x46ffc0
lea eax, [ebp - 0x118]
push eax
mov eax, dword [edi + 0x18]
push esi
call eax
mov ecx, dword [ebp - 0xdc]
add esp, 8
mov edx, esi
mov dword [ebp - 0xe0], eax
call fcn.004678f0
mov ecx, dword [ebp - 0xe0]
test ecx, ecx
jne 0x46c10d
mov eax, dword [ebp - 0x118]
push ecx
push 0xffffffffffffffff
push ecx
mov ecx, dword [ebp - 0xdc]
mov dword [eax], esi
mov eax, dword [ebp - 0xd8]
mov edx, dword [eax + 4]
call fcn.0046a2a0
add esp, 0xc
test eax, eax
je 0x46ff9e
mov ecx, dword [ebp - 0x118]
mov dword [eax + 0x24], ecx
inc dword [esi + 4]
jmp 0x46adf2
mov ebx, dword [ebp - 0xd8]
mov edi, dword [ebp - 0xe8]
add edi, 0x28
mov dword [ebp - 0x104], 0
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 4]
mov ebx, dword [ebp - 0xdc]
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 - 0xec], edi
mov eax, dword [eax + ecx*4]
xor ecx, ecx
mov dword [ebp - 0x10c], eax
pshufd xmm3, xmm0, 0
mov eax, dword [eax + 0x24]
mov dword [ebp - 0x12c], eax
mov eax, dword [eax]
mov dword [ebp - 0x124], eax
mov eax, dword [eax]
mov dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0xe8]
mov edx, dword [eax + edx*8]
mov dword [ebp - 0x114], edx
test esi, esi
jle 0x46f7ef
cmp esi, 8
jb 0x46f7d7
cmp dword [0x5c9fcc], 2
jl 0x46f7d7
movdqa xmm2, xmmword [0x59da50]
mov eax, esi
and eax, reloc.OLEAUT32.dll_VariantInit
jns 0x46f772
dec eax
or eax, 0xfffffff8
inc eax
movdqa xmm1, xmmword [0x59da60]
mov edi, esi
sub edi, eax
mov edx, ebx
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 0x46f780
mov edi, dword [ebp - 0xec]
mov edx, dword [ebp - 0x114]
cmp ecx, esi
jge 0x46f7ef
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 0x46f7e4
mov eax, dword [ebp - 0xd8]
mov edi, dword [ebp - 0xfc]
push ebx
push esi
push dword [eax + 0x10]
mov esi, dword [ebp - 0x12c]
mov eax, dword [edi + 0x20]
push edx
push esi
call eax
mov edx, dword [ebp - 0x124]
add esp, 0x14
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xe0], eax
call fcn.004678f0
cmp dword [ebp - 0xe0], 0
jne 0x46f83b
mov eax, dword [edi + 0x28]
push esi
call eax
add esp, 4
jmp 0x46f841
mov eax, dword [ebp - 0x104]
mov ecx, dword [ebp - 0x10c]
mov edi, dword [ebp - 0xd8]
mov byte [ecx + 0x19], 0
mov ecx, dword [ebp - 0xe0]
test eax, eax
jne 0x46a7a9
mov esi, dword [ebp - 0xe4]
jmp case.0x46a759.62
mov edx, dword [ebp - 0xd8]
mov eax, dword [ebp - 0xdc]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x38]
mov ebx, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
mov ecx, dword [ebp - 0xe8]
cmp byte [ebx + 0x19], 0
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
je 0x46f8a6
mov ecx, edi
call fcn.004625f0
mov edi, dword [ebp - 0xd8]
jmp 0x46adfe
mov eax, dword [ebx + 0x24]
xorps xmm0, xmm0
mov esi, dword [eax]
mov ecx, dword [esi]
movdqu xmmword [ebp - 0x290], xmm0
mov dword [ebp - 0x290], edi
movdqu xmmword [ebp - 0x280], xmm0
mov ax, word [edi + 8]
and ax, word [ebp - 0x194]
or ax, 1
mov word [edi + 8], ax
lea eax, [ebp - 0x290]
push dword [edx + 8]
push eax
push dword [ebx + 0x24]
mov eax, dword [ecx + 0x2c]
call eax
mov ecx, dword [ebp - 0xdc]
add esp, 0xc
mov edx, esi
mov dword [ebp - 0xe0], eax
call fcn.004678f0
mov eax, dword [ebp - 0x27c]
test eax, eax
mov ecx, dword [ebp - 0xe0]
movzx edx, byte [ebp - 0x110]
cmovne ecx, eax
mov dword [ebp - 0xe0], ecx
mov ecx, edi
call fcn.00461cb0
mov ecx, edi
call fcn.00462760
test eax, eax
jne 0x46ab6e
jmp 0x46adf2
mov eax, dword [ebp - 0xd8]
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 0xdc]
mov eax, dword [eax + 0x38]
mov edi, dword [eax + ecx*4]
cmp byte [edi + 0x19], 0
jne 0x46a9df
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 - 0xdc]
add esp, 4
mov edx, esi
mov dword [ebp - 0xe0], eax
call fcn.004678f0
cmp dword [ebp - 0xe0], 0
jne 0x46f998
push dword [edi + 0x24]
mov eax, dword [ebx + 0x28]
call eax
add esp, 4
test eax, eax
jne 0x46e17f
mov esi, dword [ebp - 0xe4]
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0x108]
mov edi, dword [eax + 8]
dec edi
lea edi, [edi + edi*4]
lea edi, [ecx + edi*4]
mov dword [ebp - 0xd8], edi
jmp 0x46e18b
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 0x46fa00
cmp byte [esi + 0xa], 1
je 0x46fa00
mov dl, 1
mov ecx, esi
call fcn.00446f50
mov ecx, eax
mov dword [ebp - 0xe0], ecx
test ecx, ecx
jne 0x46c10d
mov eax, dword [edi]
push dword [esi + 0x10]
push edi
mov eax, dword [eax + 0x4c]
call eax
mov ecx, dword [ebp - 0xdc]
add esp, 8
mov edx, edi
mov dword [ebp - 0xe0], eax
call fcn.004678f0
mov eax, dword [ebp - 0xdc]
mov ebx, eax
mov edi, dword [ebp - 0xd8]
mov esi, dword [ebp - 0xe4]
mov ecx, dword [ebp - 0xe0]
and dword [eax + 0x58], 0xfffffff7
jmp 0x46ae0a
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 0x10]
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x46ffc0
mov edx, dword [ebx]
test edx, edx
je 0x46ffc0
cmp dword [edx + 0x34], 0
mov esi, dword [ebp - 0xd8]
mov esi, dword [esi + 8]
je 0x46c10d
mov eax, dword [ebp - 0xe4]
mov ecx, dword [ebp - 0xe8]
mov al, byte [eax + 0x45]
mov byte [ebp - 0xed], al
mov eax, dword [ebp - 0xdc]
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 0x46fab3
mov dword [edi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, esi
jl 0x46faa8
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xe4]
mov al, byte [eax + 3]
mov byte [ecx + 0x45], al
lea eax, [ebp - 0x1b8]
push eax
mov eax, dword [edx + 0x34]
push edi
push esi
push ebx
call eax
mov esi, dword [ebp - 0xe4]
add esp, 0x10
mov edi, dword [ebp - 0xdc]
mov edx, ebx
mov dword [ebp - 0xe0], eax
mov ecx, edi
mov al, byte [ebp - 0xed]
mov byte [esi + 0x45], al
call fcn.004678f0
cmp dword [ebp - 0xe0], 0
mov eax, dword [ebp - 0xd8]
jne 0x46fb2e
cmp dword [eax + 4], 0
je 0x46fb2e
mov ecx, dword [ebp - 0x1b8]
mov edx, dword [ebp - 0x1b4]
mov dword [ebp - 0x138], ecx
mov dword [ebp - 0x134], edx
mov dword [esi + 0x20], ecx
mov dword [esi + 0x24], edx
mov ecx, dword [ebp - 0xe0]
cmp cl, 0x13
jne 0x46fb87
mov eax, dword [eax + 0x10]
cmp byte [eax + 0x10], 0
je 0x46fb87
mov edi, dword [ebp - 0xd8]
mov al, byte [edi + 3]
cmp al, 4
jne 0x46fb5f
xor ecx, ecx
add edi, 0x14
mov dword [ebp - 0xe0], ecx
jmp 0x46a723
cmp al, 5
jne 0x46fb76
mov ebx, dword [ebp - 0xdc]
mov eax, 2
mov byte [ebx + 0x56], al
jmp 0x46ae0a
mov ebx, dword [ebp - 0xdc]
movzx eax, al
mov byte [ebx + 0x56], al
jmp 0x46ae0a
inc dword [edi + 0x5c]
mov edi, dword [ebp - 0xd8]
jmp case.0x46a759.62
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0xdc]
mov eax, dword [eax + 8]
lea edx, [eax + ecx*8]
mov eax, 0x2460
test word [edx + 8], ax
je 0x46fbc3
mov ecx, edx
call fcn.0046a5d0
mov edx, eax
jmp 0x46fbcc
mov eax, 4
mov word [edx + 8], ax
mov eax, dword [ebp - 0xd8]
mov edi, dword [ebp - 0xd8]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 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 0x46adfe
mov edx, dword [ebp - 0xd8]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0xdc]
mov eax, dword [eax + 8]
lea esi, [eax + ecx*8]
mov eax, 0x2460
test word [esi + 8], ax
je 0x46fc2c
mov ecx, esi
call fcn.0046a5d0
mov edx, dword [ebp - 0xd8]
mov esi, eax
jmp 0x46fc35
mov eax, 4
mov word [esi + 8], ax
mov eax, dword [ebp - 0xe4]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 0xc]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov ecx, dword [eax + ecx*8 + 4]
xor eax, eax
test edx, edx
je 0x46fc5b
mov eax, dword [ecx + 4]
mov eax, dword [eax + 0x2c]
cmp eax, edx
cmovb eax, edx
mov edx, eax
call fcn.00458e70
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x46adf2
cmp dword [esi + 0xb0], 0
je 0x46fcc6
mov eax, dword [ebp - 0xdc]
test dword [eax + 0x58], 0x200
jne 0x46fcc6
mov edx, dword [edi + 0x10]
test edx, edx
jne 0x46fc96
mov edx, dword [eax + 0xa8]
test edx, edx
je 0x46fcc6
mov ecx, eax
call fcn.00469dd0
mov esi, eax
mov eax, dword [ebp - 0xe4]
push esi
push dword [eax + 0xb4]
mov ecx, dword [eax + 0xb0]
call ecx
add esp, 8
mov edx, esi
mov esi, dword [ebp - 0xe4]
mov ecx, esi
call fcn.00444ae0
cmp dword [edi + 8], 0
je 0x46adfe
jmp 0x46a7a3
mov edi, dword [ebp - 0xd8]
jmp 0x46a7a9
mov ecx, dword [edx + 4]
mov dword [edi + 0x50], ecx
mov al, byte [edx + 8]
mov byte [edi + 0x56], al
mov dword [edi + 0x4c], esi
test ecx, ecx
je 0x46fd61
mov al, byte [edx + 3]
test al, al
je 0x46fd21
movzx eax, al
mov eax, dword [eax*4 + 0x5867a0]
test eax, eax
je 0x46fd23
mov ecx, dword [edx + 0x10]
test ecx, ecx
je 0x46fd23
push ecx
push eax
push str._s_constraint_failed:__s
push edi
call fcn.00463200
add esp, 0x10
jmp 0x46fd41
xor eax, eax
mov ecx, dword [edx + 0x10]
test ecx, ecx
je 0x46fd32
push ecx
push 0x592278
jmp 0x46fd38
push eax
push str._s_constraint_failed
push edi
call fcn.00463200
add esp, 0xc
push dword [edi + 0x2c]
mov eax, dword [ebp - 0xd8]
push dword [edi + 0xa8]
push esi
push str.abort_at__d_in___s_:__s
push dword [eax + 4]
call fcn.00446b80
add esp, 0x14
mov ecx, edi
call fcn.004658f0
mov esi, dword [ebp - 0xe4]
cmp eax, 5
mov eax, dword [ebp - 0xdc]
jne 0x46fd86
mov edi, 5
mov dword [eax + 0x50], edi
jmp 0x46fe5b
cmp dword [eax + 0x50], 0
mov edi, 0x65
mov eax, 1
cmovne edi, eax
jmp 0x46fe5b
mov dword [ebp - 0xe0], 9
jmp 0x46ab8b
push str.cannot_open_savepoint___SQL_statements_in_progress
push dword [ebp - 0xdc]
call fcn.00463200
mov ecx, dword [ebp - 0xd8]
add esp, 8
mov ebx, dword [ebp - 0xdc]
add ecx, 0x14
mov dword [ebp - 0xe0], 5
jmp 0x46ab97
push str.cannot_release_savepoint___SQL_statements_in_progress
jmp 0x46fdb0
mov ecx, dword [ebp - 0xd8]
mov eax, 0x66666667
sub ecx, dword [ebp - 0x108]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [edi + 0x4c], eax
mov edi, 5
mov eax, dword [ebp - 0xdc]
mov byte [esi + 0x3f], 0
mov dword [eax + 0x50], edi
jmp 0x46fe5b
mov ecx, 8
mov dword [ebp - 0xe0], ecx
jmp 0x46b832
mov ecx, dword [ebp - 0xd8]
mov eax, 0x66666667
sub ecx, dword [ebp - 0x108]
mov edi, 5
imul ecx
mov ecx, dword [ebp - 0xdc]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ecx + 0x50], edi
mov dword [ecx + 0x4c], eax
mov esi, dword [ebp - 0xe4]
mov eax, dword [ebp - 0x138]
mov dword [esi + 0x20], eax
mov eax, dword [ebp - 0x134]
mov dword [esi + 0x24], eax
mov esi, dword [ebp - 0xdc]
mov eax, dword [ebp - 0x13c]
add dword [esi + 0x7c], eax
cmp dword [esi + 0x64], 0
je 0x46fe89
mov ecx, esi
call fcn.00464130
mov ecx, dword [ebp - 4]
mov eax, edi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0051ece9
mov esp, ebp
pop ebp
ret
mov ecx, 0x126b4
call fcn.004bb220
mov ecx, eax
jmp 0x46b826
add ebx, 0x14
mov dword [ebp - 0xe0], 0x204
mov dword [ebp - 0xd8], ebx
mov ebx, eax
jmp 0x46ab91
mov esi, edi
jmp 0x46b832
cmp ecx, 0xc0a
je 0x46ab8b
cmp ecx, 0x204
je 0x46feee
mov edx, str.unknown_error
call fcn.004b92b0
jmp 0x46fef3
mov eax, str.abort_due_to_ROLLBACK
push eax
push 0x592278
push dword [ebp - 0xdc]
call fcn.00463200
add esp, 0xc
jmp 0x46ab8b
mov eax, dword [ebp - 0xdc]
mov ebx, eax
mov ecx, dword [ebp - 0xd8]
mov dword [ebp - 0xe0], 6
add ecx, 0x14
mov byte [eax + 0x56], 2
jmp 0x46ab97
push str.too_many_levels_of_trigger_recursion
push ecx
mov dword [ebp - 0xe0], 1
call fcn.00463200
mov ecx, dword [ebp - 0xd8]
add esp, 8
mov ebx, dword [ebp - 0xdc]
add ecx, 0x14
jmp 0x46ab97
mov ecx, str.out_of
mov dword [ebp - 0xe0], 1
cmp esi, 5
mov eax, str.into
cmovne eax, ecx
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
push dword [ebp - 0xdc]
call fcn.00463200
mov ecx, dword [ebp - 0xd8]
add esp, 0xc
mov ebx, dword [ebp - 0xdc]
add ecx, 0x14
jmp 0x46ab97
push dword [ebp - 0x118]
mov eax, dword [edi + 0x1c]
call eax
add esp, 4
jmp 0x46c3fe
mov dword [ebp - 0xe0], 9
jmp 0x46ab91
mov ecx, dword [ebp - 0xd8]
mov ebx, dword [ebp - 0xdc]
add ecx, 0x14
mov dword [ebp - 0xe0], 6
jmp 0x46ab97
mov eax, dword [ebp - 0xd8]
mov ebx, dword [eax + 4]
mov ecx, dword [eax + 8]
test ebx, ebx
je 0x47000a
cmp byte [esi + 0x3f], 0
jne 0x47000a
test ecx, ecx
jne 0x47000a
cmp dword [esi + 0x9c], ecx
jle 0x47000a
push str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x46fdb0
movzx eax, byte [esi + 0x3f]
cmp ebx, eax
jne 0x470059
test ebx, ebx
jne 0x47001d
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x47002c
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
push dword [ebp - 0xdc]
call fcn.00463200
mov ecx, dword [ebp - 0xd8]
add esp, 8
mov ebx, dword [ebp - 0xdc]
add ecx, 0x14
mov dword [ebp - 0xe0], 1
jmp 0x46ab97
test ecx, ecx
je 0x470090
mov edx, 0x204
mov ecx, esi
call fcn.004b9160
mov byte [esi + 0x3f], 1
mov ecx, esi
call fcn.004b87b0
mov eax, dword [ebp - 0xdc]
mov edi, 1
mov ecx, 0x65
cmp dword [eax + 0x50], 0
cmove edi, ecx
jmp 0x46fe5b
mov ecx, dword [ebp - 0xdc]
mov edx, 1
call fcn.00465880
mov edi, eax
test edi, edi
jne 0x46fe5b
mov ecx, dword [ebp - 0xdc]
mov byte [esi + 0x3f], bl
call fcn.004658f0
cmp eax, 5
jne 0x47006d
mov ecx, dword [ebp - 0xd8]
mov eax, 0x66666667
sub ecx, dword [ebp - 0x108]
mov edi, 5
imul ecx
mov ecx, dword [ebp - 0xdc]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ecx + 0x4c], eax
mov al, 1
sub al, bl
mov byte [esi + 0x3f], al
mov dword [ecx + 0x50], edi
jmp 0x46fe5b
mov ebx, dword [ebp - 0xdc]
mov eax, dword [str.interrupted]
mov ecx, str.unknown_error
test eax, eax
mov dword [ebp - 0xe0], 9
mov dword [ebx + 0x50], 9
cmovne ecx, eax
push ecx
jmp 0x46fef4
mov esi, eax
jmp 0x46c404