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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x84
mov eax, dword [0x1013d070]
xor eax, esp
mov dword [esp + 0x80], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, ecx
mov dword [esp + 0x1c], eax
mov ecx, dword [ebp + 0xc]
push esi
mov dword [esp + 0x28], ecx
mov esi, dword [ebx + 8]
mov ecx, dword [ebx]
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x40], esi
push edi
mov edi, edx
test esi, esi
jne 0x1008431c
cmp dword [ebx + 0x78], esi
jne 0x10084303
test byte [ecx + 0x44], 8
jne 0x10084303
mov byte [ebx + 0x17], 1
mov ecx, ebx
call fcn.1004f440
mov esi, eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x44], esi
test esi, esi
je 0x100844a0
or dword [esi + 0x94], 0x20
lea ecx, [esp + 0x64]
push ecx
push eax
mov edx, edi
mov dword [ebx + 0x2c], 2
mov ecx, ebx
call fcn.10071020
mov ecx, eax
add esp, 8
mov dword [esp + 0x18], ecx
test ecx, ecx
js 0x100844a0
mov eax, dword [esp + 0x10]
mov edi, ecx
shl edi, 4
mov dword [esp + 0x28], edi
mov ebx, dword [eax + 0x10]
add ebx, edi
mov dword [esp + 0x4c], ebx
cmp ecx, 1
jne 0x1008437a
mov ecx, dword [esp + 0x14]
call fcn.10075bc0
test eax, eax
jne 0x100844a0
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x64]
mov ecx, eax
call fcn.10070e20
mov dword [esp + 0x58], eax
test eax, eax
je 0x100844a0
cmp dword [ebp + 0x10], 0
je 0x100843b4
push dword [esp + 0x2c]
push 0x10135d0c
push dword [esp + 0x18]
call fcn.10031dd0
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x1c], ecx
jmp 0x100843c7
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x10]
call fcn.10070e20
mov ecx, eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x24]
cmp dword [eax + 4], 0
jbe 0x100843d5
mov eax, dword [ebx]
jmp 0x100843d7
xor eax, eax
push eax
push ecx
push dword [esp + 0x60]
mov ecx, dword [esp + 0x20]
mov edx, 0x13
mov dword [esp + 0x40], eax
call fcn.1006fcf0
add esp, 0xc
test eax, eax
jne 0x10084484
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x84], ecx
lea ecx, [esp + 0x7c]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x58]
push ecx
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x14]
push 0xe
push dword [esp + 0x3c]
mov dword [esp + 0x94], 0
push eax
mov dword [eax + 0x18c], 0
call fcn.100ad030
add esp, 0x10
mov dword [esp + 0x64], eax
test eax, eax
jne 0x100844b5
lea edx, [eax + 1]
mov ecx, esi
call fcn.10051850
push 0xffffffffffffffff
push dword [esp + 0x80]
xor edx, edx
mov ecx, esi
push 0
call fcn.10051910
mov edx, dword [esp + 0x88]
add esp, 0xc
mov ecx, esi
call fcn.10084000
push dword [esp + 0x7c]
call fcn.1002f800
add esp, 4
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0x58]
mov ecx, edi
call fcn.1002f8f0
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
call fcn.1002f8f0
mov ecx, dword [esp + 0x8c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.100ae9aa
mov esp, ebp
pop ebp
ret
cmp eax, 0xc
je 0x100844f0
mov ecx, dword [esp + 0x7c]
test ecx, ecx
je 0x100844e4
push ecx
push 0x10133120
push dword [esp + 0x1c]
call fcn.10032d30
add esp, 0xc
push dword [esp + 0x7c]
call fcn.1002f800
mov eax, dword [esp + 0x68]
add esp, 4
mov ecx, dword [esp + 0x14]
inc dword [ecx + 0x24]
mov dword [ecx + 0xc], eax
jmp 0x10084484
mov ecx, dword [esp + 0x58]
call fcn.10084110
mov dword [esp + 0x38], eax
test eax, eax
je 0x10084484
test byte [eax + 5], 1
je 0x1008451c
mov ecx, dword [esp + 0x14]
call fcn.10087800
test eax, eax
jne 0x10084484
mov eax, dword [esp + 0x38]
mov cl, byte [eax + 5]
test cl, 2
jne 0x1008453e
test cl, 4
je 0x10084531
mov edx, dword [esp + 0x1c]
test edx, edx
jne 0x10084542
mov edx, eax
mov ecx, esi
call fcn.10083eb0
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x1c]
movzx ecx, byte [eax + 4]
cmp ecx, 0x27
ja case.0x1008454f.3
jmp dword [ecx*4 + 0x1008674c]
mov edi, dword [esp + 0x18]
mov ecx, esi
mov edx, edi
call fcn.10050bd0
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x1008459a
mov eax, dword [esp + 0x14]
mov edx, 9
push ecx
push 0x1012ce84
mov ecx, esi
add dword [eax + 0x2c], 2
call fcn.10050120
add esp, 8
mov dword [eax + 4], edi
mov dword [eax + 0x18], edi
mov dword [eax + 0x7c], 0xfffff830
jmp 0x10084484
mov ecx, eax
call fcn.10033980
mov ecx, eax
call fcn.10033fc0
push dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
xor edx, edx
mov edi, eax
call fcn.10075d80
add esp, 4
mov edx, 0x68
mov ecx, esi
push edi
push 3
push dword [esp + 0x20]
call fcn.1004f7a0
mov eax, dword [ebx + 0xc]
add esp, 0xc
mov dword [eax + 0x50], edi
mov edx, dword [ebx + 0xc]
mov ecx, dword [ebx + 4]
mov edx, dword [edx + 0x50]
call fcn.10044b20
jmp 0x10084484
mov edi, dword [ebx + 4]
test edx, edx
jne 0x10084622
test edi, edi
je 0x1008460e
mov eax, dword [edi + 4]
mov ecx, esi
mov eax, dword [eax + 0x20]
cdq
push edx
push eax
call fcn.10083f50
add esp, 8
jmp 0x10084484
xor eax, eax
mov ecx, esi
cdq
push edx
push eax
call fcn.10083f50
add esp, 8
jmp 0x10084484
mov ecx, edx
call fcn.10033980
mov ecx, dword [esp + 0x10]
mov edx, eax
push 0
push 0xffffffffffffffff
mov dword [ecx + 0x54], eax
mov ecx, edi
call fcn.10044c80
mov edi, dword [esp + 0x18]
add esp, 8
cmp eax, 7
jne 0x10084488
mov ecx, edi
call fcn.10030020
jmp 0x10084488
mov eax, dword [ebx + 4]
or edx, 0xffffffff
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x64], eax
mov dword [esp + 0x30], edx
test ebx, ebx
je 0x10084696
push str.fast
push ebx
call fcn.10032eb0
add esp, 8
test eax, eax
jne 0x10084686
lea edx, [eax + 2]
jmp 0x10084692
xor dl, dl
mov ecx, ebx
call fcn.10083c40
movzx edx, al
mov dword [esp + 0x30], edx
mov eax, dword [esp + 0x24]
cmp dword [eax + 4], 0
jne 0x100846d8
test edx, edx
js 0x100846d8
mov eax, dword [esp + 0x10]
xor ebx, ebx
cmp dword [eax + 0x14], ebx
jle 0x100846d8
mov esi, dword [esp + 0x30]
xor edi, edi
mov ecx, dword [eax + 0x10]
mov edx, esi
mov ecx, dword [ecx + edi + 4]
call fcn.10044d90
mov eax, dword [esp + 0x10]
lea edi, [edi + 0x10]
inc ebx
cmp ebx, dword [eax + 0x14]
jl 0x100846b5
mov esi, dword [esp + 0x44]
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x64]
call fcn.10044d90
cdq
mov ecx, esi
push edx
push eax
call fcn.10083f50
add esp, 8
jmp 0x10084484
mov ebx, dword [esp + 0x14]
mov ecx, ebx
mov edx, dword [esp + 0x18]
call fcn.10075c60
mov eax, dword [esp + 0x58]
inc dword [ebx + 0x2c]
mov edi, dword [ebx + 0x2c]
movzx eax, byte [eax]
cmp byte [eax + 0x1012d740], 0x70
jne 0x1008472e
push edi
push dword [esp + 0x1c]
mov edx, 0xa1
mov ecx, esi
call fcn.1004f8f0
add esp, 8
jmp 0x10084753
mov ecx, dword [esp + 0x1c]
call fcn.10033980
mov ecx, eax
call fcn.10033fc0
push eax
push edi
push dword [esp + 0x20]
mov edx, 0xa2
mov ecx, esi
call fcn.1004f7a0
add esp, 0xc
push 1
push edi
mov edx, 0x4e
mov ecx, esi
call fcn.1004f8f0
add esp, 8
jmp 0x10084484
mov ecx, edx
mov edi, str.normal
call fcn.10083c60
mov edx, eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 4]
test eax, eax
jne 0x100847de
cmp edx, 0xffffffff
jne 0x10084792
mov eax, dword [esp + 0x10]
movzx eax, byte [eax + 0x4b]
jmp 0x100847eb
test eax, eax
jne 0x100847de
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x14], 2
jle 0x100847db
mov edi, 0x20
mov ebx, eax
lea esi, [edi - 0x1e]
nop word [eax + eax]
mov eax, dword [ebx + 0x10]
mov eax, dword [eax + edi + 4]
mov ecx, dword [eax + 4]
mov ecx, dword [ecx]
call fcn.1003f170
inc esi
lea edi, [edi + 0x10]
cmp esi, dword [ebx + 0x14]
jl 0x100847b0
mov esi, dword [esp + 0x44]
mov edi, str.normal
mov ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x10]
mov byte [eax + 0x4b], dl
mov eax, dword [ebx + 4]
mov eax, dword [eax + 4]
mov ecx, dword [eax]
call fcn.1003f170
cmp eax, 1
mov edx, str.exclusive
mov ecx, esi
cmovne edx, edi
call fcn.10084000
jmp 0x10084484
test edx, edx
je 0x100848c2
mov ecx, edx
call fcn.10032b60
mov edi, eax
xor ebx, ebx
cmp ebx, 6
je 0x100848c2
mov ecx, dword [ebx*4 + 0x1012c9b8]
test ecx, ecx
je 0x100848c2
push edi
push ecx
push dword [esp + 0x24]
call fcn.10032f30
add esp, 0xc
test eax, eax
je 0x10084842
inc ebx
jmp 0x10084815
cmp ebx, 0xffffffff
je 0x100848c5
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x14]
sub edi, 1
js 0x100848aa
mov edx, edi
shl edx, 4
mov dword [esp + 0x2c], edx
mov eax, dword [eax + 0x10]
cmp dword [eax + edx + 4], 0
je 0x10084896
cmp edi, dword [esp + 0x18]
je 0x10084876
cmp dword [ecx + 4], 0
jne 0x10084896
mov edx, edi
mov ecx, esi
call fcn.10050bd0
push ebx
push 1
push edi
mov edx, 9
mov ecx, esi
call fcn.1004f7a0
mov edx, dword [esp + 0x38]
add esp, 0xc
mov ecx, dword [esp + 0x24]
sub edx, 0x10
sub edi, 1
mov eax, dword [esp + 0x10]
mov dword [esp + 0x2c], edx
jns 0x10084860
push 1
push 1
mov edx, 0x4e
mov ecx, esi
call fcn.1004f8f0
add esp, 8
jmp 0x10084484
or ebx, 0xffffffff
mov ecx, dword [esp + 0x24]
cmp dword [ecx + 4], 0
jne 0x1008484b
mov dword [esp + 0x18], 0
mov dword [ecx + 4], 1
jmp 0x1008484b
mov eax, dword [ebx + 4]
or ecx, 0xffffffff
mov dword [esp + 0x6c], ecx
mov eax, dword [eax + 4]
mov edi, dword [eax]
mov eax, 0xfffffffe
mov dword [esp + 0x68], eax
test edx, edx
je 0x1008492f
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x68]
call fcn.100336e0
mov ecx, dword [esp + 0x6c]
cmp ecx, 0xffffffff
jg 0x1008492b
jl 0x10084924
mov eax, dword [esp + 0x68]
cmp eax, 0xffffffff
jae 0x1008492f
or eax, 0xffffffff
or ecx, eax
jmp 0x1008492f
mov eax, dword [esp + 0x68]
push ecx
push eax
mov ecx, edi
call fcn.1003f2b0
push edx
push eax
mov ecx, esi
call fcn.10083f50
add esp, 0x10
jmp 0x10084484
mov edi, dword [ebx + 4]
test edx, edx
jne 0x10084969
mov ecx, edi
call fcn.10044e80
cdq
mov ecx, esi
push edx
push eax
call fcn.10083f50
add esp, 8
jmp 0x10084484
mov ecx, edx
call fcn.10083ca0
mov ebx, eax
mov ecx, edi
mov eax, dword [esp + 0x10]
mov edx, ebx
mov byte [eax + 0x4c], bl
call fcn.10044e00
test eax, eax
jne 0x10084484
cmp ebx, 1
je 0x10084998
cmp ebx, 2
jne 0x10084484
mov edi, dword [esi + 0x88]
mov edx, 5
push ecx
push 0x1012f7e8
mov ecx, esi
call fcn.10050120
mov edx, dword [esp + 0x20]
lea ecx, [edi + 4]
add esp, 8
mov dword [eax + 0x30], ecx
lea ecx, [ebx - 1]
mov dword [eax + 0x5c], ecx
mov ecx, esi
mov dword [eax + 4], edx
mov dword [eax + 0x18], edx
mov dword [eax + 0x54], edx
call fcn.10050bd0
jmp 0x10084484
test edx, edx
je 0x100849f5
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x64]
call fcn.100337f0
test eax, eax
je 0x100849f5
mov edi, dword [esp + 0x64]
test edi, edi
jg 0x100849fa
mov edi, closesocket
mov ebx, dword [esp + 0x18]
xor edx, edx
mov ecx, dword [esp + 0x14]
push ebx
call fcn.10075d80
add esp, 4
mov edx, 0x43
mov ecx, esi
push 1
push edi
call fcn.1004f8f0
push ebx
mov edx, 0x3c
mov ecx, esi
call fcn.1004f880
add esp, 0xc
mov edx, 0x4e
mov ecx, esi
mov edi, eax
push 1
call fcn.1004f880
add esp, 4
mov edx, 0x50
mov ecx, esi
push 0xffffffffffffffff
push 1
call fcn.1004f8f0
push edi
push 1
mov edx, 0x30
mov ecx, esi
call fcn.1004f8f0
add esp, 0x10
mov edx, edi
mov ecx, esi
call fcn.100502c0
jmp 0x10084484
test edx, edx
jne 0x10084a8b
mov eax, dword [ebx + 0xc]
mov ecx, esi
mov eax, dword [eax + 0x50]
cdq
push edx
push eax
call fcn.10083f50
add esp, 8
jmp 0x10084484
mov ecx, edx
call fcn.10033980
mov ecx, dword [ebx + 0xc]
mov dword [ecx + 0x50], eax
mov edx, dword [ebx + 0xc]
mov ecx, dword [ebx + 4]
mov edx, dword [edx + 0x50]
call fcn.10044b20
jmp 0x10084484
test edx, edx
jne 0x10084ae9
mov eax, dword [esp + 0x10]
test byte [eax + 0x1c], 0x20
jne 0x10084acd
xor eax, eax
mov ecx, esi
cdq
push edx
push eax
call fcn.10083f50
add esp, 8
jmp 0x10084484
mov ecx, dword [ebx + 4]
xor edx, edx
call fcn.10044ba0
cdq
mov ecx, esi
push edx
push eax
call fcn.10083f50
add esp, 8
jmp 0x10084484
mov edi, dword [esp + 0x1c]
lea edx, [esp + 0x2c]
mov ecx, edi
mov dword [esp + 0x2c], 1
call fcn.100337f0
mov esi, dword [esp + 0x2c]
test eax, eax
je 0x10084b12
mov ecx, dword [ebx + 4]
mov edx, esi
call fcn.10044ba0
test esi, esi
mov ecx, edi
setne dl
call fcn.10083c40
test al, al
mov eax, dword [esp + 0x10]
je 0x10084b36
or dword [eax + 0x1c], 0x20
mov ecx, eax
call fcn.10084080
jmp 0x10084484
and dword [eax + 0x1c], 0xffffffdf
mov ecx, eax
call fcn.10084080
jmp 0x10084484
test edx, edx
je 0x10084c3e
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x68]
call fcn.100336e0
cmp dword [esp + 0x6c], 0
jg 0x10084b7d
jl 0x10084b6b
cmp dword [esp + 0x68], 0
jae 0x10084b7d
mov eax, dword [0x1013e050]
mov dword [esp + 0x68], eax
mov eax, dword [0x1013e054]
mov dword [esp + 0x6c], eax
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x10]
cmp dword [ecx + 4], 0
jne 0x10084b99
mov eax, dword [esp + 0x68]
mov dword [edx + 0x28], eax
mov eax, dword [esp + 0x6c]
mov dword [edx + 0x2c], eax
mov ebx, dword [edx + 0x14]
sub ebx, 1
js 0x10084c3e
mov esi, ebx
shl esi, 4
nop word [eax + eax]
mov eax, dword [edx + 0x10]
mov edi, dword [eax + esi + 4]
test edi, edi
je 0x10084c2e
cmp ebx, dword [esp + 0x18]
je 0x10084bc7
cmp dword [ecx + 4], 0
jne 0x10084c2e
cmp byte [edi + 9], 0
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x68]
mov dword [esp + 0x3c], ecx
mov ecx, dword [edi + 4]
mov dword [esp + 0x64], eax
mov dword [esp + 0x4c], ecx
je 0x10084bfc
inc dword [edi + 0xc]
cmp byte [edi + 0xa], 0
jne 0x10084bfc
mov ecx, edi
call fcn.100423f0
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x4c]
mov ecx, dword [ecx]
mov dword [ecx + 0x80], eax
mov eax, dword [esp + 0x3c]
mov dword [ecx + 0x84], eax
call fcn.1003c520
cmp byte [edi + 9], 0
je 0x10084c26
add dword [edi + 0xc], 0xffffffff
jne 0x10084c26
mov ecx, edi
call fcn.100423b0
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x10]
sub esi, 0x10
sub ebx, 1
jns 0x10084bb0
mov esi, dword [esp + 0x44]
lea eax, [esp + 0x68]
mov dword [esp + 0x68], 0xffffffff
push eax
push 0x12
push dword [esp + 0x3c]
mov dword [esp + 0x78], 0xffffffff
push dword [esp + 0x1c]
call fcn.100ad030
add esp, 0x10
test eax, eax
jne 0x10084c80
push dword [esp + 0x6c]
mov ecx, esi
push dword [esp + 0x6c]
call fcn.10083f50
add esp, 8
jmp 0x10084484
mov edi, dword [esp + 0x10]
cmp eax, 0xc
je 0x10084488
mov ecx, dword [esp + 0x14]
inc dword [ecx + 0x24]
mov dword [ecx + 0xc], eax
jmp 0x10084488
test edx, edx
jne 0x10084cba
mov eax, dword [esp + 0x10]
mov ecx, esi
movzx eax, byte [eax + 0x48]
cdq
push edx
push eax
call fcn.10083f50
add esp, 8
jmp 0x10084484
mov ecx, dword [esp + 0x14]
call fcn.10083e40
jmp 0x10084484
test edx, edx
jne 0x10084cde
mov edx, dword [0x1014003c]
mov ecx, esi
call fcn.10084000
jmp 0x10084484
cmp byte [edx], 0
je 0x10084d1a
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x64]
push ecx
push 1
push edx
mov eax, dword [eax]
push eax
mov eax, dword [eax + 0x20]
call eax
add esp, 0x10
test eax, eax
jne 0x10084d04
cmp dword [esp + 0x64], eax
jne 0x10084d1a
push str.not_a_writable_directory
push dword [esp + 0x18]
call fcn.10032d30
add esp, 8
jmp 0x10084484
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x48], 1
ja 0x10084d2d
mov ecx, dword [esp + 0x14]
call fcn.10083df0
push dword [0x1014003c]
call fcn.1002f800
mov eax, dword [esp + 0x20]
add esp, 4
cmp byte [eax], 0
je 0x10084d5c
push eax
push 0x10133120
call fcn.10031ec0
add esp, 8
mov dword [0x1014003c], eax
jmp 0x10084484
mov dword [0x1014003c], 0
jmp 0x10084484
test edx, edx
jne 0x10084d81
mov edx, dword [0x10140038]
mov ecx, esi
call fcn.10084000
jmp 0x10084484
cmp byte [edx], 0
je 0x10084daf
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x64]
push ecx
push 1
push edx
mov eax, dword [eax]
push eax
mov eax, dword [eax + 0x20]
call eax
add esp, 0x10
test eax, eax
jne 0x10084d04
cmp dword [esp + 0x64], eax
je 0x10084d04
push dword [0x10140038]
call fcn.1002f800
mov eax, dword [esp + 0x20]
add esp, 4
cmp byte [eax], 0
je 0x10084dde
push eax
push 0x10133120
call fcn.10031ec0
add esp, 8
mov dword [0x10140038], eax
jmp 0x10084484
mov dword [0x10140038], 0
jmp 0x10084484
test edx, edx
jne 0x10084e08
movzx eax, byte [ebx + 8]
mov ecx, esi
dec eax
cdq
push edx
push eax
call fcn.10083f50
add esp, 8
jmp 0x10084484
mov edi, dword [esp + 0x10]
cmp byte [edi + 0x47], 0
jne 0x10084e28
push str.Safety_level_may_not_be_changed_inside_a_transaction
push dword [esp + 0x18]
call fcn.10032d30
add esp, 8
jmp 0x10084488
cmp dword [esp + 0x18], 1
je 0x10084488
mov ecx, dword [esp + 0x1c]
xor edx, edx
push 1
call fcn.10083b90
inc eax
add esp, 4
and eax, 7
mov ecx, 1
mov byte [ebx + 9], cl
cmove eax, ecx
mov ecx, edi
mov byte [ebx + 8], al
call fcn.10084080
jmp 0x10084488
test edx, edx
jne 0x10084e94
mov edx, eax
mov ecx, esi
call fcn.10083eb0
mov ecx, dword [esp + 0x38]
push 0
mov eax, dword [ecx + 8]
mov ecx, dword [esp + 0x14]
and eax, dword [ecx + 0x1c]
mov ecx, esi
neg eax
sbb eax, eax
neg eax
push eax
call fcn.10083f50
add esp, 8
jmp 0x10084484
mov edi, dword [eax + 8]
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x47], 0
jne 0x10084ea7
and edi, 0xffffbfff
mov ecx, dword [esp + 0x1c]
xor dl, dl
call fcn.10083c40
test al, al
je 0x10084ebf
mov eax, dword [esp + 0x10]
or dword [eax + 0x1c], edi
jmp 0x10084ee6
mov ecx, dword [esp + 0x10]
mov eax, edi
not eax
and dword [ecx + 0x1c], eax
cmp edi, 0x80000
jne 0x10084ee6
mov dword [ecx + 0x1d0], 0
mov dword [ecx + 0x1d4], 0
mov edx, 0x99
mov ecx, esi
call fcn.1004f810
mov ecx, dword [esp + 0x10]
call fcn.10084080
jmp 0x10084484
test edx, edx
je 0x10084484
push dword [esp + 0x34]
mov edi, dword [esp + 0x18]
mov ecx, edi
push edx
mov edx, 2
call fcn.10070510
mov ebx, eax
add esp, 8
mov dword [esp + 0x20], ebx
test ebx, ebx
je 0x10084484
mov ecx, ebx
mov dword [esp + 0x28], 0
call fcn.100710e0
mov edx, dword [esp + 0x18]
mov ecx, edi
mov dword [esp + 0x2c], eax
mov dword [edi + 0x2c], 6
call fcn.10075c60
mov edx, ebx
mov ecx, edi
call fcn.10072f70
mov eax, dword [esp + 0x20]
xor edi, edi
mov ebx, dword [ebx + 4]
movzx edx, word [eax + 0x2a]
xor eax, eax
cmp ax, dx
jge 0x10084484
mov al, byte [ebx + 0xf]
test al, 2
je 0x10084f84
inc dword [esp + 0x28]
jmp 0x10085002
test al, 1
jne 0x10084f8c
xor ecx, ecx
jmp 0x10084fc3
cmp dword [esp + 0x2c], 0
mov ecx, 1
je 0x10084fc3
movsx eax, dx
mov dword [esp + 0x64], eax
cmp eax, ecx
jl 0x10084fc3
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x64]
mov edx, dword [eax + 4]
nop
movsx eax, word [edx]
cmp eax, edi
je 0x10084fbf
inc ecx
add edx, 2
cmp ecx, esi
jle 0x10084fb0
mov esi, dword [esp + 0x44]
mov eax, dword [ebx + 4]
test eax, eax
je 0x10084fcf
mov eax, dword [eax + 8]
jmp 0x10084fd1
xor eax, eax
push ecx
push eax
xor eax, eax
mov edx, 0x1012fc88
cmp byte [ebx + 0xc], al
mov ecx, ebx
setne al
push eax
call fcn.10032b90
push eax
push dword [ebx]
mov eax, edi
sub eax, dword [esp + 0x3c]
push eax
push str.issisi
push 1
push esi
call fcn.1004fa50
add esp, 0x24
mov eax, dword [esp + 0x20]
inc edi
add ebx, 0x10
movzx edx, word [eax + 0x2a]
movsx eax, dx
cmp edi, eax
jl 0x10084f74
jmp 0x10084484
test edx, edx
je 0x10084484
push dword [esp + 0x34]
mov ecx, dword [esp + 0x14]
call fcn.100706c0
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x10084484
mov ecx, dword [esp + 0x38]
cmp dword [ecx + 8], 0
je 0x1008505d
mov eax, dword [esp + 0x14]
movzx ecx, word [ebx + 0x34]
mov dword [eax + 0x2c], 6
mov eax, ecx
jmp 0x1008506c
mov ecx, dword [esp + 0x14]
movzx eax, word [ebx + 0x32]
mov dword [ecx + 0x2c], 3
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x28], eax
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x64], eax
call fcn.10075c60
mov ecx, dword [esp + 0x28]
xor edi, edi
test cx, cx
je 0x10084484
mov eax, dword [ebx + 4]
movzx edx, word [eax + edi*2]
test dx, dx
jns 0x100850a3
xor eax, eax
jmp 0x100850b2
mov eax, dword [esp + 0x64]
movsx ecx, dx
add ecx, ecx
mov eax, dword [eax + 4]
mov eax, dword [eax + ecx*8]
push eax
movsx eax, dx
push eax
push edi
push str.iisX
push 1
push esi
call fcn.1004fa50
mov eax, dword [esp + 0x50]
add esp, 0x18
cmp dword [eax + 8], 0
je 0x100850fc
movzx eax, word [ebx + 0x32]
xor ecx, ecx
cmp edi, eax
mov eax, dword [ebx + 0x20]
setl cl
push ecx
push dword [eax + edi*4]
mov eax, dword [ebx + 0x1c]
movzx eax, byte [eax + edi]
push eax
push str.isiX
push 4
push esi
call fcn.1004fa50
add esp, 0x18
mov eax, dword [esp + 0x14]
mov edx, 0x4e
mov ecx, esi
push dword [eax + 0x2c]
push 1
call fcn.1004f8f0
mov ecx, dword [esp + 0x30]
inc edi
movzx eax, cx
add esp, 8
cmp edi, eax
jl 0x10085093
jmp 0x10084484
test edx, edx
je 0x10084484
push dword [esp + 0x34]
mov ecx, dword [esp + 0x14]
call fcn.100703c0
mov edi, eax
add esp, 4
test edi, edi
je 0x10084484
mov eax, dword [esp + 0x14]
mov ecx, eax
mov edx, dword [esp + 0x18]
mov dword [eax + 0x2c], 5
call fcn.10075c60
mov edi, dword [edi + 8]
xor ebx, ebx
test edi, edi
je 0x10084484
mov dword [esp + 0x68], 0x10135d8c
mov dword [esp + 0x6c], 0x10135d88
mov dword [esp + 0x70], 0x10135788
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 + 0x6c]
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.1004fa50
mov edi, dword [edi + 0x14]
add esp, 0x20
inc ebx
test edi, edi
jne 0x10085186
jmp 0x10084484
mov eax, dword [esp + 0x14]
xor edi, edi
mov edx, dword [esp + 0x10]
mov dword [eax + 0x2c], 3
cmp dword [edx + 0x14], edi
jle 0x10085212
xor ebx, ebx
nop word [eax + eax]
mov edx, dword [edx + 0x10]
mov ecx, dword [edx + ebx + 4]
test ecx, ecx
je 0x10085205
call fcn.1004cc10
push eax
push dword [edx + ebx]
push edi
push 0x10135d90
push 1
push esi
call fcn.1004fa50
add esp, 0x18
mov edx, dword [esp + 0x10]
inc edi
add ebx, 0x10
cmp edi, dword [edx + 0x14]
jl 0x100851e0
mov edi, edx
jmp 0x10084488
mov eax, dword [esp + 0x14]
xor ebx, ebx
mov edx, dword [esp + 0x10]
mov dword [eax + 0x2c], 2
mov edi, dword [edx + 0x17c]
test edi, edi
je 0x10085212
mov eax, dword [edi + 8]
push dword [eax]
push ebx
push 0x10135da4
push 1
push esi
call fcn.1004fa50
mov edi, dword [edi]
add esp, 0x14
inc ebx
test edi, edi
jne 0x10085234
jmp 0x10084484
test edx, edx
je 0x10084484
push dword [esp + 0x34]
mov ecx, dword [esp + 0x14]
call fcn.100703c0
add esp, 4
mov dword [esp + 0x64], eax
test eax, eax
je 0x10084484
mov edi, dword [eax + 0x10]
test edi, edi
je 0x10084484
mov eax, dword [esp + 0x14]
mov ecx, eax
mov edx, dword [esp + 0x18]
mov dword [esp + 0x28], 0
mov dword [eax + 0x2c], 8
call fcn.10075c60
xor eax, eax
xor ebx, ebx
cmp dword [edi + 0x14], ebx
jle 0x10085371
lea edx, [edi + 0x24]
mov dword [esp + 0x2c], edx
nop word [eax + eax]
movzx eax, byte [edi + 0x19]
add eax, 0xfffffff9
cmp eax, 3
ja case.default.0x100852cc
jmp dword [eax*4 + 0x100867ec]
mov ecx, str.SET_NULL
jmp 0x100852f4
mov ecx, str.SET_DEFAULT
jmp 0x100852f4
mov ecx, str.CASCADE
jmp 0x100852f4
mov ecx, str.RESTRICT
jmp 0x100852f4
mov ecx, str.NO_ACTION
movzx eax, byte [edi + 0x1a]
add eax, 0xfffffff9
cmp eax, 3
ja case.default.0x10085300
jmp dword [eax*4 + 0x100867fc]
mov eax, str.SET_NULL
jmp 0x10085328
mov eax, str.SET_DEFAULT
jmp 0x10085328
mov eax, str.CASCADE
jmp 0x10085328
mov eax, str.RESTRICT
jmp 0x10085328
mov eax, str.NO_ACTION
push str.NONE
push ecx
mov ecx, dword [edx]
push eax
push dword [edx + 4]
mov eax, dword [esp + 0x74]
add ecx, ecx
mov eax, dword [eax + 4]
push dword [eax + ecx*8]
push dword [edi + 8]
push ebx
push dword [esp + 0x44]
push str.iissssss
push 1
push esi
call fcn.1004fa50
mov edx, dword [esp + 0x58]
inc ebx
add edx, 8
add esp, 0x2c
mov dword [esp + 0x2c], edx
cmp ebx, dword [edi + 0x14]
jl 0x100852c0
mov eax, dword [esp + 0x28]
mov edi, dword [edi + 4]
inc eax
mov dword [esp + 0x28], eax
test edi, edi
jne 0x100852a5
jmp 0x10084484
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov eax, dword [eax + 0x2c]
lea ecx, [eax + 1]
mov dword [esp + 0x38], ecx
lea ebx, [eax + 6]
lea ecx, [eax + 5]
mov dword [esp + 0x28], ebx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x64], ecx
mov ecx, eax
mov dword [eax + 0x2c], ebx
call fcn.10075c60
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x10]
mov eax, dword [eax + edi + 0xc]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x10085212
nop word [eax + eax]
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x100853f1
push dword [esp + 0x34]
xor edx, edx
push ecx
mov ecx, dword [esp + 0x1c]
call fcn.10070510
add esp, 8
mov edi, eax
xor eax, eax
jmp 0x100853f6
mov edi, dword [eax + 8]
mov eax, dword [eax]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x48], edi
test edi, edi
je 0x1008574d
cmp dword [edi + 0x10], 0
je 0x1008574d
push dword [edi]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
push 0
push dword [edi + 0x1c]
call fcn.1006fd80
mov ecx, dword [esp + 0x20]
add esp, 0xc
movsx eax, word [edi + 0x2a]
add eax, ebx
cmp eax, dword [ecx + 0x2c]
jle 0x10085439
mov dword [ecx + 0x2c], eax
push 0x6a
push edi
push dword [esp + 0x20]
xor edx, edx
call fcn.1007e980
mov edx, dword [esp + 0x44]
add esp, 0xc
mov ecx, esi
push dword [edi]
call fcn.1004f9d0
mov ebx, dword [edi + 0x10]
add esp, 4
mov eax, 1
mov dword [esp + 0x30], eax
test ebx, ebx
je 0x1008552a
nop
push dword [esp + 0x34]
mov edx, dword [ebx + 8]
mov ecx, dword [esp + 0x14]
call fcn.100703c0
mov edi, eax
add esp, 4
test edi, edi
je 0x10085512
push dword [edi]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
push 0
push dword [edi + 0x1c]
mov dword [esp + 0x50], 0
call fcn.1006fd80
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x50]
add esp, 0xc
mov edx, edi
push 0
push eax
push ebx
call fcn.1007be80
add esp, 0xc
test eax, eax
jne 0x10084484
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x100854eb
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x14]
push 0x6a
push edi
push dword [esp + 0x20]
call fcn.1007e980
add esp, 0xc
jmp 0x10085512
push dword [esp + 0x18]
mov edx, 0x6a
mov ecx, esi
push dword [eax + 0x2c]
push dword [esp + 0x38]
call fcn.1004f7a0
mov edx, dword [esp + 0x50]
add esp, 0xc
mov ecx, dword [esp + 0x14]
call fcn.100507b0
mov eax, dword [esp + 0x30]
mov ebx, dword [ebx + 4]
inc eax
mov dword [esp + 0x30], eax
test ebx, ebx
jne 0x10085470
mov edi, dword [esp + 0x48]
mov ecx, dword [esp + 0x14]
cmp dword [ecx + 0x28], eax
jge 0x10085536
mov dword [ecx + 0x28], eax
push 0
mov edx, 0x25
mov ecx, esi
call fcn.1004f880
mov ebx, dword [edi + 0x10]
add esp, 4
mov dword [esp + 0x54], eax
mov dword [esp + 0x24], 1
mov dword [esp + 0x50], ebx
test ebx, ebx
je 0x10085727
push dword [esp + 0x34]
mov edx, dword [ebx + 8]
mov ecx, dword [esp + 0x14]
call fcn.100703c0
add esp, 4
mov dword [esp + 0x4c], eax
mov dword [esp + 0x44], 0
mov dword [esp + 0x20], 0
test eax, eax
je 0x100855a6
lea ecx, [esp + 0x20]
mov edx, eax
push ecx
lea ecx, [esp + 0x48]
push ecx
mov ecx, dword [esp + 0x1c]
push ebx
call fcn.1007be80
add esp, 0xc
mov ecx, esi
call fcn.1004ff20
xor edi, edi
mov dword [esp + 0x30], eax
cmp dword [ebx + 0x14], edi
jle 0x10085614
mov ecx, dword [esp + 0x50]
mov ebx, dword [esp + 0x28]
add ecx, 0x24
mov dword [esp + 0x2c], ecx
mov eax, dword [esp + 0x20]
test eax, eax
je 0x100855d4
mov eax, dword [eax + edi*4]
jmp 0x100855d6
mov eax, dword [ecx]
mov edx, dword [esp + 0x48]
mov ecx, esi
push ebx
push eax
push 0
call fcn.10069690
add esp, 0xc
mov edx, 0x32
mov ecx, esi
push dword [esp + 0x30]
push ebx
call fcn.1004f8f0
mov eax, dword [esp + 0x58]
inc edi
mov ecx, dword [esp + 0x34]
add esp, 8
add ecx, 8
inc ebx
mov dword [esp + 0x2c], ecx
cmp edi, dword [eax + 0x14]
jl 0x100855c7
mov ebx, eax
mov edx, dword [esp + 0x44]
test edx, edx
je 0x10085665
push dword [ebx + 0x14]
push ecx
mov ecx, dword [esp + 0x18]
call fcn.1007ead0
mov edi, dword [esp + 0x6c]
add esp, 4
mov edx, 0x65
mov ecx, esi
push eax
push edi
push dword [ebx + 0x14]
push dword [esp + 0x38]
call fcn.1004fc00
add esp, 0x14
mov edx, 0x1e
mov ecx, esi
push 0
push edi
mov edi, dword [esp + 0x38]
push edi
push dword [esp + 0x30]
call fcn.1004fe10
add esp, 0x10
jmp 0x100856a0
cmp dword [esp + 0x4c], 0
je 0x1008569c
mov eax, dword [esi + 0x88]
mov edx, 0x1f
push dword [esp + 0x28]
add eax, 2
mov ecx, esi
push eax
push dword [esp + 0x2c]
call fcn.1004f7a0
mov edi, dword [esp + 0x3c]
add esp, 0xc
mov edx, edi
mov ecx, esi
call fcn.1004f960
jmp 0x100856a0
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x48]
mov ecx, esi
mov edx, 0x7d
test byte [eax + 0x24], 0x20
mov eax, dword [esp + 0x38]
je 0x100856ba
mov edx, 0x46
inc eax
push eax
push 0
call fcn.1004f8f0
mov eax, dword [esp + 0x2c]
add esp, 8
dec eax
push eax
push dword [ebx + 8]
mov eax, dword [esp + 0x40]
push 0x10135da8
add eax, 2
push eax
push esi
call fcn.1004fa50
add esp, 0x14
mov edx, 0x4e
mov ecx, esi
push 4
push dword [esp + 0x3c]
call fcn.1004f8f0
add esp, 8
mov edx, edi
mov ecx, esi
call fcn.1004ff70
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x10]
call fcn.1002f8f0
mov ebx, dword [ebx + 4]
inc dword [esp + 0x24]
mov dword [esp + 0x50], ebx
test ebx, ebx
jne 0x10085562
mov eax, dword [esp + 0x54]
inc eax
mov edx, 7
push eax
push 0
mov ecx, esi
call fcn.1004f8f0
mov edx, dword [esp + 0x5c]
add esp, 8
mov ecx, esi
call fcn.100502c0
mov ebx, dword [esp + 0x28]
mov eax, dword [esp + 0x3c]
test eax, eax
jne 0x100853d0
jmp 0x10084484
test edx, edx
je 0x10084484
mov ecx, dword [esp + 0x1c]
xor dl, dl
call fcn.10083c40
mov ecx, dword [esp + 0x10]
movzx edx, al
call fcn.1007bcd0
jmp 0x10084484
mov eax, dword [esp + 0x58]
or ecx, 0xffffffff
mov ebx, dword [esp + 0x14]
movzx eax, byte [eax]
mov al, byte [eax + 0x1012d740]
mov byte [esp + 0x43], al
mov eax, dword [esp + 0x24]
cmp dword [eax], 0
mov eax, dword [esp + 0x18]
cmove eax, ecx
mov dword [ebx + 0x2c], 6
mov dword [esp + 0x18], eax
mov eax, 0x64
mov dword [esp + 0x64], eax
mov dword [esp + 0x3c], eax
test edx, edx
je 0x100857df
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x3c]
call fcn.100337f0
mov eax, dword [esp + 0x3c]
mov ecx, 0x64
test eax, eax
cmovle eax, ecx
mov dword [esp + 0x64], eax
dec eax
mov edx, 0x43
push 1
push eax
mov ecx, esi
call fcn.1004f8f0
mov edi, dword [esp + 0x18]
xor ecx, ecx
add esp, 8
mov dword [esp + 0x30], ecx
cmp dword [edi + 0x14], ecx
jle 0x10086204
mov eax, dword [esp + 0x18]
nop dword [eax]
mov dword [esp + 0x20], 0
test eax, eax
js 0x10085824
cmp ecx, eax
jne 0x100861f0
mov edx, ecx
mov ecx, ebx
call fcn.10075c60
mov eax, dword [esp + 0x10]
xor edx, edx
mov ecx, dword [esp + 0x30]
shl ecx, 4
mov dword [esp + 0x4c], ecx
mov eax, dword [eax + 0x10]
mov eax, dword [ecx + eax + 0xc]
add eax, 8
mov dword [esp + 0x3c], eax
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x1008588c
mov esi, edx
mov eax, dword [ebx + 8]
xor edi, edi
mov ecx, dword [eax + 8]
test byte [eax + 0x24], 0x20
lea eax, [edx + 1]
cmovne eax, edx
mov edx, eax
test ecx, ecx
je 0x10085879
nop dword [eax]
mov ecx, dword [ecx + 0x14]
inc edx
inc edi
test ecx, ecx
jne 0x10085870
mov ebx, dword [ebx]
cmp edi, esi
cmovg esi, edi
test ebx, ebx
jne 0x10085855
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x44]
mov ecx, dword [esp + 0x10]
lea eax, [edx*4 + 4]
push 0
push eax
call fcn.1002fbc0
mov edi, eax
add esp, 8
test edi, edi
je 0x10086200
mov ebx, dword [esp + 0x3c]
xor edx, edx
mov ebx, dword [ebx + 8]
test ebx, ebx
je 0x100858eb
nop dword [eax]
mov ecx, dword [ebx + 8]
test byte [ecx + 0x24], 0x20
jne 0x100858d0
mov eax, dword [ecx + 0x1c]
inc edx
mov dword [edi + edx*4], eax
mov ecx, dword [ecx + 8]
test ecx, ecx
je 0x100858e5
mov eax, dword [ecx + 0x2c]
inc edx
mov dword [edi + edx*4], eax
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x100858d7
mov ebx, dword [ebx]
test ebx, ebx
jne 0x100858c0
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
mov dword [edi], edx
add ecx, 8
push 0xfffffffffffffff1
cmp dword [ebx + 0x2c], ecx
push edi
cmovg ecx, dword [ebx + 0x2c]
push 1
push edx
mov dword [ebx + 0x2c], ecx
mov edx, 0x90
push 2
mov ecx, esi
mov byte [ebx + 0x13], 0
mov dword [ebx + 0x1c], 0
call fcn.1004fc00
mov eax, dword [esp + 0x44]
add esp, 0x14
movzx edx, al
mov ecx, esi
call fcn.100502a0
push 2
mov edx, 0x32
call fcn.1004f880
mov edx, dword [esp + 0x14]
add esp, 4
mov edi, eax
mov eax, dword [esp + 0x4c]
mov ecx, dword [edx + 0x10]
push 0xfffffffffffffff9
push dword [eax + ecx]
push str._in_database__s__n
push edx
call fcn.10031dd0
add esp, 0xc
mov edx, 0x63
mov ecx, esi
push eax
push 0
push 3
push 0
call fcn.1004fc00
add esp, 0x14
mov edx, 0x5e
mov ecx, esi
push 3
push 3
push 2
call fcn.1004f7a0
add esp, 0xc
mov ecx, esi
call fcn.10084180
mov edx, edi
mov ecx, esi
call fcn.100502c0
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 8]
mov dword [esp + 0x2c], eax
test eax, eax
je 0x100861e4
mov ebx, eax
mov ebx, dword [ebx + 8]
mov dword [esp + 0x38], ebx
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0xffffffff
cmp dword [ebx + 0x1c], 1
jl 0x100861ce
test byte [ebx + 0x24], 0x20
jne 0x100859e2
mov dword [esp + 0x28], 0
jmp 0x100859ed
mov ecx, ebx
call fcn.100710e0
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x14]
call fcn.10069870
lea eax, [esp + 0x50]
mov edx, ebx
push eax
lea eax, [esp + 0x28]
push eax
push 0
push 1
push 0
push 0x6a
call fcn.10082340
push 7
push 0
mov edx, 0x43
mov ecx, esi
call fcn.1004f8f0
mov edi, dword [ebx + 8]
add esp, 0x20
test edi, edi
je 0x10085a4a
mov ebx, 8
nop
push ebx
push 0
mov edx, 0x43
mov ecx, esi
call fcn.1004f8f0
mov edi, dword [edi + 0x14]
add esp, 8
inc ebx
test edi, edi
jne 0x10085a30
push 0
push dword [esp + 0x28]
mov edx, 0x25
mov ecx, esi
call fcn.1004f8f0
push 1
push 7
mov edx, 0x50
mov ecx, esi
call fcn.1004f8f0
mov edi, dword [esp + 0x48]
add esp, 0x10
mov dword [esp + 0x68], eax
xor ebx, ebx
xor eax, eax
cmp ax, word [edi + 0x2a]
jge 0x10085b3c
xor ecx, ecx
mov dword [esp + 0x20], ecx
nop dword [eax + eax]
movsx eax, word [edi + 0x28]
cmp ebx, eax
je 0x10085b28
mov eax, dword [edi + 4]
cmp byte [eax + ecx + 0xc], 0
je 0x10085b28
push 3
push ebx
push dword [esp + 0x2c]
mov edx, edi
mov ecx, esi
call fcn.10069690
add esp, 0xc
mov edx, 0x80
mov ecx, esi
call fcn.100502a0
push 3
mov edx, 0x33
call fcn.1004f880
mov edx, dword [esp + 0x3c]
add esp, 4
mov edi, eax
mov eax, dword [esp + 0x20]
mov ecx, dword [edx + 4]
push dword [ecx + eax]
push dword [edx]
push str.NULL_value_in__s._s
push dword [esp + 0x1c]
call fcn.10031dd0
push 0xfffffffffffffff9
push eax
push 0
push 3
push 0
mov edx, 0x63
mov ecx, esi
call fcn.1004fc00
add esp, 0x24
mov ecx, esi
call fcn.10084180
mov edx, edi
mov ecx, esi
call fcn.100502c0
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x38]
movsx eax, word [edi + 0x2a]
inc ebx
add ecx, 0x10
mov dword [esp + 0x20], ecx
cmp ebx, eax
jl 0x10085a90
mov edx, dword [edi + 0x18]
test edx, edx
je 0x10085c81
mov ebx, dword [esp + 0x10]
test dword [ebx + 0x1c], 0x200
jne 0x10085c81
push 0
mov ecx, ebx
call fcn.10065d80
add esp, 4
mov dword [esp + 0x20], eax
cmp byte [ebx + 0x49], 0
jne 0x10085c74
mov ecx, esi
call fcn.1004ff20
mov ebx, eax
mov ecx, esi
mov dword [esp + 0x3c], ebx
call fcn.1004ff20
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x24]
inc ecx
mov dword [esp + 0x54], eax
inc dword [edx + 0x3c]
mov dword [edx + 0x38], ecx
mov ecx, dword [esp + 0x20]
mov edi, dword [ecx]
dec edi
test edi, edi
jle 0x10085bdb
mov esi, dword [esp + 0x3c]
lea eax, [edi + edi*2]
lea ebx, [ecx + 4]
lea ebx, [ebx + eax*8]
push 0
push esi
push dword [ebx]
push edx
call fcn.1006b460
mov edx, dword [esp + 0x24]
lea ebx, [ebx - 0x18]
dec edi
add esp, 0x10
test edi, edi
jg 0x10085bb1
mov esi, dword [esp + 0x44]
mov ebx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x54]
push 0x10
push eax
push dword [ecx + 4]
push edx
call fcn.1006b0d0
mov eax, dword [esi + 0xc]
add esp, 0x10
mov ecx, dword [eax + 0x48]
test ecx, ecx
je 0x10085c05
lea eax, [ebx*4 + 4]
sub ecx, eax
mov eax, dword [esi + 0x88]
mov dword [ecx], eax
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x38]
mov dword [ebx + 0x38], 0
push dword [edi]
push str.CHECK_constraint_failed_in__s
push dword [esp + 0x18]
call fcn.10031dd0
add esp, 0xc
mov edx, 0x63
mov ecx, esi
push 0xfffffffffffffff9
push eax
push 0
push 3
push 0
call fcn.1004fc00
add esp, 0x14
mov ecx, esi
call fcn.10084180
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 0x48]
test ecx, ecx
je 0x10085c65
mov eax, dword [esp + 0x54]
lea eax, [eax*4 + 4]
sub ecx, eax
mov eax, dword [esi + 0x88]
mov dword [ecx], eax
mov ecx, ebx
call fcn.10069620
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x10]
test eax, eax
je 0x10085c81
mov edx, eax
mov ecx, ebx
call fcn.10066760
mov bl, byte [esp + 0x43]
cmp bl, 0x71
je 0x10085fb8
movsx eax, word [edi + 0x2a]
mov edx, 0x62
push 3
dec eax
mov ecx, esi
push eax
push dword [esp + 0x2c]
call fcn.1004f7a0
mov eax, dword [esi + 0x88]
add esp, 0xc
test eax, eax
jle 0x10085cc3
lea ecx, [eax + eax*4]
mov edx, 0x80
mov eax, dword [esi + 0x58]
mov word [eax + ecx*4 - 0x12], dx
mov ebx, dword [edi + 8]
test ebx, ebx
je 0x10085fb4
mov edx, dword [esp + 0x50]
mov eax, 8
sub eax, edx
mov dword [esp + 0x34], edx
mov dword [esp + 0x54], eax
mov edi, dword [esi + 0xc]
mov ecx, dword [edi + 0x44]
mov dword [esp + 0x3c], ecx
lea eax, [ecx + 1]
mov dword [edi + 0x44], eax
lea eax, [ecx - 1]
test ecx, eax
jne 0x10085d1a
mov edx, dword [edi + 0x48]
lea eax, [ecx*8 + 4]
mov ecx, dword [edi]
push 0
push eax
call fcn.1002fd70
mov ecx, dword [esp + 0x44]
add esp, 8
mov edx, dword [esp + 0x34]
mov dword [edi + 0x48], eax
mov eax, dword [edi + 0x48]
test eax, eax
je 0x10085d28
mov dword [eax + ecx*4], 0xffffffff
cmp dword [esp + 0x28], ebx
je 0x10085fa4
push dword [esp + 0x48]
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x64]
push dword [esp + 0x50]
mov edx, ebx
push eax
push 0
push 0
push dword [esp + 0x38]
call fcn.10078750
mov ecx, dword [esp + 0x6c]
mov edx, 0x50
mov edi, dword [esp + 0x4c]
add ecx, edi
push 1
push ecx
mov ecx, esi
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], ebx
call fcn.1004f8f0
movzx ecx, word [ebx + 0x34]
mov edx, 0x1e
mov eax, dword [esp + 0x5c]
push ecx
push dword [esp + 0x6c]
not eax
mov ecx, esi
push eax
push edi
call fcn.1004fe10
push str.row
mov edx, 3
mov ecx, esi
mov edi, eax
call fcn.1004f9d0
add esp, 0x34
mov edx, 0x5e
mov ecx, esi
push 3
push 3
push 7
call fcn.1004f7a0
add esp, 0xc
mov edx, 4
mov ecx, esi
push str._missing_from_index
call fcn.1004f9d0
add esp, 4
mov edx, 0x5e
mov ecx, esi
push 3
push 3
push 4
call fcn.1004f7a0
add esp, 0xc
mov edx, 4
mov ecx, esi
push dword [ebx]
call fcn.1004f9d0
add esp, 4
mov dword [esp + 0x3c], eax
mov edx, 0x5e
mov ecx, esi
push 3
push 3
push 4
call fcn.1004f7a0
add esp, 0xc
mov ecx, esi
call fcn.10084180
mov edx, dword [esi + 0x88]
mov dword [esp + 0x5c], eax
test edi, edi
jns 0x10085e26
lea edi, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x49], 0
je 0x10085e35
mov eax, 0x10142c24
jmp 0x10085e3e
mov eax, dword [esi + 0x58]
lea ecx, [edi + edi*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
cmp byte [ebx + 0x36], 0
je 0x10085f41
mov ecx, esi
call fcn.1004ff20
mov edx, eax
xor edi, edi
xor eax, eax
mov dword [esp + 0x20], edx
cmp ax, word [ebx + 0x32]
jae 0x10085ea1
mov eax, dword [ebx + 4]
movsx ecx, word [eax + edi*2]
test ecx, ecx
js 0x10085e7d
mov eax, dword [esp + 0x38]
add ecx, ecx
mov eax, dword [eax + 4]
cmp byte [eax + ecx*8 + 0xc], 0
jne 0x10085e98
mov eax, dword [esp + 0x48]
mov ecx, esi
push edx
add eax, edi
mov edx, 0x32
push eax
call fcn.1004f8f0
mov edx, dword [esp + 0x28]
add esp, 8
movzx eax, word [ebx + 0x32]
inc edi
cmp edi, eax
jl 0x10085e62
push dword [esp + 0x34]
mov edx, 7
mov ecx, esi
call fcn.1004f880
mov edx, dword [esp + 0x24]
add esp, 4
mov ecx, esi
mov edi, eax
call fcn.1004f960
mov edx, dword [esi + 0x88]
test edi, edi
jns 0x10085ece
lea edi, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x49], 0
je 0x10085edd
mov eax, 0x10142c24
jmp 0x10085ee6
mov eax, dword [esi + 0x58]
lea ecx, [edi + edi*4]
lea eax, [eax + ecx*4]
mov edi, dword [esp + 0x20]
mov ecx, esi
mov dword [eax + 8], edx
mov edx, 0x27
movzx eax, word [ebx + 0x32]
push eax
push dword [esp + 0x4c]
push edi
push dword [esp + 0x40]
call fcn.1004fe10
push str.non_unique_entry_in_index
mov edx, 3
mov ecx, esi
call fcn.1004f9d0
mov edx, dword [esp + 0x50]
add esp, 0x14
mov ecx, esi
call fcn.1004f960
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 0x48]
test ecx, ecx
je 0x10085f41
lea eax, [edi*4 + 4]
sub ecx, eax
mov eax, dword [esi + 0x88]
mov dword [ecx], eax
mov ecx, dword [esp + 0x5c]
mov edx, dword [esi + 0x88]
test ecx, ecx
jns 0x10085f52
lea ecx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x49], 0
je 0x10085f61
mov eax, 0x10142c24
jmp 0x10085f6a
mov eax, dword [esi + 0x58]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov edi, dword [esp + 0x60]
mov dword [eax + 8], edx
test edi, edi
je 0x10085fa0
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 8]
mov eax, dword [edx + 0xc]
mov ecx, dword [eax + 0x48]
test ecx, ecx
je 0x10085f97
lea eax, [edi*4 + 4]
sub ecx, eax
mov eax, dword [edx + 0x88]
mov dword [ecx], eax
mov ecx, dword [esp + 0x14]
call fcn.10069620
mov edx, dword [esp + 0x34]
mov ebx, dword [ebx + 0x14]
inc edx
mov dword [esp + 0x34], edx
test ebx, ebx
jne 0x10085ce1
mov bl, byte [esp + 0x43]
mov edi, dword [esp + 0x68]
mov edx, 7
push edi
push dword [esp + 0x28]
mov ecx, esi
call fcn.1004f8f0
mov edx, dword [esi + 0x88]
lea ecx, [edi - 1]
add esp, 8
test ecx, ecx
jns 0x10085fe0
lea ecx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x49], 0
je 0x10085fef
mov eax, 0x10142c24
jmp 0x10085ff8
mov eax, dword [esi + 0x58]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
cmp bl, 0x71
je 0x100861ce
push str.wrong__of_entries_in_index
mov edx, 2
mov ecx, esi
call fcn.1004f9d0
mov eax, dword [esp + 0x3c]
add esp, 4
mov eax, dword [eax + 8]
mov dword [esp + 0x20], eax
test eax, eax
je 0x100861ce
mov ecx, dword [esp + 0x28]
mov ebx, 8
cmp ecx, eax
je 0x100861be
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x10086069
mov eax, dword [esp + 0x50]
mov edx, 0x66
push 0
add eax, 0xfffffff8
mov ecx, esi
add eax, ebx
push 3
push eax
call fcn.1004f760
add esp, 0xc
jmp 0x100860a5
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0x66
mov dword [eax + ecx*4 + 8], 3
mov dword [eax + ecx*4 + 0xc], 0
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x50]
add eax, 0xfffffff8
mov dword [ecx + 0x10], 0
add eax, ebx
mov dword [ecx + 4], eax
mov eax, dword [esi + 0xc]
mov edi, dword [esi + 0x88]
cmp dword [eax + 0x30], edi
jg 0x100860cb
push 3
push 0
push ebx
mov edx, 0x35
mov ecx, esi
call fcn.1004f760
add esp, 0xc
mov edi, eax
jmp 0x100860fd
lea eax, [edi + 1]
mov dword [esi + 0x88], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0x35
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 3
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x88]
test eax, eax
jle 0x10086117
lea ecx, [eax + eax*4]
mov edx, 0x90
mov eax, dword [esi + 0x58]
mov word [eax + ecx*4 - 0x12], dx
mov eax, dword [esp + 0x20]
mov edx, 4
mov ecx, esi
push dword [eax]
call fcn.1004f9d0
mov eax, dword [esi + 0xc]
add esp, 4
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x10086151
push 3
push 2
push 4
mov edx, 0x5e
mov ecx, esi
call fcn.1004f760
add esp, 0xc
jmp 0x10086187
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0x5e
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.10084180
mov edx, dword [esi + 0x88]
test edi, edi
jns 0x1008619b
lea edi, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x49], 0
je 0x100861aa
mov eax, 0x10142c24
jmp 0x100861b3
mov eax, dword [esi + 0x58]
lea ecx, [edi + edi*4]
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x28]
mov dword [eax + 8], edx
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x14]
inc ebx
mov dword [esp + 0x20], eax
test eax, eax
jne 0x10086034
mov ebx, dword [esp + 0x2c]
mov ebx, dword [ebx]
mov dword [esp + 0x2c], ebx
test ebx, ebx
jne 0x100859b1
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x30], ecx
cmp ecx, dword [edi + 0x14]
jl 0x10085810
jmp 0x10086204
mov edi, dword [esp + 0x10]
push ecx
push 0x1012dbb4
mov edx, 7
mov ecx, esi
call fcn.10050120
mov edx, eax
add esp, 8
test edx, edx
je 0x1008624c
mov eax, dword [str.database_disk_image_is_malformed]
mov ecx, 1
sub ecx, dword [esp + 0x64]
test eax, eax
mov dword [edx + 8], ecx
mov ecx, str.unknown_error
cmovne ecx, eax
mov byte [edx + 0x29], 0xff
mov dword [edx + 0x38], 0x10135e40
mov byte [edx + 0x65], 0xff
mov dword [edx + 0x74], ecx
mov eax, dword [esi]
mov ecx, 0x10142c24
mov edx, dword [esi + 0x88]
cmp byte [eax + 0x49], 0
jne 0x10086262
mov ecx, dword [esi + 0x58]
lea eax, [edx - 2]
mov dword [ecx + 0xc], eax
jmp 0x10084488
test edx, edx
jne 0x1008629d
mov ebx, dword [esp + 0x14]
mov ecx, ebx
call fcn.10087800
test eax, eax
jne 0x10084484
mov eax, dword [ebx]
mov ecx, esi
movzx edx, byte [eax + 0x46]
mov edx, dword [edx*8 + 0x1012bdc0]
call fcn.10084000
jmp 0x10084484
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x10]
mov eax, dword [edi + 0xc]
mov al, byte [eax + 0x4e]
and al, 5
cmp al, 1
je 0x10084484
mov eax, dword [str.UTF8]
mov esi, 0x1012bdc0
mov ebx, dword [esp + 0x1c]
test eax, eax
je 0x100862fb
mov edx, eax
mov ecx, ebx
call fcn.10032ee0
test eax, eax
je 0x100862df
mov eax, dword [esi + 8]
add esi, 8
test eax, eax
jne 0x100862c6
jmp 0x10086304
mov al, byte [esi + 4]
movzx ecx, al
test al, al
jne 0x100862ee
mov ecx, 2
mov eax, dword [esp + 0x10]
mov byte [eax + 0x46], cl
mov eax, dword [edi + 0xc]
mov byte [eax + 0x4d], cl
cmp dword [esi], 0
jne 0x10084484
push ebx
push str.unsupported_encoding:__s
push dword [esp + 0x1c]
call fcn.10032d30
add esp, 0xc
jmp 0x10084484
mov ebx, dword [esp + 0x18]
mov ecx, esi
mov edi, dword [eax + 8]
mov edx, ebx
call fcn.10050bd0
cmp dword [esp + 0x1c], 0
je 0x1008636d
mov eax, dword [esp + 0x38]
test byte [eax + 5], 8
jne 0x1008636d
push ecx
push 0x1012f0ac
mov edx, 2
mov ecx, esi
call fcn.10050120
mov ecx, dword [esp + 0x24]
mov esi, eax
add esp, 8
mov dword [esi + 4], ebx
mov dword [esi + 0x18], ebx
mov dword [esi + 0x1c], edi
call fcn.10033980
mov dword [esi + 0x20], eax
jmp 0x10084484
push ecx
push 0x1012bdb4
mov edx, 3
mov ecx, esi
call fcn.10050120
add esp, 8
mov dword [eax + 4], ebx
mov dword [eax + 0x18], ebx
mov dword [eax + 0x20], edi
and dword [esi + 0x94], 0xffffffdf
jmp 0x10084484
mov eax, dword [esp + 0x14]
xor edi, edi
push edi
mov dword [eax + 0x2c], 1
call fcn.100ad600
add esp, 4
test eax, eax
je 0x100863df
push eax
mov edx, 1
mov ecx, esi
inc edi
call fcn.1004f9d0
add esp, 4
mov edx, 0x4e
mov ecx, esi
push 1
push 1
call fcn.1004f8f0
push edi
call fcn.100ad600
add esp, 0xc
test eax, eax
jne 0x100863b1
and dword [esi + 0x94], 0xffffffdf
jmp 0x10084484
mov eax, dword [esp + 0x24]
mov ebx, 0xa
cmp dword [eax], 0
cmovne ebx, dword [esp + 0x18]
xor edi, edi
test edx, edx
je 0x10086448
mov ecx, dword [esp + 0x1c]
mov edx, str.full
call fcn.10032ee0
test eax, eax
jne 0x10086419
lea edi, [eax + 1]
jmp 0x10086448
mov ecx, dword [esp + 0x1c]
mov edx, str.restart
call fcn.10032ee0
test eax, eax
jne 0x10086430
lea edi, [eax + 2]
jmp 0x10086448
mov ecx, dword [esp + 0x1c]
mov edx, str.truncate
call fcn.10032ee0
test eax, eax
mov ecx, 3
cmove edi, ecx
mov eax, dword [esp + 0x14]
mov edx, 8
push 1
push edi
push ebx
mov ecx, esi
mov dword [eax + 0x2c], 3
call fcn.1004f7a0
add esp, 0xc
push 3
jmp 0x100848ac
test edx, edx
je 0x10086485
mov ecx, edx
call fcn.10033980
push eax
push dword [esp + 0x14]
call fcn.100ab5e0
add esp, 8
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xe8], 0x100ab5a0
jne 0x1008460e
mov eax, dword [eax + 0xec]
mov ecx, esi
cdq
push edx
push eax
call fcn.10083f50
add esp, 8
jmp 0x10084484
push dword [esp + 0x10]
call fcn.100aa050
jmp 0x10084481
test edx, edx
je 0x100864db
mov ecx, edx
call fcn.10033980
mov ecx, eax
mov dword [esp + 0x2c], ecx
test cl, 2
je 0x10084484
jmp 0x100864e3
mov dword [esp + 0x2c], 0xfffe
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov eax, dword [ecx + 0x28]
mov dword [esp + 0x64], eax
inc eax
cmp dword [esp + 0x34], 0
mov dword [ecx + 0x28], eax
je 0x10086505
mov eax, edx
mov dword [esp + 0x20], eax
jmp 0x10086520
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x14]
dec eax
mov dword [esp + 0x20], eax
cmp edx, eax
jg 0x10086654
nop dword [eax]
cmp edx, 1
je 0x10086640
call fcn.10075c60
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x10]
mov eax, dword [edi + eax + 0xc]
mov ebx, dword [eax + 0x10]
test ebx, ebx
je 0x10086634
nop dword [eax]
nop dword [eax + eax]
mov edi, dword [ebx + 8]
test dword [edi + 0x24], 0x100
je 0x10086626
mov ax, word [edi + 0x2c]
add ax, 0x2e
movzx ecx, ax
mov eax, dword [edi + 8]
mov dword [esp + 0x68], ecx
test eax, eax
je 0x10086583
test byte [eax + 0x38], 0x80
je 0x100865cb
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x10086576
test cx, cx
je 0x100865cb
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x14]
push 0x6a
push edi
push dword [esp + 0x20]
call fcn.1007e980
mov eax, dword [esp + 0x74]
add esp, 0xc
mov ecx, dword [esp + 0x2c]
mov edx, 0x22
cwde
and ecx, 1
add ecx, 2
push eax
mov eax, dword [esi + 0x88]
add eax, ecx
mov ecx, esi
push eax
push dword [esp + 0x6c]
call fcn.1004f7a0
add esp, 0xc
mov ecx, dword [esp + 0x10]
push dword [edi]
mov edi, dword [esp + 0x2c]
mov eax, dword [ecx + 0x10]
push dword [edi + eax]
push str.ANALYZE___w_.__w_
push ecx
call fcn.10031dd0
add esp, 0x10
mov edx, eax
test byte [esp + 0x2c], 1
je 0x10086665
mov ecx, dword [esp + 0x14]
call fcn.1006c240
push 0xfffffffffffffff9
push edx
mov edi, eax
mov edx, 0x63
push 0
push edi
push 0
mov ecx, esi
call fcn.1004fc00
add esp, 0x14
mov edx, 0x4e
mov ecx, esi
push 1
push edi
call fcn.1004f8f0
add esp, 8
mov edi, dword [esp + 0x28]
mov ebx, dword [ebx]
test ebx, ebx
jne 0x10086550
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
inc edx
add edi, 0x10
mov dword [esp + 0x18], edx
mov dword [esp + 0x28], edi
cmp edx, eax
jle 0x10086520
mov edx, 0x99
mov ecx, esi
call fcn.1004f810
jmp 0x10084484
push 0xfffffffffffffff9
push edx
push 0
push 0
push 0
mov edx, 0x8a
mov ecx, esi
call fcn.1004fc00
add esp, 0x14
jmp 0x1008662a
test edx, edx
je 0x100866a4
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x68]
call fcn.100336e0
test eax, eax
jne 0x100866a4
push dword [esp + 0x6c]
push dword [esp + 0x6c]
call fcn.1002f360
add esp, 8
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.1002f360
push edx
push eax
mov ecx, esi
call fcn.10083f50
add esp, 0x10
jmp 0x10084484
test edx, edx
je 0x100866fc
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x68]
call fcn.100336e0
test eax, eax
jne 0x100866fc
cmp dword [esp + 0x6c], eax
jl 0x100866fc
mov eax, dword [esp + 0x68]
jg 0x100866e3
test eax, eax
jb 0x100866fc
mov ecx, 8
and eax, 0x7fffffff
cmp eax, ecx
cmovg eax, ecx
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x90], eax
mov eax, dword [esp + 0x10]
mov ecx, esi
mov eax, dword [eax + 0x90]
cdq
push edx
push eax
call fcn.10083f50
add esp, 8
jmp 0x10084484
test edx, edx
je 0x10086730
mov ecx, edx
call fcn.10033980
push eax
push dword [esp + 0x14]
call fcn.100aadd0
add esp, 8
mov eax, dword [esp + 0x10]
mov ecx, esi
mov eax, dword [eax + 0x1b8]
cdq
push edx
push eax
call fcn.10083f50
add esp, 8
jmp 0x10084484