Function at 0x46a7b0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x7c
mov eax, dword [0x4e7744]
xor eax, esp
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x80]
push ebx
mov ebx, dword [esp + 0x90]
push ebp
mov ebp, dword [esp + 0x90]
mov ecx, dword [eax]
push esi
mov esi, dword [eax + 8]
mov dword [esp + 0x10], eax
mov dword [esp + 0x2c], ebp
mov dword [esp + 0xc], ecx
mov dword [esp + 0x48], esi
push edi
mov edi, dword [esp + 0x94]
test esi, esi
jne 0x46a821
cmp dword [eax + 0x74], esi
jne 0x46a806
test byte [ecx + 0x4c], 8
jne 0x46a806
mov byte [eax + 0x17], 1
push eax
call fcn.0047aac0
mov esi, eax
mov dword [esp + 0x50], eax
add esp, 4
test esi, esi
je 0x46deae
mov eax, dword [esp + 0x14]
or dword [esi + 0x98], 0x20
lea ecx, [esp + 0x18]
push ecx
push ebp
push edi
push eax
mov dword [eax + 0x2c], 2
call fcn.00476b50
mov edx, eax
add esp, 0x10
mov dword [esp + 0x24], edx
test edx, edx
js 0x46deae
mov ecx, dword [esp + 0x10]
shl eax, 4
mov dword [esp + 0x38], eax
mov edi, dword [ecx + 0x10]
add edi, eax
cmp edx, 1
jne 0x46a876
push dword [esp + 0x14]
call fcn.00467ab0
add esp, 4
test eax, eax
jne 0x46deae
push dword [esp + 0x18]
push dword [esp + 0x14]
call fcn.00467530
add esp, 8
mov dword [esp + 0x34], eax
test eax, eax
je 0x46deae
cmp dword [esp + 0xa0], 0
push ebx
je 0x46a8b0
push 0x4d4eac
push dword [esp + 0x18]
call fcn.00466e10
add esp, 0xc
jmp 0x46a8bc
push dword [esp + 0x14]
call fcn.00467530
add esp, 8
cmp dword [ebp + 4], 0
mov dword [esp + 0x20], eax
jbe 0x46a8ca
mov ebx, dword [edi]
jmp 0x46a8cc
xor ebx, ebx
push ebx
push eax
push dword [esp + 0x3c]
mov dword [esp + 0x48], ebx
push 0x13
push dword [esp + 0x24]
call fcn.0044ccf0
add esp, 0x14
test eax, eax
jne 0x46de89
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], 0
mov eax, dword [ecx + 0xc]
mov dword [ecx + 0x1b4], 0
mov dword [esp + 0x2c], 1
test eax, eax
je 0x46a939
push eax
call dword [0x4e6058]
mov ecx, dword [esp + 0x14]
add esp, 4
test ebx, ebx
je 0x46a952
push ebx
push ecx
call fcn.0045ce00
mov ebx, eax
add esp, 8
test ebx, ebx
jns 0x46a954
jmp 0x46a9da
xor ebx, ebx
mov eax, dword [esp + 0x10]
add ebx, ebx
mov eax, dword [eax + 0x10]
mov ebx, dword [eax + ebx*8 + 4]
test ebx, ebx
je 0x46a9da
cmp byte [ebx + 9], 0
je 0x46a97d
inc dword [ebx + 0xc]
cmp byte [ebx + 0xa], 0
jne 0x46a97d
push ebx
call fcn.004268b0
add esp, 4
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x10]
mov eax, dword [eax]
mov ecx, dword [ecx + 0x1b4]
mov dword [esp + 0x18], ecx
mov eax, dword [eax + 0x3c]
mov ecx, dword [eax]
test ecx, ecx
jne 0x46a9a3
mov dword [esp + 0x2c], 0xc
jmp 0x46a9b7
lea edx, [esp + 0x78]
push edx
push 0xe
push eax
mov eax, dword [ecx + 0x28]
call eax
add esp, 0xc
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov dword [ecx + 0x1b4], eax
cmp byte [ebx + 9], 0
je 0x46a9da
add dword [ebx + 0xc], 0xffffffff
jne 0x46a9da
push ebx
call fcn.00492520
add esp, 4
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x46a9ef
push eax
call dword [0x4e6060]
add esp, 4
mov ebx, dword [esp + 0x2c]
test ebx, ebx
jne 0x46aae2
push 1
push esi
call fcn.00486af0
push 0xffffffffffffffff
push dword [esp + 0x84]
push ebx
push ebx
push esi
call fcn.00486aa0
mov edi, dword [esp + 0x94]
add esp, 0x1c
test edi, edi
je 0x46de89
push ebx
push edi
push ebx
push 1
push ebx
push 0x74
push esi
call fcn.0047a280
mov ecx, dword [esi + 0x6c]
add esp, 0x1c
cmp dword [esi + 0x70], ecx
jg 0x46aa51
push ebx
push 1
push 1
push 0x51
push esi
call fcn.00437ce0
add esp, 0x14
jmp 0x46aa84
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x51
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [esp + 0x78]
test edi, edi
je 0x46de89
cmp dword [0x4e6008], 0
je 0x46aad3
mov eax, dword [0x4e86d8]
test eax, eax
je 0x46aaac
push eax
call dword [0x4e6058]
add esp, 4
push edi
call dword [0x4e6034]
sub dword [0x4e8678], eax
dec dword [0x4e869c]
push edi
call dword [0x4e602c]
mov eax, dword [0x4e86d8]
add esp, 8
jmp 0x46da15
push edi
call dword [0x4e602c]
add esp, 4
jmp 0x46de89
cmp ebx, 0xc
je 0x46ab88
mov eax, dword [esp + 0x78]
test eax, eax
je 0x46ab79
push eax
push 0x4d2204
push dword [esp + 0x1c]
call fcn.00457ce0
mov esi, dword [esp + 0x84]
add esp, 0xc
test esi, esi
je 0x46ab79
cmp dword [0x4e6008], 0
je 0x46ab6f
mov eax, dword [0x4e86d8]
test eax, eax
je 0x46ab30
push eax
call dword [0x4e6058]
add esp, 4
push esi
call dword [0x4e6034]
sub dword [0x4e8678], eax
dec dword [0x4e869c]
push esi
call dword [0x4e602c]
mov eax, dword [0x4e86d8]
add esp, 8
test eax, eax
je 0x46ab79
push eax
call dword [0x4e6060]
mov eax, dword [esp + 0x18]
add esp, 4
inc dword [eax + 0x24]
mov dword [eax + 0xc], ebx
jmp 0x46de89
push esi
call dword [0x4e602c]
add esp, 4
mov eax, dword [esp + 0x14]
inc dword [eax + 0x24]
mov dword [eax + 0xc], ebx
jmp 0x46de89
push dword [esp + 0x34]
call fcn.004427c0
mov ebx, eax
add esp, 4
mov dword [esp + 0x48], ebx
test ebx, ebx
je 0x46de89
test byte [ebx + 5], 1
je 0x46abbc
push dword [esp + 0x14]
call fcn.0046e720
add esp, 4
test eax, eax
jne 0x46de89
mov al, byte [ebx + 5]
test al, 2
jne 0x46abd9
test al, 4
je 0x46abcf
mov edx, dword [esp + 0x20]
test edx, edx
jne 0x46abdd
push ebx
push esi
call fcn.00449e10
add esp, 8
mov edx, dword [esp + 0x20]
movzx eax, byte [ebx + 4]
dec eax
cmp eax, 0x29
ja case.0x46abeb.5
jmp dword [eax*4 + 0x46dec4]
mov ebp, dword [esp + 0x24]
push ebp
push esi
call fcn.004874a0
mov eax, dword [esp + 0x28]
add esp, 8
test eax, eax
jne 0x46ac4f
mov eax, dword [esp + 0x14]
push 0
push 0x4cfeb4
push 9
add dword [eax + 0x2c], 2
push esi
call fcn.0047a390
push dword [esp + 0x44]
push dword [esp + 0x24]
mov dword [eax + 4], ebp
mov dword [eax + 0x18], ebp
mov dword [eax + 0x7c], 0xfffff830
call fcn.00455ea0
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x78]
xor ecx, esp
call fcn.004aa4f4
add esp, 0x7c
ret
lea ecx, [esp + 0x1c]
mov dword [esp + 0x1c], 0
push ecx
push eax
call fcn.00462180
mov ebx, dword [esp + 0x24]
add esp, 8
test ebx, ebx
jns 0x46ac7e
cmp ebx, 0x80000000
jne 0x46ac7c
mov ebx, 0x7fffffff
jmp 0x46ac7e
neg ebx
push ebp
push 0
push dword [esp + 0x1c]
call fcn.0044d830
push ebx
push 3
push ebp
push 0x5f
push esi
call fcn.0047a220
mov eax, dword [edi + 0xc]
mov dword [eax + 0x50], ebx
mov eax, dword [edi + 0xc]
push dword [eax + 0x50]
push dword [edi + 4]
call fcn.00451400
add esp, 0x28
jmp 0x46de89
mov edi, dword [edi + 4]
test edx, edx
jne 0x46acd1
test edi, edi
je 0x46acc9
mov eax, dword [edi + 4]
mov eax, dword [eax + 0x24]
cdq
jmp 0x46b83b
xor eax, eax
cdq
jmp 0x46b83b
lea eax, [esp + 0x1c]
mov dword [esp + 0x1c], 0
push eax
push edx
call fcn.00462180
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
push 0
push 0
push eax
push edi
mov dword [ecx + 0x60], eax
call fcn.00451480
add esp, 0x18
cmp eax, 7
jne 0x46de89
push dword [esp + 0x10]
call fcn.00467780
add esp, 4
jmp 0x46de89
mov eax, dword [edi + 4]
or ecx, 0xffffffff
mov dword [esp + 0x18], eax
mov dword [esp + 0x28], ecx
test edx, edx
je 0x46ad55
push str.fast
push edx
call fcn.00475700
add esp, 8
test eax, eax
jne 0x46ad40
lea ecx, [eax + 2]
jmp 0x46ad51
push 0
push dword [esp + 0x24]
call fcn.00461ef0
add esp, 8
movzx ecx, al
mov dword [esp + 0x28], ecx
cmp dword [ebp + 4], 0
jne 0x46adec
test ecx, ecx
js 0x46adec
mov eax, dword [esp + 0x10]
xor ebx, ebx
cmp dword [eax + 0x14], ebx
jle 0x46adec
mov esi, dword [esp + 0x28]
xor ebp, ebp
mov ecx, 0xfff3
lea ecx, [ecx]
mov eax, dword [eax + 0x10]
mov edi, dword [eax + ebp + 4]
test edi, edi
je 0x46add7
cmp byte [edi + 9], 0
je 0x46ada8
inc dword [edi + 0xc]
cmp byte [edi + 0xa], 0
jne 0x46ada8
push edi
call fcn.004268b0
add esp, 4
mov ecx, 0xfff3
mov eax, dword [edi + 4]
and word [eax + 0x18], cx
lea eax, [esi*4]
mov ecx, dword [edi + 4]
or word [ecx + 0x18], ax
cmp byte [edi + 9], 0
je 0x46add2
add dword [edi + 0xc], 0xffffffff
jne 0x46add2
push edi
call fcn.00492520
add esp, 4
mov ecx, 0xfff3
mov eax, dword [esp + 0x10]
inc ebx
add ebp, 0x10
cmp ebx, dword [eax + 0x14]
jl 0x46ad80
mov esi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x28]
push ecx
push dword [esp + 0x1c]
call fcn.00451310
cdq
push edx
push eax
push esi
call fcn.00447960
add esp, 0x14
jmp 0x46de89
mov ebp, dword [esp + 0x24]
mov ebx, dword [esp + 0x14]
push ebp
push ebx
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
call fcn.00453560
mov eax, dword [esp + 0x3c]
add esp, 8
inc dword [ebx + 0x2c]
mov edi, dword [ebx + 0x2c]
movzx eax, byte [eax]
cmp byte [eax + 0x4cf118], 0x70
jne 0x46ae62
push edi
push ebp
push 0xab
push esi
call fcn.0047a1c0
add esp, 0x10
push 1
push edi
push 0x51
push esi
call fcn.0047a1c0
add esp, 0x10
jmp 0x46de89
mov eax, dword [esp + 0x20]
test eax, eax
je 0x46aea8
lea ecx, [esp + 0x6c]
push ecx
push eax
call fcn.004562d0
add esp, 8
test eax, eax
jne 0x46aea8
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x6c]
test ecx, ecx
jg 0x46ae99
jl 0x46aea8
test eax, eax
jb 0x46aea8
test ecx, ecx
jl 0x46aeaa
jg 0x46ae99
cmp eax, 0xfffffffe
jbe 0x46aeaa
mov eax, 0xfffffffe
mov dword [esp + 0x70], 0
jmp 0x46aeaa
xor eax, eax
push eax
push edi
push ebp
push 0xac
push esi
call fcn.0047a220
add esp, 0x14
push 1
push edi
push 0x51
push esi
call fcn.0047a1c0
add esp, 0x10
jmp 0x46de89
test edx, edx
je 0x46af02
push str.exclusive
push edx
call fcn.00475700
add esp, 8
test eax, eax
jne 0x46aee9
lea ecx, [eax + 1]
jmp 0x46af05
push str.normal
push dword [esp + 0x24]
call fcn.00475700
add esp, 8
test eax, eax
jne 0x46af02
xor ecx, ecx
jmp 0x46af05
or ecx, 0xffffffff
cmp dword [ebp + 4], 0
jne 0x46af6d
mov eax, dword [esp + 0x10]
cmp ecx, 0xffffffff
jne 0x46af1a
movzx eax, byte [eax + 0x55]
jmp 0x46af7e
mov edx, 2
cmp dword [eax + 0x14], edx
jle 0x46af6a
mov ebx, 0x20
mov esi, eax
jmp 0x46af30
mov eax, dword [esi + 0x10]
mov eax, dword [ebx + eax + 4]
mov eax, dword [eax + 4]
mov eax, dword [eax]
test ecx, ecx
js 0x46af59
cmp byte [eax + 0xc], 0
jne 0x46af59
mov ebp, dword [eax + 0xd8]
test ebp, ebp
je 0x46af56
cmp byte [ebp + 0x2b], 2
je 0x46af59
mov byte [eax + 4], cl
inc edx
add ebx, 0x10
cmp edx, dword [esi + 0x14]
jl 0x46af30
mov esi, dword [esp + 0x4c]
mov eax, dword [esp + 0x10]
mov byte [eax + 0x55], cl
mov eax, dword [edi + 4]
push ecx
mov eax, dword [eax + 4]
push dword [eax]
call fcn.00468430
add esp, 8
cmp eax, 1
mov edx, str.exclusive
mov ecx, str.normal
cmove ecx, edx
push ecx
push esi
call fcn.004479f0
add esp, 8
jmp 0x46de89
test edx, edx
je 0x46b03b
mov ecx, edx
lea edx, [ecx + 1]
lea ebx, [ebx]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x46afb0
sub ecx, edx
and ecx, 0x3fffffff
xor ebp, ebp
mov dword [esp + 0x18], ecx
cmp ebp, 6
je 0x46b03b
mov edi, dword [ebp*4 + 0x4cfe80]
test edi, edi
je 0x46b03b
mov ebx, dword [esp + 0x20]
mov edx, ecx
test ecx, ecx
je 0x46b001
nop
mov al, byte [ebx]
dec edx
test al, al
je 0x46b002
movzx ecx, byte [edi]
movzx eax, al
mov al, byte [eax + 0x4cf118]
cmp al, byte [ecx + 0x4cf118]
jne 0x46b002
inc ebx
inc edi
test edx, edx
jg 0x46afe0
dec edx
test edx, edx
js 0x46b025
movzx eax, byte [ebx]
movzx ecx, byte [eax + 0x4cf118]
movzx eax, byte [edi]
movzx eax, byte [eax + 0x4cf118]
sub ecx, eax
je 0x46b025
mov ecx, dword [esp + 0x18]
inc ebp
jmp 0x46afc5
cmp ebp, 2
jne 0x46b057
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x20]
and eax, 0x10000000
or eax, 0
je 0x46b05c
or ebp, 0xffffffff
mov ecx, dword [esp + 0x30]
cmp dword [ecx + 4], 0
jne 0x46b060
xor edx, edx
mov dword [ecx + 4], 1
mov dword [esp + 0x24], edx
jmp 0x46b064
cmp ebp, 0xffffffff
je 0x46b03e
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x14]
sub edi, 1
js 0x46b126
mov ebx, edi
shl ebx, 4
lea esp, [esp]
mov eax, dword [eax + 0x10]
cmp dword [ebx + eax + 4], 0
je 0x46b10e
cmp edi, edx
je 0x46b098
cmp dword [ecx + 4], 0
jne 0x46b10e
mov eax, dword [esi + 0x9c]
bts eax, edi
mov dword [esi + 0x9c], eax
cmp edi, 1
je 0x46b0ca
mov eax, dword [esi]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ebx + 4]
cmp byte [eax + 9], 0
je 0x46b0ca
mov eax, dword [esi + 0xa0]
bts eax, edi
mov dword [esi + 0xa0], eax
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x46b0e3
push ebp
push 1
push edi
push 7
push esi
call fcn.00437ce0
add esp, 0x14
jmp 0x46b10e
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 7
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], ebp
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x30]
sub ebx, 0x10
sub edi, 1
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x24]
jns 0x46b080
push 1
push 1
push 0x51
push esi
call fcn.0047a1c0
add esp, 0x10
jmp 0x46de89
mov eax, dword [edi + 4]
mov dword [esp + 0x6c], 0xfffffffe
mov dword [esp + 0x70], 0xffffffff
mov eax, dword [eax + 4]
mov edi, dword [eax]
test edx, edx
je 0x46b19f
lea eax, [esp + 0x6c]
push eax
push edx
call fcn.004562d0
mov ecx, dword [esp + 0x78]
add esp, 8
cmp ecx, 0xffffffff
jg 0x46b17f
jl 0x46b178
mov eax, dword [esp + 0x6c]
cmp eax, 0xffffffff
jae 0x46b183
or eax, 0xffffffff
or ecx, eax
jmp 0x46b183
mov eax, dword [esp + 0x6c]
mov edx, dword [edi + 0xd8]
mov dword [edi + 0xa0], eax
mov dword [edi + 0xa4], ecx
test edx, edx
je 0x46b19f
mov dword [edx + 0x10], eax
mov dword [edx + 0x14], ecx
push dword [edi + 0xa4]
push dword [edi + 0xa0]
jmp 0x46de80
mov edi, dword [edi + 4]
test edx, edx
jne 0x46b1e9
push edi
call fcn.0044f3c0
cdq
push edx
push eax
push esi
call fcn.00447960
push dword [esp + 0x44]
push dword [esp + 0x24]
call fcn.00455ea0
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x78]
xor ecx, esp
call fcn.004aa4f4
add esp, 0x7c
ret
push str.none
push edx
call fcn.00475700
add esp, 8
test eax, eax
jne 0x46b1ff
xor ebx, ebx
jmp 0x46b256
mov ebx, dword [esp + 0x20]
push str.full
push ebx
call fcn.00475700
add esp, 8
test eax, eax
jne 0x46b21a
lea ebx, [eax + 1]
jmp 0x46b256
push str.incremental
push ebx
call fcn.00475700
add esp, 8
test eax, eax
jne 0x46b231
lea ebx, [eax + 2]
jmp 0x46b256
lea eax, [esp + 0x1c]
mov dword [esp + 0x1c], 0
push eax
push ebx
call fcn.00462180
xor ecx, ecx
add esp, 8
cmp dword [esp + 0x1c], 2
cmovbe ecx, dword [esp + 0x1c]
movzx ebx, cl
mov eax, dword [esp + 0x10]
push ebx
push edi
mov byte [eax + 0x56], bl
call fcn.00451380
add esp, 8
test eax, eax
jne 0x46de89
cmp ebx, 1
je 0x46b27d
cmp ebx, 2
jne 0x46de89
mov edi, dword [esi + 0x6c]
push 0
push 0x4cfedc
push 5
push esi
call fcn.0047a390
mov edx, dword [esp + 0x34]
lea ecx, [edi + 4]
push edx
push esi
mov dword [eax + 0x30], ecx
lea ecx, [ebx - 1]
mov dword [eax + 4], edx
mov dword [eax + 0x18], edx
mov dword [eax + 0x54], edx
mov dword [eax + 0x5c], ecx
call fcn.004874a0
add esp, 0x18
jmp 0x46de89
test edx, edx
je 0x46b2d5
lea eax, [esp + 0x18]
push eax
push edx
call fcn.00462180
add esp, 8
test eax, eax
je 0x46b2d5
mov edi, dword [esp + 0x18]
test edi, edi
jg 0x46b2da
mov edi, 0x7fffffff
mov ebx, dword [esp + 0x24]
push ebx
push 0
push dword [esp + 0x1c]
call fcn.0044d830
push 1
push edi
push 0x45
push esi
call fcn.0047a1c0
push ebx
push 0x3c
push esi
call fcn.0047a160
push 1
push 0x51
push esi
mov edi, eax
call fcn.0047a160
push 0xffffffffffffffff
push 1
push 0x53
push esi
call fcn.0047a1c0
add esp, 0x44
push edi
push 1
push 0x30
push esi
call fcn.0047a1c0
push edi
push esi
call fcn.00484180
add esp, 0x18
jmp 0x46de89
test edx, edx
jne 0x46b343
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0x50]
cdq
jmp 0x46b83b
lea eax, [esp + 0x1c]
mov dword [esp + 0x1c], 0
push eax
push edx
call fcn.00462180
mov ecx, dword [edi + 0xc]
mov eax, dword [esp + 0x24]
mov dword [ecx + 0x50], eax
mov eax, dword [edi + 0xc]
push dword [eax + 0x50]
push dword [edi + 4]
call fcn.00451400
add esp, 0x10
jmp 0x46de89
test edx, edx
jne 0x46b39e
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x20]
and eax, 0x20
or eax, edx
je 0x46b611
push 0
push dword [edi + 4]
call fcn.00451640
add esp, 8
jmp 0x46b611
lea eax, [esp + 0x1c]
mov dword [esp + 0x1c], 1
push eax
push edx
call fcn.00462180
mov esi, dword [esp + 0x24]
add esp, 8
test eax, eax
je 0x46b3c8
push esi
push dword [edi + 4]
call fcn.00451640
add esp, 8
test esi, esi
setne al
movzx eax, al
push eax
push dword [esp + 0x24]
call fcn.00461ef0
mov edx, dword [esp + 0x18]
add esp, 8
mov ecx, dword [edx + 0x20]
mov edx, dword [edx + 0x24]
test al, al
je 0x46b3f0
or ecx, 0x20
jmp 0x46b3f3
and ecx, 0xffffffdf
mov eax, dword [esp + 0x10]
push eax
mov dword [eax + 0x20], ecx
mov dword [eax + 0x24], edx
call fcn.00449b20
add esp, 4
jmp 0x46de89
test edx, edx
je 0x46b503
lea eax, [esp + 0x6c]
push eax
push edx
call fcn.004562d0
add esp, 8
cmp dword [esp + 0x70], 0
jg 0x46b444
jl 0x46b431
cmp dword [esp + 0x6c], 0
jae 0x46b444
mov eax, dword [0x4e60b0]
mov ecx, dword [0x4e60b4]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], ecx
cmp dword [ebp + 4], 0
mov edx, dword [esp + 0x10]
jne 0x46b45c
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x70]
mov dword [edx + 0x30], eax
mov dword [edx + 0x34], ecx
mov ebx, dword [edx + 0x14]
sub ebx, 1
js 0x46b503
mov esi, dword [esp + 0x30]
mov ebp, ebx
shl ebp, 4
mov eax, dword [edx + 0x10]
mov edi, dword [eax + ebp + 4]
test edi, edi
je 0x46b4f3
cmp ebx, dword [esp + 0x24]
je 0x46b488
cmp dword [esi + 4], 0
jne 0x46b4f3
cmp byte [edi + 9], 0
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x5c], eax
mov eax, dword [edi + 4]
mov dword [esp + 0x18], eax
je 0x46b4bb
inc dword [edi + 0xc]
cmp byte [edi + 0xa], 0
jne 0x46b4bb
push edi
call fcn.004268b0
mov eax, dword [esp + 0x1c]
add esp, 4
mov eax, dword [eax]
mov ecx, dword [esp + 0x58]
push eax
mov dword [eax + 0x80], ecx
mov ecx, dword [esp + 0x60]
mov dword [eax + 0x84], ecx
call fcn.0043e7d0
add esp, 4
cmp byte [edi + 9], 0
je 0x46b4ef
add dword [edi + 0xc], 0xffffffff
jne 0x46b4ef
push edi
call fcn.00492520
add esp, 4
mov edx, dword [esp + 0x10]
sub ebp, 0x10
sub ebx, 1
jns 0x46b471
mov esi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x10]
mov ebx, 1
mov dword [esp + 0x6c], 0xffffffff
mov dword [esp + 0x70], 0xffffffff
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x46b531
push eax
call dword [0x4e6058]
mov ecx, dword [esp + 0x14]
add esp, 4
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x46b54e
push eax
push ecx
call fcn.0045ce00
mov edi, eax
add esp, 8
test edi, edi
jns 0x46b550
jmp 0x46b5c7
xor edi, edi
mov eax, dword [esp + 0x10]
add edi, edi
mov eax, dword [eax + 0x10]
mov edi, dword [eax + edi*8 + 4]
test edi, edi
je 0x46b5c7
cmp byte [edi + 9], 0
je 0x46b579
inc dword [edi + 0xc]
cmp byte [edi + 0xa], 0
jne 0x46b579
push edi
call fcn.004268b0
add esp, 4
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x10]
mov eax, dword [eax]
mov ebp, dword [ecx + 0x1b4]
mov eax, dword [eax + 0x3c]
mov ecx, dword [eax]
test ecx, ecx
jne 0x46b596
lea ebx, [ecx + 0xc]
jmp 0x46b5a8
lea edx, [esp + 0x6c]
push edx
push 0x12
push eax
mov eax, dword [ecx + 0x28]
call eax
add esp, 0xc
mov ebx, eax
mov eax, dword [esp + 0x10]
mov dword [eax + 0x1b4], ebp
cmp byte [edi + 9], 0
je 0x46b5cb
add dword [edi + 0xc], 0xffffffff
jne 0x46b5cb
push edi
call fcn.00492520
add esp, 4
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x46b5dc
push eax
call dword [0x4e6060]
add esp, 4
test ebx, ebx
jne 0x46b5ed
push dword [esp + 0x70]
push dword [esp + 0x70]
jmp 0x46de80
cmp ebx, 0xc
je 0x46de89
mov eax, dword [esp + 0x14]
inc dword [eax + 0x24]
mov dword [eax + 0xc], ebx
jmp 0x46de89
test edx, edx
jne 0x46b63a
mov ebx, dword [esp + 0x10]
movzx eax, byte [ebx + 0x52]
cdq
push edx
push eax
push esi
call fcn.00447960
push dword [esp + 0x40]
push ebx
call fcn.00455ea0
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x78]
xor ecx, esp
call fcn.004aa4f4
add esp, 0x7c
ret
mov cl, byte [edx]
mov al, cl
sub al, 0x30
cmp al, 2
ja 0x46b64c
movsx ebx, cl
sub ebx, 0x30
jmp 0x46b67e
push str.file
push edx
call fcn.00475700
add esp, 8
test eax, eax
jne 0x46b663
lea ebx, [eax + 1]
jmp 0x46b67e
push str.memory
push dword [esp + 0x24]
call fcn.00475700
add esp, 8
neg eax
sbb ebx, ebx
and ebx, 0xfffffffe
add ebx, 2
mov ecx, dword [esp + 0x14]
mov esi, dword [ecx]
movzx eax, byte [esi + 0x52]
cmp eax, ebx
je 0x46de89
push ecx
call fcn.00438b90
add esp, 4
test eax, eax
jne 0x46de89
mov byte [esi + 0x52], bl
jmp 0x46de89
test edx, edx
jne 0x46b6dc
push dword [0x4e8608]
push esi
call fcn.004479f0
push dword [esp + 0x3c]
push dword [esp + 0x1c]
call fcn.00455ea0
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x78]
xor ecx, esp
call fcn.004aa4f4
add esp, 0x7c
ret
cmp byte [edx], 0
je 0x46b726
mov ebx, dword [esp + 0x10]
lea ecx, [esp + 0x18]
push ecx
push 1
push edx
mov eax, dword [ebx]
push eax
mov eax, dword [eax + 0x20]
call eax
add esp, 0x10
test eax, eax
jne 0x46b702
cmp dword [esp + 0x18], eax
jne 0x46b726
push str.not_a_writable_directory
push dword [esp + 0x18]
call fcn.00457ce0
push dword [esp + 0x3c]
push ebx
call fcn.00455ea0
mov eax, dword [esp + 0x30]
add esp, 0x10
jmp 0x46dea1
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x52], 1
ja 0x46b73c
push dword [esp + 0x14]
call fcn.00438b90
add esp, 4
push dword [0x4e8608]
call fcn.00415630
mov eax, dword [esp + 0x24]
add esp, 4
cmp byte [eax], 0
je 0x46b765
push eax
push 0x4d2204
call fcn.00415320
mov dword [0x4e8608], eax
jmp 0x46b7db
mov dword [0x4e8608], 0
jmp 0x46de89
test edx, edx
jne 0x46b7a7
push dword [0x4e860c]
push esi
call fcn.004479f0
push dword [esp + 0x3c]
push dword [esp + 0x1c]
call fcn.00455ea0
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x78]
xor ecx, esp
call fcn.004aa4f4
add esp, 0x7c
ret
cmp byte [edx], 0
je 0x46b7f4
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x18]
push ecx
push 1
push edx
mov eax, dword [eax]
push eax
mov eax, dword [eax + 0x20]
call eax
add esp, 0x10
test eax, eax
jne 0x46b7cd
cmp dword [esp + 0x18], eax
jne 0x46b7f4
push str.not_a_writable_directory
push dword [esp + 0x18]
call fcn.00457ce0
push dword [esp + 0x3c]
push dword [esp + 0x1c]
call fcn.00455ea0
mov eax, dword [esp + 0x30]
add esp, 0x10
jmp 0x46dea1
push dword [0x4e860c]
call fcn.00415630
mov eax, dword [esp + 0x24]
add esp, 4
cmp byte [eax], 0
je 0x46b81d
push eax
push 0x4d2204
call fcn.00415320
mov dword [0x4e860c], eax
jmp 0x46b7db
mov dword [0x4e860c], 0
jmp 0x46de89
test edx, edx
jne 0x46b866
movzx eax, byte [edi + 8]
cdq
sub eax, 1
sbb edx, 0
push edx
push eax
push esi
call fcn.00447960
push dword [esp + 0x40]
push dword [esp + 0x20]
call fcn.00455ea0
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x78]
xor ecx, esp
call fcn.004aa4f4
add esp, 0x7c
ret
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x51], 0
jne 0x46b87a
push str.Safety_level_may_not_be_changed_inside_a_transaction
jmp 0x46b7d2
cmp dword [esp + 0x24], 1
je 0x46de89
push 1
push 0
push edx
call fcn.00437ba0
push dword [esp + 0x1c]
inc eax
mov ecx, 1
and eax, 7
mov byte [edi + 9], cl
cmove eax, ecx
mov byte [edi + 8], al
call fcn.00449b20
add esp, 0x10
jmp 0x46de89
test edx, edx
jne 0x46b906
push ebx
push esi
call fcn.00449e10
mov edi, dword [esp + 0x18]
add esp, 8
mov ecx, dword [ebx + 8]
mov eax, dword [ebx + 0xc]
and ecx, dword [edi + 0x20]
and eax, dword [edi + 0x24]
or ecx, eax
je 0x46b8db
mov eax, 1
jmp 0x46b8dd
xor eax, eax
push 0
push eax
push esi
call fcn.00447960
push dword [esp + 0x40]
push edi
call fcn.00455ea0
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x78]
xor ecx, esp
call fcn.004aa4f4
add esp, 0x7c
ret
mov eax, dword [esp + 0x10]
mov ebp, dword [ebx + 8]
mov edi, dword [ebx + 0xc]
cmp byte [eax + 0x51], 0
jne 0x46b91c
and ebp, 0xffffbfff
push 0
push edx
call fcn.00461ef0
mov ecx, dword [esp + 0x18]
add esp, 8
mov edx, dword [ecx + 0x20]
mov ebx, dword [ecx + 0x24]
test al, al
je 0x46b941
or edx, ebp
or ebx, edi
mov dword [ecx + 0x20], edx
mov dword [ecx + 0x24], ebx
jmp 0x46b96f
mov ecx, ebp
mov eax, edi
not ecx
not eax
and ecx, edx
and eax, ebx
mov edx, dword [esp + 0x10]
mov dword [edx + 0x20], ecx
mov dword [edx + 0x24], eax
cmp ebp, 0x80000
jne 0x46b96f
test edi, edi
jne 0x46b96f
mov dword [edx + 0x1f8], edi
mov dword [edx + 0x1fc], edi
push 0xa1
push esi
call fcn.0047a110
push dword [esp + 0x18]
call fcn.00449b20
jmp 0x46de86
test edx, edx
je 0x46de89
mov ebp, dword [esp + 0x3c]
push ebp
push dword [esp + 0x18]
call fcn.004534e0
push ebp
push dword [esp + 0x2c]
mov ebp, dword [esp + 0x24]
push 2
push ebp
call fcn.00466940
mov edi, eax
add esp, 0x18
mov dword [esp + 0x5c], edi
test edi, edi
je 0x46de89
push edi
mov dword [esp + 0x30], 0
call fcn.0046e660
push edi
push ebp
mov dword [esp + 0x28], eax
mov dword [ebp + 0x2c], 7
call fcn.00487590
movzx edx, word [edi + 0x2a]
xor eax, eax
mov ecx, dword [edi + 4]
add esp, 0xc
xor ebp, ebp
mov dword [esp + 0x30], ecx
cmp ax, dx
jge 0x46de89
mov dword [esp + 0x28], edx
nop
movzx ecx, word [ecx + 0x10]
xor edi, edi
mov dword [esp + 0x58], ecx
test cl, 0x62
je 0x46ba3b
mov eax, dword [ebx + 8]
or eax, dword [ebx + 0xc]
jne 0x46ba23
inc dword [esp + 0x2c]
movzx eax, dx
jmp 0x46bb31
test cl, 0x20
je 0x46ba2f
mov edi, 2
jmp 0x46ba3b
movzx edi, cl
and edi, 0x40
or edi, 0x20
shr edi, 5
test cl, 1
jne 0x46ba44
xor edx, edx
jmp 0x46ba7f
cmp dword [esp + 0x1c], 0
mov edx, 1
je 0x46ba7f
mov eax, dword [esp + 0x28]
cwde
mov dword [esp + 0x18], eax
cmp eax, edx
jl 0x46ba7f
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov ecx, dword [eax + 4]
movsx eax, word [ecx]
cmp eax, ebp
je 0x46ba77
inc edx
add ecx, 2
cmp edx, ebx
jle 0x46ba68
mov ebx, dword [esp + 0x48]
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 4]
test eax, eax
je 0x46ba98
cmp edi, 2
jae 0x46ba98
mov eax, dword [eax + 8]
mov dword [esp + 0x28], eax
jmp 0x46baa0
mov dword [esp + 0x28], 0
mov eax, dword [ebx + 8]
or eax, dword [ebx + 0xc]
mov dword [esp + 0x54], str.issisii
jne 0x46bab8
mov dword [esp + 0x54], str.issisi
mov eax, dword [esp + 0x30]
mov eax, dword [eax]
mov dword [esp + 0x58], eax
test cl, 4
jne 0x46bad1
mov dword [esp + 0x50], 0x4c93ac
jmp 0x46baf6
mov ecx, eax
lea eax, [ecx + 1]
mov dword [esp + 0x18], eax
lea ebx, [ebx]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x46bae0
mov eax, dword [esp + 0x58]
sub ecx, dword [esp + 0x18]
inc eax
add eax, ecx
mov dword [esp + 0x50], eax
mov ecx, dword [esp + 0x30]
xor eax, eax
push edi
push edx
push dword [esp + 0x30]
cmp byte [ecx + 0xc], al
setne al
push eax
push dword [esp + 0x60]
mov eax, dword [ecx]
push eax
mov eax, ebp
sub eax, dword [esp + 0x44]
push eax
push dword [esp + 0x70]
push 1
push esi
call fcn.00485ba0
mov eax, dword [esp + 0x84]
add esp, 0x28
movzx eax, word [eax + 0x2a]
mov ecx, dword [esp + 0x30]
inc ebp
movzx edx, ax
add ecx, 0x14
cwde
mov dword [esp + 0x30], ecx
mov dword [esp + 0x28], edx
cmp ebp, eax
jl 0x46ba00
jmp 0x46de89
test edx, edx
je 0x46de89
mov edi, dword [esp + 0x3c]
push edi
push edx
push dword [esp + 0x18]
call fcn.0045d8b0
mov ebp, eax
add esp, 0xc
test ebp, ebp
jne 0x46bbad
push edi
push dword [esp + 0x24]
mov edi, dword [esp + 0x1c]
push 2
push edi
call fcn.00466940
add esp, 0x10
test eax, eax
je 0x46de89
test byte [eax + 0x24], 0x80
je 0x46de89
push eax
call fcn.0046e660
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x46de89
jmp 0x46bbb1
mov edi, dword [esp + 0x14]
mov edx, dword [ebp + 0x18]
mov ecx, 0xffff8000
test edx, edx
je 0x46bbd8
mov eax, dword [esp + 0x10]
xor ecx, ecx
mov eax, dword [eax + 0x10]
add eax, 0xc
cmp dword [eax], edx
je 0x46bbd8
lea ecx, [ecx]
lea eax, [eax + 0x10]
inc ecx
cmp dword [eax], edx
jne 0x46bbd0
mov eax, dword [ebx + 8]
or eax, dword [ebx + 0xc]
je 0x46bbeb
movzx eax, word [ebp + 0x34]
mov edx, 6
jmp 0x46bbf4
movzx eax, word [ebp + 0x32]
mov edx, 3
mov dword [esp + 0x2c], eax
mov dword [edi + 0x2c], edx
mov eax, dword [ebp + 0xc]
push ecx
push edi
mov dword [esp + 0x20], eax
call fcn.00453560
xor edi, edi
add esp, 8
cmp word [esp + 0x2c], di
je 0x46de89
lea esp, [esp]
mov eax, dword [ebp + 4]
movzx eax, word [eax + edi*2]
movsx edx, ax
test ax, ax
jns 0x46bc33
xor eax, eax
jmp 0x46bc40
mov eax, dword [esp + 0x18]
lea ecx, [edx + edx*4]
mov eax, dword [eax + 4]
mov eax, dword [eax + ecx*4]
push eax
push edx
push edi
push str.iisX
push 1
push esi
call fcn.00485ba0
mov eax, dword [ebx + 8]
add esp, 0x18
or eax, dword [ebx + 0xc]
je 0x46bc84
movzx eax, word [ebp + 0x32]
cmp edi, eax
sbb eax, eax
neg eax
push eax
mov eax, dword [ebp + 0x20]
push dword [eax + edi*4]
mov eax, dword [ebp + 0x1c]
movzx eax, byte [eax + edi]
push eax
push str.isiX
push 4
push esi
call fcn.00485ba0
add esp, 0x18
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 0x6c]
mov edx, dword [eax + 0x2c]
cmp dword [esi + 0x70], ecx
jg 0x46bca5
push 0
push edx
push 1
push 0x51
push esi
call fcn.00437ce0
add esp, 0x14
jmp 0x46bcd8
mov ebx, dword [esp + 0x48]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x51
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x2c]
inc edi
movzx eax, cx
cmp edi, eax
jl 0x46bc20
jmp 0x46de89
test edx, edx
je 0x46de89
push dword [esp + 0x3c]
push edx
push dword [esp + 0x18]
call fcn.0045d980
mov edi, eax
add esp, 0xc
test edi, edi
je 0x46de89
mov edx, dword [edi + 0x48]
mov ecx, 0xffff8000
test edx, edx
je 0x46bd38
mov eax, dword [esp + 0x10]
xor ecx, ecx
mov eax, dword [eax + 0x10]
add eax, 0xc
cmp dword [eax], edx
je 0x46bd38
lea esp, [esp]
lea eax, [eax + 0x10]
inc ecx
cmp dword [eax], edx
jne 0x46bd30
mov eax, dword [esp + 0x14]
push ecx
push eax
mov dword [eax + 0x2c], 5
call fcn.00453560
mov edi, dword [edi + 8]
add esp, 8
xor ebx, ebx
test edi, edi
je 0x46de89
mov dword [esp + 0x6c], 0x4d4f2c
mov dword [esp + 0x70], 0x4d4f30
mov dword [esp + 0x74], 0x4d0b98
xor eax, eax
cmp dword [edi + 0x24], eax
setne al
push eax
mov eax, dword [edi + 0x38]
and eax, 3
push dword [esp + eax*4 + 0x70]
xor eax, eax
cmp byte [edi + 0x36], al
setne al
push eax
push dword [edi]
push ebx
push str.isisi
push 1
push esi
call fcn.00485ba0
mov edi, dword [edi + 0x14]
add esp, 0x20
inc ebx
test edi, edi
jne 0x46bd72
jmp 0x46de89
mov eax, dword [esp + 0x14]
xor edi, edi
mov ebp, dword [esp + 0x10]
mov dword [eax + 0x2c], 3
cmp dword [ebp + 0x14], edi
jle 0x46de89
xor ebx, ebx
lea ebx, [ebx]
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx + ebx + 4]
test eax, eax
je 0x46be08
mov eax, dword [eax + 4]
mov eax, dword [eax]
cmp byte [eax + 0xf], 0
je 0x46bded
mov eax, 0x4cf084
jmp 0x46bdf3
mov eax, dword [eax + 0xa8]
push eax
push dword [ecx + ebx]
push edi
push 0x4d4f3c
push 1
push esi
call fcn.00485ba0
add esp, 0x18
inc edi
add ebx, 0x10
cmp edi, dword [ebp + 0x14]
jl 0x46bdd0
jmp 0x46de89
mov eax, dword [esp + 0x14]
xor ebx, ebx
mov edi, dword [esp + 0x10]
mov dword [eax + 0x2c], 2
mov edi, dword [edi + 0x1a4]
test edi, edi
je 0x46de89
mov eax, dword [edi + 8]
push dword [eax]
push ebx
push 0x4d4f40
push 1
push esi
call fcn.00485ba0
mov edi, dword [edi]
add esp, 0x14
inc ebx
test edi, edi
jne 0x46be35
jmp 0x46de89
mov eax, dword [esp + 0x10]
mov ebp, 0x4e8618
mov ebx, dword [eax + 0x18]
mov eax, dword [esp + 0x14]
shr ebx, 5
and ebx, 1
mov dword [eax + 0x2c], 6
mov edi, dword [ebp]
test edi, edi
je 0x46be94
jmp 0x46be80
push ebx
push 1
push edi
push esi
call fcn.00442730
mov edi, dword [edi + 0x24]
add esp, 0x10
test edi, edi
jne 0x46be80
add ebp, 4
cmp ebp, 0x4e8674
jl 0x46be74
mov edi, dword [esp + 0x10]
mov edi, dword [edi + 0x194]
test edi, edi
je 0x46de89
push ebx
push 0
push dword [edi + 8]
push esi
call fcn.00442730
mov edi, dword [edi]
add esp, 0x10
test edi, edi
jne 0x46beb1
jmp 0x46de89
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
mov dword [eax + 0x2c], 1
mov edi, dword [edi + 0x178]
test edi, edi
je 0x46de89
jmp 0x46bef0
mov eax, dword [edi + 8]
push dword [eax + 4]
push 0x4d4ea0
push 1
push esi
call fcn.00485ba0
mov edi, dword [edi]
add esp, 0x10
test edi, edi
jne 0x46bef0
jmp 0x46de89
mov edi, 0x4cf9f8
push dword [edi]
push 0x4d4ea0
push 1
push esi
call fcn.00485ba0
add edi, 0x10
add esp, 0x10
cmp edi, 0x4cfe18
jl 0x46bf16
jmp 0x46de89
test edx, edx
je 0x46de89
push dword [esp + 0x3c]
push edx
push dword [esp + 0x18]
call fcn.0045d980
add esp, 0xc
mov dword [esp + 0x18], eax
test eax, eax
je 0x46de89
mov edi, dword [eax + 0x10]
test edi, edi
je 0x46de89
mov edx, dword [eax + 0x48]
mov ecx, 0xffff8000
test edx, edx
je 0x46bf8c
mov eax, dword [esp + 0x10]
xor ecx, ecx
mov eax, dword [eax + 0x10]
add eax, 0xc
cmp dword [eax], edx
je 0x46bf8c
lea eax, [eax + 0x10]
inc ecx
cmp dword [eax], edx
jne 0x46bf84
mov eax, dword [esp + 0x14]
xor ebp, ebp
push ecx
push eax
mov dword [esp + 0x34], ebp
mov dword [eax + 0x2c], 8
call fcn.00453560
add esp, 8
jmp 0x46bfb0
xor ebx, ebx
cmp dword [edi + 0x14], ebx
jle 0x46c06b
lea ebp, [edi + 0x24]
mov edi, edi
movzx eax, byte [edi + 0x19]
add eax, 0xfffffff9
cmp eax, 3
ja case.default.0x46bfcc
jmp dword [eax*4 + 0x46df6c]
mov ecx, str.SET_NULL
jmp 0x46bff4
mov ecx, str.SET_DEFAULT
jmp 0x46bff4
mov ecx, str.CASCADE
jmp 0x46bff4
mov ecx, str.RESTRICT
jmp 0x46bff4
mov ecx, str.NO_ACTION
movzx eax, byte [edi + 0x1a]
add eax, 0xfffffff9
cmp eax, 3
ja case.default.0x46c000
jmp dword [eax*4 + 0x46df7c]
mov eax, str.SET_NULL
jmp 0x46c028
mov eax, str.SET_DEFAULT
jmp 0x46c028
mov eax, str.CASCADE
jmp 0x46c028
mov eax, str.RESTRICT
jmp 0x46c028
mov eax, str.NO_ACTION
push str.NONE
push ecx
push eax
mov eax, dword [ebp]
push dword [ebp + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 4]
push dword [eax + ecx*4]
push dword [edi + 8]
push ebx
push dword [esp + 0x48]
push str.iissssss
push 1
push esi
call fcn.00485ba0
inc ebx
add esp, 0x2c
add ebp, 8
cmp ebx, dword [edi + 0x14]
jl 0x46bfc0
mov ebp, dword [esp + 0x2c]
mov edi, dword [edi + 4]
inc ebp
mov dword [esp + 0x2c], ebp
test edi, edi
jne 0x46bfb0
jmp 0x46de89
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x2c]
lea ecx, [eax + 1]
add eax, 5
mov dword [esp + 0x48], eax
inc eax
mov dword [edx + 0x2c], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x38]
mov eax, dword [eax + 0x10]
mov eax, dword [ecx + eax + 0xc]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x46de89
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x46c0d5
push dword [esp + 0x3c]
push ecx
push 0
push edx
call fcn.00466940
mov edx, dword [esp + 0x24]
add esp, 0x10
mov ebp, eax
xor eax, eax
jmp 0x46c0da
mov ebp, dword [eax + 8]
mov eax, dword [eax]
mov dword [esp + 0x50], eax
mov dword [esp + 0x30], ebp
test ebp, ebp
je 0x46c76c
cmp dword [ebp + 0x10], 0
je 0x46c76c
mov ecx, dword [ebp + 0x48]
mov edi, 0xffff8000
test ecx, ecx
je 0x46c118
mov eax, dword [esp + 0x10]
xor edi, edi
mov eax, dword [eax + 0x10]
add eax, 0xc
cmp dword [eax], ecx
je 0x46c118
lea eax, [eax + 0x10]
inc edi
cmp dword [eax], ecx
jne 0x46c110
mov eax, dword [esp + 0x10]
mov ecx, edi
add ecx, ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8]
mov ecx, edi
mov dword [esp + 0x3c], eax
mov eax, dword [edx + 0x74]
test eax, eax
cmovne edx, eax
mov eax, 1
shl eax, cl
mov ebx, dword [edx + 0x54]
test ebx, eax
jne 0x46c156
bts ebx, edi
mov dword [edx + 0x54], ebx
cmp edi, 1
jne 0x46c156
push edx
call fcn.00467ab0
add esp, 4
push dword [ebp]
mov ebx, dword [esp + 0x18]
push 0
push dword [ebp + 0x1c]
push edi
push ebx
call fcn.00475960
mov ecx, dword [esp + 0x5c]
add esp, 0x14
movsx eax, word [ebp + 0x2a]
inc ecx
add eax, ecx
cmp eax, dword [ebx + 0x2c]
jle 0x46c17f
mov dword [ebx + 0x2c], eax
push 0x61
push ebp
push edi
push 0
push ebx
call fcn.004677d0
push 0
push dword [ebp]
push 0
push dword [esp + 0x44]
push 0
push 0x74
push esi
call fcn.0047a280
mov ebx, dword [esp + 0x60]
add esp, 0x30
mov ebp, 1
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x2c], eax
test eax, eax
je 0x46c2de
jmp 0x46c1c0
push dword [esp + 0x3c]
push dword [eax + 8]
push dword [esp + 0x18]
call fcn.0045d980
mov ebx, eax
add esp, 0xc
test ebx, ebx
je 0x46c2c6
push dword [ebx]
mov dword [esp + 0x50], 0
push 0
push dword [ebx + 0x1c]
push edi
push dword [esp + 0x24]
call fcn.00475960
push 0
lea eax, [esp + 0x64]
push eax
push dword [esp + 0x48]
push ebx
push dword [esp + 0x38]
call fcn.0045f240
add esp, 0x28
test eax, eax
jne 0x46de89
mov eax, dword [esp + 0x4c]
test eax, eax
jne 0x46c234
push 0x61
push ebx
push edi
push ebp
push dword [esp + 0x24]
call fcn.004677d0
add esp, 0x14
jmp 0x46c2c6
mov ecx, dword [esi + 0x6c]
mov edx, dword [eax + 0x2c]
cmp dword [esi + 0x70], ecx
jg 0x46c24f
push edi
push edx
push ebp
push 0x61
push esi
call fcn.00437ce0
add esp, 0x14
jmp 0x46c276
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x61
mov dword [eax + ecx*4 + 4], ebp
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], edi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x14]
push dword [esp + 0x4c]
push eax
mov ebx, dword [eax + 8]
call fcn.00465a00
mov edx, eax
add esp, 8
test edx, edx
je 0x46c2c6
mov eax, dword [ebx]
cmp byte [eax + 0x53], 0
je 0x46c2b4
cmp dword [eax + 0x200], 0
jne 0x46c2c6
add dword [edx], 0xffffffff
jne 0x46c2c6
push edx
push dword [edx + 0xc]
call fcn.00455ea0
add esp, 8
jmp 0x46c2c6
mov eax, dword [ebx + 0x6c]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 0x68]
mov byte [eax + ecx*4 - 0x13], 0xf7
mov dword [eax + ecx*4 - 4], edx
mov eax, dword [esp + 0x2c]
inc ebp
mov eax, dword [eax + 4]
mov dword [esp + 0x2c], eax
test eax, eax
jne 0x46c1c0
mov ebx, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x28], ebp
jge 0x46c2ea
mov dword [eax + 0x28], ebp
mov edx, dword [esi + 0x6c]
mov dword [esp + 0x28], edx
cmp dword [esi + 0x70], edx
jg 0x46c30d
push 0
push 0
push 0
push 0x25
push esi
call fcn.00437ce0
add esp, 0x14
mov dword [esp + 0x28], eax
jmp 0x46c340
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x25
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ebp, dword [ebx + 0x10]
mov dword [esp + 0x38], 1
mov dword [esp + 0x44], ebp
test ebp, ebp
je 0x46c6f2
mov ecx, dword [esp + 0x10]
jmp 0x46c360
push dword [esp + 0x3c]
push dword [ebp + 8]
push ecx
call fcn.0045d980
xor edi, edi
mov dword [esp + 0x24], eax
add esp, 0xc
mov dword [esp + 0x4c], 0
mov dword [esp + 0x1c], edi
test eax, eax
je 0x46c3a2
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x50]
push ecx
push ebp
push eax
push dword [esp + 0x24]
call fcn.0045f240
mov edi, dword [esp + 0x30]
add esp, 0x14
mov eax, dword [esp + 0x14]
xor ebp, ebp
mov ecx, dword [esp + 0x44]
dec dword [eax + 0x38]
mov ebx, dword [eax + 0x38]
mov eax, dword [ecx + 0x14]
mov dword [esp + 0x2c], ebx
test eax, eax
jle 0x46c453
mov ebx, dword [esp + 0x48]
inc ebx
add ecx, 0x24
mov dword [esp + 0x1c], ecx
lea ecx, [ecx]
lea eax, [edi + ebp*4]
test edi, edi
jne 0x46c3d9
mov eax, ecx
mov eax, dword [eax]
push ebx
push eax
push 0
push dword [esp + 0x3c]
push esi
call fcn.00459050
mov ecx, dword [esi + 0x6c]
add esp, 0x14
cmp dword [esi + 0x70], ecx
jg 0x46c408
push 0
push dword [esp + 0x30]
push ebx
push 0x32
push esi
call fcn.00437ce0
add esp, 0x14
jmp 0x46c437
mov edx, dword [esp + 0x2c]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x32
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x44]
inc ebp
mov ecx, dword [esp + 0x1c]
inc ebx
add ecx, 8
mov dword [esp + 0x1c], ecx
mov eax, dword [eax + 0x14]
cmp ebp, eax
jl 0x46c3d0
mov ebx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x4c]
test ecx, ecx
je 0x46c49a
push eax
push ecx
push dword [esp + 0x18]
call fcn.00463670
mov ecx, dword [esp + 0x54]
add esp, 8
mov ebp, dword [esp + 0x48]
push eax
push ecx
push dword [ebp + 0x14]
lea eax, [ecx + 1]
push eax
push 0x5c
push esi
call fcn.0047a280
push 0
push dword [esp + 0x68]
push ebx
push dword [esp + 0x60]
push 0x1e
push esi
call fcn.0047a300
add esp, 0x34
jmp 0x46c502
cmp dword [esp + 0x18], 0
je 0x46c4fe
mov ecx, dword [esi + 0x6c]
lea edx, [ecx + 2]
cmp dword [esi + 0x70], ecx
jg 0x46c4c4
mov eax, dword [esp + 0x48]
inc eax
push eax
push edx
push dword [esp + 0x40]
push 0x1f
push esi
call fcn.00437ce0
add esp, 0x14
jmp 0x46c4f4
mov ebp, dword [esp + 0x38]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x48]
inc edx
mov dword [eax + ecx*4], 0x1f
mov dword [eax + ecx*4 + 4], ebp
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
push ebx
push esi
call fcn.00483d50
add esp, 8
mov ebp, dword [esp + 0x44]
mov edx, dword [esp + 0x30]
mov ecx, dword [esi + 0x6c]
mov eax, dword [esi + 0x70]
test byte [edx + 0x24], 0x80
jne 0x46c545
cmp eax, ecx
jg 0x46c530
mov eax, dword [esp + 0x24]
push 0
inc eax
push eax
push 0
push 0x82
push esi
call fcn.00437ce0
add esp, 0x14
jmp 0x46c598
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x82
jmp 0x46c573
cmp eax, ecx
jg 0x46c560
mov eax, dword [esp + 0x24]
push 0
inc eax
push eax
push 0
push 0x48
push esi
call fcn.00437ce0
add esp, 0x14
jmp 0x46c598
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x48
mov edx, dword [esp + 0x24]
mov ebp, dword [esp + 0x44]
inc edx
mov dword [eax + ecx*4 + 0x10], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 4], 0
mov eax, dword [esp + 0x38]
dec eax
push eax
push dword [ebp + 8]
mov eax, dword [esp + 0x2c]
push 0x4d4f58
add eax, 2
push eax
push esi
call fcn.00485ba0
mov ecx, dword [esi + 0x6c]
add esp, 0x14
cmp dword [esi + 0x70], ecx
jg 0x46c5d4
push 0
push 4
push dword [esp + 0x2c]
push 0x51
push esi
call fcn.00437ce0
add esp, 0x14
jmp 0x46c607
mov edx, dword [esp + 0x24]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x51
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 4
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0xc]
not ebx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x46c621
push ebx
push esi
push ecx
call fcn.004458c0
add esp, 0xc
jmp 0x46c62a
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x6c]
mov dword [ecx + ebx*4], eax
mov ecx, dword [esp + 0x10]
test edi, edi
je 0x46c6df
cmp dword [ecx + 0x200], 0
je 0x46c64e
push edi
push ecx
call fcn.0043b030
add esp, 8
jmp 0x46c6db
cmp edi, dword [ecx + 0x154]
jae 0x46c686
cmp edi, dword [ecx + 0x14c]
jb 0x46c66e
mov eax, dword [ecx + 0x148]
mov dword [edi], eax
mov dword [ecx + 0x148], edi
jmp 0x46c6df
cmp edi, dword [ecx + 0x150]
jb 0x46c686
mov eax, dword [ecx + 0x140]
mov dword [edi], eax
mov dword [ecx + 0x140], edi
jmp 0x46c6df
cmp dword [0x4e6008], 0
je 0x46c6d1
mov eax, dword [0x4e86d8]
test eax, eax
je 0x46c6a2
push eax
call dword [0x4e6058]
add esp, 4
push edi
call dword [0x4e6034]
sub dword [0x4e8678], eax
dec dword [0x4e869c]
push edi
call dword [0x4e602c]
mov eax, dword [0x4e86d8]
add esp, 8
test eax, eax
je 0x46c6db
push eax
call dword [0x4e6060]
jmp 0x46c6d8
push edi
call dword [0x4e602c]
add esp, 4
mov ecx, dword [esp + 0x10]
mov ebp, dword [ebp + 4]
inc dword [esp + 0x38]
mov dword [esp + 0x44], ebp
test ebp, ebp
jne 0x46c360
mov ebx, dword [esp + 0x28]
mov ecx, dword [esi + 0x6c]
lea edx, [ebx + 1]
cmp dword [esi + 0x70], ecx
jg 0x46c713
push 0
push edx
push 0
push 5
push esi
call fcn.00437ce0
add esp, 0x14
jmp 0x46c742
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 5
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
mov edx, dword [esi + 0x6c]
cmp byte [eax + 0x53], 0
je 0x46c754
mov eax, 0x4e89a4
jmp 0x46c765
test ebx, ebx
lea eax, [edx - 1]
cmovns eax, ebx
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x68]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov eax, dword [esp + 0x50]
test eax, eax
je 0x46de89
mov edx, dword [esp + 0x14]
jmp 0x46c0b3
test edx, edx
je 0x46de89
push 0
push edx
call fcn.00461ef0
movzx eax, al
push eax
push dword [esp + 0x1c]
call fcn.0046ed00
add esp, 0x10
jmp 0x46de89
mov edi, dword [esp + 0x24]
xor eax, eax
cmp dword [ebp], 0
mov ebp, 0x64
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x28], ebp
movzx eax, byte [eax]
mov dword [ebx + 0x2c], 6
mov al, byte [eax + 0x4cf118]
mov byte [esp + 0x43], al
mov eax, 0xffffffff
cmove edi, eax
mov dword [esp + 0x24], edi
test edx, edx
je 0x46c840
lea eax, [esp + 0x28]
push eax
push edx
call fcn.00462180
add esp, 8
test eax, eax
je 0x46c80e
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x2c], ebp
test ebp, ebp
jg 0x46c840
mov ebp, 0x64
jmp 0x46c83c
test edi, edi
js 0x46c822
mov eax, dword [esp + 0x10]
mov ecx, edi
add ecx, ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8]
jmp 0x46c824
xor eax, eax
push eax
push dword [esp + 0x24]
push 0
push ebx
call fcn.00466940
mov ebp, dword [esp + 0x38]
add esp, 0x10
mov dword [esp + 0x54], eax
mov dword [esp + 0x2c], ebp
push 1
lea ecx, [ebp - 1]
push ecx
push 0x45
push esi
call fcn.0047a1c0
mov eax, dword [esp + 0x20]
xor ecx, ecx
add esp, 0x10
mov dword [esp + 0x38], ecx
cmp dword [eax + 0x14], ecx
jle 0x46d61a
xor ebp, ebp
test edi, edi
js 0x46c872
cmp ecx, edi
jne 0x46d608
mov eax, dword [ebx + 0x74]
mov edx, ebx
test eax, eax
cmovne edx, eax
mov eax, 1
shl eax, cl
mov edi, dword [edx + 0x54]
test edi, eax
jne 0x46c8a2
bts edi, ecx
mov dword [edx + 0x54], edi
cmp ecx, 1
jne 0x46c8a2
push edx
call fcn.00467ab0
mov ecx, dword [esp + 0x3c]
add esp, 4
mov eax, dword [esp + 0x10]
mov edx, ecx
shl edx, 4
xor ecx, ecx
mov dword [esp + 0x18], edx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + edx + 0xc]
mov dword [esp + 0x1c], eax
mov ebx, dword [eax + 0x10]
test ebx, ebx
je 0x46d5f8
mov edx, dword [esp + 0x54]
jmp 0x46c8d0
mov edi, dword [ebx + 8]
test edx, edx
je 0x46c8db
cmp edx, edi
jne 0x46c902
test byte [edi + 0x24], 0x80
lea eax, [ecx + 1]
cmovne eax, ecx
xor edx, edx
mov ecx, eax
mov eax, dword [edi + 8]
test eax, eax
je 0x46c8f9
mov eax, dword [eax + 0x14]
inc ecx
inc edx
test eax, eax
jne 0x46c8f0
cmp edx, ebp
cmovg ebp, edx
mov edx, dword [esp + 0x54]
mov ebx, dword [ebx]
test ebx, ebx
jne 0x46c8d0
test ecx, ecx
je 0x46d5f8
test edx, edx
lea eax, [ecx + 1]
push ebx
cmove eax, ecx
lea eax, [eax*4 + 4]
push eax
push dword [esp + 0x18]
call fcn.00455fb0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x46d616
xor edx, edx
cmp dword [esp + 0x54], edx
je 0x46c945
lea edx, [ebx + 1]
mov dword [edi + 4], ebx
mov ebx, dword [esp + 0x1c]
mov ebx, dword [ebx + 0x10]
test ebx, ebx
je 0x46c98b
mov esi, dword [esp + 0x54]
mov ecx, dword [ebx + 8]
test esi, esi
je 0x46c95f
cmp esi, ecx
jne 0x46c981
test byte [ecx + 0x24], 0x80
jne 0x46c96c
mov eax, dword [ecx + 0x1c]
inc edx
mov dword [edi + edx*4], eax
mov ecx, dword [ecx + 8]
test ecx, ecx
je 0x46c981
mov eax, dword [ecx + 0x2c]
inc edx
mov dword [edi + edx*4], eax
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x46c973
mov ebx, dword [ebx]
test ebx, ebx
jne 0x46c954
mov esi, dword [esp + 0x4c]
mov eax, dword [esp + 0x14]
push 0xfffffffffffffff1
push edi
mov dword [edi], edx
mov ecx, dword [eax + 0x2c]
lea eax, [ebp + 8]
mov ebp, dword [esp + 0x1c]
cmp ecx, eax
push 1
push edx
push 2
cmovle ecx, eax
mov byte [ebp + 0x13], 0
push 0x95
push esi
mov dword [ebp + 0x2c], ecx
mov dword [ebp + 0x1c], 0
call fcn.0047a280
mov edi, dword [esi + 0x6c]
add esp, 0x1c
test edi, edi
jle 0x46c9e0
mov eax, dword [esp + 0x38]
lea ecx, [edi + edi*4]
movzx edx, al
mov eax, dword [esi + 0x68]
mov word [eax + ecx*4 - 0x12], dx
mov edi, dword [esi + 0x6c]
cmp dword [esi + 0x70], edi
jg 0x46c9fa
push 0
push 0
push 2
push 0x32
push esi
call fcn.00437ce0
add esp, 0x14
mov edi, eax
jmp 0x46ca2d
lea eax, [edi + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x32
mov dword [eax + ecx*4 + 4], 2
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
push 0xfffffffffffffff9
mov eax, dword [edx + 0x10]
push dword [eax + ecx]
push str._in_database__s__n
push edx
call fcn.00466e10
add esp, 0xc
push eax
push 0
push 3
push 0
push 0x74
push esi
call fcn.0047a280
mov ecx, dword [esi + 0x6c]
add esp, 0x1c
cmp dword [esi + 0x70], ecx
jg 0x46ca78
push 3
push 3
push 2
push 0x6f
push esi
call fcn.00437ce0
add esp, 0x14
jmp 0x46caab
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x6f
mov dword [eax + ecx*4 + 4], 2
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 3
mov dword [eax + ecx*4 + 0x10], 0
push esi
call fcn.00438a10
mov eax, dword [esi]
add esp, 4
mov edx, dword [esi + 0x6c]
cmp byte [eax + 0x53], 0
je 0x46cac6
mov eax, 0x4e89a4
jmp 0x46cad7
test edi, edi
lea eax, [edx - 1]
cmovns eax, edi
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x68]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov eax, dword [esp + 0x1c]
mov edi, dword [eax + 0x10]
mov dword [esp + 0x18], edi
test edi, edi
je 0x46d66e
lea ecx, [ecx]
mov edi, dword [edi + 8]
mov dword [esp + 0x30], edi
mov dword [esp + 0x5c], 0
mov dword [esp + 0x50], 0xffffffff
cmp dword [edi + 0x1c], 1
jb 0x46d5e6
mov eax, dword [esp + 0x54]
test eax, eax
je 0x46cb21
cmp eax, edi
jne 0x46d5e6
test byte [edi + 0x24], 0x80
jne 0x46cb31
mov dword [esp + 0x44], 0
jmp 0x46cb54
mov ebx, dword [edi + 8]
mov dword [esp + 0x44], ebx
test ebx, ebx
je 0x46cb54
lea esp, [esp]
mov eax, dword [ebx + 0x38]
and al, 3
cmp al, 2
je 0x46cb50
mov ebx, dword [ebx + 0x14]
test ebx, ebx
jne 0x46cb40
mov dword [esp + 0x44], ebx
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x4c]
push eax
push 0
push 1
push 0
push 0x61
push edi
push ebp
call fcn.004678b0
mov ecx, dword [esi + 0x6c]
add esp, 0x20
cmp dword [esi + 0x70], ecx
jg 0x46cb8b
push 0
push 7
push 0
push 0x45
push esi
call fcn.00437ce0
add esp, 0x14
jmp 0x46cbbe
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x45
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 7
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ebx, dword [edi + 8]
test ebx, ebx
je 0x46cc25
mov edi, 8
lea ebx, [ebx]
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x46cbea
push 0
push edi
push 0
push 0x45
push esi
call fcn.00437ce0
add esp, 0x14
jmp 0x46cc19
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x45
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ebx, dword [ebx + 0x14]
inc edi
test ebx, ebx
jne 0x46cbd0
mov edi, dword [esp + 0x30]
mov ecx, dword [esi + 0x6c]
mov ebx, dword [esp + 0x48]
cmp dword [esi + 0x70], ecx
jg 0x46cc43
push 0
push 0
push ebx
push 0x25
push esi
call fcn.00437ce0
add esp, 0x14
jmp 0x46cc72
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x25
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esi + 0x6c]
mov dword [esp + 0x1c], edx
cmp dword [esi + 0x70], edx
jg 0x46cc95
push 0
push 1
push 7
push 0x53
push esi
call fcn.00437ce0
add esp, 0x14
mov dword [esp + 0x1c], eax
jmp 0x46ccc8
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x53
mov dword [eax + ecx*4 + 4], 7
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
cmp byte [esp + 0x43], 0x71
je 0x46cd33
movsx edx, word [edi + 0x2c]
mov ecx, dword [esi + 0x6c]
dec edx
cmp dword [esi + 0x70], ecx
jg 0x46cced
push 3
push edx
push ebx
push 0x5a
push esi
call fcn.00437ce0
add esp, 0x14
jmp 0x46cd1c
mov ebp, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x5a
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 3
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x6c]
test eax, eax
jle 0x46cd33
lea ecx, [eax + eax*4]
mov edx, 0x80
mov eax, dword [esi + 0x68]
mov word [eax + ecx*4 - 0x12], dx
xor eax, eax
xor ebx, ebx
cmp ax, word [edi + 0x2a]
jge 0x46ce68
xor ebp, ebp
movsx eax, word [edi + 0x28]
cmp ebx, eax
je 0x46ce54
mov eax, dword [edi + 4]
cmp byte [eax + ebp + 0xc], 0
je 0x46ce54
push 3
push ebx
push dword [esp + 0x50]
push edi
push esi
call fcn.00459050
mov ecx, dword [esi + 0x6c]
add esp, 0x14
mov eax, dword [esi]
lea edx, [ecx + ecx*4]
shl edx, 2
cmp byte [eax + 0x53], 0
je 0x46cd86
mov eax, 0x4e89a4
jmp 0x46cd8e
mov eax, dword [esi + 0x68]
add eax, 0xffffffec
add eax, edx
cmp byte [eax], 0x5a
mov edi, ecx
jne 0x46cda9
test ecx, ecx
jle 0x46cda9
mov eax, dword [esi + 0x68]
mov ecx, 0x80
mov word [eax + edx - 0x12], cx
mov edi, dword [esi + 0x6c]
cmp dword [esi + 0x70], edi
jg 0x46cdc3
push 0
push 0
push 3
push 0x33
push esi
call fcn.00437ce0
add esp, 0x14
mov edi, eax
jmp 0x46cdf6
lea eax, [edi + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x33
mov dword [eax + ecx*4 + 4], 3
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx + 4]
push dword [eax + ebp]
push dword [ecx]
push str.NULL_value_in__s._s
push dword [esp + 0x1c]
call fcn.00466e10
push 0xfffffffffffffff9
push eax
push 0
push 3
push 0
push 0x74
push esi
call fcn.0047a280
push esi
call fcn.00438a10
mov eax, dword [esi]
add esp, 0x30
mov edx, dword [esi + 0x6c]
cmp byte [eax + 0x53], 0
je 0x46ce3c
mov eax, 0x4e89a4
jmp 0x46ce4d
test edi, edi
lea eax, [edx - 1]
cmovns eax, edi
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x68]
lea eax, [eax + ecx*4]
mov edi, dword [esp + 0x30]
mov dword [eax + 8], edx
movsx eax, word [edi + 0x2a]
inc ebx
add ebp, 0x14
cmp ebx, eax
jl 0x46cd43
mov ebp, dword [esp + 0x14]
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x46cf9c
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x20]
and eax, 0x200
or eax, 0
jne 0x46cf9c
push eax
push ecx
push ebx
call fcn.0045c7d0
add esp, 0xc
mov edx, eax
cmp byte [ebx + 0x53], 0
mov dword [esp + 0x28], edx
jne 0x46cf8e
mov ebp, dword [ebp + 0x38]
mov ecx, dword [esp + 0x14]
dec ebp
mov eax, dword [esp + 0x48]
inc eax
lea ebx, [ebp - 1]
mov dword [ecx + 0x34], eax
mov dword [ecx + 0x38], ebx
mov edi, dword [edx]
dec edi
mov dword [esp + 0x3c], ebx
test edi, edi
jle 0x46cef8
lea ebx, [edi*4 + 1]
mov esi, ecx
add ebx, edi
lea ebx, [edx + ebx*4]
push 0
push ebp
push dword [ebx]
push esi
call fcn.0045b9f0
dec edi
lea ebx, [ebx - 0x14]
add esp, 0x10
test edi, edi
jg 0x46ced2
mov esi, dword [esp + 0x4c]
mov ebx, dword [esp + 0x3c]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
push 0x10
push ebx
push dword [edx + 4]
push ecx
call fcn.0045bdf0
mov ecx, dword [esi + 0xc]
add esp, 0x10
not ebp
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x46cf21
push ebp
push esi
push ecx
call fcn.004458c0
add esp, 0xc
jmp 0x46cf2a
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x6c]
mov dword [ecx + ebp*4], eax
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x30]
mov dword [eax + 0x34], 0
push dword [edi]
push str.CHECK_constraint_failed_in__s
push dword [esp + 0x18]
call fcn.00466e10
push 0xfffffffffffffff9
push eax
push 0
push 3
push 0
push 0x74
push esi
call fcn.0047a280
push esi
call fcn.00438a10
mov ecx, dword [esi + 0xc]
add esp, 0x2c
not ebx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x46cf7d
push ebx
push esi
push ecx
call fcn.004458c0
add esp, 0xc
jmp 0x46cf86
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x6c]
mov dword [ecx + ebx*4], eax
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x28]
test edx, edx
je 0x46cf9c
push edx
push ebx
call fcn.004311a0
add esp, 8
mov bl, byte [esp + 0x43]
cmp bl, 0x71
je 0x46d3d2
mov ebx, dword [edi + 8]
mov dword [esp + 0x28], ebx
test ebx, ebx
je 0x46d3ce
mov ebp, dword [esp + 0x58]
mov eax, 8
mov ecx, dword [esp + 0x44]
sub eax, ebp
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x3c], ebp
dec dword [eax + 0x38]
mov edi, dword [eax + 0x38]
cmp ecx, ebx
je 0x46d3ba
push dword [esp + 0x50]
lea ecx, [esp + 0x70]
push dword [esp + 0x60]
push ecx
push 0
push 0
push dword [esp + 0x5c]
push ebx
push eax
call fcn.00461770
mov edx, dword [esp + 0x80]
add esp, 0x20
mov ecx, dword [esi + 0x6c]
add edx, ebp
mov dword [esp + 0x50], eax
mov dword [esp + 0x5c], ebx
cmp dword [esi + 0x70], ecx
jg 0x46d02b
push 0
push 1
push edx
push 0x53
push esi
call fcn.00437ce0
add esp, 0x14
jmp 0x46d05e
mov ebp, dword [esp + 0x3c]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x53
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
movzx eax, word [ebx + 0x34]
push eax
push dword [esp + 0x54]
push edi
push ebp
push 0x1e
push esi
call fcn.0047a300
push 0
push str.row
push 0
push 3
push 0
push 0x74
push esi
mov edi, eax
call fcn.0047a280
mov ecx, dword [esi + 0x6c]
add esp, 0x34
cmp dword [esi + 0x70], ecx
jg 0x46d0a6
push 3
push 3
push 7
push 0x6f
push esi
call fcn.00437ce0
add esp, 0x14
jmp 0x46d0d9
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x6f
mov dword [eax + ecx*4 + 4], 7
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 3
mov dword [eax + ecx*4 + 0x10], 0
push 0
push str._missing_from_index
push 0
push 4
push 0
push 0x74
push esi
call fcn.0047a280
mov ecx, dword [esi + 0x6c]
add esp, 0x1c
cmp dword [esi + 0x70], ecx
jg 0x46d10c
push 3
push 3
push 4
push 0x6f
push esi
call fcn.00437ce0
add esp, 0x14
jmp 0x46d13f
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x6f
mov dword [eax + ecx*4 + 4], 4
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 3
mov dword [eax + ecx*4 + 0x10], 0
push 0
push dword [ebx]
push 0
push 4
push 0
push 0x74
push esi
call fcn.0047a280
mov ecx, dword [esi + 0x6c]
add esp, 0x1c
mov dword [esp + 0x64], eax
cmp dword [esi + 0x70], ecx
jg 0x46d173
push 3
push 3
push 4
push 0x6f
push esi
call fcn.00437ce0
add esp, 0x14
jmp 0x46d1a6
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x6f
mov dword [eax + ecx*4 + 4], 4
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 3
mov dword [eax + ecx*4 + 0x10], 0
push esi
call fcn.00438a10
mov edx, dword [esi + 0x6c]
add esp, 4
mov dword [esp + 0x68], eax
test edi, edi
jns 0x46d1bd
lea edi, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x53], 0
je 0x46d1cc
mov eax, 0x4e89a4
jmp 0x46d1d5
mov eax, dword [esi + 0x68]
lea ecx, [edi + edi*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
cmp byte [ebx + 0x36], 0
je 0x46d357
mov eax, dword [esp + 0x14]
xor ecx, ecx
xor ebx, ebx
dec dword [eax + 0x38]
mov ebp, dword [eax + 0x38]
mov eax, dword [esp + 0x28]
cmp cx, word [eax + 0x32]
jae 0x46d272
mov edi, dword [esp + 0x50]
mov edi, edi
mov eax, dword [eax + 4]
movsx eax, word [eax + ebx*2]
test eax, eax
js 0x46d21c
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 4]
cmp byte [eax + ecx*4 + 0xc], 0
jne 0x46d260
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x46d235
push 0
push ebp
push edi
push 0x32
push esi
call fcn.00437ce0
add esp, 0x14
jmp 0x46d260
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x32
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], ebp
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x28]
inc ebx
inc edi
movzx eax, word [eax + 0x32]
cmp ebx, eax
mov eax, dword [esp + 0x28]
jl 0x46d200
mov edi, dword [esi + 0x6c]
mov edx, dword [esp + 0x3c]
cmp dword [esi + 0x70], edi
jg 0x46d292
push 0
push 0
push edx
push 5
push esi
call fcn.00437ce0
add esp, 0x14
mov edi, eax
jmp 0x46d2c1
lea eax, [edi + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 5
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push ebp
push esi
call fcn.00483d50
mov eax, dword [esi]
add esp, 8
mov edx, dword [esi + 0x6c]
cmp byte [eax + 0x53], 0
je 0x46d2dd
mov eax, 0x4e89a4
jmp 0x46d2ee
test edi, edi
lea eax, [edx - 1]
cmovns eax, edi
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x68]
lea eax, [eax + ecx*4]
mov ebx, dword [esp + 0x28]
mov dword [eax + 8], edx
movzx eax, word [ebx + 0x32]
push eax
push dword [esp + 0x54]
push ebp
push dword [esp + 0x48]
push 0x27
push esi
call fcn.0047a300
push 0
push str.non_unique_entry_in_index
push 0
push 3
push 0
push 0x74
push esi
call fcn.0047a280
push dword [esp + 0x98]
push esi
call fcn.00483d50
mov ecx, dword [esi + 0xc]
add esp, 0x3c
not ebp
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x46d34a
push ebp
push esi
push ecx
call fcn.004458c0
add esp, 0xc
jmp 0x46d353
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x6c]
mov dword [ecx + ebp*4], eax
mov ebp, dword [esp + 0x3c]
mov ecx, dword [esp + 0x68]
mov edx, dword [esi + 0x6c]
test ecx, ecx
jns 0x46d365
lea ecx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x53], 0
je 0x46d374
mov eax, 0x4e89a4
jmp 0x46d37d
mov eax, dword [esi + 0x68]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x14]
test edx, edx
je 0x46d3b6
mov edi, dword [eax + 8]
not edx
mov ecx, dword [edi + 0xc]
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x46d3a9
push edx
push edi
push ecx
call fcn.004458c0
add esp, 0xc
jmp 0x46d3b2
mov ecx, dword [ecx + 0x40]
mov eax, dword [edi + 0x6c]
mov dword [ecx + edx*4], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x44]
mov ebx, dword [ebx + 0x14]
inc ebp
mov dword [esp + 0x28], ebx
mov dword [esp + 0x3c], ebp
test ebx, ebx
jne 0x46cfd3
mov bl, byte [esp + 0x43]
mov ecx, dword [esi + 0x6c]
mov edi, dword [esp + 0x1c]
cmp dword [esi + 0x70], ecx
jg 0x46d3f2
push 0
push edi
push dword [esp + 0x50]
push 5
push esi
call fcn.00437ce0
add esp, 0x14
jmp 0x46d421
mov edx, dword [esp + 0x48]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 5
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
lea ecx, [edi - 1]
mov edx, dword [esi + 0x6c]
cmp byte [eax + 0x53], 0
je 0x46d436
mov eax, 0x4e89ac
jmp 0x46d449
test ecx, ecx
mov eax, edx
cmovns eax, edi
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x68]
lea eax, [eax + ecx*4]
add eax, 0xfffffff4
mov dword [eax], edx
cmp bl, 0x71
je 0x46d5e2
push 0
push str.wrong__of_entries_in_index
push 0
push 2
push 0
push 0x74
push esi
call fcn.0047a280
mov eax, dword [esp + 0x4c]
add esp, 0x1c
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x46d5e2
mov eax, dword [esp + 0x44]
mov ebp, 8
cmp eax, ebx
je 0x46d5d6
mov edx, dword [esp + 0x58]
mov ecx, dword [esi + 0x6c]
add edx, 0xfffffff8
add edx, ebp
cmp dword [esi + 0x70], ecx
jg 0x46d4af
push 0
push 3
push edx
push 0x5d
push esi
call fcn.00437ce0
add esp, 0x14
jmp 0x46d4de
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x5d
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [esi + 0x6c]
cmp dword [esi + 0x70], edi
jg 0x46d4fa
push 3
push 0
push ebp
push 0x35
push esi
call fcn.00437ce0
add esp, 0x14
mov edi, eax
jmp 0x46d529
lea eax, [edi + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x35
mov dword [eax + ecx*4 + 4], ebp
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 3
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x6c]
test eax, eax
jle 0x46d540
lea ecx, [eax + eax*4]
mov edx, 0x90
mov eax, dword [esi + 0x68]
mov word [eax + ecx*4 - 0x12], dx
push 0
push dword [ebx]
push 0
push 4
push 0
push 0x74
push esi
call fcn.0047a280
mov ecx, dword [esi + 0x6c]
add esp, 0x1c
cmp dword [esi + 0x70], ecx
jg 0x46d570
push 3
push 2
push 4
push 0x6f
push esi
call fcn.00437ce0
add esp, 0x14
jmp 0x46d5a3
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x6f
mov dword [eax + ecx*4 + 4], 4
mov dword [eax + ecx*4 + 8], 2
mov dword [eax + ecx*4 + 0xc], 3
mov dword [eax + ecx*4 + 0x10], 0
push esi
call fcn.00438a10
mov eax, dword [esi]
add esp, 4
mov edx, dword [esi + 0x6c]
cmp byte [eax + 0x53], 0
je 0x46d5be
mov eax, 0x4e89a4
jmp 0x46d5cf
test edi, edi
lea eax, [edx - 1]
cmovns eax, edi
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x68]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov eax, dword [esp + 0x44]
mov ebx, dword [ebx + 0x14]
inc ebp
test ebx, ebx
jne 0x46d484
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov edi, dword [edi]
mov dword [esp + 0x18], edi
test edi, edi
jne 0x46caf0
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x38], ecx
cmp ecx, dword [eax + 0x14]
jl 0x46c864
mov ebp, dword [esp + 0x2c]
push 0
push 0x4d0014
push 7
push esi
call fcn.0047a390
add esp, 0x10
test eax, eax
je 0x46d650
mov ecx, 1
mov byte [eax + 0x29], 0xff
sub ecx, ebp
mov dword [eax + 0x38], 0x4d5004
mov dword [eax + 8], ecx
mov byte [eax + 0x65], 0xff
mov dword [eax + 0x74], str.database_disk_image_is_malformed
mov eax, dword [esi]
mov ecx, dword [esi + 0x6c]
sub ecx, 2
cmp byte [eax + 0x53], 0
mov eax, 0x4e89a4
jne 0x46d666
mov eax, dword [esi + 0x68]
mov dword [eax + 0xc], ecx
jmp 0x46de89
mov ebx, ebp
jmp 0x46d5fc
test edx, edx
jne 0x46d6c1
mov ebx, dword [esp + 0x14]
push ebx
call fcn.0046e720
add esp, 4
test eax, eax
jne 0x46de89
mov eax, dword [ebx]
movzx eax, byte [eax + 0x50]
push dword [eax*8 + 0x4d0040]
push esi
call fcn.004479f0
push dword [esp + 0x3c]
push dword [esp + 0x1c]
call fcn.00455ea0
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x78]
xor ecx, esp
call fcn.004aa4f4
add esp, 0x7c
ret
mov eax, dword [esp + 0x10]
test byte [eax + 0x18], 0x40
jne 0x46de89
mov eax, dword [str.UTF8]
mov esi, 0x4d0040
test eax, eax
je 0x46d739
lea ecx, [ecx]
push eax
push edx
call fcn.00475700
add esp, 8
test eax, eax
je 0x46d6fe
mov eax, dword [esi + 8]
add esi, 8
mov edx, dword [esp + 0x20]
test eax, eax
jne 0x46d6e0
jmp 0x46d735
mov cl, byte [esi + 4]
mov edx, 2
movzx eax, cl
test cl, cl
mov ecx, dword [esp + 0x10]
cmovne edx, eax
mov byte [esp + 0x6c], dl
push dword [esp + 0x6c]
mov eax, dword [ecx + 0x10]
push ecx
mov eax, dword [eax + 0xc]
mov byte [eax + 0x4d], dl
call fcn.00474280
add esp, 8
cmp dword [esi], 0
jne 0x46de89
mov edx, dword [esp + 0x20]
push edx
push str.unsupported_encoding:__s
push dword [esp + 0x1c]
call fcn.00457ce0
jmp 0x46de86
mov ebp, dword [esp + 0x24]
mov edi, dword [ebx + 8]
push ebp
push esi
call fcn.004874a0
add esp, 8
cmp dword [esp + 0x20], 0
je 0x46d7c4
test byte [ebx + 5], 8
jne 0x46d7c4
push 0
push 0x4d0088
push 2
push esi
call fcn.0047a390
mov esi, eax
mov dword [esp + 0x28], 0
lea eax, [esp + 0x28]
push eax
push dword [esp + 0x34]
mov dword [esi + 4], ebp
mov dword [esi + 0x18], ebp
mov dword [esi + 0x1c], edi
call fcn.00462180
mov eax, dword [esp + 0x30]
push dword [esp + 0x4c]
mov dword [esi + 0x20], eax
mov eax, 1
push dword [esp + 0x2c]
mov word [esi + 0x16], ax
call fcn.00455ea0
mov eax, dword [esp + 0x40]
add esp, 0x20
jmp 0x46dea1
push 0
push 0x4d0034
push 3
push esi
call fcn.0047a390
add esp, 0x10
mov dword [eax + 4], ebp
mov dword [eax + 0x18], ebp
mov dword [eax + 0x20], edi
and dword [esi + 0x98], 0xffffffdf
jmp 0x46de89
mov eax, dword [esp + 0x14]
xor edi, edi
mov dword [eax + 0x2c], 1
cmp edi, 1
ja 0x46d7df
mov eax, dword [edi*4 + 0x4d0128]
inc edi
test eax, eax
je 0x46d7df
push 0
push eax
push 0
push 1
push 0
push 0x74
push esi
call fcn.0047a280
mov ecx, dword [esi + 0x6c]
add esp, 0x1c
cmp dword [esi + 0x70], ecx
jg 0x46d838
push 0
push 1
push 1
push 0x51
push esi
call fcn.00437ce0
add esp, 0x14
jmp 0x46d7f8
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x51
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x46d7f8
cmp dword [ebp], 0
mov ebx, 0xc
cmovne ebx, dword [esp + 0x24]
xor edi, edi
test edx, edx
je 0x46d8cd
push str.full
push edx
call fcn.00475700
add esp, 8
test eax, eax
jne 0x46d898
lea edi, [eax + 1]
jmp 0x46d8cd
push str.restart
push dword [esp + 0x24]
call fcn.00475700
add esp, 8
test eax, eax
jne 0x46d8b2
lea edi, [eax + 2]
jmp 0x46d8cd
push str.truncate
push dword [esp + 0x24]
call fcn.00475700
add esp, 8
mov ecx, 3
test eax, eax
cmove edi, ecx
mov eax, dword [esp + 0x14]
push 1
push edi
push ebx
push 6
push esi
mov dword [eax + 0x2c], 3
call fcn.0047a220
push 3
push 1
push 0x51
push esi
call fcn.0047a1c0
add esp, 0x24
jmp 0x46de89
test edx, edx
je 0x46d977
lea eax, [esp + 0x18]
mov dword [esp + 0x18], 0
push eax
push edx
call fcn.00462180
mov ebx, dword [esp + 0x18]
add esp, 8
mov edi, dword [esp + 0x18]
mov eax, dword [ebx + 0xc]
test edi, edi
jle 0x46d944
test eax, eax
je 0x46d932
push eax
call dword [0x4e6058]
mov eax, dword [ebx + 0xc]
add esp, 4
mov dword [ebx + 0xfc], 0x488c90
mov dword [ebx + 0x100], edi
jmp 0x46d969
test eax, eax
je 0x46d955
push eax
call dword [0x4e6058]
mov eax, dword [ebx + 0xc]
add esp, 4
mov dword [ebx + 0xfc], 0
mov dword [ebx + 0x100], 0
test eax, eax
je 0x46d977
push eax
call dword [0x4e6060]
add esp, 4
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xfc], 0x488c90
jne 0x46d992
mov eax, dword [eax + 0x100]
jmp 0x46de7d
xor eax, eax
jmp 0x46de7d
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x46d9ae
push eax
call dword [0x4e6058]
add esp, 4
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x5b], 0
jne 0x46d9c5
push eax
call fcn.004265c0
mov eax, dword [esp + 0x14]
add esp, 4
xor esi, esi
cmp dword [eax + 0x14], esi
jle 0x46d9ff
xor edi, edi
mov edi, edi
mov eax, dword [eax + 0x10]
mov eax, dword [edi + eax + 4]
test eax, eax
je 0x46d9f2
mov eax, dword [eax + 4]
mov eax, dword [eax]
mov eax, dword [eax + 0xd4]
push dword [eax + 0x2c]
call dword [0x4e609c]
add esp, 4
mov eax, dword [esp + 0x10]
inc esi
add edi, 0x10
cmp esi, dword [eax + 0x14]
jl 0x46d9d0
cmp byte [eax + 0x5b], 0
jne 0x46da12
push eax
call fcn.00426870
mov eax, dword [esp + 0x14]
add esp, 4
mov eax, dword [eax + 0xc]
test eax, eax
je 0x46de89
push eax
call dword [0x4e6060]
add esp, 4
jmp 0x46de89
test edx, edx
je 0x46da59
lea eax, [esp + 0x18]
mov dword [esp + 0x18], 0
push eax
push edx
call fcn.00462180
mov ecx, dword [esp + 0x20]
add esp, 8
mov dword [esp + 0x1c], ecx
test cl, 2
je 0x46de89
jmp 0x46da61
mov dword [esp + 0x1c], 0xfffe
cmp dword [esp + 0x3c], 0
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x24]
mov edx, dword [ebx + 0x28]
mov dword [esp + 0x28], edx
lea eax, [edx + 1]
mov dword [ebx + 0x28], eax
je 0x46da83
mov dword [esp + 0x2c], edi
jmp 0x46da97
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x14]
dec eax
mov dword [esp + 0x2c], eax
cmp edi, eax
jg 0x46dc8f
mov eax, dword [esp + 0x38]
mov ecx, edi
mov ebp, 1
rol ebp, cl
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x18], ebp
lea esp, [esp]
cmp edi, 1
je 0x46dc75
mov eax, dword [ebx + 0x74]
mov ecx, ebx
test eax, eax
cmovne ecx, eax
mov eax, dword [ecx + 0x54]
test ebp, eax
jne 0x46dad0
bts eax, edi
mov dword [ecx + 0x54], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x38]
mov eax, dword [eax + 0x10]
mov eax, dword [ecx + eax + 0xc]
mov ebx, dword [eax + 0x10]
test ebx, ebx
je 0x46dc69
lea ebx, [ebx]
mov edi, dword [ebx + 8]
test dword [edi + 0x24], 0x100
je 0x46dc57
mov ax, word [edi + 0x2e]
add ax, 0x2e
movzx ebp, ax
mov eax, dword [edi + 8]
test eax, eax
je 0x46db1f
test byte [eax + 0x38], 0x80
je 0x46db91
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x46db12
test bp, bp
je 0x46db91
push 0x61
push edi
push dword [esp + 0x2c]
push edx
push dword [esp + 0x24]
call fcn.004677d0
mov ecx, dword [esi + 0x6c]
add esp, 0x14
movsx edx, bp
mov ebp, dword [esp + 0x1c]
and ebp, 1
add ebp, 2
add ebp, ecx
cmp dword [esi + 0x70], ecx
jg 0x46db62
push edx
push ebp
push dword [esp + 0x30]
push 0x22
push esi
call fcn.00437ce0
add esp, 0x14
jmp 0x46db91
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x28]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x4c]
mov dword [eax + ecx*4], 0x22
mov dword [eax + ecx*4 + 8], ebp
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x10]
push dword [edi]
mov edx, dword [esp + 0x3c]
mov eax, dword [ecx + 0x10]
push dword [edx + eax]
push str.ANALYZE___w_.__w_
push ecx
call fcn.00466e10
add esp, 0x10
mov edx, eax
test byte [esp + 0x1c], 1
je 0x46dc3c
mov edi, dword [esp + 0x14]
mov cl, byte [edi + 0x13]
test cl, cl
jne 0x46dbcf
inc dword [edi + 0x2c]
mov edi, dword [edi + 0x2c]
jmp 0x46dbde
dec cl
movzx eax, cl
mov byte [edi + 0x13], cl
mov edi, dword [edi + eax*4 + 0x94]
push 0xfffffffffffffff9
push edx
push 0
push edi
push 0
push 0x74
push esi
call fcn.0047a280
mov ecx, dword [esi + 0x6c]
add esp, 0x1c
cmp dword [esi + 0x70], ecx
jg 0x46dc0b
push 0
push 1
push edi
push 0x51
push esi
call fcn.00437ce0
add esp, 0x14
jmp 0x46dc53
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x51
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x46dc53
push 0xfffffffffffffff9
push edx
push 0
push 0
push 0
push 0x8f
push esi
call fcn.0047a280
add esp, 0x1c
mov edx, dword [esp + 0x28]
mov ebx, dword [ebx]
test ebx, ebx
jne 0x46daf0
mov ebp, dword [esp + 0x18]
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x38]
inc edi
rol ebp, 1
add eax, 0x10
mov dword [esp + 0x24], edi
mov dword [esp + 0x38], eax
mov dword [esp + 0x18], ebp
cmp edi, ecx
jle 0x46dab0
push 0xa1
push esi
call fcn.0047a110
add esp, 8
jmp 0x46de89
test edx, edx
je 0x46dcc8
lea eax, [esp + 0x6c]
push eax
push edx
call fcn.004562d0
add esp, 8
test eax, eax
jne 0x46dcc8
push dword [esp + 0x70]
push dword [esp + 0x70]
call fcn.0041a960
add esp, 8
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.0041a960
push edx
push eax
push esi
call fcn.00447960
add esp, 0x14
jmp 0x46de89
test edx, edx
je 0x46dd31
lea eax, [esp + 0x6c]
push eax
push edx
call fcn.004562d0
add esp, 8
test eax, eax
jne 0x46dd31
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.0041aa70
mov edi, dword [esp + 0x78]
add esp, 8
mov ebx, eax
test edi, edi
jl 0x46dd31
mov ecx, dword [esp + 0x6c]
jg 0x46dd17
test ecx, ecx
je 0x46dd31
mov eax, ebx
or eax, edx
je 0x46dd27
cmp edx, edi
jl 0x46dd31
jg 0x46dd27
cmp ebx, ecx
jbe 0x46dd31
push edi
push ecx
call fcn.0041aa70
add esp, 8
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.0041aa70
push edx
push eax
push esi
call fcn.00447960
add esp, 0x14
jmp 0x46de89
test edx, edx
je 0x46dd89
lea eax, [esp + 0x6c]
push eax
push edx
call fcn.004562d0
add esp, 8
test eax, eax
jne 0x46dd89
cmp dword [esp + 0x70], eax
jl 0x46dd89
mov eax, dword [esp + 0x6c]
jg 0x46dd70
test eax, eax
jb 0x46dd89
mov ecx, 8
and eax, 0x7fffffff
cmp eax, ecx
cmova eax, ecx
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x9c], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x9c]
jmp 0x46de7d
test edx, edx
je 0x46ddcd
lea eax, [esp + 0x6c]
push eax
push edx
call fcn.004562d0
add esp, 8
test eax, eax
jne 0x46ddcd
cmp dword [esp + 0x70], eax
jl 0x46ddcd
mov eax, dword [esp + 0x6c]
jg 0x46ddbe
test eax, eax
jb 0x46ddcd
mov ecx, dword [esp + 0x10]
and eax, 0x7fffffff
mov dword [ecx + 0x1dc], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x1dc]
jmp 0x46de7d
test edx, edx
je 0x46de73
lea eax, [esp + 0x18]
mov dword [esp + 0x18], 0
push eax
push edx
call fcn.00462180
mov edi, dword [esp + 0x20]
add esp, 8
test edi, edi
jle 0x46de21
mov eax, dword [esp + 0x10]
push eax
push 0x4913d0
push eax
call fcn.00414e80
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov dword [ecx + 0x1e0], edi
jmp 0x46de77
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x46de3d
push eax
call dword [0x4e6058]
mov ecx, dword [esp + 0x14]
add esp, 4
mov eax, dword [ecx + 0xc]
mov dword [ecx + 0x1ac], 0
mov dword [ecx + 0x1b0], 0
mov dword [ecx + 0x1b4], 0
mov dword [ecx + 0x1e0], 0
test eax, eax
je 0x46de77
push eax
call dword [0x4e6060]
add esp, 4
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x1e0]
cdq
push edx
push eax
push esi
call fcn.00447960
add esp, 0xc
push dword [esp + 0x34]
push dword [esp + 0x14]
call fcn.00455ea0
mov eax, dword [esp + 0x28]
add esp, 8
test eax, eax
je 0x46deae
push eax
push dword [esp + 0x14]
call fcn.00455ea0
add esp, 8
mov ecx, dword [esp + 0x88]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004aa4f4
add esp, 0x7c
ret