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

Disassembly:
sub esp, 0x70
mov eax, dword [esp + 0x74]
push ebp
push esi
mov esi, dword [eax + 8]
mov ebp, dword [eax]
mov dword [esp + 8], ebp
mov dword [esp + 0x1c], esi
test esi, esi
jne 0x51fc44
cmp dword [eax + 0x74], esi
jne 0x51fc29
test byte [ebp + 0x50], 8
jne 0x51fc29
mov byte [eax + 0x17], 1
push eax
call fcn.0052ec00
mov esi, eax
add esp, 4
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x1c], esi
test esi, esi
je 0x522391
or dword [esi + 0xa0], 0x20
lea ecx, [esp + 0x50]
push ebx
mov ebx, dword [esp + 0x88]
push ecx
push ebx
push dword [esp + 0x8c]
mov dword [eax + 0x2c], 2
push eax
call fcn.0052a5a0
add esp, 0x10
mov dword [esp + 0x14], eax
test eax, eax
js 0x522390
mov ebp, dword [ebp + 0x10]
push edi
mov edi, eax
shl edi, 4
add ebp, edi
mov dword [esp + 0x44], edi
cmp eax, 1
jne 0x51fca7
push dword [esp + 0x84]
call fcn.0051c4f0
add esp, 4
test eax, eax
jne 0x52238f
push dword [esp + 0x58]
push dword [esp + 0x14]
call fcn.0051be90
add esp, 8
mov dword [esp + 0x34], eax
test eax, eax
je 0x52238f
cmp dword [esp + 0x94], 0
push dword [esp + 0x90]
je 0x51fce7
push 0x58b96c
push dword [esp + 0x18]
call fcn.0051b520
add esp, 0xc
jmp 0x51fcf3
push dword [esp + 0x14]
call fcn.0051be90
add esp, 8
cmp dword [ebx + 4], 0
mov dword [esp + 0x14], eax
jbe 0x51fd02
mov ebx, dword [ebp]
jmp 0x51fd04
xor ebx, ebx
push ebx
push eax
push dword [esp + 0x3c]
mov dword [esp + 0x28], ebx
push 0x13
push dword [esp + 0x94]
call fcn.004fb7f0
add esp, 0x14
test eax, eax
jne 0x522369
mov dword [esp + 0x70], eax
lea ecx, [esp + 0x70]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x14]
push ecx
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x14]
push 0xe
push ebx
mov dword [esp + 0x88], 0
push eax
mov dword [eax + 0x1c4], 0
call fcn.004afe30
mov ebx, eax
add esp, 0x10
test ebx, ebx
jne 0x51fda2
push 1
push esi
call fcn.00539630
push 0xffffffffffffffff
push dword [esp + 0x7c]
push ebx
push ebx
push esi
call fcn.005395e0
push dword [esp + 0x8c]
push esi
call fcn.004f6760
push dword [esp + 0x94]
call fcn.004acf00
add esp, 0x28
jmp 0x522369
cmp ebx, 0xc
je 0x51fddf
mov eax, dword [esp + 0x70]
test eax, eax
je 0x51fdcd
push eax
push 0x579ca0
push dword [esp + 0x8c]
call fcn.00506fd0
push dword [esp + 0x7c]
call fcn.004acf00
add esp, 0x10
mov eax, dword [esp + 0x84]
inc dword [eax + 0x24]
mov dword [eax + 0xc], ebx
jmp 0x522369
push dword [esp + 0x34]
call fcn.004f1140
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x522369
test byte [ebx + 5], 1
je 0x51fe12
push dword [esp + 0x84]
call fcn.00522ce0
add esp, 4
test eax, eax
jne 0x522369
mov al, byte [ebx + 5]
test al, 2
jne 0x51fe2f
test al, 4
je 0x51fe25
mov edx, dword [esp + 0x14]
test edx, edx
jne 0x51fe33
push ebx
push esi
call fcn.004f8a60
add esp, 8
mov edx, dword [esp + 0x14]
movzx eax, byte [ebx + 4]
dec eax
cmp eax, 0x2a
ja case.0x51fe41.5
jmp dword [eax*4 + 0x522398]
mov ebx, dword [esp + 0x18]
push ebx
push esi
call fcn.0053a1f0
mov eax, dword [esp + 0x1c]
add esp, 8
test eax, eax
jne 0x51fe8d
mov eax, dword [esp + 0x84]
push 0
push 0x581784
push 9
add dword [eax + 0x2c], 2
push esi
call fcn.0052e3a0
add esp, 0x10
mov dword [eax + 4], ebx
mov dword [eax + 0x18], ebx
mov dword [eax + 0x7c], 0xfffff830
jmp 0x522369
push eax
call fcn.004fb560
push eax
call fcn.004f8fd0
push ebx
push 0
push dword [esp + 0x94]
mov edi, eax
call fcn.004fc2b0
push edi
push 3
push ebx
push 0x63
push esi
call fcn.0052e1e0
mov eax, dword [ebp + 0xc]
mov dword [eax + 0x50], edi
mov eax, dword [ebp + 0xc]
push dword [eax + 0x50]
push dword [ebp + 4]
call fcn.004ffcc0
add esp, 0x30
jmp 0x522369
mov edi, dword [ebp + 4]
test edx, edx
jne 0x51feec
test edi, edi
je 0x5203aa
mov eax, dword [edi + 4]
mov eax, dword [eax + 0x24]
jmp 0x52235d
push edx
call fcn.004fb560
mov ecx, dword [esp + 0x14]
push 0
push 0
push eax
push edi
mov dword [ecx + 0x64], eax
call fcn.004ffd70
add esp, 0x14
cmp eax, 7
jne 0x522369
push dword [esp + 0x10]
call fcn.0051c0c0
add esp, 4
jmp 0x522369
mov eax, dword [ebp + 4]
or ebp, 0xffffffff
mov dword [esp + 0x58], eax
test edx, edx
je 0x51ff58
push str.fast
push edx
call fcn.004b6900
add esp, 8
test eax, eax
jne 0x51ff46
lea ebp, [eax + 2]
jmp 0x51ff58
mov eax, dword [esp + 0x14]
push 0
push eax
call fcn.005168d0
add esp, 8
movzx ebp, al
mov eax, dword [esp + 0x8c]
cmp dword [eax + 4], 0
jne 0x51ff95
test ebp, ebp
js 0x51ff95
mov eax, dword [esp + 0x10]
xor ebx, ebx
cmp dword [eax + 0x14], ebx
jle 0x51ff95
xor edi, edi
mov esi, eax
mov eax, dword [esi + 0x10]
push ebp
push dword [edi + eax + 4]
call fcn.004ffbe0
inc ebx
lea edi, [edi + 0x10]
add esp, 8
cmp ebx, dword [esi + 0x14]
jl 0x51ff78
mov esi, dword [esp + 0x24]
push ebp
push dword [esp + 0x5c]
call fcn.004ffbe0
cdq
push edx
push eax
push esi
call fcn.004f66d0
add esp, 0x14
jmp 0x522369
mov ebp, dword [esp + 0x18]
mov ebx, dword [esp + 0x84]
push ebp
push ebx
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
call fcn.00501e80
mov eax, dword [esp + 0x3c]
add esp, 8
inc dword [ebx + 0x2c]
mov edi, dword [ebx + 0x2c]
movzx eax, byte [eax]
cmp byte [eax + 0x580ff0], 0x70
jne 0x52000e
push edi
push ebp
push 0xb0
push esi
call fcn.0052e180
add esp, 0x10
push 1
push edi
push 0x53
push esi
call fcn.0052e180
add esp, 0x10
jmp 0x522369
mov eax, dword [esp + 0x14]
test eax, eax
je 0x520054
lea ecx, [esp + 0x64]
push ecx
push eax
call fcn.00505010
add esp, 8
test eax, eax
jne 0x520054
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x64]
test ecx, ecx
jg 0x520045
jl 0x520054
test eax, eax
jb 0x520054
test ecx, ecx
jl 0x52005a
jg 0x520045
cmp eax, 0xfffffffe
jbe 0x52005a
mov eax, 0xfffffffe
mov dword [esp + 0x68], 0
jmp 0x52005a
xor eax, eax
mov dword [esp + 0x68], eax
push eax
push edi
push ebp
push 0xb1
push esi
call fcn.0052e1e0
add esp, 0x14
push 1
push edi
push 0x53
push esi
call fcn.0052e180
add esp, 0x10
jmp 0x522369
push edx
mov ebx, str.normal
call fcn.004e1c20
mov ecx, eax
add esp, 4
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x4c], ecx
mov eax, dword [eax + 4]
test eax, eax
jne 0x5200fa
cmp ecx, 0xffffffff
jne 0x5200af
mov eax, dword [esp + 0x10]
movzx eax, byte [eax + 0x59]
jmp 0x52010b
test eax, eax
jne 0x5200fa
mov eax, dword [esp + 0x10]
mov ebx, 2
cmp dword [eax + 0x14], ebx
jle 0x5200f2
mov edi, 0x20
mov esi, eax
mov eax, dword [esi + 0x10]
push ecx
mov eax, dword [edi + eax + 4]
mov eax, dword [eax + 4]
push dword [eax]
call fcn.0051d4a0
mov ecx, dword [esp + 0x54]
lea edi, [edi + 0x10]
inc ebx
add esp, 8
cmp ebx, dword [esi + 0x14]
jl 0x5200c8
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
mov byte [eax + 0x59], cl
mov ebx, str.normal
mov eax, dword [ebp + 4]
push ecx
mov eax, dword [eax + 4]
push dword [eax]
call fcn.0051d4a0
add esp, 8
cmp eax, 1
jne 0x520115
mov ebx, str.exclusive
push ebx
push esi
call fcn.004f6760
add esp, 8
jmp 0x522369
test edx, edx
je 0x520170
push edx
call fcn.00529910
add esp, 4
mov edi, eax
xor ebx, ebx
cmp ebx, 6
je 0x520170
mov ecx, dword [ebx*4 + 0x581554]
test ecx, ecx
je 0x520170
push edi
push ecx
push dword [esp + 0x1c]
call fcn.004b6980
add esp, 0xc
test eax, eax
je 0x52015a
inc ebx
jmp 0x520135
cmp ebx, 2
jne 0x52018f
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x20]
and eax, 0x10000000
or eax, 0
je 0x520194
or ebx, 0xffffffff
mov ecx, dword [esp + 0x8c]
cmp dword [ecx + 4], 0
jne 0x52019b
xor edx, edx
mov dword [ecx + 4], 1
mov dword [esp + 0x18], edx
jmp 0x52019f
cmp ebx, 0xffffffff
je 0x520173
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x14]
dec edi
js 0x5201ef
mov ebp, edi
shl ebp, 4
mov edi, edi
mov eax, dword [eax + 0x10]
cmp dword [eax + ebp + 4], 0
je 0x5201da
cmp edi, edx
je 0x5201c4
cmp dword [ecx + 4], 0
jne 0x5201da
push edi
push esi
call fcn.0053a1f0
push ebx
push 1
push edi
push 7
push esi
call fcn.0052e1e0
add esp, 0x1c
mov ecx, dword [esp + 0x8c]
sub ebp, 0x10
dec edi
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
jns 0x5201b0
push 1
push 1
push 0x53
push esi
call fcn.0052e180
add esp, 0x10
jmp 0x522369
mov eax, dword [ebp + 4]
or ecx, 0xffffffff
mov dword [esp + 0x68], ecx
mov eax, dword [eax + 4]
mov edi, dword [eax]
mov eax, 0xfffffffe
mov dword [esp + 0x64], eax
test edx, edx
je 0x52024c
lea eax, [esp + 0x64]
push eax
push edx
call fcn.00505010
mov ecx, dword [esp + 0x70]
add esp, 8
cmp ecx, 0xffffffff
jg 0x520248
jl 0x520241
mov eax, dword [esp + 0x64]
cmp eax, 0xffffffff
jae 0x52024c
or eax, 0xffffffff
or ecx, eax
jmp 0x52024c
mov eax, dword [esp + 0x64]
push ecx
push eax
push edi
call fcn.0051d410
push edx
push eax
push esi
call fcn.004f66d0
add esp, 0x18
jmp 0x522369
mov edi, dword [ebp + 4]
test edx, edx
jne 0x520282
push edi
call fcn.004fdcb0
cdq
push edx
push eax
push esi
call fcn.004f66d0
add esp, 0x10
jmp 0x522369
push edx
call fcn.004e1a10
mov ebx, eax
mov eax, dword [esp + 0x14]
push ebx
push edi
mov byte [eax + 0x5a], bl
call fcn.004ffc50
add esp, 0xc
test eax, eax
jne 0x522369
cmp ebx, 1
je 0x5202b1
cmp ebx, 2
jne 0x522369
mov edi, dword [esi + 0x74]
push 0
push 0x581854
push 5
push esi
call fcn.0052e3a0
mov edx, dword [esp + 0x28]
lea ecx, [edi + 4]
push edx
push esi
mov dword [eax + 0x30], ecx
lea ecx, [ebx - 1]
mov dword [eax + 4], edx
mov dword [eax + 0x18], edx
mov dword [eax + 0x54], edx
mov dword [eax + 0x5c], ecx
call fcn.0053a1f0
add esp, 0x18
jmp 0x522369
test edx, edx
je 0x520309
lea eax, [esp + 0x58]
push eax
push edx
call fcn.005169e0
add esp, 8
test eax, eax
je 0x520309
mov edi, dword [esp + 0x58]
test edi, edi
jg 0x52030e
mov edi, closesocket
mov ebx, dword [esp + 0x18]
push ebx
push 0
push dword [esp + 0x8c]
call fcn.004fc2b0
push 1
push edi
push 0x47
push esi
call fcn.0052e180
push ebx
push 0x3d
push esi
call fcn.0052e120
push 1
push 0x53
push esi
mov edi, eax
call fcn.0052e120
push 0xffffffffffffffff
push 1
push 0x55
push esi
call fcn.0052e180
add esp, 0x44
push edi
push 1
push 0x31
push esi
call fcn.0052e180
push edi
push esi
call fcn.00536c00
add esp, 0x18
jmp 0x522369
test edx, edx
jne 0x520379
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x50]
jmp 0x52235d
push edx
call fcn.004fb560
mov ecx, dword [ebp + 0xc]
mov dword [ecx + 0x50], eax
mov eax, dword [ebp + 0xc]
push dword [eax + 0x50]
push dword [ebp + 4]
call fcn.004ffcc0
jmp 0x522366
test edx, edx
jne 0x5203c3
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x20]
and eax, 0x20
or eax, edx
jne 0x5203b1
xor eax, eax
jmp 0x52235d
push 0
push dword [ebp + 4]
call fcn.004ffea0
add esp, 8
jmp 0x52235d
lea eax, [esp + 0x4c]
mov dword [esp + 0x4c], 1
push eax
push edx
call fcn.005169e0
mov esi, dword [esp + 0x54]
add esp, 8
test eax, eax
je 0x5203ed
push esi
push dword [ebp + 4]
call fcn.004ffea0
add esp, 8
test esi, esi
setne al
movzx eax, al
push eax
push dword [esp + 0x18]
call fcn.005168d0
mov ecx, dword [esp + 0x18]
add esp, 8
test al, al
mov eax, dword [ecx + 0x24]
mov dword [ecx + 0x24], eax
je 0x520422
or dword [ecx + 0x20], 0x20
push ecx
call fcn.004f8800
add esp, 4
jmp 0x522369
and dword [ecx + 0x20], 0xffffffdf
push ecx
call fcn.004f8800
add esp, 4
jmp 0x522369
test edx, edx
je 0x5204db
lea eax, [esp + 0x64]
push eax
push edx
call fcn.00505010
mov ebp, dword [esp + 0x70]
add esp, 8
test ebp, ebp
jg 0x520472
jl 0x52045c
mov edx, dword [esp + 0x64]
test edx, edx
jae 0x520476
mov edx, dword [0x747680]
mov ebp, dword [0x747684]
mov dword [esp + 0x64], edx
mov dword [esp + 0x68], ebp
jmp 0x520476
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x8c]
mov ebx, dword [esp + 0x10]
cmp dword [ecx + 4], 0
jne 0x52048d
mov dword [ebx + 0x30], edx
mov dword [ebx + 0x34], ebp
mov edi, dword [ebx + 0x14]
dec edi
js 0x5204db
mov esi, dword [esp + 0x10]
mov ebx, edi
shl ebx, 4
lea esp, [esp]
mov eax, dword [esi + 0x10]
mov eax, dword [ebx + eax + 4]
test eax, eax
je 0x5204d1
cmp edi, dword [esp + 0x18]
je 0x5204b7
cmp dword [ecx + 4], 0
jne 0x5204d1
push ebp
push edx
push eax
call fcn.004ffd10
mov ebp, dword [esp + 0x74]
add esp, 0xc
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x8c]
sub ebx, 0x10
dec edi
jns 0x5204a0
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x1c]
lea eax, [esp + 0x64]
push eax
push 0x12
push ebx
push dword [esp + 0x1c]
mov dword [esp + 0x74], 0xffffffff
mov dword [esp + 0x78], 0xffffffff
call fcn.004afe30
add esp, 0x10
test eax, eax
jne 0x520514
push dword [esp + 0x68]
push dword [esp + 0x68]
jmp 0x522360
cmp eax, 0xc
je 0x522369
mov ecx, dword [esp + 0x84]
inc dword [ecx + 0x24]
mov dword [ecx + 0xc], eax
jmp 0x522369
test edx, edx
jne 0x520540
mov eax, dword [esp + 0x10]
movzx eax, byte [eax + 0x56]
jmp 0x52235d
push edx
push dword [esp + 0x88]
call fcn.004c2370
add esp, 8
jmp 0x522369
test edx, edx
jne 0x52056d
push dword [0x74c4a0]
push esi
call fcn.004f6760
add esp, 8
jmp 0x522369
cmp byte [edx], 0
je 0x5205ac
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x58]
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 0x520593
cmp dword [esp + 0x58], eax
jne 0x5205ac
push str.not_a_writable_directory
push dword [esp + 0x88]
call fcn.00506fd0
add esp, 8
jmp 0x522369
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x56], 1
ja 0x5205c5
push dword [esp + 0x84]
call fcn.004e3ee0
add esp, 4
push dword [0x74c4a0]
call fcn.004acf00
mov eax, dword [esp + 0x18]
add esp, 4
cmp byte [eax], 0
je 0x5205f4
push eax
push 0x579ca0
call fcn.004ac8f0
add esp, 8
mov dword [0x74c4a0], eax
jmp 0x522369
mov dword [0x74c4a0], 0
jmp 0x522369
test edx, edx
jne 0x52061b
push dword [0x74c4a4]
push esi
call fcn.004f6760
add esp, 8
jmp 0x522369
cmp byte [edx], 0
je 0x520649
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x58]
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 0x520593
cmp dword [esp + 0x58], eax
je 0x520593
push dword [0x74c4a4]
call fcn.004acf00
mov eax, dword [esp + 0x18]
add esp, 4
cmp byte [eax], 0
je 0x520678
push eax
push 0x579ca0
call fcn.004ac8f0
add esp, 8
mov dword [0x74c4a4], eax
jmp 0x522369
mov dword [0x74c4a4], 0
jmp 0x522369
test edx, edx
jne 0x520695
movzx eax, byte [ebp + 8]
dec eax
jmp 0x52235d
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x55], 0
jne 0x5206b8
push str.Safety_level_may_not_be_changed_inside_a_transaction
push dword [esp + 0x88]
call fcn.00506fd0
add esp, 8
jmp 0x522369
cmp dword [esp + 0x18], 1
je 0x52236d
push 1
push 0
push edx
call fcn.004e2ae0
inc eax
add esp, 0xc
and eax, 7
jne 0x5206db
mov eax, 1
push dword [esp + 0x10]
mov byte [ebp + 8], al
mov byte [ebp + 9], 1
call fcn.004f8800
add esp, 4
jmp 0x522369
test edx, edx
jne 0x520723
push ebx
push esi
call fcn.004f8a60
mov edx, dword [esp + 0x18]
add esp, 8
mov ecx, dword [ebx + 8]
mov eax, dword [ebx + 0xc]
and ecx, dword [edx + 0x20]
and eax, dword [edx + 0x24]
or ecx, eax
je 0x5203aa
mov eax, 1
jmp 0x52235d
mov eax, dword [esp + 0x10]
mov edi, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
cmp byte [eax + 0x55], 0
jne 0x520739
and edi, 0xffffbfff
push 0
push edx
call fcn.005168d0
add esp, 8
test al, al
je 0x520754
mov eax, dword [esp + 0x10]
or dword [eax + 0x20], edi
or dword [eax + 0x24], ebx
jmp 0x5207a7
mov edx, dword [esp + 0x10]
mov ecx, edi
mov eax, ebx
not ecx
not eax
and dword [edx + 0x20], ecx
and dword [edx + 0x24], eax
cmp edi, 0x80000
jne 0x52077e
test ebx, ebx
jne 0x52077e
mov dword [edx + 0x208], ebx
mov dword [edx + 0x20c], ebx
and edi, 1
or edi, 0
je 0x5207a7
push str.reset
push dword [esp + 0x18]
call fcn.004b6900
add esp, 8
test eax, eax
jne 0x5207a7
push dword [esp + 0x10]
call fcn.00523b30
add esp, 4
push 0xa5
push esi
call fcn.0052e0d0
push dword [esp + 0x18]
call fcn.004f8800
jmp 0x522366
test edx, edx
je 0x522369
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0x84]
push ebp
push edi
call fcn.00501e10
push ebp
push dword [esp + 0x20]
push 2
push edi
call fcn.0051aff0
mov ebp, eax
add esp, 0x18
mov dword [esp + 0x40], ebp
test ebp, ebp
je 0x522369
push ebp
mov dword [esp + 0x48], 0
call fcn.005229e0
push ebp
push edi
mov dword [esp + 0x64], eax
mov dword [edi + 0x2c], 7
call fcn.0053a2d0
mov ecx, dword [ebp + 4]
add esp, 0xc
movsx ebp, word [ebp + 0x22]
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], ecx
test ebp, ebp
jle 0x522369
mov edx, dword [esp + 0x40]
lea ebx, [ebx]
movzx ecx, word [ecx + 0xe]
xor edi, edi
test cl, 0x62
je 0x520878
mov eax, dword [ebx + 8]
or eax, dword [ebx + 0xc]
jne 0x520860
inc dword [esp + 0x44]
mov ebp, dword [esp + 0x38]
jmp 0x52091d
test cl, 0x20
je 0x52086c
mov edi, 2
jmp 0x520878
movzx edi, cl
and edi, 0x40
or edi, 0x20
shr edi, 5
test cl, 1
jne 0x520881
xor edx, edx
jmp 0x5208a6
mov eax, dword [esp + 0x58]
mov edx, 1
test eax, eax
je 0x5208a6
cmp ebp, edx
jl 0x5208a6
mov ecx, dword [eax + 4]
movsx eax, word [ecx]
cmp eax, dword [esp + 0x3c]
je 0x5208a6
inc edx
add ecx, 2
cmp edx, ebp
jle 0x520895
mov ebp, dword [esp + 0x38]
push ebp
push dword [esp + 0x44]
call fcn.00502150
add esp, 8
cmp edi, 2
jge 0x5208c5
test eax, eax
je 0x5208c5
mov ecx, dword [eax + 8]
jmp 0x5208c7
xor ecx, ecx
mov eax, dword [ebx + 8]
or eax, dword [ebx + 0xc]
mov dword [esp + 0x4c], str.issisii
jne 0x5208df
mov dword [esp + 0x4c], str.issisi
test byte [ebp + 4], 0xf
mov eax, 0
push edi
push edx
push ecx
setne al
push eax
push 0x56dd34
push ebp
call fcn.00502370
add esp, 8
push eax
push dword [ebp]
mov eax, dword [esp + 0x54]
sub eax, dword [esp + 0x5c]
push eax
push dword [esp + 0x68]
push 1
push esi
call fcn.00538740
mov edx, dword [esp + 0x68]
add esp, 0x28
mov eax, dword [esp + 0x3c]
add ebp, 0x10
mov dword [esp + 0x38], ebp
inc eax
movsx ebp, word [edx + 0x22]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x3c], eax
cmp eax, ebp
jl 0x520840
jmp 0x522369
mov eax, dword [esp + 0x84]
mov ebx, dword [esp + 0x1c]
push ebx
push eax
mov dword [eax + 0x2c], 6
call fcn.00501e10
mov eax, dword [esp + 0x18]
add esp, 8
mov dword [esp + 0x48], 0
cmp dword [eax + 0x14], 0
jle 0x52236d
xor ebp, ebp
test ebx, ebx
je 0x520991
mov eax, dword [eax + 0x10]
push dword [eax + ebp]
push ebx
call fcn.004b6900
add esp, 8
test eax, eax
jne 0x520af2
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x10]
mov edx, dword [eax + ebp + 0xc]
add edx, 8
mov ebx, dword [edx + 4]
test ebx, ebx
je 0x520a53
mov esi, dword [esp + 0x10]
mov edi, edi
mov eax, dword [edx + 8]
dec ebx
test eax, eax
je 0x520a4f
lea esp, [esp]
mov ecx, dword [eax + 8]
cmp word [ecx + 0x22], 0
je 0x5209d2
mov eax, dword [eax]
test eax, eax
jne 0x5209c0
jmp 0x520a4f
push dword [ecx]
push str.SELECTFROM__w_
push esi
call fcn.0051b520
mov edi, eax
add esp, 0xc
test edi, edi
je 0x520a17
push 0
lea eax, [esp + 0x50]
mov dword [esp + 0x50], 0
push eax
push 0
push 0
push 0xffffffffffffffff
push edi
push esi
call fcn.0051b180
push dword [esp + 0x68]
call fcn.004b83d0
push edi
push esi
call fcn.00504bb0
add esp, 0x28
cmp byte [esi + 0x57], 0
je 0x520a3d
push 0x56d030
push dword [esi + 0x10c]
call fcn.00506fd0
mov eax, dword [esi + 0x10c]
add esp, 8
mov dword [eax + 0xc], 7
mov eax, dword [esi + 0x10]
mov edx, dword [eax + ebp + 0xc]
add edx, 8
test ebx, ebx
jne 0x5209b0
mov esi, dword [esp + 0x24]
mov ebx, dword [edx + 8]
test ebx, ebx
je 0x520aee
mov edi, edi
mov eax, dword [esp + 0x14]
mov edi, dword [ebx + 8]
test eax, eax
je 0x520a7a
push dword [edi]
push eax
call fcn.004b6900
add esp, 8
test eax, eax
jne 0x520ae4
mov al, byte [edi + 0x2b]
cmp al, 2
jne 0x520a88
mov edx, str.view
jmp 0x520aa6
cmp al, 1
jne 0x520a93
mov edx, str.virtual
jmp 0x520aa6
test dword [edi + 0x1c], 0x1000
mov edx, str.shadow
jne 0x520aa6
mov edx, str.table
mov ecx, dword [edi + 0x1c]
mov eax, ecx
shr eax, 0x10
and eax, 1
shr ecx, 7
push eax
movsx eax, word [edi + 0x22]
and ecx, 1
push ecx
push eax
push edx
push dword [edi]
call fcn.00522490
add esp, 4
push eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x10]
push dword [eax + ebp]
push str.sssiii
push 1
push esi
call fcn.00538740
add esp, 0x24
mov ebx, dword [ebx]
test ebx, ebx
jne 0x520a60
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
add ebp, 0x10
mov eax, dword [esp + 0x48]
inc eax
mov dword [esp + 0x48], eax
cmp eax, dword [ecx + 0x14]
mov eax, ecx
jl 0x520976
jmp 0x52236d
test edx, edx
je 0x522369
mov edi, dword [esp + 0x1c]
push edi
push edx
push dword [esp + 0x18]
call fcn.0050d020
mov ebp, eax
add esp, 0xc
test ebp, ebp
jne 0x520b70
push edi
push dword [esp + 0x18]
mov edi, dword [esp + 0x8c]
push 2
push edi
call fcn.0051aff0
add esp, 0x10
test eax, eax
je 0x522369
test byte [eax + 0x1c], 0x80
je 0x522369
push eax
call fcn.005229e0
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x522369
jmp 0x520b77
mov edi, dword [esp + 0x84]
push dword [ebp + 0x18]
push dword [esp + 0x14]
call fcn.00525500
mov ecx, dword [ebx + 8]
add esp, 8
or ecx, dword [ebx + 0xc]
mov edx, eax
je 0x520b9d
movzx eax, word [ebp + 0x34]
mov dword [edi + 0x2c], 6
jmp 0x520ba8
movzx eax, word [ebp + 0x32]
mov dword [edi + 0x2c], 3
push edx
mov dword [esp + 0x48], eax
mov eax, dword [ebp + 0xc]
push edi
mov dword [esp + 0x60], eax
call fcn.00501e80
xor edi, edi
add esp, 8
cmp dword [esp + 0x44], edi
jle 0x522369
lea esp, [esp]
mov eax, dword [ebp + 4]
movzx edx, word [eax + edi*2]
test dx, dx
jns 0x520be0
xor eax, eax
jmp 0x520bef
mov eax, dword [esp + 0x58]
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.00538740
mov eax, dword [ebx + 8]
add esp, 0x18
or eax, dword [ebx + 0xc]
je 0x520c37
movzx eax, word [ebp + 0x32]
xor ecx, ecx
cmp edi, eax
mov eax, dword [ebp + 0x20]
setl cl
push ecx
push dword [eax + edi*4]
mov eax, dword [ebp + 0x1c]
movzx eax, byte [eax + edi]
push eax
push str.isiX
push 4
push esi
call fcn.00538740
add esp, 0x18
mov eax, dword [esp + 0x84]
push dword [eax + 0x2c]
push 1
push 0x53
push esi
call fcn.0052e180
inc edi
add esp, 0x10
cmp edi, dword [esp + 0x44]
jl 0x520bd0
jmp 0x522369
test edx, edx
je 0x522369
mov ebx, dword [esp + 0x1c]
push ebx
push edx
push dword [esp + 0x18]
call fcn.0050d0f0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x522369
push dword [edi + 0x3c]
push dword [esp + 0x14]
call fcn.00525500
mov ecx, dword [esp + 0x8c]
push eax
push ecx
mov dword [ecx + 0x2c], 5
call fcn.00501e80
mov edi, dword [edi + 8]
add esp, 0x10
xor ebx, ebx
test edi, edi
je 0x522369
mov dword [esp + 0x64], 0x58ba14
mov dword [esp + 0x68], 0x58ba18
mov dword [esp + 0x6c], 0x58049c
jmp 0x520cd0
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 + 0x68]
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.00538740
mov edi, dword [edi + 0x14]
add esp, 0x20
inc ebx
test edi, edi
jne 0x520cd0
jmp 0x522369
mov eax, dword [esp + 0x84]
xor edi, edi
mov dword [eax + 0x2c], 3
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x14], edi
jle 0x52236d
xor ebx, ebx
jmp 0x520d30
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx + ebx + 4]
test eax, eax
je 0x520d56
push eax
call fcn.004fdd00
push eax
push dword [ecx + ebx]
push edi
push 0x58ba24
push 1
push esi
call fcn.00538740
add esp, 0x1c
mov eax, dword [esp + 0x10]
inc edi
add ebx, 0x10
cmp edi, dword [eax + 0x14]
jl 0x520d30
jmp 0x52236d
mov eax, dword [esp + 0x84]
xor ebx, ebx
mov edi, dword [esp + 0x10]
mov dword [eax + 0x2c], 2
mov edi, dword [edi + 0x1b4]
test edi, edi
je 0x522369
lea ebx, [ebx]
mov eax, dword [edi + 8]
push dword [eax]
push ebx
push 0x58ba28
push 1
push esi
call fcn.00538740
mov edi, dword [edi]
add esp, 0x14
inc ebx
test edi, edi
jne 0x520d90
jmp 0x522369
mov eax, dword [esp + 0x10]
mov ebp, 0x74c558
mov ebx, dword [eax + 0x18]
mov eax, dword [esp + 0x84]
shr ebx, 5
and ebx, 1
mov dword [eax + 0x2c], 6
mov edi, dword [ebp]
test edi, edi
je 0x520df4
lea esp, [esp]
push ebx
push 1
push edi
push esi
call fcn.004f10b0
mov edi, dword [edi + 0x24]
add esp, 0x10
test edi, edi
jne 0x520de0
add ebp, 4
cmp ebp, 0x74c5b4
jl 0x520dd2
mov edi, dword [esp + 0x10]
mov edi, dword [edi + 0x1a4]
test edi, edi
je 0x522369
push ebx
push 0
push dword [edi + 8]
push esi
call fcn.004f10b0
mov edi, dword [edi]
add esp, 0x10
test edi, edi
jne 0x520e11
jmp 0x522369
mov eax, dword [esp + 0x84]
mov edi, dword [esp + 0x10]
mov dword [eax + 0x2c], 1
mov edi, dword [edi + 0x188]
test edi, edi
je 0x522369
jmp 0x520e50
mov eax, dword [edi + 8]
push dword [eax + 4]
push 0x5899fc
push 1
push esi
call fcn.00538740
mov edi, dword [edi]
add esp, 0x10
test edi, edi
jne 0x520e50
jmp 0x522369
mov edi, 0x580608
push dword [edi]
push 0x5899fc
push 1
push esi
call fcn.00538740
add edi, 0x10
add esp, 0x10
cmp edi, 0x580a38
jl 0x520e76
jmp 0x522369
test edx, edx
je 0x522369
mov ebx, dword [esp + 0x1c]
push ebx
push edx
push dword [esp + 0x18]
call fcn.0050d0f0
add esp, 0xc
mov dword [esp + 0x58], eax
test eax, eax
je 0x522369
cmp byte [eax + 0x2b], 0
jne 0x522369
mov edi, dword [eax + 0x30]
test edi, edi
je 0x522369
push dword [eax + 0x3c]
push dword [esp + 0x14]
call fcn.00525500
mov ecx, dword [esp + 0x8c]
xor ebp, ebp
push eax
push ecx
mov dword [esp + 0x54], ebp
mov dword [ecx + 0x2c], 8
call fcn.00501e80
add esp, 0x10
lea ecx, [ecx]
xor ebx, ebx
cmp dword [edi + 0x14], ebx
jle 0x520f68
lea ebp, [edi + 0x24]
lea ebx, [ebx]
movzx eax, byte [edi + 0x19]
push str.NONE
push eax
call fcn.004bba60
add esp, 4
push eax
movzx eax, byte [edi + 0x1a]
push eax
call fcn.004bba60
mov ecx, dword [ebp]
add esp, 4
add ecx, ecx
push eax
push dword [ebp + 4]
mov eax, dword [esp + 0x68]
mov eax, dword [eax + 4]
push dword [eax + ecx*8]
push dword [edi + 8]
push ebx
push dword [esp + 0x60]
push str.iissssss
push 1
push esi
call fcn.00538740
inc ebx
lea ebp, [ebp + 8]
add esp, 0x2c
cmp ebx, dword [edi + 0x14]
jl 0x520f10
mov ebp, dword [esp + 0x44]
mov edi, dword [edi + 4]
inc ebp
mov dword [esp + 0x44], ebp
test edi, edi
jne 0x520f00
jmp 0x522369
mov edx, dword [esp + 0x84]
mov eax, dword [edx + 0x2c]
lea ecx, [eax + 1]
lea ebp, [eax + 6]
mov dword [esp + 0x30], ecx
lea ecx, [eax + 5]
mov dword [edx + 0x2c], ebp
mov eax, dword [esp + 0x10]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x24], ebp
mov eax, dword [eax + 0x10]
mov eax, dword [edi + eax + 0xc]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x522369
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x520fd0
push ebx
push ecx
push 0
push edx
call fcn.0051aff0
add esp, 0x10
mov edi, eax
xor eax, eax
jmp 0x520fd5
mov edi, dword [eax + 8]
mov eax, dword [eax]
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], edi
test edi, edi
je 0x52133b
cmp byte [edi + 0x2b], 0
jne 0x52133b
cmp dword [edi + 0x30], 0
je 0x52133b
push dword [edi + 0x3c]
push dword [esp + 0x14]
call fcn.00525500
mov ebx, eax
mov eax, dword [esp + 0x18]
mov edx, ebx
mov dword [esp + 0x4c], ebx
add edx, edx
push ebx
mov ecx, dword [eax + 0x10]
push dword [esp + 0x90]
mov eax, dword [ecx + edx*8]
mov dword [esp + 0x2c], eax
call fcn.00501e80
push dword [edi]
push 0
push dword [edi + 0x14]
push ebx
push dword [esp + 0xa4]
call fcn.00529c40
mov ecx, dword [esp + 0xa8]
add esp, 0x24
movsx eax, word [edi + 0x22]
add eax, ebp
cmp eax, dword [ecx + 0x2c]
jle 0x521056
mov dword [ecx + 0x2c], eax
push 0x65
push edi
push ebx
push 0
push ecx
call fcn.0051c1b0
push dword [edi]
push dword [esp + 0x48]
push esi
call fcn.00536ee0
mov ebx, dword [edi + 0x30]
add esp, 0x20
mov ebp, 1
test ebx, ebx
je 0x521131
push dword [esp + 0x1c]
push dword [ebx + 8]
push dword [esp + 0x18]
call fcn.0050d0f0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x521121
push dword [edi]
mov dword [esp + 0x30], 0
push 0
push dword [edi + 0x14]
push dword [esp + 0x50]
push dword [esp + 0x94]
call fcn.00529c40
push 0
lea eax, [esp + 0x44]
push eax
push ebx
push edi
push dword [esp + 0xa8]
call fcn.0050e8b0
add esp, 0x28
test eax, eax
jne 0x522369
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x5210fe
push 0x65
push edi
push dword [esp + 0x4c]
push ebp
push dword [esp + 0x94]
call fcn.0051c1b0
add esp, 0x14
jmp 0x521121
push dword [esp + 0x44]
push dword [eax + 0x2c]
push ebp
push 0x65
push esi
call fcn.0052e1e0
push dword [esp + 0x40]
push dword [esp + 0x9c]
call fcn.005396a0
add esp, 0x1c
mov ebx, dword [ebx + 4]
inc ebp
test ebx, ebx
jne 0x521081
mov edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x84]
cmp dword [eax + 0x28], ebp
jge 0x521140
mov dword [eax + 0x28], ebp
push 0
push 0x26
push esi
call fcn.0052e120
mov ebx, dword [edi + 0x30]
add esp, 0xc
mov dword [esp + 0x28], 1
mov ebp, eax
mov dword [esp + 0x50], ebp
test ebx, ebx
je 0x521317
jmp 0x521170
push dword [esp + 0x1c]
push dword [ebx + 8]
push dword [esp + 0x18]
call fcn.0050d0f0
mov edi, dword [esp + 0x90]
xor ecx, ecx
add esp, 0xc
mov dword [esp + 0x54], eax
mov dword [esp + 0x2c], 0
mov dword [esp + 0x38], ecx
test eax, eax
je 0x5211b9
lea ecx, [esp + 0x38]
push ecx
lea ecx, [esp + 0x30]
push ecx
push ebx
push eax
push edi
call fcn.0050e8b0
mov ecx, dword [esp + 0x4c]
add esp, 0x14
dec dword [edi + 0x38]
mov eax, dword [ebx + 0x14]
mov edx, dword [esp + 0x24]
add eax, edx
mov ebp, dword [edi + 0x38]
mov dword [esp + 0x48], ebp
cmp eax, dword [edi + 0x2c]
jle 0x5211d4
mov dword [edi + 0x2c], eax
xor edi, edi
cmp dword [ebx + 0x14], edi
jle 0x52122b
lea eax, [ebx + 0x24]
mov ebp, edx
mov dword [esp + 0x4c], eax
test ecx, ecx
je 0x5211ed
mov eax, dword [ecx + edi*4]
jmp 0x5211ef
mov eax, dword [eax]
push ebp
push eax
push 0
push dword [esp + 0x48]
push esi
call fcn.00508170
push dword [esp + 0x5c]
push ebp
push 0x32
push esi
call fcn.0052e180
mov eax, dword [esp + 0x70]
inc edi
mov ecx, dword [esp + 0x5c]
add eax, 8
add esp, 0x24
mov dword [esp + 0x4c], eax
inc ebp
cmp edi, dword [ebx + 0x14]
jl 0x5211e4
mov ebp, dword [esp + 0x48]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x52126e
push dword [ebx + 0x14]
push eax
push dword [esp + 0x18]
call fcn.00517e10
mov edi, dword [esp + 0x64]
add esp, 8
push eax
push edi
push dword [ebx + 0x14]
push dword [esp + 0x34]
push 0x60
push esi
call fcn.0052e240
push 0
push edi
mov edi, dword [esp + 0x4c]
push ebp
push edi
push 0x1f
push esi
call fcn.0052e310
add esp, 0x34
jmp 0x521294
cmp dword [esp + 0x54], 0
mov edi, dword [esp + 0x28]
je 0x521294
mov eax, dword [esi + 0x74]
push edx
add eax, 2
push eax
push edi
push 0x20
push esi
call fcn.0052e1e0
push ebp
push esi
call fcn.00536510
add esp, 0x1c
mov eax, dword [esp + 0x3c]
test byte [eax + 0x1c], 0x80
mov eax, dword [esp + 0x30]
jne 0x5212ad
inc eax
push eax
push 0
push 0x86
jmp 0x5212b3
inc eax
push eax
push 0
push 0x4a
push esi
call fcn.0052e180
add esp, 0x10
lea eax, [edi - 1]
push eax
push dword [ebx + 8]
mov eax, dword [esp + 0x38]
push 0x58ba40
add eax, 2
push eax
push esi
call fcn.00538740
push 4
push dword [esp + 0x48]
push 0x53
push esi
call fcn.0052e180
push ebp
push esi
call fcn.00539320
mov eax, dword [esp + 0x64]
add esp, 0x2c
test eax, eax
je 0x521303
push eax
push dword [esp + 0x14]
call fcn.00504bb0
add esp, 8
mov ebx, dword [ebx + 4]
inc edi
mov dword [esp + 0x28], edi
test ebx, ebx
jne 0x521170
mov ebp, dword [esp + 0x50]
lea eax, [ebp + 1]
push eax
push 0
push 5
push esi
call fcn.0052e180
push ebp
push esi
call fcn.00536c00
mov ebp, dword [esp + 0x3c]
add esp, 0x18
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x84]
test eax, eax
jne 0x520fb5
jmp 0x522369
test edx, edx
je 0x522369
push 0
push edx
call fcn.005168d0
movzx eax, al
push eax
push dword [esp + 0x1c]
call fcn.00523490
add esp, 0x10
jmp 0x522369
xor eax, eax
xor ecx, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x34]
movzx eax, byte [eax]
cmp byte [eax + 0x580ff0], 0x71
mov eax, dword [esp + 0x8c]
sete cl
mov dword [esp + 0x4c], ecx
cmp dword [eax], 0
jne 0x5213a6
or edi, 0xffffffff
mov dword [esp + 0x18], edi
jmp 0x5213aa
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x84]
mov ebp, 0x64
mov dword [esp + 0x44], ebp
mov dword [esp + 0x40], ebp
mov dword [ebx + 0x2c], 6
test edx, edx
je 0x521420
lea eax, [esp + 0x40]
push eax
push edx
call fcn.005169e0
add esp, 8
test eax, eax
je 0x5213ee
mov ebp, dword [esp + 0x40]
mov dword [esp + 0x44], ebp
test ebp, ebp
jg 0x521420
mov ebp, 0x64
jmp 0x52141c
test edi, edi
js 0x521402
mov eax, dword [esp + 0x10]
mov ecx, edi
add ecx, ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8]
jmp 0x521404
xor eax, eax
push eax
push dword [esp + 0x18]
push 0
push ebx
call fcn.0051aff0
mov ebp, dword [esp + 0x50]
add esp, 0x10
mov dword [esp + 0x20], eax
mov dword [esp + 0x44], ebp
push 1
lea ecx, [ebp - 1]
push ecx
push 0x47
push esi
call fcn.0052e180
mov eax, dword [esp + 0x20]
xor ecx, ecx
add esp, 0x10
mov dword [esp + 0x2c], ecx
cmp dword [eax + 0x14], ecx
jle 0x521d81
xor ebp, ebp
test edi, edi
js 0x521452
cmp ecx, edi
jne 0x521d6f
push ecx
push ebx
call fcn.00501e80
mov eax, dword [esp + 0x18]
add esp, 8
mov ecx, dword [esp + 0x2c]
xor edx, edx
shl ecx, 4
mov dword [esp + 0x58], ecx
mov eax, dword [eax + 0x10]
mov ebx, dword [eax + ecx + 0xc]
add ebx, 8
mov dword [esp + 0x50], ebx
mov edi, dword [ebx + 8]
test edi, edi
je 0x521d5c
mov ecx, dword [esp + 0x20]
lea ebx, [ebx]
mov eax, dword [edi + 8]
test ecx, ecx
je 0x52149b
cmp ecx, eax
jne 0x5214c3
test byte [eax + 0x1c], 0x80
jne 0x5214a2
inc edx
mov eax, dword [eax + 8]
xor ecx, ecx
test eax, eax
je 0x5214b9
jmp 0x5214b0
mov eax, dword [eax + 0x14]
inc edx
inc ecx
test eax, eax
jne 0x5214b0
cmp ecx, ebp
jle 0x5214bf
mov ebp, ecx
mov ecx, dword [esp + 0x20]
mov edi, dword [edi]
test edi, edi
jne 0x521490
test edx, edx
je 0x521d5c
test ecx, ecx
je 0x5214d6
inc edx
lea eax, [edx*4 + 4]
push 0
push eax
push dword [esp + 0x18]
call fcn.00504c90
mov edi, eax
add esp, 0xc
test edi, edi
je 0x521d7d
mov eax, dword [esp + 0x20]
xor edx, edx
test eax, eax
je 0x52150c
mov edx, 1
mov dword [edi + 4], 0
mov ebx, dword [ebx + 8]
test ebx, ebx
je 0x52154e
mov esi, dword [esp + 0x20]
mov ecx, dword [ebx + 8]
test esi, esi
je 0x521522
cmp esi, ecx
jne 0x521544
test byte [ecx + 0x1c], 0x80
jne 0x52152f
mov eax, dword [ecx + 0x14]
inc edx
mov dword [edi + edx*4], eax
mov ecx, dword [ecx + 8]
test ecx, ecx
je 0x521544
mov eax, dword [ecx + 0x2c]
inc edx
mov dword [edi + edx*4], eax
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x521536
mov ebx, dword [ebx]
test ebx, ebx
jne 0x521517
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x84]
lea ecx, [ebp + 8]
mov dword [edi], edx
mov eax, dword [eax + 0x2c]
cmp eax, ecx
jg 0x521563
mov eax, ecx
mov ebp, dword [esp + 0x84]
push 0xfffffffffffffff1
push edi
push 1
push edx
push 2
push 0x9a
push esi
mov dword [ebp + 0x2c], eax
mov byte [ebp + 0x13], 0
mov dword [ebp + 0x1c], 0
call fcn.0052e240
mov eax, dword [esp + 0x48]
movzx eax, al
push eax
push esi
call fcn.0052e780
push 2
push 0x32
push esi
call fcn.0052e120
mov edx, dword [esp + 0x40]
add esp, 0x30
mov edi, eax
mov eax, dword [esp + 0x58]
mov ecx, dword [edx + 0x10]
push 0xfffffffffffffff9
push dword [ecx + eax]
push str._in_database__s__n
push edx
call fcn.0051b520
add esp, 0xc
push eax
push 0
push 3
push 0
push 0x75
push esi
call fcn.0052e240
push 3
push 3
push 2
push 0x6f
push esi
call fcn.0052e1e0
push esi
call fcn.004e3d70
push edi
push esi
call fcn.00536c00
mov eax, dword [esp + 0x8c]
add esp, 0x3c
mov ebx, dword [eax + 8]
mov dword [esp + 0x58], ebx
test ebx, ebx
je 0x521de2
lea esp, [esp]
mov ebx, dword [ebx + 8]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x50], 0
mov dword [esp + 0x38], 0xffffffff
cmp byte [ebx + 0x2b], 0
jne 0x521d4a
mov eax, dword [esp + 0x20]
test eax, eax
je 0x521641
cmp eax, ebx
jne 0x521d4a
test byte [ebx + 0x1c], 0x80
jne 0x521651
mov dword [esp + 0x28], 0
jmp 0x52165e
push ebx
call fcn.005229e0
add esp, 4
mov dword [esp + 0x28], eax
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0x40]
push eax
push 0
push 1
push 0
push 0x65
push ebx
push ebp
call fcn.0051c2d0
push 7
push 0
push 0x47
push esi
call fcn.0052e180
mov edi, dword [ebx + 8]
add esp, 0x30
test edi, edi
je 0x5216ac
mov ebx, 8
push ebx
push 0
push 0x47
push esi
call fcn.0052e180
mov edi, dword [edi + 0x14]
add esp, 0x10
inc ebx
test edi, edi
jne 0x521692
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x3c]
push 0
push ebp
push 0x26
push esi
call fcn.0052e180
push 1
push 7
push 0x55
push esi
call fcn.0052e180
add esp, 0x20
mov dword [esp + 0x64], eax
cmp dword [esp + 0x4c], 0
jne 0x5216f4
movsx ecx, word [ebx + 0x24]
push 3
dec ecx
push ecx
push ebp
push 0x5d
push esi
call fcn.0052e1e0
push pe_nt_image_headers32
push esi
call fcn.0052e780
add esp, 0x1c
movzx ecx, word [ebx + 0x1e]
xor eax, eax
and ecx, 1
xor ebp, ebp
mov dword [esp + 0x30], ecx
cmp ax, word [ebx + 0x22]
jge 0x5218af
mov dword [esp + 0x40], eax
mov edx, dword [esp + 0x1c]
mov ebx, dword [ebx + 4]
add ebx, eax
movsx eax, word [edx + 0x20]
cmp ebp, eax
je 0x521895
test byte [ebx + 4], 0xf
jne 0x521747
test ecx, ecx
je 0x521895
mov eax, dword [esp + 0x84]
dec dword [eax + 0x38]
mov edi, dword [eax + 0x38]
mov dword [esp + 0x48], edi
jmp 0x521766
test ecx, ecx
je 0x52175e
mov eax, dword [esp + 0x84]
dec dword [eax + 0x38]
mov edi, dword [eax + 0x38]
mov dword [esp + 0x48], edi
jmp 0x521766
mov dword [esp + 0x48], 0
push 3
push ebp
push dword [esp + 0x44]
push edx
push esi
call fcn.00508170
push 0xffffffffffffffff
push esi
call fcn.005364e0
add esp, 0x1c
cmp byte [eax], 0x5d
jne 0x521792
push pe_nt_image_headers32
push esi
call fcn.0052e780
add esp, 8
test byte [ebx + 4], 0xf
je 0x521800
push 3
push 0x33
push esi
call fcn.0052e120
push dword [ebx]
mov edi, eax
mov eax, dword [esp + 0x2c]
push dword [eax]
push str.NULL_value_in__s._s
push dword [esp + 0x28]
call fcn.0051b520
push 0xfffffffffffffff9
push eax
push 0
push 3
push 0
push 0x75
push esi
call fcn.0052e240
add esp, 0x38
cmp dword [esp + 0x30], 0
je 0x5217ed
mov eax, dword [ebx + 4]
and al, 0xf0
cmp al, 0x10
je 0x5217ed
push dword [esp + 0x48]
push esi
call fcn.00536510
add esp, 8
jmp 0x5217f6
push esi
call fcn.004e3d70
add esp, 4
push edi
push esi
call fcn.00536c00
add esp, 8
mov eax, dword [esp + 0x1c]
test dword [eax + 0x1c], 0x10000
je 0x521891
mov eax, dword [ebx + 4]
shr eax, 4
and eax, 0xf
cmp eax, 1
je 0x521891
movsx eax, byte [eax + 0x58139f]
push eax
push 0
push 3
push 0x15
push esi
call fcn.0052e1e0
mov edx, dword [esp + 0x30]
mov edi, eax
mov eax, dword [esp + 0x54]
mov ecx, dword [edx + 4]
push dword [ecx + eax]
mov ecx, dword [ebx + 4]
push dword [edx]
shr ecx, 4
and ecx, 0xf
push dword [ecx*4 + 0x7476ec]
push str.non__s_value_in__s._s
push dword [esp + 0x34]
call fcn.0051b520
push 0xfffffffffffffff9
push eax
push 0
push 3
push 0
push 0x75
push esi
call fcn.0052e240
add esp, 0x44
push dword [esp + 0x48]
push esi
call fcn.00539320
push esi
call fcn.004e3d70
push edi
push esi
call fcn.00536c00
add esp, 0x14
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x1c]
inc ebp
add dword [esp + 0x40], 0x10
movsx eax, word [ebx + 0x22]
cmp ebp, eax
mov eax, dword [esp + 0x40]
jl 0x521711
mov ecx, dword [ebx + 0x10]
test ecx, ecx
je 0x5219ac
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0x20]
and eax, 0x200
or eax, 0
jne 0x5219ac
push eax
push ecx
push edi
call fcn.0050bc80
add esp, 0xc
mov ebx, eax
cmp byte [edi + 0x57], 0
mov dword [esp + 0x48], ebx
jne 0x52199a
mov edx, dword [esp + 0x84]
mov ebp, dword [edx + 0x38]
dec ebp
lea eax, [ebp - 1]
mov dword [edx + 0x38], eax
mov eax, dword [esp + 0x3c]
inc eax
mov dword [edx + 0x34], eax
mov edi, dword [ebx]
dec edi
test edi, edi
jle 0x52193a
lea eax, [edi + edi*4]
mov esi, edx
lea ebx, [ebx + eax*4]
add ebx, 8
push 0
push ebp
push dword [ebx]
push esi
call fcn.0050ad40
dec edi
lea ebx, [ebx - 0x14]
add esp, 0x10
test edi, edi
jg 0x521915
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x48]
mov edx, dword [esp + 0x84]
push 0x10
lea edi, [ebp - 1]
push edi
push dword [ebx + 8]
push edx
call fcn.0050b170
push ebp
push esi
call fcn.00539320
mov eax, dword [esp + 0x9c]
mov dword [eax + 0x34], 0
mov eax, dword [esp + 0x34]
push dword [eax]
push str.CHECK_constraint_failed_in__s
push dword [esp + 0x30]
call fcn.0051b520
push 0xfffffffffffffff9
push eax
push 0
push 3
push 0
push 0x75
push esi
call fcn.0052e240
add esp, 0x40
push esi
call fcn.004e3d70
push edi
push esi
call fcn.00539320
mov edi, dword [esp + 0x1c]
add esp, 0xc
test ebx, ebx
je 0x5219a8
push ebx
push edi
call fcn.004cc370
add esp, 8
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x4c]
test ebp, ebp
jne 0x521c2a
mov ebx, dword [ebx + 8]
test ebx, ebx
je 0x521c2a
mov ecx, dword [esp + 0x54]
mov eax, 8
mov ebp, dword [esp + 0x84]
sub eax, ecx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x30], ecx
mov edi, dword [ebp + 0x38]
dec edi
mov dword [ebp + 0x38], edi
cmp eax, ebx
je 0x521c17
push dword [esp + 0x38]
lea eax, [esp + 0x64]
push dword [esp + 0x54]
push eax
push 0
push 0
push dword [esp + 0x50]
push ebx
push ebp
call fcn.00516160
mov ecx, dword [esp + 0x50]
add ecx, dword [esp + 0x68]
push 1
push ecx
push 0x55
push esi
mov dword [esp + 0x68], eax
mov dword [esp + 0x80], ebx
call fcn.0052e180
movzx ecx, word [ebx + 0x34]
push ecx
push dword [esp + 0x6c]
push edi
push dword [esp + 0x6c]
push 0x1f
push esi
call fcn.0052e310
add esp, 0x48
mov edi, eax
push 0
push str.row
push 0
push 3
push 0
push 0x75
push esi
call fcn.0052e240
push 3
push 3
push 7
push 0x6f
push esi
call fcn.0052e1e0
push 0
push str._missing_from_index
push 0
push 4
push 0
push 0x75
push esi
call fcn.0052e240
add esp, 0x4c
push 3
push 3
push 4
push 0x6f
push esi
call fcn.0052e1e0
push 0
push dword [ebx]
push 0
push 4
push 0
push 0x75
push esi
call fcn.0052e240
push 3
push 3
push 4
push 0x6f
push esi
mov dword [esp + 0x84], eax
call fcn.0052e1e0
add esp, 0x44
push esi
call fcn.004e3d70
push edi
push esi
mov dword [esp + 0x68], eax
call fcn.00536c00
add esp, 0xc
cmp byte [ebx + 0x36], 0
je 0x521bbc
dec dword [ebp + 0x38]
xor eax, eax
mov ebp, dword [ebp + 0x38]
xor edi, edi
cmp ax, word [ebx + 0x32]
jae 0x521b1d
mov eax, dword [ebx + 4]
movsx ecx, word [eax + edi*2]
test ecx, ecx
js 0x521b01
mov eax, dword [esp + 0x1c]
add ecx, ecx
mov eax, dword [eax + 4]
test byte [eax + ecx*8 + 4], 0xf
jne 0x521b14
mov eax, dword [esp + 0x38]
push ebp
add eax, edi
push eax
push 0x32
push esi
call fcn.0052e180
add esp, 0x10
movzx eax, word [ebx + 0x32]
inc edi
cmp edi, eax
jl 0x521ae6
push dword [esp + 0x30]
push 5
push esi
call fcn.0052e120
push ebp
push esi
mov edi, eax
call fcn.00536510
mov edx, dword [esi + 0x74]
add esp, 0x14
test edi, edi
jns 0x521b3f
lea edi, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x521b4e
mov eax, 0x74c854
jmp 0x521b57
mov eax, dword [esi + 0x70]
lea ecx, [edi + edi*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
movzx eax, word [ebx + 0x32]
push eax
push dword [esp + 0x3c]
push ebp
push dword [esp + 0x3c]
push 0x28
push esi
call fcn.0052e310
push 0
push str.non_unique_entry_in_index
push 0
push 3
push 0
push 0x75
push esi
call fcn.0052e240
push dword [esp + 0x74]
push esi
call fcn.00536510
mov ecx, dword [esi + 0xc]
add esp, 0x3c
not ebp
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x521bac
push ebp
push esi
push ecx
call fcn.004f4d20
add esp, 0xc
jmp 0x521bb5
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x74]
mov dword [ecx + ebp*4], eax
mov ebp, dword [esp + 0x84]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esi + 0x74]
test ecx, ecx
jns 0x521bca
lea ecx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x521bd9
mov eax, 0x74c854
jmp 0x521be2
mov eax, dword [esi + 0x70]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov edx, dword [esp + 0x60]
test edx, edx
je 0x521c13
mov edi, dword [ebp + 8]
not edx
mov ecx, dword [edi + 0xc]
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x521c0a
push edx
push edi
push ecx
call fcn.004f4d20
add esp, 0xc
jmp 0x521c13
mov ecx, dword [ecx + 0x40]
mov eax, dword [edi + 0x74]
mov dword [ecx + edx*4], eax
mov eax, dword [esp + 0x28]
mov ebx, dword [ebx + 0x14]
inc dword [esp + 0x30]
test ebx, ebx
jne 0x5219e1
mov ebp, dword [esp + 0x4c]
mov edi, dword [esp + 0x64]
push edi
push dword [esp + 0x40]
push 5
push esi
call fcn.0052e180
mov edx, dword [esi + 0x74]
lea ecx, [edi - 1]
add esp, 0x10
test ecx, ecx
jns 0x521c4b
lea ecx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x521c5a
mov eax, 0x74c854
jmp 0x521c63
mov eax, dword [esi + 0x70]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
test ebp, ebp
jne 0x521d43
push ebp
push str.wrong__of_entries_in_index
push ebp
push 2
push ebp
push 0x75
push esi
call fcn.0052e240
mov eax, dword [esp + 0x38]
add esp, 0x1c
mov edi, dword [eax + 8]
test edi, edi
je 0x521d43
mov eax, dword [esp + 0x28]
mov ebp, 8
jmp 0x521ca0
cmp eax, edi
je 0x521d37
mov eax, dword [esp + 0x54]
add eax, 0xfffffff8
push 3
add eax, ebp
push eax
push 0x61
push esi
call fcn.0052e180
push 3
push 0
push ebp
push 0x35
push esi
call fcn.0052e1e0
mov ebx, eax
add esp, 0x24
mov eax, dword [esi + 0x74]
test eax, eax
jle 0x521ce5
mov ecx, dword [esi + 0x70]
lea edx, [eax + eax*4]
mov eax, 0x90
mov word [ecx + edx*4 - 0x12], ax
push 0
push dword [edi]
push 0
push 4
push 0
push 0x75
push esi
call fcn.0052e240
push 3
push 2
push 4
push 0x6f
push esi
call fcn.0052e1e0
push esi
call fcn.004e3d70
mov edx, dword [esi + 0x74]
add esp, 0x34
test ebx, ebx
jns 0x521d18
lea ebx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x521d27
mov eax, 0x74c854
jmp 0x521d30
mov eax, dword [esi + 0x70]
lea ecx, [ebx + ebx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov eax, dword [esp + 0x28]
mov edi, dword [edi + 0x14]
inc ebp
test edi, edi
jne 0x521ca0
mov ebp, dword [esp + 0x84]
mov ebx, dword [esp + 0x58]
mov ebx, dword [ebx]
mov dword [esp + 0x58], ebx
test ebx, ebx
jne 0x521610
mov ebx, dword [esp + 0x84]
mov ecx, dword [esp + 0x2c]
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x2c], ecx
cmp ecx, dword [eax + 0x14]
jl 0x521444
mov ebp, dword [esp + 0x44]
push 0
push 0x583c1c
push 7
push esi
call fcn.0052e3a0
add esp, 0x10
test eax, eax
je 0x521dc4
mov edx, dword [str.database_disk_image_is_malformed]
mov ecx, 1
sub ecx, ebp
mov byte [eax + 0x29], 0xff
mov dword [eax + 8], ecx
mov ecx, str.unknown_error
mov dword [eax + 0x38], 0x58bb04
mov byte [eax + 0x65], 0xff
test edx, edx
je 0x521dc1
mov ecx, edx
mov dword [eax + 0x74], ecx
mov eax, dword [esi]
mov ecx, 0x74c854
mov edx, dword [esi + 0x74]
cmp byte [eax + 0x57], 0
jne 0x521dd7
mov ecx, dword [esi + 0x70]
lea eax, [edx - 2]
mov dword [ecx + 0xc], eax
jmp 0x522369
mov ebx, ebp
jmp 0x521d63
test edx, edx
jne 0x521e20
mov ebx, dword [esp + 0x84]
push ebx
call fcn.00522ce0
add esp, 4
test eax, eax
jne 0x522369
mov eax, dword [ebx]
movzx eax, byte [eax + 0x54]
push dword [eax*8 + 0x585bc0]
push esi
call fcn.004f6760
add esp, 8
jmp 0x522369
mov eax, dword [esp + 0x10]
test byte [eax + 0x18], 0x40
jne 0x52236d
mov eax, dword [str.UTF8]
mov esi, 0x585bc0
test eax, eax
je 0x521e92
lea esp, [esp]
push eax
push edx
call fcn.00529880
add esp, 8
test eax, eax
je 0x521e5e
mov eax, dword [esi + 8]
add esi, 8
mov edx, dword [esp + 0x14]
test eax, eax
jne 0x521e40
jmp 0x521e8e
mov cl, byte [esi + 4]
test cl, cl
jne 0x521e67
mov cl, 2
mov edx, dword [esp + 0x10]
mov byte [esp + 0x58], cl
push dword [esp + 0x58]
mov eax, dword [edx + 0x10]
push edx
mov eax, dword [eax + 0xc]
mov byte [eax + 0x4d], cl
call fcn.00528520
add esp, 8
cmp dword [esi], 0
jne 0x522369
mov edx, dword [esp + 0x14]
push edx
push str.unsupported_encoding:__s
push dword [esp + 0x8c]
call fcn.00506fd0
jmp 0x522366
mov ebp, dword [esp + 0x18]
mov edi, dword [ebx + 8]
push ebp
push esi
call fcn.0053a1f0
add esp, 8
cmp dword [esp + 0x14], 0
je 0x521efe
test byte [ebx + 5], 8
jne 0x521efe
push 0
push 0x585c50
push 2
push esi
call fcn.0052e3a0
push dword [esp + 0x24]
mov esi, eax
mov dword [esi + 4], ebp
mov dword [esi + 0x18], ebp
mov dword [esi + 0x1c], edi
call fcn.004fb560
mov dword [esi + 0x20], eax
add esp, 0x14
mov eax, 1
mov word [esi + 0x16], ax
jmp 0x522369
push 0
push 0x585c58
push 3
push esi
call fcn.0052e3a0
add esp, 0x10
mov dword [eax + 4], ebp
mov dword [eax + 0x18], ebp
mov dword [eax + 0x20], edi
and dword [esi + 0xa0], 0xffffffdf
jmp 0x522369
mov eax, dword [esp + 0x84]
xor edi, edi
push edi
mov dword [eax + 0x2c], 1
call fcn.004a7c60
add esp, 4
test eax, eax
je 0x521f65
push eax
push 1
push esi
inc edi
call fcn.00536ee0
push 1
push 1
push 0x53
push esi
call fcn.0052e180
push edi
call fcn.004a7c60
add esp, 0x20
test eax, eax
jne 0x521f42
and dword [esi + 0xa0], 0xffffffdf
jmp 0x522369
mov eax, dword [esp + 0x8c]
mov ebx, dword [esp + 0x18]
cmp dword [eax], 0
jne 0x521f86
mov ebx, 0xc
xor edi, edi
test edx, edx
je 0x521fd5
push str.full
push edx
call fcn.00529880
add esp, 8
test eax, eax
jne 0x521fa3
lea edi, [eax + 1]
jmp 0x521fd5
mov ebp, dword [esp + 0x14]
push str.restart
push ebp
call fcn.00529880
add esp, 8
test eax, eax
jne 0x521fbe
lea edi, [eax + 2]
jmp 0x521fd5
push str.truncate
push ebp
call fcn.00529880
add esp, 8
test eax, eax
jne 0x521fd5
mov edi, 3
mov eax, dword [esp + 0x84]
push 1
push edi
push ebx
push 6
push esi
mov dword [eax + 0x2c], 3
call fcn.0052e1e0
push 3
push 1
push 0x53
push esi
call fcn.0052e180
add esp, 0x24
jmp 0x522369
test edx, edx
je 0x52201a
push edx
call fcn.004fb560
push eax
push dword [esp + 0x18]
call fcn.004b7980
add esp, 0xc
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x110], 0x53bb70
jne 0x5203aa
mov eax, dword [eax + 0x114]
jmp 0x52235d
push dword [esp + 0x10]
call fcn.004a9d50
add esp, 4
jmp 0x522369
test edx, edx
je 0x522068
push edx
call fcn.004fb560
mov ecx, eax
add esp, 4
mov dword [esp + 0x4c], ecx
test cl, 2
je 0x522369
jmp 0x522070
mov dword [esp + 0x4c], 0xfffe
mov ecx, dword [esp + 0x84]
mov ebp, dword [esp + 0x18]
mov eax, dword [ecx + 0x28]
mov dword [esp + 0x58], eax
inc eax
cmp dword [esp + 0x1c], 0
mov dword [ecx + 0x28], eax
je 0x522095
mov eax, ebp
mov dword [esp + 0x48], eax
jmp 0x5220b0
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x14]
dec eax
mov dword [esp + 0x48], eax
cmp ebp, eax
jg 0x5221d6
lea esp, [esp]
cmp ebp, 1
je 0x5221c2
push ebp
push ecx
call fcn.00501e80
mov ecx, dword [esp + 0x18]
add esp, 8
mov eax, dword [ecx + 0x10]
mov eax, dword [eax + edi + 0xc]
mov ebx, dword [eax + 0x10]
test ebx, ebx
je 0x5221b7
lea esp, [esp]
mov edi, dword [ebx + 8]
test dword [edi + 0x1c], 0x100
je 0x5221a5
mov ax, word [edi + 0x26]
add ax, 0x2e
movzx ebp, ax
mov eax, dword [edi + 8]
test eax, eax
je 0x52210f
test byte [eax + 0x38], 0x80
je 0x522152
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x522102
test bp, bp
je 0x522152
push 0x65
push edi
push dword [esp + 0x20]
push dword [esp + 0x64]
push dword [esp + 0x94]
call fcn.0051c1b0
mov ecx, dword [esp + 0x60]
movsx eax, bp
and ecx, 1
push eax
mov eax, dword [esi + 0x74]
add ecx, 2
add eax, ecx
push eax
push dword [esp + 0x74]
push 0x23
push esi
call fcn.0052e1e0
mov ecx, dword [esp + 0x38]
add esp, 0x28
push dword [edi]
mov eax, dword [ecx + 0x10]
mov edi, dword [esp + 0x48]
push dword [eax + edi]
push str.ANALYZE___w_.__w_
push ecx
call fcn.0051b520
add esp, 0x10
mov edx, eax
test byte [esp + 0x4c], 1
je 0x5221e9
push dword [esp + 0x84]
call fcn.00516bc0
push 0xfffffffffffffff9
push edx
push 0
mov edi, eax
push edi
push 0
push 0x75
push esi
call fcn.0052e240
push 1
push edi
push 0x53
push esi
call fcn.0052e180
mov ecx, dword [esp + 0x40]
add esp, 0x30
mov edi, dword [esp + 0x44]
mov ebx, dword [ebx]
test ebx, ebx
jne 0x5220e0
mov ebp, dword [esp + 0x18]
mov ecx, dword [esp + 0x84]
mov eax, dword [esp + 0x48]
inc ebp
add edi, 0x10
mov dword [esp + 0x18], ebp
mov dword [esp + 0x44], edi
cmp ebp, eax
jle 0x5220b0
push 0xa5
push esi
call fcn.0052e0d0
add esp, 8
jmp 0x522369
push 0xfffffffffffffff9
push edx
push 0
push 0
push 0
push 0x93
push esi
call fcn.0052e240
mov ecx, dword [esp + 0x2c]
add esp, 0x1c
jmp 0x5221a9
test edx, edx
je 0x52222c
lea eax, [esp + 0x64]
push eax
push edx
call fcn.00505010
add esp, 8
test eax, eax
jne 0x52222c
push dword [esp + 0x68]
push dword [esp + 0x68]
call fcn.004a9e30
add esp, 8
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.004a9e30
push edx
push eax
push esi
call fcn.004f66d0
add esp, 0x14
jmp 0x522369
test edx, edx
je 0x522295
lea eax, [esp + 0x64]
push eax
push edx
call fcn.00505010
add esp, 8
test eax, eax
jne 0x522295
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.004a9f40
mov edi, dword [esp + 0x70]
add esp, 8
mov ebx, eax
test edi, edi
jl 0x522295
mov ecx, dword [esp + 0x64]
jg 0x52227b
test ecx, ecx
je 0x522295
mov eax, ebx
or eax, edx
je 0x52228b
cmp edx, edi
jl 0x522295
jg 0x52228b
cmp ebx, ecx
jbe 0x522295
push edi
push ecx
call fcn.004a9f40
add esp, 8
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.004a9f40
push edx
push eax
push esi
call fcn.004f66d0
add esp, 0x14
jmp 0x522369
test edx, edx
je 0x5222ef
lea eax, [esp + 0x64]
push eax
push edx
call fcn.00505010
add esp, 8
test eax, eax
jne 0x5222ef
cmp dword [esp + 0x68], eax
jl 0x5222ef
mov eax, dword [esp + 0x64]
jg 0x5222d4
test eax, eax
jb 0x5222ef
and eax, 0x7fffffff
jl 0x5222ef
cmp eax, 8
jle 0x5222e5
mov eax, 8
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0xa4], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xa4]
jmp 0x52235d
test edx, edx
je 0x522330
lea eax, [esp + 0x64]
push eax
push edx
call fcn.00505010
add esp, 8
test eax, eax
jne 0x522330
cmp dword [esp + 0x68], eax
jl 0x522330
mov eax, dword [esp + 0x64]
jg 0x522321
test eax, eax
jb 0x522330
mov ecx, dword [esp + 0x10]
and eax, 0x7fffffff
mov dword [ecx + 0x1ec], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x1ec]
jmp 0x52235d
test edx, edx
je 0x522353
push edx
call fcn.004fb560
push eax
push dword [esp + 0x18]
call fcn.004ac4b0
add esp, 0xc
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x1f0]
cdq
push edx
push eax
push esi
call fcn.004f66d0
add esp, 0xc
mov eax, dword [esp + 0x10]
push dword [esp + 0x34]
push eax
call fcn.00504bb0
mov eax, dword [esp + 0x1c]
add esp, 8
test eax, eax
je 0x52238f
push eax
push dword [esp + 0x14]
call fcn.00504bb0
add esp, 8
pop edi
pop ebx
pop esi
pop ebp
add esp, 0x70
ret