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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x8c
mov eax, dword [0x521284]
xor eax, esp
mov dword [esp + 0x88], eax
mov eax, dword [ebp + 0xc]
push ebx
push esi
mov esi, dword [ecx + 8]
mov ebx, edx
mov dword [esp + 0x44], eax
mov eax, dword [ecx]
mov dword [esp + 0x14], ecx
mov dword [esp + 8], eax
mov dword [esp + 0x40], esi
push edi
mov edi, dword [ebp + 8]
mov dword [esp + 0x30], edi
test esi, esi
jne 0x4909d8
cmp dword [ecx + 0x74], esi
jne 0x4909c1
test byte [eax + 0x4c], 8
jne 0x4909c1
mov byte [ecx + 0x17], 1
call fcn.00452e00
mov esi, eax
mov dword [esp + 0x44], eax
test esi, esi
je 0x490ccd
mov ecx, dword [esp + 0x18]
or dword [esi + 0x98], 0x20
lea eax, [ecx + 0x2c]
mov dword [esp + 0x54], eax
mov edx, ebx
mov dword [eax], 2
lea eax, [esp + 0x38]
push eax
push edi
call fcn.004792d0
mov ecx, eax
add esp, 8
mov dword [esp + 0x20], ecx
test ecx, ecx
js 0x490ccd
mov edx, dword [esp + 0xc]
shl eax, 4
mov dword [esp + 0x1c], eax
mov ebx, dword [edx + 0x10]
add ebx, eax
mov dword [esp + 0x34], ebx
cmp ecx, 1
jne 0x490a38
mov ecx, dword [esp + 0x18]
call fcn.0047ff10
test eax, eax
jne 0x490ccd
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x38]
test eax, eax
je 0x490ccd
mov ecx, dword [eax + 4]
mov eax, dword [eax]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x5c], eax
test eax, eax
jne 0x490a5b
mov dword [esp + 0x60], eax
jmp 0x490a95
xor eax, eax
add ecx, 1
adc eax, eax
push eax
push ecx
mov ecx, edx
call fcn.00431de0
add esp, 8
mov dword [esp + 0x60], eax
test eax, eax
je 0x490a95
push dword [esp + 0x14]
push dword [esp + 0x60]
push eax
call fcn.004cdb30
mov eax, dword [esp + 0x20]
add esp, 0xc
mov ecx, dword [esp + 0x60]
mov byte [eax + ecx], 0
mov eax, ecx
mov ecx, eax
call fcn.00435260
cmp dword [esp + 0x60], 0
je 0x490ccd
cmp dword [ebp + 0x10], 0
je 0x490ac4
push dword [esp + 0x48]
push 0x517698
push dword [esp + 0x14]
call fcn.00434410
add esp, 0xc
jmp 0x490b39
mov eax, dword [esp + 0x48]
test eax, eax
je 0x490b37
mov ecx, dword [eax + 4]
mov eax, dword [eax]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x5c], eax
test eax, eax
jne 0x490aee
mov ecx, eax
mov dword [esp + 0x28], eax
call fcn.00435260
mov eax, dword [esp + 0x28]
jmp 0x490b3d
xor eax, eax
add ecx, 1
adc eax, eax
push eax
push ecx
mov ecx, dword [esp + 0x14]
call fcn.00431de0
add esp, 8
mov dword [esp + 0x28], eax
test eax, eax
je 0x490b2a
push dword [esp + 0x14]
push dword [esp + 0x60]
push eax
call fcn.004cdb30
mov eax, dword [esp + 0x20]
add esp, 0xc
mov ecx, dword [esp + 0x28]
mov byte [ecx + eax], 0
mov eax, ecx
mov ecx, eax
call fcn.00435260
mov eax, dword [esp + 0x28]
jmp 0x490b3d
xor eax, eax
mov dword [esp + 0x28], eax
cmp dword [edi + 4], 0
jbe 0x490b47
mov ebx, dword [ebx]
jmp 0x490b49
xor ebx, ebx
mov edi, dword [esp + 0x60]
mov edx, 0x13
mov ecx, dword [esp + 0x18]
push ebx
push eax
push edi
mov dword [esp + 0x4c], ebx
call fcn.00477d30
add esp, 0xc
test eax, eax
jne 0x490cb1
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x8c], ecx
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], edi
mov dword [esp + 0x90], eax
mov dword [ecx + 0x1ac], eax
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x10], 1
test eax, eax
je 0x490bbe
mov edi, dword [0x5220c8]
mov ecx, edi
push eax
call dword [0x4f4350]
call edi
mov ecx, dword [esp + 0x10]
add esp, 4
test ebx, ebx
je 0x490bd1
mov edx, ebx
call fcn.004791c0
mov ebx, eax
test ebx, ebx
jns 0x490bd3
jmp 0x490c44
xor ebx, ebx
mov eax, dword [esp + 0xc]
add ebx, ebx
mov eax, dword [eax + 0x10]
mov ebx, dword [eax + ebx*8 + 4]
test ebx, ebx
je 0x490c44
cmp byte [ebx + 9], 0
je 0x490bfa
inc dword [ebx + 0xc]
cmp byte [ebx + 0xa], 0
jne 0x490bfa
mov ecx, ebx
call fcn.004447d0
mov eax, dword [ebx + 4]
mov eax, dword [eax]
mov eax, dword [eax + 0x3c]
mov edi, dword [eax]
test edi, edi
jne 0x490c12
mov dword [esp + 0x10], 0xc
jmp 0x490c31
mov edi, dword [edi + 0x28]
lea ecx, [esp + 0x84]
push ecx
push 0xe
push eax
mov ecx, edi
call dword [0x4f4350]
call edi
add esp, 0xc
mov dword [esp + 0x10], eax
cmp byte [ebx + 9], 0
je 0x490c44
add dword [ebx + 0xc], 0xffffffff
jne 0x490c44
mov ecx, ebx
call fcn.004447a0
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x490c63
mov edi, dword [0x5220d0]
mov ecx, edi
push eax
call dword [0x4f4350]
call edi
add esp, 4
mov ebx, dword [esp + 0x10]
test ebx, ebx
jne 0x490ce2
lea edx, [ebx + 1]
mov ecx, esi
call fcn.00454ee0
mov eax, dword [esi]
cmp byte [eax + 0x51], bl
jne 0x490c94
mov edx, dword [esp + 0x84]
mov ecx, dword [esi + 0x74]
push 0xffffffffffffffff
push 1
push 0xffffffffffffffff
call fcn.00452320
add esp, 0xc
mov edx, dword [esp + 0x84]
mov ecx, esi
call fcn.00490620
push dword [esp + 0x84]
call fcn.00431980
add esp, 4
mov ebx, dword [esp + 0xc]
mov edx, dword [esp + 0x60]
mov ecx, ebx
call fcn.00431ae0
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0xc]
call fcn.00431ae0
mov ecx, dword [esp + 0x94]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004cc21a
mov esp, ebp
pop ebp
ret
cmp ebx, 0xc
je 0x490d1f
mov eax, dword [esp + 0x84]
test eax, eax
je 0x490d13
push eax
push 0x5142b0
push dword [esp + 0x20]
call fcn.00435200
add esp, 0xc
push dword [esp + 0x84]
call fcn.00431980
add esp, 4
mov eax, dword [esp + 0x18]
inc dword [eax + 0x24]
mov dword [eax + 0xc], ebx
jmp 0x490cb1
mov ecx, dword [esp + 0x60]
call fcn.00490750
mov ebx, eax
mov dword [esp + 0x5c], ebx
test ebx, ebx
je 0x490cb1
test byte [ebx + 5], 1
mov edi, dword [esp + 0x18]
je 0x490d4f
mov ecx, edi
call fcn.004963d0
test eax, eax
jne 0x490cb1
mov al, byte [ebx + 5]
test al, 2
jne 0x490d6b
test al, 4
je 0x490d62
mov ecx, dword [esp + 0x28]
test ecx, ecx
jne 0x490d6f
mov edx, ebx
mov ecx, esi
call fcn.00490590
mov ecx, dword [esp + 0x28]
movzx eax, byte [ebx + 4]
dec eax
cmp eax, 0x29
ja case.0x490d7d.5
jmp dword [eax*4 + 0x49500c]
mov eax, dword [esi + 0x9c]
mov ebx, dword [esp + 0x20]
bts eax, ebx
mov dword [esi + 0x9c], eax
cmp ebx, 1
je 0x490dbe
mov eax, dword [esi]
mov ecx, dword [esp + 0x1c]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx + 4]
cmp byte [eax + 9], 0
je 0x490dbe
mov eax, dword [esi + 0xa0]
bts eax, ebx
mov dword [esi + 0xa0], eax
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x490df4
mov eax, dword [esp + 0x54]
mov edx, 9
push ecx
push 0x508c3c
mov ecx, esi
add dword [eax], 2
call fcn.00453730
add esp, 8
mov dword [eax + 4], ebx
mov dword [eax + 0x18], ebx
mov dword [eax + 0x7c], 0xfffff830
jmp 0x490cb1
lea edx, [esp + 0x14]
mov dword [esp + 0x14], 0
mov ecx, eax
call fcn.00435cf0
mov ebx, dword [esp + 0x14]
test ebx, ebx
jns 0x490e20
cmp ebx, 0x80000000
jne 0x490e1e
mov ebx, SysReAllocString
jmp 0x490e20
neg ebx
mov eax, dword [edi + 0x74]
test eax, eax
mov ecx, dword [esp + 0x20]
cmovne edi, eax
mov eax, 1
shl eax, cl
mov edx, dword [edi + 0x54]
test edx, eax
jne 0x490e50
bts edx, ecx
mov dword [edi + 0x54], edx
cmp ecx, 1
jne 0x490e50
mov ecx, edi
call fcn.0047ff10
mov ecx, dword [esp + 0x20]
mov eax, dword [edi + 0x50]
mov edx, dword [esp + 0x20]
bts eax, ecx
mov dword [edi + 0x50], eax
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x490e7a
push ebx
push 3
push edx
mov edx, 0x5e
mov ecx, esi
call fcn.00453030
add esp, 0xc
jmp 0x490ea5
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x5e
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], ebx
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [esp + 0x34]
mov eax, dword [edi + 0xc]
mov dword [eax + 0x50], ebx
mov edx, dword [edi + 0xc]
mov ecx, dword [edi + 4]
mov edx, dword [edx + 0x50]
call fcn.00446df0
jmp 0x490cb1
mov edi, dword [esp + 0x34]
mov edi, dword [edi + 4]
test ecx, ecx
jne 0x490f5c
test edi, edi
je 0x490edd
mov eax, dword [edi + 4]
mov eax, dword [eax + 0x24]
jmp 0x490edf
xor eax, eax
cdq
mov dword [esp + 0x74], edx
mov dword [esp + 0x70], eax
lea eax, [esp + 0x70]
push 0xfffffffffffffff2
push eax
push ecx
push 1
push ecx
mov edx, 0x46
mov ecx, esi
call fcn.00453370
add esp, 0x14
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x490f24
push 0
push 1
push 1
mov edx, 0x50
mov ecx, esi
call fcn.00453030
add esp, 0xc
jmp 0x490cb1
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x50
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 0x490cb1
lea edx, [esp + 0x14]
mov dword [esp + 0x14], 0
call fcn.00435cf0
mov eax, dword [esp + 0xc]
mov ecx, edi
mov edx, dword [esp + 0x14]
push 0
push 0
mov dword [eax + 0x5c], edx
call fcn.00447000
add esp, 8
cmp eax, 7
jne 0x490cb1
mov edx, dword [esp + 0xc]
cmp byte [edx + 0x51], 0
jne 0x495004
cmp byte [edx + 0x52], 0
jne 0x495004
cmp dword [edx + 0xbc], 0
mov byte [edx + 0x51], 1
jle 0x490fbe
mov dword [edx + 0x110], 1
inc dword [edx + 0x118]
xor eax, eax
mov word [edx + 0x11c], ax
mov ebx, edx
mov eax, dword [edx + 0xf4]
test eax, eax
je 0x490cb5
mov dword [eax + 0xc], 7
jmp 0x490cb5
mov edi, dword [esp + 0x34]
or ecx, 0xffffffff
mov eax, dword [esp + 0x28]
mov dword [esp + 0x10], ecx
mov ebx, dword [edi + 4]
mov dword [esp + 0x38], ebx
test eax, eax
je 0x49105d
mov edi, str.fast
mov edx, eax
sub edi, eax
nop dword [eax]
movzx ecx, byte [edx]
movzx eax, byte [edi + edx]
cmp ecx, eax
jne 0x491026
test ecx, ecx
jne 0x491038
mov ecx, 2
jmp 0x491055
movzx eax, byte [eax + 0x509590]
movzx ecx, byte [ecx + 0x509590]
sub ecx, eax
jne 0x49103b
inc edx
jmp 0x491010
mov ecx, dword [esp + 0x28]
mov edx, 1
push 0
call fcn.004904e0
xor ecx, ecx
add esp, 4
test al, al
setne cl
mov dword [esp + 0x44], esi
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x30]
mov edi, 0xfff3
cmp dword [eax + 4], 0
jne 0x491104
test ecx, ecx
js 0x491104
mov eax, dword [esp + 0xc]
xor edx, edx
mov dword [esp + 0x2c], edx
cmp dword [eax + 0x14], edx
jle 0x491104
mov esi, dword [esp + 0x10]
xor ebx, ebx
nop dword [eax]
mov eax, dword [eax + 0x10]
mov edi, dword [eax + ebx + 4]
test edi, edi
je 0x4910e6
cmp byte [edi + 9], 0
je 0x4910b5
inc dword [edi + 0xc]
cmp byte [edi + 0xa], 0
jne 0x4910b5
mov ecx, edi
call fcn.004447d0
mov edx, dword [esp + 0x2c]
mov eax, dword [edi + 4]
mov ecx, 0xfff3
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 0x4910e6
add dword [edi + 0xc], 0xffffffff
jne 0x4910e6
mov ecx, edi
call fcn.004447a0
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0xc]
inc edx
add ebx, 0x10
mov dword [esp + 0x2c], edx
cmp edx, dword [eax + 0x14]
jl 0x491090
mov esi, dword [esp + 0x44]
mov edi, 0xfff3
mov ebx, dword [esp + 0x38]
test ebx, ebx
jne 0x491117
xor edi, edi
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], edi
jmp 0x490ee8
cmp byte [ebx + 9], 0
je 0x49112d
inc dword [ebx + 0xc]
cmp byte [ebx + 0xa], 0
jne 0x49112d
mov ecx, ebx
call fcn.004447d0
mov edx, dword [esp + 0x10]
test edx, edx
js 0x49114a
mov eax, dword [ebx + 4]
and word [eax + 0x18], di
lea eax, [edx*4]
mov ecx, dword [ebx + 4]
or word [ecx + 0x18], ax
mov eax, dword [ebx + 4]
movzx edi, word [eax + 0x18]
shr edi, 2
and edi, 3
cmp byte [ebx + 9], 0
je 0x49116a
add dword [ebx + 0xc], 0xffffffff
jne 0x49116a
mov ecx, ebx
call fcn.004447a0
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], 0
jmp 0x490ee8
mov eax, dword [edi + 0x74]
test eax, eax
mov ebx, dword [esp + 0x20]
mov ecx, ebx
cmovne edi, eax
mov eax, 1
shl eax, cl
mov edx, dword [edi + 0x54]
test edx, eax
jne 0x4911a9
bts edx, ebx
mov dword [edi + 0x54], edx
cmp ebx, 1
jne 0x4911a9
mov ecx, edi
call fcn.0047ff10
mov eax, dword [esp + 0x54]
inc dword [eax]
mov edi, dword [eax]
mov eax, dword [esp + 0x60]
movzx eax, byte [eax]
cmp byte [eax + 0x509590], 0x70
jne 0x4911fe
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x4911e1
push 0
push edi
push ebx
mov edx, 0xa8
mov ecx, esi
call fcn.00453030
add esp, 0xc
jmp 0x491277
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0xa8
mov dword [eax + ecx*4 + 0xc], 0
jmp 0x491267
mov eax, dword [esp + 0x28]
xor edx, edx
mov dword [esp + 0x14], edx
test eax, eax
je 0x491230
lea edx, [esp + 0x14]
mov ecx, eax
call fcn.00435cf0
mov edx, dword [esp + 0x14]
test edx, edx
jns 0x491230
cmp edx, 0x80000000
jne 0x49122e
mov edx, SysReAllocString
jmp 0x491230
neg edx
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x49124c
push edx
push edi
push ebx
mov edx, 0xa9
mov ecx, esi
call fcn.00453030
add esp, 0xc
jmp 0x491277
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x44]
mov dword [eax + ecx*4], 0xa9
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 4], ebx
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x491298
push 0
push 1
push edi
mov edx, 0x50
mov ecx, esi
call fcn.00453030
add esp, 0xc
jmp 0x490cb1
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x50
mov dword [eax + ecx*4 + 4], edi
jmp 0x490f3f
test ecx, ecx
je 0x49131f
mov edx, str.exclusive
mov edi, ecx
sub edi, edx
movzx ecx, byte [edx + edi]
movzx eax, byte [edx]
cmp ecx, eax
jne 0x4912d7
test ecx, ecx
jne 0x4912e9
mov ecx, 1
jmp 0x491322
movzx eax, byte [eax + 0x509590]
movzx ecx, byte [ecx + 0x509590]
sub ecx, eax
jne 0x4912ec
inc edx
jmp 0x4912c1
mov edx, dword [esp + 0x28]
mov ebx, str.normal
sub ebx, edx
movzx eax, byte [edx]
movzx edi, byte [edx + ebx]
cmp eax, edi
jne 0x49130a
test eax, eax
jne 0x49131c
xor ecx, ecx
jmp 0x491322
movzx ecx, byte [eax + 0x509590]
movzx eax, byte [edi + 0x509590]
sub ecx, eax
jne 0x49131f
inc edx
jmp 0x4912f7
or ecx, 0xffffffff
mov eax, dword [esp + 0x30]
cmp dword [eax + 4], 0
jne 0x49138d
mov eax, dword [esp + 0xc]
cmp ecx, 0xffffffff
jne 0x49133d
mov al, byte [eax + 0x53]
jmp 0x4913bb
mov edx, 2
cmp dword [eax + 0x14], edx
jle 0x49138a
mov edi, 0x20
mov esi, eax
nop
mov eax, dword [esi + 0x10]
mov eax, dword [eax + edi + 4]
mov eax, dword [eax + 4]
mov eax, dword [eax]
test ecx, ecx
js 0x491379
cmp byte [eax + 0xc], 0
jne 0x491379
mov ebx, dword [eax + 0xd8]
test ebx, ebx
je 0x491376
cmp byte [ebx + 0x2b], 2
je 0x491379
mov byte [eax + 4], cl
inc edx
add edi, 0x10
cmp edx, dword [esi + 0x14]
jl 0x491350
mov esi, dword [esp + 0x44]
mov eax, dword [esp + 0xc]
mov byte [eax + 0x53], cl
mov edi, dword [esp + 0x34]
mov dl, cl
mov eax, dword [edi + 4]
mov eax, dword [eax + 4]
mov eax, dword [eax]
test ecx, ecx
js 0x4913b8
cmp byte [eax + 0xc], 0
jne 0x4913b8
mov ecx, dword [eax + 0xd8]
test ecx, ecx
je 0x4913b5
cmp byte [ecx + 0x2b], 2
je 0x4913b8
mov byte [eax + 4], dl
mov al, byte [eax + 4]
cmp al, 1
mov ecx, str.exclusive
mov edx, str.normal
cmove edx, ecx
mov ecx, esi
call fcn.00490620
jmp 0x490cb1
test ecx, ecx
je 0x49142c
mov edi, ecx
lea ecx, [edi + 1]
nop
mov al, byte [edi]
inc edi
test al, al
jne 0x4913e0
sub edi, ecx
and edi, 0x3fffffff
xor ebx, ebx
cmp ebx, 6
je 0x49142c
mov eax, dword [ebx*4 + 0x5085b4]
test eax, eax
je 0x49142c
push edi
push eax
push dword [esp + 0x30]
call fcn.00435340
add esp, 0xc
test eax, eax
je 0x491416
inc ebx
jmp 0x4913f1
cmp ebx, 2
jne 0x49144a
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x20]
and eax, 0x10000000
or eax, 0
je 0x49144f
or ebx, 0xffffffff
mov ecx, dword [esp + 0x30]
cmp dword [ecx + 4], 0
jne 0x491453
mov dword [esp + 0x20], 0
mov dword [ecx + 4], 1
jmp 0x491453
cmp ebx, 0xffffffff
je 0x49142f
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0xc]
mov edi, dword [eax + 0x14]
sub edi, 1
js 0x490f02
mov edx, edi
shl edx, 4
mov dword [esp + 0x14], edx
nop dword [eax]
mov eax, dword [eax + 0x10]
cmp dword [eax + edx + 4], 0
je 0x491510
cmp edi, dword [esp + 0x20]
je 0x49148e
cmp dword [ecx + 4], 0
jne 0x491510
mov eax, dword [esi + 0x9c]
bts eax, edi
mov dword [esi + 0x9c], eax
cmp edi, 1
je 0x4914c0
mov eax, dword [esi]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + edx + 4]
cmp byte [eax + 9], 0
je 0x4914c0
mov eax, dword [esi + 0xa0]
bts eax, edi
mov dword [esi + 0xa0], eax
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x4914e1
push ebx
push 1
push edi
mov edx, 7
mov ecx, esi
call fcn.00453030
mov edx, dword [esp + 0x20]
add esp, 0xc
jmp 0x491510
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x44]
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], ebx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x30]
sub edx, 0x10
sub edi, 1
mov eax, dword [esp + 0xc]
mov dword [esp + 0x14], edx
jns 0x491470
jmp 0x490f02
mov edi, dword [esp + 0x34]
mov dword [esp + 0x70], 0xfffffffe
mov dword [esp + 0x74], 0xffffffff
mov eax, dword [edi + 4]
mov eax, dword [eax + 4]
mov edi, dword [eax]
test ecx, ecx
je 0x491591
lea edx, [esp + 0x70]
call fcn.00435be0
mov ecx, dword [esp + 0x74]
cmp ecx, 0xffffffff
jg 0x491571
jl 0x49156a
mov eax, dword [esp + 0x70]
cmp eax, 0xffffffff
jae 0x491575
or eax, 0xffffffff
or ecx, eax
jmp 0x491575
mov eax, dword [esp + 0x70]
mov edx, dword [edi + 0xd8]
mov dword [edi + 0xa0], eax
mov dword [edi + 0xa4], ecx
test edx, edx
je 0x491591
mov dword [edx + 0x10], eax
mov dword [edx + 0x14], ecx
mov ecx, dword [edi + 0xa4]
mov eax, dword [edi + 0xa0]
mov dword [esp + 0x74], ecx
jmp 0x490ee4
mov edi, dword [esp + 0x34]
mov ebx, dword [edi + 4]
test ecx, ecx
jne 0x4915f3
mov cl, byte [ebx + 9]
test cl, cl
je 0x4915cb
inc dword [ebx + 0xc]
cmp byte [ebx + 0xa], 0
jne 0x4915cb
mov ecx, ebx
call fcn.004447d0
mov cl, byte [ebx + 9]
mov edx, dword [ebx + 4]
cmp byte [edx + 0x11], 0
jne 0x4915dd
xor edi, edi
test cl, cl
jmp 0x49115b
xor eax, eax
cmp byte [edx + 0x12], al
setne al
inc eax
test cl, cl
mov dword [esp + 0x38], eax
mov edi, eax
jmp 0x49115b
mov edx, ecx
mov ecx, str.none
sub ecx, dword [esp + 0x28]
mov dword [esp + 0x38], ecx
movzx eax, byte [edx]
movzx edi, byte [edx + ecx]
cmp eax, edi
jne 0x491616
test eax, eax
jne 0x49162c
jmp 0x4916d4
movzx ecx, byte [eax + 0x509590]
movzx eax, byte [edi + 0x509590]
sub ecx, eax
jne 0x49162f
mov ecx, dword [esp + 0x38]
inc edx
jmp 0x491602
mov edx, dword [esp + 0x28]
mov ecx, str.full
sub ecx, edx
mov dword [esp + 0x38], ecx
nop
movzx eax, byte [edx]
movzx edi, byte [edx + ecx]
cmp eax, edi
jne 0x491659
test eax, eax
jne 0x49166f
mov eax, 1
jmp 0x4916d4
movzx ecx, byte [eax + 0x509590]
movzx eax, byte [edi + 0x509590]
sub ecx, eax
jne 0x491672
mov ecx, dword [esp + 0x38]
inc edx
jmp 0x491640
mov edx, dword [esp + 0x28]
mov ecx, str.incremental
sub ecx, edx
mov dword [esp + 0x38], ecx
movzx eax, byte [edx]
movzx edi, byte [edx + ecx]
cmp eax, edi
jne 0x491697
test eax, eax
jne 0x4916ad
mov eax, 2
jmp 0x4916d4
movzx ecx, byte [eax + 0x509590]
movzx eax, byte [edi + 0x509590]
sub ecx, eax
jne 0x4916b0
mov ecx, dword [esp + 0x38]
inc edx
jmp 0x491681
mov ecx, dword [esp + 0x28]
lea edx, [esp + 0x14]
mov dword [esp + 0x14], 0
call fcn.00435cf0
xor ecx, ecx
cmp dword [esp + 0x14], 2
cmovbe ecx, dword [esp + 0x14]
movzx eax, cl
mov ecx, dword [esp + 0xc]
mov edx, eax
mov dword [esp + 0x10], eax
mov byte [ecx + 0x54], al
mov ecx, ebx
call fcn.00447120
test eax, eax
jne 0x490cb1
mov ebx, dword [esp + 0x10]
cmp ebx, 1
je 0x491702
cmp ebx, 2
jne 0x490cb1
mov edi, dword [esi + 0x6c]
mov edx, 5
push ecx
push 0x50bf8c
mov ecx, esi
call fcn.00453730
mov edx, dword [esp + 0x28]
lea ecx, [edi + 4]
add esp, 8
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
mov eax, dword [esi + 0x9c]
bts eax, edx
mov dword [esi + 0x9c], eax
cmp edx, 1
je 0x490cb1
mov eax, dword [esi]
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0xc]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx + 4]
cmp byte [eax + 9], 0
je 0x490cb5
mov eax, dword [esi + 0xa0]
bts eax, edx
mov dword [esi + 0xa0], eax
jmp 0x490cb5
test ecx, ecx
je 0x491793
lea edx, [esp + 0x38]
call fcn.00435cf0
test eax, eax
je 0x491793
mov edi, dword [esp + 0x38]
test edi, edi
jg 0x491798
mov edi, SysReAllocString
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
mov eax, dword [ebx + 0x74]
test eax, eax
cmovne ebx, eax
mov eax, 1
shl eax, cl
mov edx, dword [ebx + 0x54]
test edx, eax
jne 0x4917cc
bts edx, ecx
mov dword [ebx + 0x54], edx
cmp ecx, 1
jne 0x4917cc
mov ecx, ebx
call fcn.0047ff10
mov ecx, dword [esp + 0x20]
mov eax, dword [ebx + 0x50]
bts eax, ecx
mov dword [ebx + 0x50], eax
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x4917f3
push 0
push 1
push edi
mov edx, 0x45
mov ecx, esi
call fcn.00453030
add esp, 0xc
jmp 0x491822
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], edi
mov dword [eax + ecx*4 + 8], 1
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 0x491845
push 0
push 0
push dword [esp + 0x28]
mov edx, 0x3c
mov ecx, esi
call fcn.00453030
add esp, 0xc
mov edi, eax
jmp 0x491878
mov edx, dword [esp + 0x20]
lea eax, [edi + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x3c
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
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x491897
push 0
push 0
push 1
mov edx, 0x50
mov ecx, esi
call fcn.00453030
add esp, 0xc
jmp 0x4918ca
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x50
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x4918e9
push 0
push 0xffffffffffffffff
push 1
mov edx, 0x52
mov ecx, esi
call fcn.00453030
add esp, 0xc
jmp 0x49191c
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x52
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], 0xffffffff
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x49193a
push 0
push edi
push 1
mov edx, 0x30
mov ecx, esi
call fcn.00453030
add esp, 0xc
jmp 0x491969
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x30
mov dword [eax + ecx*4 + 4], 1
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]
mov edx, dword [esi + 0x6c]
cmp byte [eax + 0x51], 0
je 0x491981
mov eax, 0x525494
mov dword [eax + 8], edx
jmp 0x490cb1
test edi, edi
lea eax, [edx - 1]
cmovns eax, edi
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 8], edx
lea eax, [eax + ecx*4]
jmp 0x490cb1
test ecx, ecx
jne 0x4919ae
mov edi, dword [esp + 0x34]
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0x50]
jmp 0x490edf
lea edx, [esp + 0x14]
mov dword [esp + 0x14], 0
call fcn.00435cf0
mov edi, dword [esp + 0x34]
mov eax, dword [esp + 0x14]
mov ecx, dword [edi + 0xc]
mov dword [ecx + 0x50], eax
mov edx, dword [edi + 0xc]
mov ecx, dword [edi + 4]
mov edx, dword [edx + 0x50]
call fcn.00446df0
jmp 0x490cb1
test ecx, ecx
jne 0x491a87
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x20]
and eax, 0x20
or eax, ecx
jne 0x4919ff
xor edi, edi
mov eax, edi
jmp 0x490edf
mov edi, dword [esp + 0x34]
mov ebx, dword [edi + 4]
mov cl, byte [ebx + 9]
mov edi, dword [ebx + 4]
mov byte [esp + 0x27], cl
test cl, cl
je 0x491a2f
inc dword [ebx + 0xc]
cmp byte [ebx + 0xa], 0
mov byte [esp + 0x27], cl
jne 0x491a2f
mov ecx, ebx
call fcn.004447d0
mov al, byte [ebx + 9]
mov byte [esp + 0x27], al
mov eax, dword [edi]
mov ecx, dword [eax + 0xd4]
mov dword [esp + 0x14], ecx
mov eax, dword [ecx + 0x10]
test eax, eax
jns 0x491a64
mov eax, dword [ecx + 0x1c]
add eax, dword [ecx + 0x18]
cdq
mov edi, eax
mov eax, ecx
push edx
mov edx, 0xfffffc00
push edi
mov eax, dword [eax + 0x10]
imul edx
push edx
push eax
call fcn.004ccaa0
mov ecx, dword [esp + 0x14]
mov edi, dword [ecx + 0x14]
cmp eax, edi
cmovge edi, eax
cmp byte [esp + 0x27], 0
je 0x491a80
add dword [ebx + 0xc], 0xffffffff
jne 0x491a80
mov ecx, ebx
call fcn.004447a0
mov eax, edi
jmp 0x490edf
lea edx, [esp + 0x14]
mov dword [esp + 0x14], 1
call fcn.00435cf0
mov esi, dword [esp + 0x14]
test eax, eax
je 0x491aae
mov edi, dword [esp + 0x34]
mov edx, esi
mov ecx, dword [edi + 4]
call fcn.00446e80
mov ecx, dword [esp + 0x28]
test esi, esi
mov edx, 1
setne al
movzx eax, al
push eax
call fcn.004904e0
mov edx, dword [esp + 0x10]
add esp, 4
mov ecx, dword [edx + 0x20]
mov edx, dword [edx + 0x24]
test al, al
je 0x491adb
or ecx, 0x20
jmp 0x491ade
and ecx, 0xffffffdf
mov eax, dword [esp + 0xc]
mov dword [eax + 0x20], ecx
mov ecx, eax
mov dword [eax + 0x24], edx
call fcn.00490700
jmp 0x490cb1
test ecx, ecx
je 0x491bee
lea edx, [esp + 0x70]
call fcn.00435be0
cmp dword [esp + 0x74], 0
jg 0x491b28
jl 0x491b15
cmp dword [esp + 0x70], 0
jae 0x491b28
mov eax, dword [0x522120]
mov ecx, dword [0x522124]
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0xc]
cmp dword [ecx + 4], 0
jne 0x491b48
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
mov dword [edx + 0x34], ecx
mov ecx, dword [esp + 0x30]
mov dword [edx + 0x30], eax
mov ebx, dword [edx + 0x14]
sub ebx, 1
js 0x491bee
mov esi, ebx
shl esi, 4
nop dword [eax]
mov eax, dword [edx + 0x10]
mov edi, dword [esi + eax + 4]
test edi, edi
je 0x491bda
cmp ebx, dword [esp + 0x20]
je 0x491b77
cmp dword [ecx + 4], 0
jne 0x491bda
cmp byte [edi + 9], 0
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
mov dword [esp + 0x6c], ecx
mov ecx, dword [edi + 4]
mov dword [esp + 0x38], eax
mov dword [esp + 0x5c], ecx
je 0x491bac
inc dword [edi + 0xc]
cmp byte [edi + 0xa], 0
jne 0x491bac
mov ecx, edi
call fcn.004447d0
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x5c]
mov ecx, dword [ecx]
mov dword [ecx + 0x80], eax
mov eax, dword [esp + 0x6c]
mov dword [ecx + 0x84], eax
call fcn.0043e580
cmp byte [edi + 9], 0
je 0x491bd6
add dword [edi + 0xc], 0xffffffff
jne 0x491bd6
mov ecx, edi
call fcn.004447a0
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x30]
sub esi, 0x10
sub ebx, 1
jns 0x491b60
mov esi, dword [esp + 0x44]
mov ecx, dword [esp + 0xc]
mov ebx, 1
mov dword [esp + 0x70], 0xffffffff
mov dword [esp + 0x74], 0xffffffff
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x491c26
mov edi, dword [0x5220c8]
mov ecx, edi
push eax
call dword [0x4f4350]
call edi
mov ecx, dword [esp + 0x10]
add esp, 4
mov eax, dword [esp + 0x40]
test eax, eax
je 0x491c40
mov edx, eax
call fcn.004791c0
mov ecx, eax
test ecx, ecx
jns 0x491c42
jmp 0x491cb8
xor ecx, ecx
mov eax, dword [esp + 0xc]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov ebx, dword [eax + ecx*8 + 4]
test ebx, ebx
je 0x491cf4
cmp byte [ebx + 9], 0
je 0x491c6d
inc dword [ebx + 0xc]
cmp byte [ebx + 0xa], 0
jne 0x491c6d
mov ecx, ebx
call fcn.004447d0
mov eax, dword [ebx + 4]
mov eax, dword [eax]
mov eax, dword [eax + 0x3c]
mov edi, dword [eax]
test edi, edi
jne 0x491c85
mov dword [esp + 0x10], 0xc
jmp 0x491ca1
mov edi, dword [edi + 0x28]
lea ecx, [esp + 0x70]
push ecx
push 0x12
push eax
mov ecx, edi
call dword [0x4f4350]
call edi
add esp, 0xc
mov dword [esp + 0x10], eax
cmp byte [ebx + 9], 0
je 0x491cb4
add dword [ebx + 0xc], 0xffffffff
jne 0x491cb4
mov ecx, ebx
call fcn.004447a0
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x491cd7
mov edi, dword [0x5220d0]
mov ecx, edi
push eax
call dword [0x4f4350]
call edi
add esp, 4
test ebx, ebx
jne 0x491cfb
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x38], eax
lea eax, [esp + 0x38]
mov dword [esp + 0x3c], ecx
jmp 0x490eec
mov ebx, 1
jmp 0x491cb8
cmp ebx, 0xc
je 0x490cb1
mov eax, dword [esp + 0x18]
inc dword [eax + 0x24]
mov dword [eax + 0xc], ebx
jmp 0x490cb1
test ecx, ecx
jne 0x491d24
mov eax, dword [esp + 0xc]
movzx eax, byte [eax + 0x50]
jmp 0x490edf
mov cl, byte [ecx]
mov al, cl
sub al, 0x30
cmp al, 2
ja 0x491d36
movsx ebx, cl
sub ebx, 0x30
jmp 0x491dab
mov ebx, dword [esp + 0x28]
mov esi, str.file
mov edx, ebx
movzx edi, byte [esi]
movzx eax, cl
cmp eax, edi
jne 0x491d56
test cl, cl
jne 0x491d68
mov ebx, 1
jmp 0x491dab
movzx ecx, byte [eax + 0x509590]
movzx eax, byte [edi + 0x509590]
sub ecx, eax
jne 0x491d6f
mov cl, byte [edx + 1]
inc edx
inc esi
jmp 0x491d41
mov edi, str.memory
mov edx, ebx
sub edi, ebx
nop dword [eax + eax]
movzx eax, byte [edx]
movzx esi, byte [edx + edi]
cmp eax, esi
jne 0x491d94
test eax, eax
jne 0x491da6
lea ebx, [eax + 2]
jmp 0x491dab
movzx ecx, byte [eax + 0x509590]
movzx eax, byte [esi + 0x509590]
sub ecx, eax
jne 0x491da9
inc edx
jmp 0x491d80
xor ebx, ebx
mov edx, dword [esp + 0x18]
mov esi, dword [edx]
movzx eax, byte [esi + 0x50]
cmp eax, ebx
je 0x490cb1
mov eax, dword [esi + 0x10]
mov ecx, dword [eax + 0x14]
test ecx, ecx
je 0x491de9
cmp byte [esi + 0x4f], 0
je 0x491df1
cmp byte [ecx + 8], 0
jne 0x491df1
call fcn.00446c30
mov eax, dword [esi + 0x10]
mov ecx, esi
mov dword [eax + 0x14], 0
call fcn.00478ca0
mov byte [esi + 0x50], bl
jmp 0x490cb1
push str.temporary_storage_cannot_be_changed_from_within_a_transaction
push edx
call fcn.00435200
add esp, 8
jmp 0x490cb1
test ecx, ecx
jne 0x491e1a
mov edx, dword [0x524fc0]
mov ecx, esi
call fcn.00490620
jmp 0x490cb1
cmp byte [ecx], 0
je 0x491e5b
mov eax, dword [esp + 0xc]
mov esi, dword [eax]
lea eax, [esp + 0x38]
push eax
push 1
push ecx
push esi
mov esi, dword [esi + 0x20]
mov ecx, esi
call dword [0x4f4350]
call esi
add esp, 0x10
test eax, eax
jne 0x491e48
cmp dword [esp + 0x38], eax
jne 0x491e5b
push str.not_a_writable_directory
push edi
call fcn.00435200
add esp, 8
jmp 0x490cb1
mov eax, dword [esp + 0xc]
cmp byte [eax + 0x50], 1
ja 0x491ea3
mov esi, dword [edi]
mov eax, dword [esi + 0x10]
mov ecx, dword [eax + 0x14]
test ecx, ecx
je 0x491ea3
cmp byte [esi + 0x4f], 0
je 0x491e95
cmp byte [ecx + 8], 0
jne 0x491e95
call fcn.00446c30
mov eax, dword [esi + 0x10]
mov ecx, esi
mov dword [eax + 0x14], 0
call fcn.00478ca0
jmp 0x491ea3
push str.temporary_storage_cannot_be_changed_from_within_a_transaction
push edi
call fcn.00435200
add esp, 8
push dword [0x524fc0]
call fcn.00431980
mov eax, dword [esp + 0x2c]
add esp, 4
cmp byte [eax], 0
je 0x491ed2
push eax
push 0x5142b0
call fcn.00434500
add esp, 8
mov dword [0x524fc0], eax
jmp 0x490cb1
mov dword [0x524fc0], 0
jmp 0x490cb1
test ecx, ecx
jne 0x491ef7
mov edx, dword [0x524fbc]
mov ecx, esi
call fcn.00490620
jmp 0x490cb1
cmp byte [ecx], 0
je 0x491f2d
mov eax, dword [esp + 0xc]
mov esi, dword [eax]
lea eax, [esp + 0x38]
push eax
push 1
push ecx
push esi
mov esi, dword [esi + 0x20]
mov ecx, esi
call dword [0x4f4350]
call esi
add esp, 0x10
test eax, eax
jne 0x491e48
cmp dword [esp + 0x38], eax
je 0x491e48
push dword [0x524fbc]
call fcn.00431980
mov eax, dword [esp + 0x2c]
add esp, 4
cmp byte [eax], 0
je 0x491f5c
push eax
push 0x5142b0
call fcn.00434500
add esp, 8
mov dword [0x524fbc], eax
jmp 0x490cb1
mov dword [0x524fbc], 0
jmp 0x490cb1
test ecx, ecx
jne 0x491f82
mov edi, dword [esp + 0x34]
movzx eax, byte [edi + 8]
cdq
sub eax, 1
sbb edx, ecx
jmp 0x490ee0
mov ebx, dword [esp + 0xc]
cmp byte [ebx + 0x4f], 0
jne 0x491f9f
push str.Safety_level_may_not_be_changed_inside_a_transaction
push edi
call fcn.00435200
add esp, 8
jmp 0x490cb5
cmp dword [esp + 0x20], 1
je 0x490cb5
push 1
xor edx, edx
call fcn.004904e0
mov edi, dword [esp + 0x38]
inc eax
add esp, 4
mov ecx, 1
and eax, 7
cmove eax, ecx
mov byte [edi + 9], cl
mov ecx, ebx
mov byte [edi + 8], al
call fcn.00490700
jmp 0x490cb5
test ecx, ecx
jne 0x492023
mov edx, ebx
mov ecx, esi
call fcn.00490590
mov edx, dword [esp + 0xc]
mov ecx, dword [ebx + 8]
mov eax, dword [ebx + 0xc]
and ecx, dword [edx + 0x20]
and eax, dword [edx + 0x24]
or ecx, eax
je 0x492009
xor ecx, ecx
mov eax, 1
mov dword [esp + 0x74], ecx
jmp 0x490ee4
xorps xmm0, xmm0
movlpd qword [esp + 0x70], xmm0
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
mov dword [esp + 0x74], ecx
jmp 0x490ee4
mov eax, dword [ebx + 8]
mov edi, dword [ebx + 0xc]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 0x14]
cmp byte [eax + 0x4f], 0
jne 0x492041
and ebx, 0xffffbfff
push 0
mov edx, 1
call fcn.004904e0
mov ecx, dword [esp + 0x10]
add esp, 4
mov edx, dword [ecx + 0x20]
mov ecx, dword [ecx + 0x24]
mov dword [esp + 0x38], ecx
test al, al
je 0x492072
mov eax, dword [esp + 0xc]
or edx, ebx
or ecx, edi
mov dword [eax + 0x20], edx
mov dword [eax + 0x24], ecx
jmp 0x4920a2
mov ecx, ebx
mov eax, edi
not ecx
not eax
and eax, dword [esp + 0x38]
and ecx, edx
mov edx, dword [esp + 0xc]
mov dword [edx + 0x20], ecx
mov dword [edx + 0x24], eax
cmp ebx, 0x80000
jne 0x4920a2
test edi, edi
jne 0x4920a2
mov dword [edx + 0x1f0], edi
mov dword [edx + 0x1f4], edi
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x4920cd
push 0
push 0
push 0
mov edx, 0x9e
mov ecx, esi
call fcn.00453030
mov ecx, dword [esp + 0x18]
add esp, 0xc
call fcn.00490700
jmp 0x490cb1
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x9e
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 ecx, dword [esp + 0xc]
call fcn.00490700
jmp 0x490cb1
test ecx, ecx
je 0x490cb1
push dword [esp + 0x40]
mov edx, 2
push ecx
mov ecx, edi
call fcn.004787f0
mov edi, eax
add esp, 8
mov dword [esp + 0x40], edi
test edi, edi
je 0x490cb1
mov ecx, dword [edi + 0x48]
mov edx, 0xfff0bdc0
test ecx, ecx
je 0x49215c
mov eax, dword [esp + 0xc]
xor edx, edx
mov eax, dword [eax + 0x10]
add eax, 0xc
cmp dword [eax], ecx
je 0x49215c
lea eax, [eax + 0x10]
inc edx
cmp dword [eax], ecx
jne 0x492154
mov ecx, dword [edi + 8]
mov dword [esp + 0x50], 0
mov dword [esp + 0x14], ecx
test ecx, ecx
je 0x492184
nop
mov eax, dword [ecx + 0x38]
and al, 3
cmp al, 2
je 0x492180
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x492170
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x18]
mov edi, ecx
mov dword [eax], 7
mov eax, dword [ecx + 0x74]
test eax, eax
mov ecx, edx
cmovne edi, eax
mov eax, 1
shl eax, cl
mov ecx, dword [edi + 0x54]
test ecx, eax
jne 0x4921be
bts ecx, edx
mov dword [edi + 0x54], ecx
cmp edx, 1
jne 0x4921be
mov ecx, edi
call fcn.0047ff10
mov edi, dword [esp + 0x40]
mov edx, edi
mov ecx, dword [esp + 0x18]
call fcn.0047c100
mov edx, dword [edi + 4]
xor ecx, ecx
movzx eax, word [edi + 0x2a]
xor edi, edi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x2c], edx
cmp di, ax
jge 0x490cb1
mov dword [esp + 0x4c], eax
nop dword [eax]
movzx edx, word [edx + 0x10]
xor edi, edi
test dl, 0x62
je 0x49222f
mov eax, dword [ebx + 8]
or eax, dword [ebx + 0xc]
jne 0x492213
mov edi, dword [esp + 0x4c]
inc dword [esp + 0x50]
movzx eax, di
jmp 0x492318
mov eax, dword [esp + 0x4c]
test dl, 0x20
je 0x492223
mov edi, 2
jmp 0x49222f
movzx edi, dl
and edi, 0x40
or edi, 0x20
shr edi, 5
test dl, 1
jne 0x492238
xor edx, edx
jmp 0x492268
mov ecx, dword [esp + 0x14]
mov edx, 1
test ecx, ecx
je 0x492268
cwde
mov dword [esp + 0x38], eax
cmp eax, edx
jl 0x492268
mov ecx, dword [ecx + 4]
mov esi, eax
movsx eax, word [ecx]
cmp eax, dword [esp + 0x10]
je 0x492264
inc edx
add ecx, 2
cmp edx, esi
jle 0x492253
mov esi, dword [esp + 0x44]
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + 4]
test eax, eax
je 0x492281
cmp edi, 2
jae 0x492281
mov eax, dword [eax + 8]
mov dword [esp + 0x4c], eax
jmp 0x492289
mov dword [esp + 0x4c], 0
mov eax, dword [ebx + 8]
or eax, dword [ebx + 0xc]
mov dword [esp + 0x1c], str.issisii
jne 0x4922a1
mov dword [esp + 0x1c], str.issisi
mov eax, dword [ecx]
mov dword [esp + 0x48], eax
movzx eax, word [ecx + 0x10]
test al, 4
jne 0x4922b9
mov dword [esp + 0x48], 0x50df2b
jmp 0x4922de
mov ecx, dword [esp + 0x48]
lea eax, [ecx + 1]
mov dword [esp + 0x38], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4922c4
mov eax, dword [esp + 0x48]
sub ecx, dword [esp + 0x38]
inc eax
add eax, ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x48], eax
push edi
push edx
push dword [esp + 0x54]
xor eax, eax
cmp byte [ecx + 0xc], al
setne al
push eax
push dword [esp + 0x58]
mov eax, dword [ecx]
push eax
mov eax, dword [esp + 0x28]
sub eax, dword [esp + 0x68]
push eax
push dword [esp + 0x38]
push 1
push esi
call fcn.004530e0
mov eax, dword [esp + 0x68]
add esp, 0x28
mov ecx, dword [esp + 0x10]
movzx eax, word [eax + 0x2a]
mov edx, dword [esp + 0x2c]
inc ecx
movzx edi, ax
add edx, 0x14
cwde
cmp ecx, eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x2c], edx
mov eax, edi
mov dword [esp + 0x4c], edi
jl 0x4921f0
jmp 0x490cb1
test ecx, ecx
je 0x490cb1
push dword [esp + 0x40]
mov edx, ecx
mov ecx, dword [esp + 0x10]
call fcn.004789a0
mov edi, eax
add esp, 4
test edi, edi
jne 0x4923ab
push dword [esp + 0x40]
mov ecx, dword [esp + 0x1c]
lea edx, [eax + 2]
push dword [esp + 0x2c]
call fcn.004787f0
add esp, 8
test eax, eax
je 0x490cb1
test byte [eax + 0x24], 0x80
je 0x490cb1
mov edi, dword [eax + 8]
test edi, edi
je 0x490cb1
mov eax, dword [edi + 0x38]
and al, 3
cmp al, 2
je 0x4923a3
mov edi, dword [edi + 0x14]
test edi, edi
jne 0x492393
test edi, edi
je 0x490cb1
mov edx, dword [edi + 0x18]
mov ecx, 0xfff0bdc0
test edx, edx
je 0x4923cf
mov eax, dword [esp + 0xc]
xor ecx, ecx
mov eax, dword [eax + 0x10]
add eax, 0xc
cmp dword [eax], edx
je 0x4923cf
lea eax, [eax + 0x10]
inc ecx
cmp dword [eax], edx
jne 0x4923c7
mov eax, dword [ebx + 8]
or eax, dword [ebx + 0xc]
je 0x4923e2
movzx eax, word [edi + 0x34]
mov edx, 6
jmp 0x4923eb
movzx eax, word [edi + 0x32]
mov edx, 3
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x10], eax
mov dword [ebx + 0x2c], edx
mov eax, dword [edi + 0xc]
mov dword [esp + 0x38], eax
mov eax, dword [ebx + 0x74]
test eax, eax
cmovne ebx, eax
mov eax, 1
shl eax, cl
mov edx, dword [ebx + 0x54]
test edx, eax
jne 0x492425
bts edx, ecx
mov dword [ebx + 0x54], edx
cmp ecx, 1
jne 0x492425
mov ecx, ebx
call fcn.0047ff10
xor ebx, ebx
cmp word [esp + 0x10], bx
je 0x490cb1
mov eax, dword [edi + 4]
movzx eax, word [eax + ebx*2]
movsx edx, ax
test ax, ax
jns 0x492445
xor eax, eax
jmp 0x492452
mov eax, dword [esp + 0x38]
lea ecx, [edx + edx*4]
mov eax, dword [eax + 4]
mov eax, dword [eax + ecx*4]
push eax
push edx
push ebx
push str.iisX
push 1
push esi
call fcn.004530e0
mov ecx, dword [esp + 0x74]
add esp, 0x18
mov eax, dword [ecx + 8]
or eax, dword [ecx + 0xc]
je 0x49249a
movzx eax, word [edi + 0x32]
cmp ebx, eax
sbb eax, eax
neg eax
push eax
mov eax, dword [edi + 0x20]
push dword [eax + ebx*4]
mov eax, dword [edi + 0x1c]
movzx eax, byte [eax + ebx]
push eax
push str.isiX
push 4
push esi
call fcn.004530e0
add esp, 0x18
mov eax, dword [esp + 0x54]
mov ecx, dword [esi + 0x6c]
mov edx, dword [eax]
cmp dword [esi + 0x70], ecx
jg 0x4924be
push 0
push edx
push 1
mov edx, 0x50
mov ecx, esi
call fcn.00453030
add esp, 0xc
jmp 0x4924f1
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x44]
mov dword [eax + ecx*4], 0x50
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 + 0x10]
inc ebx
movzx eax, cx
cmp ebx, eax
jl 0x492432
jmp 0x490cb1
test ecx, ecx
je 0x490cb1
push dword [esp + 0x40]
mov edx, ecx
mov ecx, dword [esp + 0x10]
call fcn.00478600
mov edi, eax
add esp, 4
test edi, edi
je 0x490cb1
mov edx, dword [edi + 0x48]
mov ecx, 0xfff0bdc0
test edx, edx
je 0x49254e
mov eax, dword [esp + 0xc]
xor ecx, ecx
mov eax, dword [eax + 0x10]
add eax, 0xc
cmp dword [eax], edx
je 0x49254e
lea eax, [eax + 0x10]
inc ecx
cmp dword [eax], edx
jne 0x492546
mov eax, dword [esp + 0x54]
mov ebx, dword [esp + 0x18]
mov dword [eax], 5
mov eax, dword [ebx + 0x74]
test eax, eax
cmovne ebx, eax
mov eax, 1
shl eax, cl
mov edx, dword [ebx + 0x54]
test edx, eax
jne 0x492584
bts edx, ecx
mov dword [ebx + 0x54], edx
cmp ecx, 1
jne 0x492584
mov ecx, ebx
call fcn.0047ff10
mov edi, dword [edi + 8]
xor ebx, ebx
test edi, edi
je 0x490cb1
mov dword [esp + 0x70], 0x517714
mov dword [esp + 0x74], 0x517710
mov dword [esp + 0x78], 0x5170b0
nop dword [eax]
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 + 0x74]
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.004530e0
mov edi, dword [edi + 0x14]
add esp, 0x20
inc ebx
test edi, edi
jne 0x4925b0
jmp 0x490cb1
mov eax, dword [esp + 0x54]
xor edi, edi
mov edx, dword [esp + 0xc]
mov dword [eax], 3
cmp dword [edx + 0x14], edi
jle 0x495004
xor ebx, ebx
mov ecx, dword [edx + 0x10]
mov eax, dword [ecx + ebx + 4]
test eax, eax
je 0x492643
mov eax, dword [eax + 4]
mov eax, dword [eax]
cmp byte [eax + 0xf], 0
je 0x492624
mov eax, 0x507f7c
jmp 0x49262a
mov eax, dword [eax + 0xa8]
push eax
push dword [ecx + ebx]
push edi
push 0x517718
push 1
push esi
call fcn.004530e0
mov edx, dword [esp + 0x24]
add esp, 0x18
inc edi
add ebx, 0x10
cmp edi, dword [edx + 0x14]
jl 0x492607
jmp 0x490cb1
mov eax, dword [esp + 0x54]
xor ebx, ebx
mov edx, dword [esp + 0xc]
mov dword [eax], 2
mov edi, dword [edx + 0x19c]
test edi, edi
je 0x495004
nop
mov eax, dword [edi + 8]
push dword [eax]
push ebx
push 0x51772c
push 1
push esi
call fcn.004530e0
mov edi, dword [edi]
add esp, 0x14
inc ebx
test edi, edi
jne 0x492670
jmp 0x490cb1
mov eax, dword [esp + 0xc]
mov ebx, dword [eax + 0x18]
mov eax, dword [esp + 0x54]
shr ebx, 5
and ebx, 1
mov dword [eax], 6
mov eax, 0x525508
mov dword [esp + 0x14], eax
mov edi, dword [eax]
test edi, edi
je 0x4926d2
push ebx
push 1
mov edx, edi
mov ecx, esi
call fcn.004907c0
mov edi, dword [edi + 0x24]
add esp, 8
test edi, edi
jne 0x4926b8
mov eax, dword [esp + 0x14]
add eax, 4
mov dword [esp + 0x14], eax
cmp eax, 0x525564
jl 0x4926b2
mov edx, dword [esp + 0xc]
mov edi, dword [edx + 0x18c]
test edi, edi
je 0x495004
mov edx, dword [edi + 8]
mov ecx, esi
push ebx
push 0
call fcn.004907c0
mov edi, dword [edi]
add esp, 8
test edi, edi
jne 0x4926f2
jmp 0x490cb1
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0xc]
mov dword [eax], 1
mov edi, dword [edx + 0x170]
test edi, edi
je 0x495004
nop dword [eax]
mov eax, dword [edi + 8]
push dword [eax + 4]
push 0x51768c
push 1
push esi
call fcn.004530e0
mov edi, dword [edi]
add esp, 0x10
test edi, edi
jne 0x492730
jmp 0x490cb1
mov edi, 0x509a28
push dword [edi]
push 0x51768c
push 1
push esi
call fcn.004530e0
add edi, 0x10
add esp, 0x10
cmp edi, 0x509e48
jl 0x492756
jmp 0x490cb1
test ecx, ecx
je 0x490cb1
push dword [esp + 0x40]
mov edx, ecx
mov ecx, dword [esp + 0x10]
call fcn.00478600
add esp, 4
mov dword [esp + 0x38], eax
test eax, eax
je 0x490cb1
mov edi, dword [eax + 0x10]
test edi, edi
je 0x490cb1
mov edx, dword [eax + 0x48]
mov ecx, 0xfff0bdc0
test edx, edx
je 0x4927cd
mov eax, dword [esp + 0xc]
xor ecx, ecx
mov eax, dword [eax + 0x10]
add eax, 0xc
cmp dword [eax], edx
je 0x4927cd
lea eax, [eax + 0x10]
inc ecx
cmp dword [eax], edx
jne 0x4927c5
mov eax, dword [esp + 0x54]
xor edx, edx
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x10], edx
mov dword [eax], 8
mov eax, dword [ebx + 0x74]
test eax, eax
cmovne ebx, eax
mov eax, 1
mov dword [esp + 0x18], ebx
shl eax, cl
mov ebx, dword [ebx + 0x54]
test ebx, eax
jne 0x492813
mov eax, dword [esp + 0x18]
bts ebx, ecx
mov dword [eax + 0x54], ebx
cmp ecx, 1
jne 0x492813
mov ecx, eax
call fcn.0047ff10
xor edx, edx
xor ebx, ebx
cmp dword [edi + 0x14], ebx
jle 0x4928d7
lea edx, [edi + 0x24]
mov dword [esp + 0x14], edx
movzx eax, byte [edi + 0x19]
add eax, 0xfffffff9
cmp eax, 3
ja case.default.0x492831
jmp dword [eax*4 + 0x4950b4]
mov ecx, str.SET_NULL
jmp 0x492859
mov ecx, str.SET_DEFAULT
jmp 0x492859
mov ecx, str.CASCADE
jmp 0x492859
mov ecx, str.RESTRICT
jmp 0x492859
mov ecx, str.NO_ACTION
movzx eax, byte [edi + 0x1a]
add eax, 0xfffffff9
cmp eax, 3
ja case.default.0x492865
jmp dword [eax*4 + 0x4950c4]
mov eax, str.SET_NULL
jmp 0x49288d
mov eax, str.SET_DEFAULT
jmp 0x49288d
mov eax, str.CASCADE
jmp 0x49288d
mov eax, str.RESTRICT
jmp 0x49288d
mov eax, str.NO_ACTION
push str.NONE
push ecx
push eax
mov eax, dword [edx]
push dword [edx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x48]
mov eax, dword [eax + 4]
push dword [eax + ecx*4]
push dword [edi + 8]
push ebx
push dword [esp + 0x2c]
push str.iissssss
push 1
push esi
call fcn.004530e0
mov edx, dword [esp + 0x40]
inc ebx
add edx, 8
add esp, 0x2c
mov dword [esp + 0x14], edx
cmp ebx, dword [edi + 0x14]
jl 0x492825
mov edx, dword [esp + 0x10]
mov edi, dword [edi + 4]
inc edx
mov dword [esp + 0x10], edx
test edi, edi
jne 0x492813
jmp 0x490cb1
mov edx, dword [esp + 0x54]
mov eax, dword [edx]
lea ecx, [eax + 1]
add eax, 5
mov dword [esp + 0x34], eax
inc eax
mov dword [edx], eax
mov edx, dword [esp + 0xc]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x1c]
mov eax, dword [edx + 0x10]
mov eax, dword [ecx + eax + 0xc]
mov ecx, dword [eax + 0x10]
test ecx, ecx
je 0x495004
nop dword [eax]
mov eax, dword [esp + 0x28]
test eax, eax
je 0x492941
push dword [esp + 0x40]
xor edx, edx
mov ecx, edi
push eax
call fcn.004787f0
mov edx, dword [esp + 0x14]
add esp, 8
xor ecx, ecx
jmp 0x492946
mov eax, dword [ecx + 8]
mov ecx, dword [ecx]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x50], eax
test eax, eax
je 0x4930b6
cmp dword [eax + 0x10], 0
je 0x4930b6
mov ecx, dword [eax + 0x48]
mov edi, 0xfff0bdc0
test ecx, ecx
je 0x492980
mov eax, dword [edx + 0x10]
xor edi, edi
add eax, 0xc
cmp dword [eax], ecx
je 0x492980
lea eax, [eax + 0x10]
inc edi
cmp dword [eax], ecx
jne 0x492978
mov ecx, dword [esp + 0x18]
mov edx, ecx
mov eax, dword [ecx + 0x74]
test eax, eax
mov ecx, edi
cmovne edx, eax
mov eax, 1
shl eax, cl
mov ebx, dword [edx + 0x54]
test ebx, eax
jne 0x4929b0
bts ebx, edi
mov dword [edx + 0x54], ebx
cmp edi, 1
jne 0x4929b0
mov ecx, edx
call fcn.0047ff10
mov ebx, dword [esp + 0x50]
mov edx, edi
mov ecx, dword [esp + 0x18]
push dword [ebx]
push 0
push dword [ebx + 0x1c]
call fcn.00477dd0
mov ecx, dword [esp + 0x40]
add esp, 0xc
movsx eax, word [ebx + 0x2a]
inc ecx
add eax, ecx
mov ecx, dword [esp + 0x54]
cmp eax, dword [ecx]
jle 0x4929de
mov dword [ecx], eax
mov ecx, dword [esp + 0x18]
xor edx, edx
push 0x60
push ebx
push edi
call fcn.00489a70
mov edx, dword [esi + 0x6c]
add esp, 0xc
mov ebx, dword [ebx]
cmp dword [esi + 0x70], edx
jg 0x492a15
push 0
push dword [esp + 0x34]
mov edx, 0x73
mov ecx, esi
push 0
call fcn.00453030
add esp, 0xc
mov edx, eax
jmp 0x492a4c
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x30]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x44]
mov dword [eax + ecx*4], 0x73
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0
push ebx
mov ecx, esi
call fcn.00453b70
mov ebx, dword [esp + 0x58]
add esp, 8
mov eax, 1
mov dword [esp + 0x1c], eax
mov ecx, dword [ebx + 0x10]
mov dword [esp + 0x10], ecx
test ecx, ecx
je 0x492b99
mov edx, dword [ecx + 8]
push dword [esp + 0x40]
mov ecx, dword [esp + 0x10]
call fcn.00478600
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x492b79
push dword [ebx]
mov ecx, dword [esp + 0x1c]
mov edx, edi
push 0
push dword [ebx + 0x1c]
mov dword [esp + 0x58], 0
call fcn.00477dd0
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x58]
add esp, 0xc
mov edx, ebx
push 0
push eax
push dword [esp + 0x18]
call fcn.00487150
add esp, 0xc
test eax, eax
jne 0x490cb1
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x1c]
test eax, eax
jne 0x492af1
mov ecx, dword [esp + 0x18]
push 0x60
push ebx
push edi
call fcn.00489a70
add esp, 0xc
jmp 0x492b79
mov ecx, dword [esi + 0x6c]
mov ebx, dword [eax + 0x2c]
cmp dword [esi + 0x70], ecx
jg 0x492b10
push edi
push ebx
push edx
mov edx, 0x60
mov ecx, esi
call fcn.00453030
add esp, 0xc
jmp 0x492b37
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x60
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], edi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x18]
mov ecx, eax
mov edx, dword [esp + 0x4c]
mov ebx, dword [eax + 8]
call fcn.00480770
mov edx, eax
test edx, edx
je 0x492b79
mov ecx, dword [ebx]
cmp byte [ecx + 0x51], 0
je 0x492b67
push edx
mov edx, 0xfffffff7
call fcn.00453940
add esp, 4
jmp 0x492b79
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 ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x1c], eax
mov ecx, dword [ecx + 4]
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x492a75
mov ebx, dword [esp + 0x50]
mov ecx, dword [esp + 0x18]
cmp dword [ecx + 0x28], eax
jge 0x492ba5
mov dword [ecx + 0x28], eax
mov edx, dword [esi + 0x6c]
mov dword [esp + 0x64], edx
cmp dword [esi + 0x70], edx
jg 0x492bcc
push 0
push 0
push 0
mov edx, 0x25
mov ecx, esi
call fcn.00453030
add esp, 0xc
mov dword [esp + 0x64], eax
jmp 0x492bff
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 edi, dword [ebx + 0x10]
mov dword [esp + 0x20], 1
mov dword [esp + 0x2c], edi
test edi, edi
je 0x493038
nop word [eax + eax]
push dword [esp + 0x40]
mov edx, dword [edi + 8]
mov ecx, dword [esp + 0x10]
call fcn.00478600
xor edx, edx
mov dword [esp + 0x3c], eax
add esp, 4
mov dword [esp + 0x4c], 0
mov dword [esp + 0x10], edx
test eax, eax
je 0x492c66
lea ecx, [esp + 0x10]
mov edx, eax
push ecx
lea ecx, [esp + 0x50]
push ecx
mov ecx, dword [esp + 0x20]
push edi
call fcn.00487150
mov edx, dword [esp + 0x1c]
add esp, 0xc
mov eax, dword [esp + 0x18]
xor ebx, ebx
dec dword [eax + 0x38]
mov edi, dword [edi + 0x14]
mov eax, dword [eax + 0x38]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x48], edi
test edi, edi
jle 0x492d27
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0x2c]
inc edi
add ecx, 0x24
mov dword [esp + 0x14], ecx
lea eax, [edx + ebx*4]
test edx, edx
jne 0x492c9e
mov eax, ecx
mov eax, dword [eax]
mov ecx, esi
mov edx, dword [esp + 0x50]
push edi
push eax
push 0
call fcn.0046dd00
mov ecx, dword [esi + 0x6c]
add esp, 0xc
cmp dword [esi + 0x70], ecx
jg 0x492cd2
push 0
push dword [esp + 0x20]
mov edx, 0x32
mov ecx, esi
push edi
call fcn.00453030
add esp, 0xc
jmp 0x492d01
mov edx, dword [esp + 0x1c]
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], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x2c]
inc ebx
mov ecx, dword [esp + 0x14]
inc edi
mov edx, dword [esp + 0x10]
add ecx, 8
mov dword [esp + 0x14], ecx
mov eax, dword [eax + 0x14]
mov dword [esp + 0x48], eax
cmp ebx, eax
jl 0x492c95
mov edi, eax
mov edx, dword [esp + 0x4c]
test edx, edx
je 0x492e2e
mov ecx, dword [esp + 0xc]
call fcn.00489c20
mov edx, dword [esi + 0x6c]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x2c]
mov ebx, dword [eax + 0x14]
cmp dword [esi + 0x70], edx
jg 0x492d6f
push dword [esp + 0x34]
mov edx, 0x5b
mov ecx, esi
push ebx
mov ebx, dword [esp + 0x3c]
lea eax, [ebx + 1]
push eax
call fcn.00453030
add esp, 0xc
mov edx, eax
jmp 0x492da7
mov edi, dword [esp + 0x48]
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x34]
inc esi
mov dword [eax + ecx*4 + 8], ebx
mov ebx, dword [esp + 0x34]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x44]
mov dword [eax + ecx*4], 0x5b
mov dword [eax + ecx*4 + 0xc], ebx
mov dword [eax + ecx*4 + 0x10], 0
push edi
push dword [esp + 0x3c]
mov ecx, esi
call fcn.00453b70
mov edx, dword [esi + 0x6c]
add esp, 8
mov edi, dword [esp + 0x20]
cmp dword [esi + 0x70], edx
jg 0x492ddb
push ebx
push dword [esp + 0x20]
mov edx, 0x1e
mov ecx, esi
push edi
call fcn.00453030
add esp, 0xc
mov edx, eax
jmp 0x492e06
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x1c]
mov dword [eax + ecx*4], 0x1e
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], ebx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
mov ebx, dword [esp + 0x1c]
cmp byte [eax + 0x51], 0
jne 0x492ee4
mov eax, dword [esi + 0x68]
lea ecx, [edx + edx*4]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x492ee4
cmp dword [esp + 0x38], 0
je 0x492ee0
mov ecx, dword [esi + 0x6c]
mov edi, dword [esp + 0x20]
lea edx, [ecx + 2]
cmp dword [esi + 0x70], ecx
jg 0x492e61
mov eax, dword [esp + 0x34]
mov ecx, esi
inc eax
push eax
push edx
push edi
mov edx, 0x1f
call fcn.00453030
add esp, 0xc
jmp 0x492e8d
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 + 0x34]
inc edx
mov dword [eax + ecx*4], 0x1f
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0x6c]
mov ebx, dword [esp + 0x1c]
cmp dword [esi + 0x70], ecx
jg 0x492eaf
push 0
push ebx
push 0
mov edx, 0xb
mov ecx, esi
call fcn.00453030
add esp, 0xc
jmp 0x492ee4
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x492ee4
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x50]
mov ecx, dword [esi + 0x6c]
mov eax, dword [esi + 0x70]
test byte [edx + 0x24], 0x80
jne 0x492f2b
cmp eax, ecx
jg 0x492f16
mov eax, dword [esp + 0x30]
mov edx, 0x7f
push 0
inc eax
mov ecx, esi
push eax
push 0
call fcn.00453030
add esp, 0xc
jmp 0x492f7e
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x7f
jmp 0x492f5d
cmp eax, ecx
jg 0x492f4a
mov eax, dword [esp + 0x30]
mov edx, 0x48
push 0
inc eax
mov ecx, esi
push eax
push 0
call fcn.00453030
add esp, 0xc
jmp 0x492f7e
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 + 0x30]
mov dword [eax + ecx*4 + 0x10], 0
inc edx
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 + 0x20]
mov edi, dword [esp + 0x2c]
dec eax
push eax
mov eax, dword [esp + 0x34]
add eax, 2
push dword [edi + 8]
push 0x517730
push eax
push esi
call fcn.004530e0
mov ecx, dword [esi + 0x6c]
add esp, 0x14
cmp dword [esi + 0x70], ecx
jg 0x492fc2
push 0
push 4
push dword [esp + 0x38]
mov edx, 0x50
mov ecx, esi
call fcn.00453030
add esp, 0xc
jmp 0x492ff5
mov edx, dword [esp + 0x30]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x50
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 0x49300f
push ebx
mov edx, esi
call fcn.00453590
add esp, 4
jmp 0x493018
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x6c]
mov dword [ecx + ebx*4], eax
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
call fcn.00431ae0
mov edi, dword [edi + 4]
inc dword [esp + 0x20]
mov dword [esp + 0x2c], edi
test edi, edi
jne 0x492c20
mov ebx, dword [esp + 0x64]
mov ecx, dword [esi + 0x6c]
lea edx, [ebx + 1]
cmp dword [esi + 0x70], ecx
jg 0x49305d
push 0
push edx
push 0
mov edx, 5
mov ecx, esi
call fcn.00453030
add esp, 0xc
jmp 0x49308c
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 + 0x51], 0
je 0x49309e
mov eax, 0x525494
jmp 0x4930af
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 ecx, dword [esp + 0x58]
mov dword [eax + 8], edx
test ecx, ecx
je 0x490cb1
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0xc]
jmp 0x492920
test ecx, ecx
je 0x490cb1
push 0
mov edx, 1
call fcn.004904e0
add esp, 4
test al, al
je 0x4930f2
mov esi, 0x508c38
mov edi, 0xc
jmp 0x4930fc
mov esi, 0x507bac
mov edi, 4
mov ebx, dword [esp + 0xc]
mov edx, str.like
push 0
push 0
push 0
push 0
push 0
push 0x484ca0
push esi
push 1
push 2
mov ecx, ebx
call fcn.004c6e10
add esp, 0x24
mov edx, str.like
mov ecx, ebx
push 0
push 0
push 0
push 0
push 0
push 0x484ca0
push esi
push 1
push 3
call fcn.004c6e10
add esp, 0x24
mov edx, str.like
mov ecx, ebx
push 0
push 1
push 2
call fcn.00480fc0
add esp, 0xc
mov edx, str.like
mov ecx, ebx
or dword [eax + 4], edi
push 0
push 1
push 3
call fcn.00480fc0
add esp, 0xc
or dword [eax + 4], edi
jmp 0x490cb5
mov eax, dword [esp + 0x60]
or edx, 0xffffffff
movzx eax, byte [eax]
mov al, byte [eax + 0x509590]
mov byte [esp + 0x27], al
mov eax, dword [esp + 0x30]
cmp dword [eax], 0
mov eax, dword [esp + 0x20]
cmove eax, edx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x54]
mov dword [eax], 6
mov eax, 0x64
mov dword [esp + 0x38], eax
mov dword [esp + 0x58], eax
test ecx, ecx
je 0x4931d7
lea edx, [esp + 0x58]
call fcn.00435cf0
mov eax, dword [esp + 0x58]
mov ecx, 0x64
test eax, eax
cmovle eax, ecx
mov dword [esp + 0x38], eax
mov ecx, dword [esi + 0x6c]
lea edx, [eax - 1]
cmp dword [esi + 0x70], ecx
jg 0x4931f8
push 0
push 1
push edx
mov edx, 0x45
mov ecx, esi
call fcn.00453030
add esp, 0xc
jmp 0x493227
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], edx
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ebx, dword [esp + 0xc]
xor ecx, ecx
mov dword [esp + 0x10], ecx
cmp dword [ebx + 0x14], ecx
jle 0x4944c2
mov eax, dword [esp + 0x20]
nop
mov dword [esp + 0x2c], 0
test eax, eax
js 0x493254
cmp ecx, eax
jne 0x4944aa
mov eax, dword [edi + 0x74]
mov edx, edi
test eax, eax
cmovne edx, eax
mov eax, 1
shl eax, cl
mov edi, dword [edx + 0x54]
test edi, eax
jne 0x493282
bts edi, ecx
mov dword [edx + 0x54], edi
cmp ecx, 1
jne 0x493282
mov ecx, edx
call fcn.0047ff10
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
xor edx, edx
shl ecx, 4
mov dword [esp + 0x5c], ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx + 0xc]
mov dword [esp + 0x58], eax
mov ebx, dword [eax + 0x10]
test ebx, ebx
je 0x4932e4
mov esi, edx
mov ecx, dword [ebx + 8]
lea eax, [edx + 1]
test byte [ecx + 0x24], 0x80
cmovne eax, edx
xor edi, edi
mov edx, eax
mov eax, dword [ecx + 8]
test eax, eax
je 0x4932c9
nop dword [eax + eax]
mov eax, dword [eax + 0x14]
inc edx
inc edi
test eax, eax
jne 0x4932c0
mov ebx, dword [ebx]
cmp edi, esi
cmovle edi, esi
mov esi, edi
test ebx, ebx
jne 0x4932a3
mov dword [esp + 0x2c], esi
mov eax, edi
mov esi, dword [esp + 0x44]
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0xc]
lea eax, [edx*4 + 4]
push 0
push eax
call fcn.00431de0
mov edi, eax
add esp, 8
test edi, edi
je 0x4944be
mov ebx, dword [esp + 0x58]
xor edx, edx
mov ebx, dword [ebx + 0x10]
test ebx, ebx
je 0x49333c
mov ecx, dword [ebx + 8]
test byte [ecx + 0x24], 0x80
jne 0x493321
mov eax, dword [ecx + 0x1c]
inc edx
mov dword [edi + edx*4], eax
mov ecx, dword [ecx + 8]
test ecx, ecx
je 0x493336
mov eax, dword [ecx + 0x2c]
inc edx
mov dword [edi + edx*4], eax
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x493328
mov ebx, dword [ebx]
test ebx, ebx
jne 0x493311
mov ebx, dword [esp + 0x54]
mov eax, dword [esp + 0x2c]
mov dword [edi], edx
add eax, 8
mov ecx, dword [ebx]
cmp ecx, eax
cmovle ecx, eax
mov eax, dword [esp + 0x18]
mov dword [ebx], ecx
mov byte [eax + 0x13], 0
mov dword [eax + 0x1c], 0
mov ebx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ebx
jg 0x493381
push 1
push edx
push 2
mov edx, 0x92
mov ecx, esi
call fcn.00453030
add esp, 0xc
mov ebx, eax
jmp 0x4933b4
lea eax, [ebx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ebx + ebx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x44]
mov dword [eax + ecx*4], 0x92
mov dword [eax + ecx*4 + 4], 2
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 1
mov dword [eax + ecx*4 + 0x10], 0
push 0xfffffffffffffff1
push edi
mov edx, ebx
mov ecx, esi
call fcn.00453b70
mov edi, dword [esi + 0x6c]
add esp, 8
test edi, edi
jle 0x4933df
mov eax, dword [esp + 0x10]
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 0x4933fd
push 0
push 0
push 2
mov edx, 0x32
mov ecx, esi
call fcn.00453030
add esp, 0xc
mov edi, eax
jmp 0x493430
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 + 0xc]
mov ecx, dword [esp + 0x5c]
mov eax, dword [edx + 0x10]
push dword [eax + ecx]
push str._in_database__s__n
push edx
call fcn.00434410
mov edx, dword [esi + 0x6c]
add esp, 0xc
mov ebx, eax
cmp dword [esi + 0x70], edx
jg 0x49346f
push 0
push 3
push 0
mov edx, 0x73
mov ecx, esi
call fcn.00453030
add esp, 0xc
mov edx, eax
jmp 0x4934a6
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x44]
mov dword [eax + ecx*4], 0x73
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0xfffffffffffffff9
push ebx
mov ecx, esi
call fcn.00453b70
mov ecx, dword [esi + 0x6c]
add esp, 8
cmp dword [esi + 0x70], ecx
jg 0x4934d2
push 3
push 3
push 2
mov edx, 0x6e
mov ecx, esi
call fcn.00453030
add esp, 0xc
jmp 0x493505
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x6e
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
mov ecx, esi
call fcn.00490850
mov eax, dword [esi]
mov edx, dword [esi + 0x6c]
cmp byte [eax + 0x51], 0
je 0x49351e
mov eax, 0x525494
jmp 0x49352f
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 + 0x58]
mov edi, dword [eax + 0x10]
mov dword [esp + 0x5c], edi
test edi, edi
je 0x49449e
nop word [eax + eax]
mov edi, dword [edi + 8]
mov dword [esp + 0x30], edi
mov dword [esp + 0x68], 0
mov dword [esp + 0x50], 0xffffffff
cmp dword [edi + 0x1c], 1
jl 0x49448c
test byte [edi + 0x24], 0x80
jne 0x493581
mov dword [esp + 0x34], 0
jmp 0x4935a4
mov ebx, dword [edi + 8]
mov dword [esp + 0x34], ebx
test ebx, ebx
je 0x4935a4
nop dword [eax]
mov eax, dword [ebx + 0x38]
and al, 3
cmp al, 2
je 0x4935a0
mov ebx, dword [ebx + 0x14]
test ebx, ebx
jne 0x493590
mov dword [esp + 0x34], ebx
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x6c]
push eax
lea eax, [esp + 0x50]
mov edx, edi
push eax
push 0
push 1
push 0
push 0x60
call fcn.0048e350
mov ecx, dword [esi + 0x6c]
add esp, 0x18
cmp dword [esi + 0x70], ecx
jg 0x4935e3
push 0
push 7
push 0
mov edx, 0x45
mov ecx, esi
call fcn.00453030
add esp, 0xc
jmp 0x493616
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 0x49367b
mov edi, 8
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x493640
push 0
push edi
push 0
mov edx, 0x45
mov ecx, esi
call fcn.00453030
add esp, 0xc
jmp 0x49366f
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 0x493622
mov edi, dword [esp + 0x30]
mov ecx, dword [esi + 0x6c]
mov ebx, dword [esp + 0x4c]
cmp dword [esi + 0x70], ecx
jg 0x49369d
push 0
push 0
push ebx
mov edx, 0x25
mov ecx, esi
call fcn.00453030
add esp, 0xc
jmp 0x4936cc
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 + 0x14], edx
cmp dword [esi + 0x70], edx
jg 0x4936f3
push 0
push 1
push 7
mov edx, 0x52
mov ecx, esi
call fcn.00453030
add esp, 0xc
mov dword [esp + 0x14], eax
jmp 0x493726
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x52
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 + 0x27], 0x71
je 0x493799
movsx edx, word [edi + 0x2c]
mov ecx, dword [esi + 0x6c]
dec edx
cmp dword [esi + 0x70], ecx
jg 0x493753
push 3
push edx
push ebx
mov edx, 0x59
mov ecx, esi
call fcn.00453030
add esp, 0xc
jmp 0x493782
mov edi, dword [esp + 0x30]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x59
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 0x493799
lea ecx, [eax + eax*4]
mov edx, 0x80
mov eax, dword [esi + 0x68]
mov word [eax + ecx*4 - 0x12], dx
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x58], ecx
cmp ax, word [edi + 0x2a]
jge 0x49392d
xor ebx, ebx
mov dword [esp + 0x64], ebx
movsx eax, word [edi + 0x28]
cmp ecx, eax
je 0x493915
mov eax, dword [edi + 4]
cmp byte [ebx + eax + 0xc], 0
je 0x493915
push 3
push ecx
push dword [esp + 0x54]
mov edx, edi
mov ecx, esi
call fcn.0046dd00
add esp, 0xc
or edx, 0xffffffff
mov ecx, esi
call fcn.00453c00
cmp byte [eax], 0x59
jne 0x493804
mov eax, dword [esi + 0x6c]
test eax, eax
jle 0x493804
lea ecx, [eax + eax*4]
mov edx, 0x80
mov eax, dword [esi + 0x68]
mov word [eax + ecx*4 - 0x12], dx
mov edi, dword [esi + 0x6c]
cmp dword [esi + 0x70], edi
jg 0x493825
push 0
push 0
push 3
mov edx, 0x33
mov ecx, esi
call fcn.00453030
add esp, 0xc
mov edi, eax
jmp 0x493858
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 [ebx + eax]
push dword [ecx]
push str.NULL_value_in__s._s
push dword [esp + 0x18]
call fcn.00434410
mov edx, dword [esi + 0x6c]
add esp, 0x10
mov ebx, eax
cmp dword [esi + 0x70], edx
jg 0x493898
push 0
push 3
push 0
mov edx, 0x73
mov ecx, esi
call fcn.00453030
add esp, 0xc
mov edx, eax
jmp 0x4938cf
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x44]
mov dword [eax + ecx*4], 0x73
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0xfffffffffffffff9
push ebx
mov ecx, esi
call fcn.00453b70
add esp, 8
mov ecx, esi
call fcn.00490850
mov eax, dword [esi]
mov edx, dword [esi + 0x6c]
cmp byte [eax + 0x51], 0
je 0x4938f5
mov eax, 0x525494
jmp 0x493906
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 ecx, dword [esp + 0x58]
mov ebx, dword [esp + 0x64]
mov edi, dword [esp + 0x30]
mov dword [eax + 8], edx
movsx eax, word [edi + 0x2a]
inc ecx
add ebx, 0x14
mov dword [esp + 0x58], ecx
mov dword [esp + 0x64], ebx
cmp ecx, eax
jl 0x4937b1
mov edx, dword [edi + 0x18]
test edx, edx
je 0x493ac7
mov ebx, dword [esp + 0xc]
mov eax, dword [ebx + 0x20]
and eax, 0x200
or eax, 0
jne 0x493ac7
push eax
mov ecx, ebx
call fcn.00469e50
add esp, 4
mov edx, eax
cmp byte [ebx + 0x51], 0
mov dword [esp + 0x48], edx
jne 0x493abc
mov eax, dword [esp + 0x18]
mov ebx, dword [eax + 0x38]
dec ebx
mov dword [esp + 0x58], ebx
lea ecx, [ebx - 1]
mov dword [eax + 0x38], ecx
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x64], ecx
inc eax
mov ecx, dword [esp + 0x18]
mov dword [ecx + 0x34], eax
mov edi, dword [edx]
dec edi
test edi, edi
jle 0x4939c7
mov esi, dword [esp + 0x58]
lea ebx, [edi*4 + 1]
add ebx, edi
lea ebx, [edx + ebx*4]
push 0
push esi
push dword [ebx]
push ecx
call fcn.00470ae0
mov ecx, dword [esp + 0x28]
lea ebx, [ebx - 0x14]
dec edi
add esp, 0x10
test edi, edi
jg 0x4939a1
mov esi, dword [esp + 0x44]
mov ebx, dword [esp + 0x58]
mov edx, dword [esp + 0x48]
mov edi, dword [esp + 0x64]
push 0x10
push edi
push dword [edx + 4]
push ecx
call fcn.004705b0
mov ecx, dword [esi + 0xc]
add esp, 0x10
not ebx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x4939f4
push ebx
mov edx, esi
call fcn.00453590
add esp, 4
jmp 0x4939fd
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x6c]
mov dword [ecx + ebx*4], eax
mov eax, dword [esp + 0x18]
mov dword [eax + 0x34], 0
mov eax, dword [esp + 0x30]
push dword [eax]
push str.CHECK_constraint_failed_in__s
push dword [esp + 0x14]
call fcn.00434410
mov edx, dword [esi + 0x6c]
add esp, 0xc
mov ebx, eax
cmp dword [esi + 0x70], edx
jg 0x493a42
push 0
push 3
push 0
mov edx, 0x73
mov ecx, esi
call fcn.00453030
add esp, 0xc
mov edx, eax
jmp 0x493a79
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x44]
mov dword [eax + ecx*4], 0x73
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0xfffffffffffffff9
push ebx
mov ecx, esi
call fcn.00453b70
add esp, 8
mov ecx, esi
call fcn.00490850
mov ecx, dword [esi + 0xc]
not edi
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x493aa7
push edi
mov edx, esi
call fcn.00453590
add esp, 4
jmp 0x493ab0
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x6c]
mov dword [ecx + edi*4], eax
mov ebx, dword [esp + 0xc]
mov edi, dword [esp + 0x30]
mov edx, dword [esp + 0x48]
test edx, edx
je 0x493ac7
mov ecx, ebx
call fcn.0046aa10
mov bl, byte [esp + 0x27]
cmp bl, 0x71
je 0x4941b8
mov ebx, dword [edi + 8]
mov dword [esp + 0x40], ebx
test ebx, ebx
je 0x4941b4
mov eax, dword [esp + 0x6c]
mov ecx, 8
sub ecx, eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x34]
nop
dec dword [eax + 0x38]
mov edi, dword [eax + 0x38]
cmp ecx, ebx
je 0x4941a1
push dword [esp + 0x50]
lea ecx, [esp + 0x74]
mov edx, ebx
push dword [esp + 0x6c]
push ecx
push 0
push 0
push dword [esp + 0x60]
mov ecx, eax
call fcn.00483050
mov edx, dword [esp + 0x70]
add esp, 0x18
mov ecx, dword [esi + 0x6c]
add edx, dword [esp + 0x1c]
mov dword [esp + 0x50], eax
mov dword [esp + 0x68], ebx
cmp dword [esi + 0x70], ecx
jg 0x493b5d
push 0
push 1
push edx
mov edx, 0x52
mov ecx, esi
call fcn.00453030
add esp, 0xc
jmp 0x493b90
mov ebx, dword [esp + 0x40]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x52
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
mov edx, dword [esi + 0x6c]
movzx ebx, word [ebx + 0x34]
mov dword [esp + 0x48], edx
cmp dword [esi + 0x70], edx
jg 0x493bc0
push dword [esp + 0x50]
mov edx, 0x1e
mov ecx, esi
push edi
push dword [esp + 0x24]
call fcn.00453030
mov edx, eax
add esp, 0xc
mov dword [esp + 0x48], edx
jmp 0x493bf3
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov edx, dword [esp + 0x1c]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x50]
mov dword [eax + ecx*4 + 0xc], edx
mov edx, dword [esp + 0x48]
mov dword [eax + ecx*4], 0x1e
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
cmp byte [eax + 0x51], 0
jne 0x493c0a
mov eax, dword [esi + 0x68]
lea ecx, [edx + edx*4]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], ebx
mov edx, dword [esi + 0x6c]
cmp dword [esi + 0x70], edx
jg 0x493c2b
push 0
push 3
push 0
mov edx, 0x73
mov ecx, esi
call fcn.00453030
add esp, 0xc
mov edx, eax
jmp 0x493c5e
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x73
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0
push str.row
mov ecx, esi
call fcn.00453b70
mov ecx, dword [esi + 0x6c]
add esp, 8
cmp dword [esi + 0x70], ecx
jg 0x493c8e
push 3
push 3
push 7
mov edx, 0x6e
mov ecx, esi
call fcn.00453030
add esp, 0xc
jmp 0x493cc1
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x6e
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
mov edx, dword [esi + 0x6c]
cmp dword [esi + 0x70], edx
jg 0x493ce2
push 0
push 4
push 0
mov edx, 0x73
mov ecx, esi
call fcn.00453030
add esp, 0xc
mov edx, eax
jmp 0x493d15
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x73
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 4
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0
push str._missing_from_index
mov ecx, esi
call fcn.00453b70
mov ecx, dword [esi + 0x6c]
add esp, 8
cmp dword [esi + 0x70], ecx
jg 0x493d45
push 3
push 3
push 4
mov edx, 0x6e
mov ecx, esi
call fcn.00453030
add esp, 0xc
jmp 0x493d78
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x6e
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
mov ebx, dword [esp + 0x40]
mov edx, dword [esi + 0x6c]
mov dword [esp + 0x2c], edx
mov edi, dword [ebx]
cmp dword [esi + 0x70], edx
jg 0x493da7
push 0
push 4
push 0
mov edx, 0x73
mov ecx, esi
call fcn.00453030
mov edx, eax
add esp, 0xc
mov dword [esp + 0x2c], edx
jmp 0x493dde
mov ebx, dword [esp + 0x40]
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x73
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 4
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0
push edi
mov ecx, esi
call fcn.00453b70
mov ecx, dword [esi + 0x6c]
add esp, 8
cmp dword [esi + 0x70], ecx
jg 0x493e0a
push 3
push 3
push 4
mov edx, 0x6e
mov ecx, esi
call fcn.00453030
add esp, 0xc
jmp 0x493e3d
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x6e
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
mov ecx, esi
call fcn.00490850
mov ecx, dword [esi]
mov edx, dword [esi + 0x6c]
mov dword [esp + 0x64], eax
cmp byte [ecx + 0x51], 0
je 0x493e5a
mov ecx, 0x525494
jmp 0x493e6f
mov ecx, dword [esp + 0x48]
lea eax, [edx - 1]
test ecx, ecx
cmovns eax, ecx
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x68]
lea ecx, [eax + ecx*4]
mov dword [ecx + 8], edx
cmp byte [ebx + 0x36], 0
je 0x494140
mov eax, dword [esp + 0x18]
xor ecx, ecx
xor ebx, ebx
dec dword [eax + 0x38]
mov edx, dword [eax + 0x38]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x48], edx
cmp cx, word [eax + 0x32]
jae 0x493f20
mov edi, dword [esp + 0x50]
jmp 0x493ea6
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 4]
movsx eax, word [eax + ebx*2]
test eax, eax
js 0x493ec2
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 4]
cmp byte [eax + ecx*4 + 0xc], 0
jne 0x493f12
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x493ee3
push 0
push edx
push edi
mov edx, 0x32
mov ecx, esi
call fcn.00453030
mov edx, dword [esp + 0x54]
add esp, 0xc
jmp 0x493f12
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x44]
mov dword [eax + ecx*4], 0x32
mov dword [eax + ecx*4 + 4], edi
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 + 0x40]
inc ebx
inc edi
movzx eax, word [eax + 0x32]
cmp ebx, eax
jl 0x493ea2
mov edi, dword [esi + 0x6c]
cmp dword [esi + 0x70], edi
jg 0x493f43
push 0
push 0
push dword [esp + 0x24]
mov edx, 5
mov ecx, esi
call fcn.00453030
add esp, 0xc
mov edi, eax
jmp 0x493f76
mov edx, dword [esp + 0x1c]
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
mov ecx, dword [esi + 0x6c]
mov ebx, dword [esp + 0x48]
cmp dword [esi + 0x70], ecx
jg 0x493f98
push 0
push ebx
push 0
mov edx, 0xb
mov ecx, esi
call fcn.00453030
add esp, 0xc
jmp 0x493fc7
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], ebx
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 + 0x51], 0
je 0x493fd9
mov eax, 0x525494
jmp 0x493fea
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 + 0x40]
mov edx, dword [esi + 0x6c]
movzx edi, word [eax + 0x32]
cmp dword [esi + 0x70], edx
jg 0x494019
push dword [esp + 0x50]
mov edx, 0x27
mov ecx, esi
push ebx
push dword [esp + 0x24]
call fcn.00453030
add esp, 0xc
mov edx, eax
jmp 0x49404c
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x1c]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x50]
mov dword [eax + ecx*4 + 0xc], esi
mov esi, dword [esp + 0x44]
mov dword [eax + ecx*4], 0x27
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
cmp byte [eax + 0x51], 0
jne 0x494063
mov eax, dword [esi + 0x68]
lea ecx, [edx + edx*4]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edi
mov edx, dword [esi + 0x6c]
cmp dword [esi + 0x70], edx
jg 0x494084
push 0
push 3
push 0
mov edx, 0x73
mov ecx, esi
call fcn.00453030
add esp, 0xc
mov edx, eax
jmp 0x4940b7
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x73
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0
push str.non_unique_entry_in_index
mov ecx, esi
call fcn.00453b70
mov ecx, dword [esi + 0x6c]
add esp, 8
mov edx, dword [esp + 0x2c]
cmp dword [esi + 0x70], ecx
jg 0x4940ea
push 0
push edx
push 0
mov edx, 0xb
mov ecx, esi
call fcn.00453030
add esp, 0xc
jmp 0x494119
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0xb
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 ecx, dword [esi + 0xc]
not ebx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x494133
push ebx
mov edx, esi
call fcn.00453590
add esp, 4
jmp 0x49413c
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x6c]
mov dword [ecx + ebx*4], eax
mov ebx, dword [esp + 0x40]
mov ecx, dword [esp + 0x64]
mov edx, dword [esi + 0x6c]
test ecx, ecx
jns 0x49414e
lea ecx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x51], 0
je 0x49415d
mov eax, 0x525494
jmp 0x494166
mov eax, dword [esi + 0x68]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov edi, dword [esp + 0x70]
mov dword [eax + 8], edx
mov eax, dword [esp + 0x18]
test edi, edi
je 0x49419d
mov edx, dword [eax + 8]
not edi
mov ecx, dword [edx + 0xc]
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x494190
push edi
call fcn.00453590
add esp, 4
jmp 0x494199
mov ecx, dword [ecx + 0x40]
mov eax, dword [edx + 0x6c]
mov dword [ecx + edi*4], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x34]
mov ebx, dword [ebx + 0x14]
inc dword [esp + 0x1c]
mov dword [esp + 0x40], ebx
test ebx, ebx
jne 0x493b00
mov bl, byte [esp + 0x27]
mov ecx, dword [esi + 0x6c]
mov edi, dword [esp + 0x14]
cmp dword [esi + 0x70], ecx
jg 0x4941dc
push 0
push edi
push dword [esp + 0x54]
mov edx, 5
mov ecx, esi
call fcn.00453030
add esp, 0xc
jmp 0x49420b
mov edx, dword [esp + 0x4c]
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 + 0x51], 0
je 0x494220
mov eax, 0x52549c
jmp 0x494233
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 0x49448c
mov edx, dword [esi + 0x6c]
cmp dword [esi + 0x70], edx
jg 0x49425f
push 0
push 2
push 0
mov edx, 0x73
mov ecx, esi
call fcn.00453030
add esp, 0xc
mov edx, eax
jmp 0x494292
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x73
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 2
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0
push str.wrong__of_entries_in_index
mov ecx, esi
call fcn.00453b70
mov eax, dword [esp + 0x38]
add esp, 8
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x49448c
mov ecx, dword [esp + 0x34]
mov eax, 8
mov dword [esp + 0x2c], eax
nop
cmp ecx, ebx
je 0x49447c
mov edx, dword [esp + 0x6c]
mov ecx, dword [esi + 0x6c]
add edx, 0xfffffff8
add edx, eax
cmp dword [esi + 0x70], ecx
jg 0x4942ef
push 0
push 3
push edx
mov edx, 0x5c
mov ecx, esi
call fcn.00453030
add esp, 0xc
jmp 0x49431e
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x5c
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]
mov edx, dword [esp + 0x2c]
cmp dword [esi + 0x70], edi
jg 0x494342
push 3
push 0
push edx
mov edx, 0x35
mov ecx, esi
call fcn.00453030
add esp, 0xc
mov edi, eax
jmp 0x494371
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], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 3
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esi + 0x6c]
test edx, edx
jle 0x49438b
mov eax, dword [esi + 0x68]
lea ecx, [edx + edx*4]
mov edx, 0x90
mov word [eax + ecx*4 - 0x12], dx
mov edx, dword [esi + 0x6c]
mov eax, dword [ebx]
mov dword [esp + 0x68], eax
cmp dword [esi + 0x70], edx
jg 0x4943af
push 0
push 4
push 0
mov edx, 0x73
mov ecx, esi
call fcn.00453030
add esp, 0xc
mov edx, eax
jmp 0x4943e6
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x44]
mov dword [eax + ecx*4], 0x73
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 4
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0
push dword [esp + 0x6c]
mov ecx, esi
call fcn.00453b70
mov ecx, dword [esi + 0x6c]
add esp, 8
cmp dword [esi + 0x70], ecx
jg 0x494415
push 3
push 2
push 4
mov edx, 0x6e
mov ecx, esi
call fcn.00453030
add esp, 0xc
jmp 0x494448
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x6e
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
mov ecx, esi
call fcn.00490850
mov edx, dword [esi + 0x6c]
test edi, edi
jns 0x494459
lea edi, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x51], 0
je 0x494468
mov eax, 0x525494
jmp 0x494471
mov eax, dword [esi + 0x68]
lea ecx, [edi + edi*4]
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x34]
mov dword [eax + 8], edx
mov eax, dword [esp + 0x2c]
mov ebx, dword [ebx + 0x14]
inc eax
mov dword [esp + 0x2c], eax
test ebx, ebx
jne 0x4942c0
mov edi, dword [esp + 0x5c]
mov edi, dword [edi]
mov dword [esp + 0x5c], edi
test edi, edi
jne 0x493550
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0xc]
mov edi, dword [esp + 0x18]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [ebx + 0x14]
jl 0x493240
jmp 0x4944c2
mov ebx, dword [esp + 0xc]
push ecx
push 0x50c714
mov edx, 7
mov ecx, esi
call fcn.00453730
mov edx, eax
add esp, 8
test edx, edx
je 0x49450a
mov eax, 1
mov byte [edx + 0x29], 0xff
sub eax, dword [esp + 0x38]
mov ecx, str.unknown_error
mov dword [edx + 8], eax
mov eax, dword [str.database_disk_image_is_malformed]
test eax, eax
mov dword [edx + 0x38], 0x5177c8
cmovne ecx, eax
mov byte [edx + 0x65], 0xff
mov dword [edx + 0x74], ecx
mov eax, dword [esi]
mov ecx, dword [esi + 0x6c]
sub ecx, 2
cmp byte [eax + 0x51], 0
mov eax, 0x525494
jne 0x494520
mov eax, dword [esi + 0x68]
mov dword [eax + 0xc], ecx
jmp 0x490cb5
test ecx, ecx
jne 0x494554
mov ecx, edi
call fcn.004963d0
test eax, eax
jne 0x490cb1
mov eax, dword [edi]
mov ecx, esi
movzx edx, byte [eax + 0x4e]
mov edx, dword [edx*8 + 0x507a40]
call fcn.00490620
jmp 0x490cb1
mov edx, dword [esp + 0xc]
test byte [edx + 0x18], 0x40
jne 0x495004
mov edx, dword [str.UTF8]
mov edi, 0x507a40
test edx, edx
je 0x4945f3
mov esi, ecx
sub esi, edx
nop dword [eax]
movzx ecx, byte [edx + esi]
movzx eax, byte [edx]
cmp ecx, eax
jne 0x49460a
test ecx, ecx
jne 0x49461c
mov cl, byte [edi + 4]
mov ebx, 2
movzx eax, cl
test cl, cl
mov ecx, dword [esp + 0xc]
mov edx, 0x508fd4
cmovne ebx, eax
push 0
mov eax, dword [ecx + 0x10]
mov eax, dword [eax + 0xc]
mov byte [eax + 0x4d], bl
mov byte [ecx + 0x4e], bl
add ecx, 0x194
call fcn.00436710
add esp, 4
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x4945df
movzx eax, bl
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*4]
add ecx, 0xffffffec
mov edx, dword [esp + 0xc]
mov dword [edx + 8], ecx
cmp dword [edi], 0
jne 0x495004
mov ecx, dword [esp + 0x28]
push ecx
push str.unsupported_encoding:__s
push dword [esp + 0x20]
call fcn.00435200
add esp, 0xc
jmp 0x490cb1
movzx eax, byte [eax + 0x509590]
movzx ecx, byte [ecx + 0x509590]
sub ecx, eax
jne 0x494622
inc edx
jmp 0x494580
mov edx, dword [edi + 8]
add edi, 8
mov ecx, dword [esp + 0x28]
jmp 0x49456d
mov eax, dword [esi + 0x9c]
mov edx, dword [esp + 0x20]
bts eax, edx
mov edi, dword [ebx + 8]
mov dword [esi + 0x9c], eax
cmp edx, 1
je 0x49466e
mov eax, dword [esi]
mov ecx, dword [esp + 0x1c]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx + 4]
cmp byte [eax + 9], 0
je 0x49466e
mov eax, dword [esi + 0xa0]
bts eax, edx
mov dword [esi + 0xa0], eax
cmp dword [esp + 0x28], 0
je 0x4946c0
test byte [ebx + 5], 8
jne 0x4946c0
push ecx
push 0x509560
mov edx, 2
mov ecx, esi
call fcn.00453730
mov ecx, dword [esp + 0x30]
lea edx, [esp + 0x40]
mov esi, eax
mov dword [esp + 0x40], 0
mov eax, dword [esp + 0x28]
add esp, 8
mov dword [esi + 4], eax
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], edi
call fcn.00435cf0
mov ecx, dword [esp + 0x38]
mov dword [esi + 0x20], ecx
jmp 0x490cb1
push ecx
push 0x50adb4
mov edx, 3
mov ecx, esi
call fcn.00453730
mov ecx, dword [esp + 0x28]
add esp, 8
mov dword [eax + 4], ecx
mov dword [eax + 0x18], ecx
mov dword [eax + 0x20], edi
and dword [esi + 0x98], 0xffffffdf
jmp 0x490cb1
mov eax, dword [esp + 0x54]
xor edi, edi
mov dword [eax], 1
nop word [eax + eax]
cmp edi, 1
ja 0x4946e2
mov ebx, dword [edi*4 + 0x509e60]
inc edi
test ebx, ebx
je 0x4946e2
mov edx, dword [esi + 0x6c]
cmp dword [esi + 0x70], edx
jg 0x494732
push 0
push 1
push 0
mov edx, 0x73
mov ecx, esi
call fcn.00453030
add esp, 0xc
mov edx, eax
jmp 0x494769
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x44]
mov dword [eax + ecx*4], 0x73
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0
push ebx
mov ecx, esi
call fcn.00453b70
mov ecx, dword [esi + 0x6c]
add esp, 8
cmp dword [esi + 0x70], ecx
jg 0x494798
push 0
push 1
push 1
mov edx, 0x50
mov ecx, esi
call fcn.00453030
add esp, 0xc
jmp 0x494700
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x50
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 0x494700
mov eax, dword [esp + 0x30]
mov ebx, 0xa
cmp dword [eax], 0
cmovne ebx, dword [esp + 0x20]
xor edx, edx
mov dword [esp + 0x10], ebx
test ecx, ecx
je 0x49489f
mov ebx, str.full
mov edx, ecx
sub ebx, ecx
nop dword [eax + eax]
movzx eax, byte [edx]
movzx edi, byte [edx + ebx]
cmp eax, edi
jne 0x494817
test eax, eax
jne 0x494829
lea edx, [eax + 1]
jmp 0x49489b
movzx ecx, byte [eax + 0x509590]
movzx eax, byte [edi + 0x509590]
sub ecx, eax
jne 0x49482c
inc edx
jmp 0x494800
mov ebx, dword [esp + 0x28]
mov edx, str.restart
sub ebx, edx
movzx eax, byte [edx + ebx]
movzx edi, byte [edx]
cmp eax, edi
jne 0x49484b
test eax, eax
jne 0x49485d
lea edx, [eax + 2]
jmp 0x49489b
movzx ecx, byte [eax + 0x509590]
movzx eax, byte [edi + 0x509590]
sub ecx, eax
jne 0x494860
inc edx
jmp 0x494837
mov ebx, dword [esp + 0x28]
mov edx, str.truncate
sub ebx, edx
nop dword [eax + eax]
movzx eax, byte [edx + ebx]
movzx edi, byte [edx]
cmp eax, edi
jne 0x494884
test eax, eax
jne 0x494896
lea edx, [eax + 3]
jmp 0x49489b
movzx ecx, byte [eax + 0x509590]
movzx eax, byte [edi + 0x509590]
sub ecx, eax
jne 0x494899
inc edx
jmp 0x494870
xor edx, edx
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x54]
mov dword [eax], 3
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x4948c6
push 1
push edx
push ebx
mov edx, 6
mov ecx, esi
call fcn.00453030
add esp, 0xc
jmp 0x4948f1
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 6
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 1
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x494902
push 0
push 3
jmp 0x490f0e
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x50
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], 3
jmp 0x490f47
test ecx, ecx
je 0x49494f
lea edx, [esp + 0x38]
mov dword [esp + 0x38], 0
call fcn.00435cf0
push dword [esp + 0x38]
push dword [esp + 0x10]
call fcn.004c77a0
add esp, 8
mov eax, dword [esp + 0xc]
cmp dword [eax + 0xf8], 0x4c7680
jne 0x490edd
mov eax, dword [eax + 0xfc]
jmp 0x490edf
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0xc]
test eax, eax
je 0x494991
mov esi, dword [0x5220c8]
mov ecx, esi
push eax
call dword [0x4f4350]
call esi
mov edx, dword [esp + 0x10]
add esp, 4
cmp byte [edx + 0x59], 0
jne 0x4949a2
mov ecx, edx
call fcn.004448a0
mov edx, dword [esp + 0xc]
xor edi, edi
cmp dword [edx + 0x14], edi
jle 0x4949e9
xor ebx, ebx
nop dword [eax + eax]
mov eax, dword [edx + 0x10]
mov eax, dword [eax + ebx + 4]
test eax, eax
je 0x4949e0
mov eax, dword [eax + 4]
mov esi, dword [0x52210c]
mov ecx, esi
mov eax, dword [eax]
mov eax, dword [eax + 0xd4]
push dword [eax + 0x2c]
call dword [0x4f4350]
call esi
mov edx, dword [esp + 0x10]
add esp, 4
inc edi
add ebx, 0x10
cmp edi, dword [edx + 0x14]
jl 0x4949b0
cmp byte [edx + 0x59], 0
jne 0x4949fa
mov ecx, edx
call fcn.004448f0
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0xc]
test eax, eax
je 0x490cb1
mov esi, dword [0x5220d0]
mov ecx, esi
push eax
call dword [0x4f4350]
call esi
jmp 0x490cae
test ecx, ecx
je 0x494a43
lea edx, [esp + 0x38]
mov dword [esp + 0x38], 0
call fcn.00435cf0
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x14], ecx
test cl, 2
je 0x490cb1
jmp 0x494a4b
mov dword [esp + 0x14], 0xfffe
cmp dword [esp + 0x40], 0
mov edx, dword [edi + 0x28]
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x10], edx
lea eax, [edx + 1]
mov dword [edi + 0x28], eax
je 0x494a69
mov dword [esp + 0x2c], ebx
jmp 0x494a7d
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x14]
dec eax
mov dword [esp + 0x2c], eax
cmp ebx, eax
jg 0x494d34
mov eax, dword [esp + 0x1c]
mov ecx, ebx
mov edi, 1
rol edi, cl
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x5c], edi
cmp ebx, 1
je 0x494d1a
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x74]
test eax, eax
cmovne ecx, eax
mov eax, dword [ecx + 0x54]
test eax, edi
jne 0x494ab4
bts eax, ebx
mov dword [ecx + 0x54], eax
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x1c]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx + 0xc]
mov ebx, dword [eax + 0x10]
test ebx, ebx
je 0x494d0e
nop
mov edi, dword [ebx + 8]
test dword [edi + 0x24], 0x100
je 0x494d00
mov ax, word [edi + 0x2e]
add ax, 0x2e
movzx ecx, ax
mov eax, dword [edi + 8]
mov dword [esp + 0x70], ecx
test eax, eax
je 0x494b07
test byte [eax + 0x38], 0x80
je 0x494b8c
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x494af6
test cx, cx
je 0x494b8c
mov ecx, dword [esp + 0x18]
push 0x60
push edi
push dword [esp + 0x28]
call fcn.00489a70
mov eax, dword [esp + 0x7c]
add esp, 0xc
mov ecx, dword [esi + 0x6c]
movsx edx, ax
mov eax, dword [esp + 0x14]
and eax, 1
add eax, 2
add eax, ecx
mov dword [esp + 0x70], eax
cmp dword [esi + 0x70], ecx
jg 0x494b59
push edx
push eax
push dword [esp + 0x18]
mov edx, 0x22
mov ecx, esi
call fcn.00453030
add esp, 0xc
jmp 0x494b8c
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x10]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x70]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x44]
mov dword [eax + ecx*4], 0x22
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0xc]
push dword [edi]
mov ecx, dword [esp + 0x20]
mov eax, dword [edx + 0x10]
push dword [eax + ecx]
push str.ANALYZE___w_.__w_
push edx
call fcn.00434410
add esp, 0x10
mov edi, eax
test byte [esp + 0x14], 1
mov dword [esp + 0x38], edi
je 0x494c97
mov edx, dword [esp + 0x18]
mov cl, byte [edx + 0x13]
test cl, cl
jne 0x494bd0
mov eax, dword [esp + 0x54]
inc dword [eax]
mov edi, dword [eax]
jmp 0x494bdf
dec cl
movzx eax, cl
mov byte [edx + 0x13], cl
mov edi, dword [edx + eax*4 + 0x98]
mov edx, dword [esi + 0x6c]
cmp dword [esi + 0x70], edx
jg 0x494bff
push 0
push edi
push 0
mov edx, 0x73
mov ecx, esi
call fcn.00453030
add esp, 0xc
mov edx, eax
jmp 0x494c32
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x44]
mov dword [eax + ecx*4], 0x73
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
push 0xfffffffffffffff9
push dword [esp + 0x3c]
mov ecx, esi
call fcn.00453b70
mov ecx, dword [esi + 0x6c]
add esp, 8
cmp dword [esi + 0x70], ecx
jg 0x494c63
push 0
push 1
push edi
mov edx, 0x50
mov ecx, esi
call fcn.00453030
add esp, 0xc
jmp 0x494cfc
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x50
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 0x494cfc
mov edx, dword [esi + 0x6c]
cmp dword [esi + 0x70], edx
jg 0x494cb8
push 0
push 0
push 0
mov edx, 0x8c
mov ecx, esi
call fcn.00453030
add esp, 0xc
mov edx, eax
jmp 0x494cef
mov edi, dword [esp + 0x38]
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x8c
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
push 0xfffffffffffffff9
push edi
mov ecx, esi
call fcn.00453b70
add esp, 8
mov edx, dword [esp + 0x10]
mov ebx, dword [ebx]
test ebx, ebx
jne 0x494ad0
mov edi, dword [esp + 0x5c]
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x1c]
inc ebx
rol edi, 1
add eax, 0x10
mov dword [esp + 0x20], ebx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x5c], edi
cmp ebx, ecx
jle 0x494a92
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x494d56
push 0
push 0
push 0
mov edx, 0x9e
mov ecx, esi
call fcn.00453030
add esp, 0xc
jmp 0x490cb1
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x9e
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
jmp 0x490f47
test ecx, ecx
je 0x494d9f
lea edx, [esp + 0x70]
call fcn.00435be0
test eax, eax
jne 0x494d9f
push dword [esp + 0x74]
push dword [esp + 0x74]
call fcn.00431410
add esp, 8
call fcn.004c5350
test eax, eax
je 0x494dba
or ebx, 0xffffffff
or ecx, ebx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], ecx
jmp 0x490ee8
mov eax, dword [0x525680]
test eax, eax
je 0x494ddc
mov edi, dword [0x5220c8]
mov ecx, edi
push eax
call dword [0x4f4350]
call edi
mov eax, dword [0x525680]
add esp, 4
mov ecx, dword [0x52568c]
mov ebx, dword [0x525688]
mov dword [esp + 0x70], ecx
test eax, eax
je 0x494e08
mov edi, dword [0x5220d0]
mov ecx, edi
push eax
call dword [0x4f4350]
call edi
mov ecx, dword [esp + 0x74]
add esp, 4
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], ecx
jmp 0x490ee8
test ecx, ecx
je 0x494e60
lea edx, [esp + 0x70]
call fcn.00435be0
test eax, eax
jne 0x494e60
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.00431570
mov edi, dword [esp + 0x7c]
add esp, 8
mov ebx, eax
test edi, edi
jl 0x494e60
mov ecx, dword [esp + 0x70]
jg 0x494e46
test ecx, ecx
je 0x494e60
mov eax, ebx
or eax, edx
je 0x494e56
cmp edx, edi
jl 0x494e60
jg 0x494e56
cmp ebx, ecx
jbe 0x494e60
push edi
push ecx
call fcn.00431570
add esp, 8
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.00431570
add esp, 8
jmp 0x490ee0
test ecx, ecx
je 0x494eab
lea edx, [esp + 0x70]
call fcn.00435be0
test eax, eax
jne 0x494eab
cmp dword [esp + 0x74], eax
jl 0x494eab
mov eax, dword [esp + 0x70]
jg 0x494e92
test eax, eax
jb 0x494eab
mov ecx, 8
and eax, 0x7fffffff
cmp eax, ecx
cmova eax, ecx
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x98], eax
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x98]
jmp 0x490edf
test ecx, ecx
je 0x494eea
lea edx, [esp + 0x70]
call fcn.00435be0
test eax, eax
jne 0x494eea
cmp dword [esp + 0x74], eax
jl 0x494eea
mov eax, dword [esp + 0x70]
jg 0x494edb
test eax, eax
jb 0x494eea
mov ecx, dword [esp + 0xc]
and eax, 0x7fffffff
mov dword [ecx + 0x1d4], eax
mov eax, dword [esp + 0xc]
push 0xfffffffffffffff2
mov eax, dword [eax + 0x1d4]
cdq
mov dword [esp + 0x74], eax
lea eax, [esp + 0x74]
push eax
push ecx
push 1
mov dword [esp + 0x84], edx
mov edx, 0x46
push ecx
mov ecx, esi
call fcn.00453370
mov ecx, dword [esi + 0x6c]
add esp, 0x14
mov ebx, dword [esp + 0xc]
cmp dword [esi + 0x70], ecx
jle 0x494fea
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x50
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 0x490cb5
test ecx, ecx
je 0x494fae
lea edx, [esp + 0x38]
mov dword [esp + 0x38], 0
call fcn.00435cf0
mov edi, dword [esp + 0x38]
test edi, edi
jle 0x494f9e
mov eax, dword [esp + 0xc]
push eax
push 0x4c6c40
push eax
call fcn.004c6cb0
mov ebx, dword [esp + 0x18]
add esp, 0xc
mov dword [ebx + 0x1d8], edi
jmp 0x494fb2
push 0
push 0
push dword [esp + 0x14]
call fcn.004c6cb0
add esp, 0xc
mov ebx, dword [esp + 0xc]
mov eax, dword [ebx + 0x1d8]
cdq
push 0xfffffffffffffff2
mov dword [esp + 0x74], eax
lea eax, [esp + 0x74]
push eax
push ecx
push 1
mov dword [esp + 0x84], edx
mov edx, 0x46
push ecx
mov ecx, esi
call fcn.00453370
mov ecx, dword [esi + 0x6c]
add esp, 0x14
cmp dword [esi + 0x70], ecx
jg 0x494f2a
push 0
push 1
push 1
mov edx, 0x50
mov ecx, esi
call fcn.00453030
add esp, 0xc
jmp 0x490cb5
mov ebx, edx
jmp 0x490cb5