Function at 0x51fe00
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 0x51fe44
cmp dword [eax + 0x74], esi
jne 0x51fe29
test byte [ebp + 0x50], 8
jne 0x51fe29
mov byte [eax + 0x17], 1
push eax
call fcn.0052ee00
mov esi, eax
add esp, 4
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x1c], esi
test esi, esi
je 0x522591
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.0052a7a0
add esp, 0x10
mov dword [esp + 0x14], eax
test eax, eax
js 0x522590
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 0x51fea7
push dword [esp + 0x84]
call fcn.0051c6f0
add esp, 4
test eax, eax
jne 0x52258f
push dword [esp + 0x58]
push dword [esp + 0x14]
call fcn.0051c090
add esp, 8
mov dword [esp + 0x34], eax
test eax, eax
je 0x52258f
cmp dword [esp + 0x94], 0
push dword [esp + 0x90]
je 0x51fee7
push 0x58b96c
push dword [esp + 0x18]
call fcn.0051b720
add esp, 0xc
jmp 0x51fef3
push dword [esp + 0x14]
call fcn.0051c090
add esp, 8
cmp dword [ebx + 4], 0
mov dword [esp + 0x14], eax
jbe 0x51ff02
mov ebx, dword [ebp]
jmp 0x51ff04
xor ebx, ebx
push ebx
push eax
push dword [esp + 0x3c]
mov dword [esp + 0x28], ebx
push 0x13
push dword [esp + 0x94]
call fcn.004fb9f0
add esp, 0x14
test eax, eax
jne 0x522569
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.004b0030
mov ebx, eax
add esp, 0x10
test ebx, ebx
jne 0x51ffa2
push 1
push esi
call fcn.00539830
push 0xffffffffffffffff
push dword [esp + 0x7c]
push ebx
push ebx
push esi
call fcn.005397e0
push dword [esp + 0x8c]
push esi
call fcn.004f6960
push dword [esp + 0x94]
call fcn.004ad100
add esp, 0x28
jmp 0x522569
cmp ebx, 0xc
je 0x51ffdf
mov eax, dword [esp + 0x70]
test eax, eax
je 0x51ffcd
push eax
push 0x579ca0
push dword [esp + 0x8c]
call fcn.005071d0
push dword [esp + 0x7c]
call fcn.004ad100
add esp, 0x10
mov eax, dword [esp + 0x84]
inc dword [eax + 0x24]
mov dword [eax + 0xc], ebx
jmp 0x522569
push dword [esp + 0x34]
call fcn.004f1340
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x522569
test byte [ebx + 5], 1
je 0x520012
push dword [esp + 0x84]
call fcn.00522ee0
add esp, 4
test eax, eax
jne 0x522569
mov al, byte [ebx + 5]
test al, 2
jne 0x52002f
test al, 4
je 0x520025
mov edx, dword [esp + 0x14]
test edx, edx
jne 0x520033
push ebx
push esi
call fcn.004f8c60
add esp, 8
mov edx, dword [esp + 0x14]
movzx eax, byte [ebx + 4]
dec eax
cmp eax, 0x2a
ja case.0x520041.5
jmp dword [eax*4 + 0x522598]
mov ebx, dword [esp + 0x18]
push ebx
push esi
call fcn.0053a3f0
mov eax, dword [esp + 0x1c]
add esp, 8
test eax, eax
jne 0x52008d
mov eax, dword [esp + 0x84]
push 0
push 0x581784
push 9
add dword [eax + 0x2c], 2
push esi
call fcn.0052e5a0
add esp, 0x10
mov dword [eax + 4], ebx
mov dword [eax + 0x18], ebx
mov dword [eax + 0x7c], 0xfffff830
jmp 0x522569
push eax
call fcn.004fb760
push eax
call fcn.004f91d0
push ebx
push 0
push dword [esp + 0x94]
mov edi, eax
call fcn.004fc4b0
push edi
push 3
push ebx
push 0x63
push esi
call fcn.0052e3e0
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.004ffec0
add esp, 0x30
jmp 0x522569
mov edi, dword [ebp + 4]
test edx, edx
jne 0x5200ec
test edi, edi
je 0x5205aa
mov eax, dword [edi + 4]
mov eax, dword [eax + 0x24]
jmp 0x52255d
push edx
call fcn.004fb760
mov ecx, dword [esp + 0x14]
push 0
push 0
push eax
push edi
mov dword [ecx + 0x64], eax
call fcn.004fff70
add esp, 0x14
cmp eax, 7
jne 0x522569
push dword [esp + 0x10]
call fcn.0051c2c0
add esp, 4
jmp 0x522569
mov eax, dword [ebp + 4]
or ebp, 0xffffffff
mov dword [esp + 0x58], eax
test edx, edx
je 0x520158
push str.fast
push edx
call fcn.004b6b00
add esp, 8
test eax, eax
jne 0x520146
lea ebp, [eax + 2]
jmp 0x520158
mov eax, dword [esp + 0x14]
push 0
push eax
call fcn.00516ad0
add esp, 8
movzx ebp, al
mov eax, dword [esp + 0x8c]
cmp dword [eax + 4], 0
jne 0x520195
test ebp, ebp
js 0x520195
mov eax, dword [esp + 0x10]
xor ebx, ebx
cmp dword [eax + 0x14], ebx
jle 0x520195
xor edi, edi
mov esi, eax
mov eax, dword [esi + 0x10]
push ebp
push dword [edi + eax + 4]
call fcn.004ffde0
inc ebx
lea edi, [edi + 0x10]
add esp, 8
cmp ebx, dword [esi + 0x14]
jl 0x520178
mov esi, dword [esp + 0x24]
push ebp
push dword [esp + 0x5c]
call fcn.004ffde0
cdq
push edx
push eax
push esi
call fcn.004f68d0
add esp, 0x14
jmp 0x522569
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.00502080
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 0x52020e
push edi
push ebp
push 0xb0
push esi
call fcn.0052e380
add esp, 0x10
push 1
push edi
push 0x53
push esi
call fcn.0052e380
add esp, 0x10
jmp 0x522569
mov eax, dword [esp + 0x14]
test eax, eax
je 0x520254
lea ecx, [esp + 0x64]
push ecx
push eax
call fcn.00505210
add esp, 8
test eax, eax
jne 0x520254
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x64]
test ecx, ecx
jg 0x520245
jl 0x520254
test eax, eax
jb 0x520254
test ecx, ecx
jl 0x52025a
jg 0x520245
cmp eax, 0xfffffffe
jbe 0x52025a
mov eax, 0xfffffffe
mov dword [esp + 0x68], 0
jmp 0x52025a
xor eax, eax
mov dword [esp + 0x68], eax
push eax
push edi
push ebp
push 0xb1
push esi
call fcn.0052e3e0
add esp, 0x14
push 1
push edi
push 0x53
push esi
call fcn.0052e380
add esp, 0x10
jmp 0x522569
push edx
mov ebx, str.normal
call fcn.004e1e20
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 0x5202fa
cmp ecx, 0xffffffff
jne 0x5202af
mov eax, dword [esp + 0x10]
movzx eax, byte [eax + 0x59]
jmp 0x52030b
test eax, eax
jne 0x5202fa
mov eax, dword [esp + 0x10]
mov ebx, 2
cmp dword [eax + 0x14], ebx
jle 0x5202f2
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.0051d6a0
mov ecx, dword [esp + 0x54]
lea edi, [edi + 0x10]
inc ebx
add esp, 8
cmp ebx, dword [esi + 0x14]
jl 0x5202c8
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.0051d6a0
add esp, 8
cmp eax, 1
jne 0x520315
mov ebx, str.exclusive
push ebx
push esi
call fcn.004f6960
add esp, 8
jmp 0x522569
test edx, edx
je 0x520370
push edx
call fcn.00529b10
add esp, 4
mov edi, eax
xor ebx, ebx
cmp ebx, 6
je 0x520370
mov ecx, dword [ebx*4 + 0x581554]
test ecx, ecx
je 0x520370
push edi
push ecx
push dword [esp + 0x1c]
call fcn.004b6b80
add esp, 0xc
test eax, eax
je 0x52035a
inc ebx
jmp 0x520335
cmp ebx, 2
jne 0x52038f
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x20]
and eax, 0x10000000
or eax, 0
je 0x520394
or ebx, 0xffffffff
mov ecx, dword [esp + 0x8c]
cmp dword [ecx + 4], 0
jne 0x52039b
xor edx, edx
mov dword [ecx + 4], 1
mov dword [esp + 0x18], edx
jmp 0x52039f
cmp ebx, 0xffffffff
je 0x520373
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x14]
dec edi
js 0x5203ef
mov ebp, edi
shl ebp, 4
mov edi, edi
mov eax, dword [eax + 0x10]
cmp dword [eax + ebp + 4], 0
je 0x5203da
cmp edi, edx
je 0x5203c4
cmp dword [ecx + 4], 0
jne 0x5203da
push edi
push esi
call fcn.0053a3f0
push ebx
push 1
push edi
push 7
push esi
call fcn.0052e3e0
add esp, 0x1c
mov ecx, dword [esp + 0x8c]
sub ebp, 0x10
dec edi
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
jns 0x5203b0
push 1
push 1
push 0x53
push esi
call fcn.0052e380
add esp, 0x10
jmp 0x522569
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 0x52044c
lea eax, [esp + 0x64]
push eax
push edx
call fcn.00505210
mov ecx, dword [esp + 0x70]
add esp, 8
cmp ecx, 0xffffffff
jg 0x520448
jl 0x520441
mov eax, dword [esp + 0x64]
cmp eax, 0xffffffff
jae 0x52044c
or eax, 0xffffffff
or ecx, eax
jmp 0x52044c
mov eax, dword [esp + 0x64]
push ecx
push eax
push edi
call fcn.0051d610
push edx
push eax
push esi
call fcn.004f68d0
add esp, 0x18
jmp 0x522569
mov edi, dword [ebp + 4]
test edx, edx
jne 0x520482
push edi
call fcn.004fdeb0
cdq
push edx
push eax
push esi
call fcn.004f68d0
add esp, 0x10
jmp 0x522569
push edx
call fcn.004e1c10
mov ebx, eax
mov eax, dword [esp + 0x14]
push ebx
push edi
mov byte [eax + 0x5a], bl
call fcn.004ffe50
add esp, 0xc
test eax, eax
jne 0x522569
cmp ebx, 1
je 0x5204b1
cmp ebx, 2
jne 0x522569
mov edi, dword [esi + 0x74]
push 0
push 0x581854
push 5
push esi
call fcn.0052e5a0
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.0053a3f0
add esp, 0x18
jmp 0x522569
test edx, edx
je 0x520509
lea eax, [esp + 0x58]
push eax
push edx
call fcn.00516be0
add esp, 8
test eax, eax
je 0x520509
mov edi, dword [esp + 0x58]
test edi, edi
jg 0x52050e
mov edi, closesocket
mov ebx, dword [esp + 0x18]
push ebx
push 0
push dword [esp + 0x8c]
call fcn.004fc4b0
push 1
push edi
push 0x47
push esi
call fcn.0052e380
push ebx
push 0x3d
push esi
call fcn.0052e320
push 1
push 0x53
push esi
mov edi, eax
call fcn.0052e320
push 0xffffffffffffffff
push 1
push 0x55
push esi
call fcn.0052e380
add esp, 0x44
push edi
push 1
push 0x31
push esi
call fcn.0052e380
push edi
push esi
call fcn.00536e00
add esp, 0x18
jmp 0x522569
test edx, edx
jne 0x520579
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x50]
jmp 0x52255d
push edx
call fcn.004fb760
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.004ffec0
jmp 0x522566
test edx, edx
jne 0x5205c3
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x20]
and eax, 0x20
or eax, edx
jne 0x5205b1
xor eax, eax
jmp 0x52255d
push 0
push dword [ebp + 4]
call fcn.005000a0
add esp, 8
jmp 0x52255d
lea eax, [esp + 0x4c]
mov dword [esp + 0x4c], 1
push eax
push edx
call fcn.00516be0
mov esi, dword [esp + 0x54]
add esp, 8
test eax, eax
je 0x5205ed
push esi
push dword [ebp + 4]
call fcn.005000a0
add esp, 8
test esi, esi
setne al
movzx eax, al
push eax
push dword [esp + 0x18]
call fcn.00516ad0
mov ecx, dword [esp + 0x18]
add esp, 8
test al, al
mov eax, dword [ecx + 0x24]
mov dword [ecx + 0x24], eax
je 0x520622
or dword [ecx + 0x20], 0x20
push ecx
call fcn.004f8a00
add esp, 4
jmp 0x522569
and dword [ecx + 0x20], 0xffffffdf
push ecx
call fcn.004f8a00
add esp, 4
jmp 0x522569
test edx, edx
je 0x5206db
lea eax, [esp + 0x64]
push eax
push edx
call fcn.00505210
mov ebp, dword [esp + 0x70]
add esp, 8
test ebp, ebp
jg 0x520672
jl 0x52065c
mov edx, dword [esp + 0x64]
test edx, edx
jae 0x520676
mov edx, dword [0x77fa60]
mov ebp, dword [0x77fa64]
mov dword [esp + 0x64], edx
mov dword [esp + 0x68], ebp
jmp 0x520676
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x8c]
mov ebx, dword [esp + 0x10]
cmp dword [ecx + 4], 0
jne 0x52068d
mov dword [ebx + 0x30], edx
mov dword [ebx + 0x34], ebp
mov edi, dword [ebx + 0x14]
dec edi
js 0x5206db
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 0x5206d1
cmp edi, dword [esp + 0x18]
je 0x5206b7
cmp dword [ecx + 4], 0
jne 0x5206d1
push ebp
push edx
push eax
call fcn.004fff10
mov ebp, dword [esp + 0x74]
add esp, 0xc
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x8c]
sub ebx, 0x10
dec edi
jns 0x5206a0
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.004b0030
add esp, 0x10
test eax, eax
jne 0x520714
push dword [esp + 0x68]
push dword [esp + 0x68]
jmp 0x522560
cmp eax, 0xc
je 0x522569
mov ecx, dword [esp + 0x84]
inc dword [ecx + 0x24]
mov dword [ecx + 0xc], eax
jmp 0x522569
test edx, edx
jne 0x520740
mov eax, dword [esp + 0x10]
movzx eax, byte [eax + 0x56]
jmp 0x52255d
push edx
push dword [esp + 0x88]
call fcn.004c2570
add esp, 8
jmp 0x522569
test edx, edx
jne 0x52076d
push dword [0x7848e8]
push esi
call fcn.004f6960
add esp, 8
jmp 0x522569
cmp byte [edx], 0
je 0x5207ac
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 0x520793
cmp dword [esp + 0x58], eax
jne 0x5207ac
push str.not_a_writable_directory
push dword [esp + 0x88]
call fcn.005071d0
add esp, 8
jmp 0x522569
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x56], 1
ja 0x5207c5
push dword [esp + 0x84]
call fcn.004e40e0
add esp, 4
push dword [0x7848e8]
call fcn.004ad100
mov eax, dword [esp + 0x18]
add esp, 4
cmp byte [eax], 0
je 0x5207f4
push eax
push 0x579ca0
call fcn.004acaf0
add esp, 8
mov dword [0x7848e8], eax
jmp 0x522569
mov dword [0x7848e8], 0
jmp 0x522569
test edx, edx
jne 0x52081b
push dword [0x7848ec]
push esi
call fcn.004f6960
add esp, 8
jmp 0x522569
cmp byte [edx], 0
je 0x520849
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 0x520793
cmp dword [esp + 0x58], eax
je 0x520793
push dword [0x7848ec]
call fcn.004ad100
mov eax, dword [esp + 0x18]
add esp, 4
cmp byte [eax], 0
je 0x520878
push eax
push 0x579ca0
call fcn.004acaf0
add esp, 8
mov dword [0x7848ec], eax
jmp 0x522569
mov dword [0x7848ec], 0
jmp 0x522569
test edx, edx
jne 0x520895
movzx eax, byte [ebp + 8]
dec eax
jmp 0x52255d
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x55], 0
jne 0x5208b8
push str.Safety_level_may_not_be_changed_inside_a_transaction
push dword [esp + 0x88]
call fcn.005071d0
add esp, 8
jmp 0x522569
cmp dword [esp + 0x18], 1
je 0x52256d
push 1
push 0
push edx
call fcn.004e2ce0
inc eax
add esp, 0xc
and eax, 7
jne 0x5208db
mov eax, 1
push dword [esp + 0x10]
mov byte [ebp + 8], al
mov byte [ebp + 9], 1
call fcn.004f8a00
add esp, 4
jmp 0x522569
test edx, edx
jne 0x520923
push ebx
push esi
call fcn.004f8c60
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 0x5205aa
mov eax, 1
jmp 0x52255d
mov eax, dword [esp + 0x10]
mov edi, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
cmp byte [eax + 0x55], 0
jne 0x520939
and edi, 0xffffbfff
push 0
push edx
call fcn.00516ad0
add esp, 8
test al, al
je 0x520954
mov eax, dword [esp + 0x10]
or dword [eax + 0x20], edi
or dword [eax + 0x24], ebx
jmp 0x5209a7
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 0x52097e
test ebx, ebx
jne 0x52097e
mov dword [edx + 0x208], ebx
mov dword [edx + 0x20c], ebx
and edi, 1
or edi, 0
je 0x5209a7
push str.reset
push dword [esp + 0x18]
call fcn.004b6b00
add esp, 8
test eax, eax
jne 0x5209a7
push dword [esp + 0x10]
call fcn.00523d30
add esp, 4
push 0xa5
push esi
call fcn.0052e2d0
push dword [esp + 0x18]
call fcn.004f8a00
jmp 0x522566
test edx, edx
je 0x522569
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0x84]
push ebp
push edi
call fcn.00502010
push ebp
push dword [esp + 0x20]
push 2
push edi
call fcn.0051b1f0
mov ebp, eax
add esp, 0x18
mov dword [esp + 0x40], ebp
test ebp, ebp
je 0x522569
push ebp
mov dword [esp + 0x48], 0
call fcn.00522be0
push ebp
push edi
mov dword [esp + 0x64], eax
mov dword [edi + 0x2c], 7
call fcn.0053a4d0
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 0x522569
mov edx, dword [esp + 0x40]
lea ebx, [ebx]
movzx ecx, word [ecx + 0xe]
xor edi, edi
test cl, 0x62
je 0x520a78
mov eax, dword [ebx + 8]
or eax, dword [ebx + 0xc]
jne 0x520a60
inc dword [esp + 0x44]
mov ebp, dword [esp + 0x38]
jmp 0x520b1d
test cl, 0x20
je 0x520a6c
mov edi, 2
jmp 0x520a78
movzx edi, cl
and edi, 0x40
or edi, 0x20
shr edi, 5
test cl, 1
jne 0x520a81
xor edx, edx
jmp 0x520aa6
mov eax, dword [esp + 0x58]
mov edx, 1
test eax, eax
je 0x520aa6
cmp ebp, edx
jl 0x520aa6
mov ecx, dword [eax + 4]
movsx eax, word [ecx]
cmp eax, dword [esp + 0x3c]
je 0x520aa6
inc edx
add ecx, 2
cmp edx, ebp
jle 0x520a95
mov ebp, dword [esp + 0x38]
push ebp
push dword [esp + 0x44]
call fcn.00502350
add esp, 8
cmp edi, 2
jge 0x520ac5
test eax, eax
je 0x520ac5
mov ecx, dword [eax + 8]
jmp 0x520ac7
xor ecx, ecx
mov eax, dword [ebx + 8]
or eax, dword [ebx + 0xc]
mov dword [esp + 0x4c], str.issisii
jne 0x520adf
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.00502570
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.00538940
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 0x520a40
jmp 0x522569
mov eax, dword [esp + 0x84]
mov ebx, dword [esp + 0x1c]
push ebx
push eax
mov dword [eax + 0x2c], 6
call fcn.00502010
mov eax, dword [esp + 0x18]
add esp, 8
mov dword [esp + 0x48], 0
cmp dword [eax + 0x14], 0
jle 0x52256d
xor ebp, ebp
test ebx, ebx
je 0x520b91
mov eax, dword [eax + 0x10]
push dword [eax + ebp]
push ebx
call fcn.004b6b00
add esp, 8
test eax, eax
jne 0x520cf2
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 0x520c53
mov esi, dword [esp + 0x10]
mov edi, edi
mov eax, dword [edx + 8]
dec ebx
test eax, eax
je 0x520c4f
lea esp, [esp]
mov ecx, dword [eax + 8]
cmp word [ecx + 0x22], 0
je 0x520bd2
mov eax, dword [eax]
test eax, eax
jne 0x520bc0
jmp 0x520c4f
push dword [ecx]
push str.SELECTFROM__w_
push esi
call fcn.0051b720
mov edi, eax
add esp, 0xc
test edi, edi
je 0x520c17
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.0051b380
push dword [esp + 0x68]
call fcn.004b85d0
push edi
push esi
call fcn.00504db0
add esp, 0x28
cmp byte [esi + 0x57], 0
je 0x520c3d
push 0x56d030
push dword [esi + 0x10c]
call fcn.005071d0
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 0x520bb0
mov esi, dword [esp + 0x24]
mov ebx, dword [edx + 8]
test ebx, ebx
je 0x520cee
mov edi, edi
mov eax, dword [esp + 0x14]
mov edi, dword [ebx + 8]
test eax, eax
je 0x520c7a
push dword [edi]
push eax
call fcn.004b6b00
add esp, 8
test eax, eax
jne 0x520ce4
mov al, byte [edi + 0x2b]
cmp al, 2
jne 0x520c88
mov edx, str.view
jmp 0x520ca6
cmp al, 1
jne 0x520c93
mov edx, str.virtual
jmp 0x520ca6
test dword [edi + 0x1c], 0x1000
mov edx, str.shadow
jne 0x520ca6
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.00522690
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.00538940
add esp, 0x24
mov ebx, dword [ebx]
test ebx, ebx
jne 0x520c60
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 0x520b76
jmp 0x52256d
test edx, edx
je 0x522569
mov edi, dword [esp + 0x1c]
push edi
push edx
push dword [esp + 0x18]
call fcn.0050d220
mov ebp, eax
add esp, 0xc
test ebp, ebp
jne 0x520d70
push edi
push dword [esp + 0x18]
mov edi, dword [esp + 0x8c]
push 2
push edi
call fcn.0051b1f0
add esp, 0x10
test eax, eax
je 0x522569
test byte [eax + 0x1c], 0x80
je 0x522569
push eax
call fcn.00522be0
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x522569
jmp 0x520d77
mov edi, dword [esp + 0x84]
push dword [ebp + 0x18]
push dword [esp + 0x14]
call fcn.00525700
mov ecx, dword [ebx + 8]
add esp, 8
or ecx, dword [ebx + 0xc]
mov edx, eax
je 0x520d9d
movzx eax, word [ebp + 0x34]
mov dword [edi + 0x2c], 6
jmp 0x520da8
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.00502080
xor edi, edi
add esp, 8
cmp dword [esp + 0x44], edi
jle 0x522569
lea esp, [esp]
mov eax, dword [ebp + 4]
movzx edx, word [eax + edi*2]
test dx, dx
jns 0x520de0
xor eax, eax
jmp 0x520def
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.00538940
mov eax, dword [ebx + 8]
add esp, 0x18
or eax, dword [ebx + 0xc]
je 0x520e37
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.00538940
add esp, 0x18
mov eax, dword [esp + 0x84]
push dword [eax + 0x2c]
push 1
push 0x53
push esi
call fcn.0052e380
inc edi
add esp, 0x10
cmp edi, dword [esp + 0x44]
jl 0x520dd0
jmp 0x522569
test edx, edx
je 0x522569
mov ebx, dword [esp + 0x1c]
push ebx
push edx
push dword [esp + 0x18]
call fcn.0050d2f0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x522569
push dword [edi + 0x3c]
push dword [esp + 0x14]
call fcn.00525700
mov ecx, dword [esp + 0x8c]
push eax
push ecx
mov dword [ecx + 0x2c], 5
call fcn.00502080
mov edi, dword [edi + 8]
add esp, 0x10
xor ebx, ebx
test edi, edi
je 0x522569
mov dword [esp + 0x64], 0x58ba14
mov dword [esp + 0x68], 0x58ba18
mov dword [esp + 0x6c], 0x58049c
jmp 0x520ed0
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.00538940
mov edi, dword [edi + 0x14]
add esp, 0x20
inc ebx
test edi, edi
jne 0x520ed0
jmp 0x522569
mov eax, dword [esp + 0x84]
xor edi, edi
mov dword [eax + 0x2c], 3
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x14], edi
jle 0x52256d
xor ebx, ebx
jmp 0x520f30
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx + ebx + 4]
test eax, eax
je 0x520f56
push eax
call fcn.004fdf00
push eax
push dword [ecx + ebx]
push edi
push 0x58ba24
push 1
push esi
call fcn.00538940
add esp, 0x1c
mov eax, dword [esp + 0x10]
inc edi
add ebx, 0x10
cmp edi, dword [eax + 0x14]
jl 0x520f30
jmp 0x52256d
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 0x522569
lea ebx, [ebx]
mov eax, dword [edi + 8]
push dword [eax]
push ebx
push 0x58ba28
push 1
push esi
call fcn.00538940
mov edi, dword [edi]
add esp, 0x14
inc ebx
test edi, edi
jne 0x520f90
jmp 0x522569
mov eax, dword [esp + 0x10]
mov ebp, 0x7849a0
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 0x520ff4
lea esp, [esp]
push ebx
push 1
push edi
push esi
call fcn.004f12b0
mov edi, dword [edi + 0x24]
add esp, 0x10
test edi, edi
jne 0x520fe0
add ebp, 4
cmp ebp, 0x7849fc
jl 0x520fd2
mov edi, dword [esp + 0x10]
mov edi, dword [edi + 0x1a4]
test edi, edi
je 0x522569
push ebx
push 0
push dword [edi + 8]
push esi
call fcn.004f12b0
mov edi, dword [edi]
add esp, 0x10
test edi, edi
jne 0x521011
jmp 0x522569
mov eax, dword [esp + 0x84]
mov edi, dword [esp + 0x10]
mov dword [eax + 0x2c], 1
mov edi, dword [edi + 0x188]
test edi, edi
je 0x522569
jmp 0x521050
mov eax, dword [edi + 8]
push dword [eax + 4]
push 0x5899fc
push 1
push esi
call fcn.00538940
mov edi, dword [edi]
add esp, 0x10
test edi, edi
jne 0x521050
jmp 0x522569
mov edi, 0x580608
push dword [edi]
push 0x5899fc
push 1
push esi
call fcn.00538940
add edi, 0x10
add esp, 0x10
cmp edi, 0x580a38
jl 0x521076
jmp 0x522569
test edx, edx
je 0x522569
mov ebx, dword [esp + 0x1c]
push ebx
push edx
push dword [esp + 0x18]
call fcn.0050d2f0
add esp, 0xc
mov dword [esp + 0x58], eax
test eax, eax
je 0x522569
cmp byte [eax + 0x2b], 0
jne 0x522569
mov edi, dword [eax + 0x30]
test edi, edi
je 0x522569
push dword [eax + 0x3c]
push dword [esp + 0x14]
call fcn.00525700
mov ecx, dword [esp + 0x8c]
xor ebp, ebp
push eax
push ecx
mov dword [esp + 0x54], ebp
mov dword [ecx + 0x2c], 8
call fcn.00502080
add esp, 0x10
lea ecx, [ecx]
xor ebx, ebx
cmp dword [edi + 0x14], ebx
jle 0x521168
lea ebp, [edi + 0x24]
lea ebx, [ebx]
movzx eax, byte [edi + 0x19]
push str.NONE
push eax
call fcn.004bbc60
add esp, 4
push eax
movzx eax, byte [edi + 0x1a]
push eax
call fcn.004bbc60
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.00538940
inc ebx
lea ebp, [ebp + 8]
add esp, 0x2c
cmp ebx, dword [edi + 0x14]
jl 0x521110
mov ebp, dword [esp + 0x44]
mov edi, dword [edi + 4]
inc ebp
mov dword [esp + 0x44], ebp
test edi, edi
jne 0x521100
jmp 0x522569
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 0x522569
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x5211d0
push ebx
push ecx
push 0
push edx
call fcn.0051b1f0
add esp, 0x10
mov edi, eax
xor eax, eax
jmp 0x5211d5
mov edi, dword [eax + 8]
mov eax, dword [eax]
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], edi
test edi, edi
je 0x52153b
cmp byte [edi + 0x2b], 0
jne 0x52153b
cmp dword [edi + 0x30], 0
je 0x52153b
push dword [edi + 0x3c]
push dword [esp + 0x14]
call fcn.00525700
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.00502080
push dword [edi]
push 0
push dword [edi + 0x14]
push ebx
push dword [esp + 0xa4]
call fcn.00529e40
mov ecx, dword [esp + 0xa8]
add esp, 0x24
movsx eax, word [edi + 0x22]
add eax, ebp
cmp eax, dword [ecx + 0x2c]
jle 0x521256
mov dword [ecx + 0x2c], eax
push 0x65
push edi
push ebx
push 0
push ecx
call fcn.0051c3b0
push dword [edi]
push dword [esp + 0x48]
push esi
call fcn.005370e0
mov ebx, dword [edi + 0x30]
add esp, 0x20
mov ebp, 1
test ebx, ebx
je 0x521331
push dword [esp + 0x1c]
push dword [ebx + 8]
push dword [esp + 0x18]
call fcn.0050d2f0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x521321
push dword [edi]
mov dword [esp + 0x30], 0
push 0
push dword [edi + 0x14]
push dword [esp + 0x50]
push dword [esp + 0x94]
call fcn.00529e40
push 0
lea eax, [esp + 0x44]
push eax
push ebx
push edi
push dword [esp + 0xa8]
call fcn.0050eab0
add esp, 0x28
test eax, eax
jne 0x522569
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x5212fe
push 0x65
push edi
push dword [esp + 0x4c]
push ebp
push dword [esp + 0x94]
call fcn.0051c3b0
add esp, 0x14
jmp 0x521321
push dword [esp + 0x44]
push dword [eax + 0x2c]
push ebp
push 0x65
push esi
call fcn.0052e3e0
push dword [esp + 0x40]
push dword [esp + 0x9c]
call fcn.005398a0
add esp, 0x1c
mov ebx, dword [ebx + 4]
inc ebp
test ebx, ebx
jne 0x521281
mov edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x84]
cmp dword [eax + 0x28], ebp
jge 0x521340
mov dword [eax + 0x28], ebp
push 0
push 0x26
push esi
call fcn.0052e320
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 0x521517
jmp 0x521370
push dword [esp + 0x1c]
push dword [ebx + 8]
push dword [esp + 0x18]
call fcn.0050d2f0
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 0x5213b9
lea ecx, [esp + 0x38]
push ecx
lea ecx, [esp + 0x30]
push ecx
push ebx
push eax
push edi
call fcn.0050eab0
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 0x5213d4
mov dword [edi + 0x2c], eax
xor edi, edi
cmp dword [ebx + 0x14], edi
jle 0x52142b
lea eax, [ebx + 0x24]
mov ebp, edx
mov dword [esp + 0x4c], eax
test ecx, ecx
je 0x5213ed
mov eax, dword [ecx + edi*4]
jmp 0x5213ef
mov eax, dword [eax]
push ebp
push eax
push 0
push dword [esp + 0x48]
push esi
call fcn.00508370
push dword [esp + 0x5c]
push ebp
push 0x32
push esi
call fcn.0052e380
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 0x5213e4
mov ebp, dword [esp + 0x48]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x52146e
push dword [ebx + 0x14]
push eax
push dword [esp + 0x18]
call fcn.00518010
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.0052e440
push 0
push edi
mov edi, dword [esp + 0x4c]
push ebp
push edi
push 0x1f
push esi
call fcn.0052e510
add esp, 0x34
jmp 0x521494
cmp dword [esp + 0x54], 0
mov edi, dword [esp + 0x28]
je 0x521494
mov eax, dword [esi + 0x74]
push edx
add eax, 2
push eax
push edi
push 0x20
push esi
call fcn.0052e3e0
push ebp
push esi
call fcn.00536710
add esp, 0x1c
mov eax, dword [esp + 0x3c]
test byte [eax + 0x1c], 0x80
mov eax, dword [esp + 0x30]
jne 0x5214ad
inc eax
push eax
push 0
push 0x86
jmp 0x5214b3
inc eax
push eax
push 0
push 0x4a
push esi
call fcn.0052e380
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.00538940
push 4
push dword [esp + 0x48]
push 0x53
push esi
call fcn.0052e380
push ebp
push esi
call fcn.00539520
mov eax, dword [esp + 0x64]
add esp, 0x2c
test eax, eax
je 0x521503
push eax
push dword [esp + 0x14]
call fcn.00504db0
add esp, 8
mov ebx, dword [ebx + 4]
inc edi
mov dword [esp + 0x28], edi
test ebx, ebx
jne 0x521370
mov ebp, dword [esp + 0x50]
lea eax, [ebp + 1]
push eax
push 0
push 5
push esi
call fcn.0052e380
push ebp
push esi
call fcn.00536e00
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 0x5211b5
jmp 0x522569
test edx, edx
je 0x522569
push 0
push edx
call fcn.00516ad0
movzx eax, al
push eax
push dword [esp + 0x1c]
call fcn.00523690
add esp, 0x10
jmp 0x522569
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 0x5215a6
or edi, 0xffffffff
mov dword [esp + 0x18], edi
jmp 0x5215aa
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 0x521620
lea eax, [esp + 0x40]
push eax
push edx
call fcn.00516be0
add esp, 8
test eax, eax
je 0x5215ee
mov ebp, dword [esp + 0x40]
mov dword [esp + 0x44], ebp
test ebp, ebp
jg 0x521620
mov ebp, 0x64
jmp 0x52161c
test edi, edi
js 0x521602
mov eax, dword [esp + 0x10]
mov ecx, edi
add ecx, ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8]
jmp 0x521604
xor eax, eax
push eax
push dword [esp + 0x18]
push 0
push ebx
call fcn.0051b1f0
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.0052e380
mov eax, dword [esp + 0x20]
xor ecx, ecx
add esp, 0x10
mov dword [esp + 0x2c], ecx
cmp dword [eax + 0x14], ecx
jle 0x521f81
xor ebp, ebp
test edi, edi
js 0x521652
cmp ecx, edi
jne 0x521f6f
push ecx
push ebx
call fcn.00502080
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 0x521f5c
mov ecx, dword [esp + 0x20]
lea ebx, [ebx]
mov eax, dword [edi + 8]
test ecx, ecx
je 0x52169b
cmp ecx, eax
jne 0x5216c3
test byte [eax + 0x1c], 0x80
jne 0x5216a2
inc edx
mov eax, dword [eax + 8]
xor ecx, ecx
test eax, eax
je 0x5216b9
jmp 0x5216b0
mov eax, dword [eax + 0x14]
inc edx
inc ecx
test eax, eax
jne 0x5216b0
cmp ecx, ebp
jle 0x5216bf
mov ebp, ecx
mov ecx, dword [esp + 0x20]
mov edi, dword [edi]
test edi, edi
jne 0x521690
test edx, edx
je 0x521f5c
test ecx, ecx
je 0x5216d6
inc edx
lea eax, [edx*4 + 4]
push 0
push eax
push dword [esp + 0x18]
call fcn.00504e90
mov edi, eax
add esp, 0xc
test edi, edi
je 0x521f7d
mov eax, dword [esp + 0x20]
xor edx, edx
test eax, eax
je 0x52170c
mov edx, 1
mov dword [edi + 4], 0
mov ebx, dword [ebx + 8]
test ebx, ebx
je 0x52174e
mov esi, dword [esp + 0x20]
mov ecx, dword [ebx + 8]
test esi, esi
je 0x521722
cmp esi, ecx
jne 0x521744
test byte [ecx + 0x1c], 0x80
jne 0x52172f
mov eax, dword [ecx + 0x14]
inc edx
mov dword [edi + edx*4], eax
mov ecx, dword [ecx + 8]
test ecx, ecx
je 0x521744
mov eax, dword [ecx + 0x2c]
inc edx
mov dword [edi + edx*4], eax
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x521736
mov ebx, dword [ebx]
test ebx, ebx
jne 0x521717
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 0x521763
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.0052e440
mov eax, dword [esp + 0x48]
movzx eax, al
push eax
push esi
call fcn.0052e980
push 2
push 0x32
push esi
call fcn.0052e320
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.0051b720
add esp, 0xc
push eax
push 0
push 3
push 0
push 0x75
push esi
call fcn.0052e440
push 3
push 3
push 2
push 0x6f
push esi
call fcn.0052e3e0
push esi
call fcn.004e3f70
push edi
push esi
call fcn.00536e00
mov eax, dword [esp + 0x8c]
add esp, 0x3c
mov ebx, dword [eax + 8]
mov dword [esp + 0x58], ebx
test ebx, ebx
je 0x521fe2
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 0x521f4a
mov eax, dword [esp + 0x20]
test eax, eax
je 0x521841
cmp eax, ebx
jne 0x521f4a
test byte [ebx + 0x1c], 0x80
jne 0x521851
mov dword [esp + 0x28], 0
jmp 0x52185e
push ebx
call fcn.00522be0
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.0051c4d0
push 7
push 0
push 0x47
push esi
call fcn.0052e380
mov edi, dword [ebx + 8]
add esp, 0x30
test edi, edi
je 0x5218ac
mov ebx, 8
push ebx
push 0
push 0x47
push esi
call fcn.0052e380
mov edi, dword [edi + 0x14]
add esp, 0x10
inc ebx
test edi, edi
jne 0x521892
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x3c]
push 0
push ebp
push 0x26
push esi
call fcn.0052e380
push 1
push 7
push 0x55
push esi
call fcn.0052e380
add esp, 0x20
mov dword [esp + 0x64], eax
cmp dword [esp + 0x4c], 0
jne 0x5218f4
movsx ecx, word [ebx + 0x24]
push 3
dec ecx
push ecx
push ebp
push 0x5d
push esi
call fcn.0052e3e0
push pe_nt_image_headers32
push esi
call fcn.0052e980
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 0x521aaf
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 0x521a95
test byte [ebx + 4], 0xf
jne 0x521947
test ecx, ecx
je 0x521a95
mov eax, dword [esp + 0x84]
dec dword [eax + 0x38]
mov edi, dword [eax + 0x38]
mov dword [esp + 0x48], edi
jmp 0x521966
test ecx, ecx
je 0x52195e
mov eax, dword [esp + 0x84]
dec dword [eax + 0x38]
mov edi, dword [eax + 0x38]
mov dword [esp + 0x48], edi
jmp 0x521966
mov dword [esp + 0x48], 0
push 3
push ebp
push dword [esp + 0x44]
push edx
push esi
call fcn.00508370
push 0xffffffffffffffff
push esi
call fcn.005366e0
add esp, 0x1c
cmp byte [eax], 0x5d
jne 0x521992
push pe_nt_image_headers32
push esi
call fcn.0052e980
add esp, 8
test byte [ebx + 4], 0xf
je 0x521a00
push 3
push 0x33
push esi
call fcn.0052e320
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.0051b720
push 0xfffffffffffffff9
push eax
push 0
push 3
push 0
push 0x75
push esi
call fcn.0052e440
add esp, 0x38
cmp dword [esp + 0x30], 0
je 0x5219ed
mov eax, dword [ebx + 4]
and al, 0xf0
cmp al, 0x10
je 0x5219ed
push dword [esp + 0x48]
push esi
call fcn.00536710
add esp, 8
jmp 0x5219f6
push esi
call fcn.004e3f70
add esp, 4
push edi
push esi
call fcn.00536e00
add esp, 8
mov eax, dword [esp + 0x1c]
test dword [eax + 0x1c], 0x10000
je 0x521a91
mov eax, dword [ebx + 4]
shr eax, 4
and eax, 0xf
cmp eax, 1
je 0x521a91
movsx eax, byte [eax + 0x58139f]
push eax
push 0
push 3
push 0x15
push esi
call fcn.0052e3e0
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 + 0x77facc]
push str.non__s_value_in__s._s
push dword [esp + 0x34]
call fcn.0051b720
push 0xfffffffffffffff9
push eax
push 0
push 3
push 0
push 0x75
push esi
call fcn.0052e440
add esp, 0x44
push dword [esp + 0x48]
push esi
call fcn.00539520
push esi
call fcn.004e3f70
push edi
push esi
call fcn.00536e00
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 0x521911
mov ecx, dword [ebx + 0x10]
test ecx, ecx
je 0x521bac
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0x20]
and eax, 0x200
or eax, 0
jne 0x521bac
push eax
push ecx
push edi
call fcn.0050be80
add esp, 0xc
mov ebx, eax
cmp byte [edi + 0x57], 0
mov dword [esp + 0x48], ebx
jne 0x521b9a
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 0x521b3a
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.0050af40
dec edi
lea ebx, [ebx - 0x14]
add esp, 0x10
test edi, edi
jg 0x521b15
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.0050b370
push ebp
push esi
call fcn.00539520
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.0051b720
push 0xfffffffffffffff9
push eax
push 0
push 3
push 0
push 0x75
push esi
call fcn.0052e440
add esp, 0x40
push esi
call fcn.004e3f70
push edi
push esi
call fcn.00539520
mov edi, dword [esp + 0x1c]
add esp, 0xc
test ebx, ebx
je 0x521ba8
push ebx
push edi
call fcn.004cc570
add esp, 8
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x4c]
test ebp, ebp
jne 0x521e2a
mov ebx, dword [ebx + 8]
test ebx, ebx
je 0x521e2a
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 0x521e17
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.00516360
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.0052e380
movzx ecx, word [ebx + 0x34]
push ecx
push dword [esp + 0x6c]
push edi
push dword [esp + 0x6c]
push 0x1f
push esi
call fcn.0052e510
add esp, 0x48
mov edi, eax
push 0
push str.row
push 0
push 3
push 0
push 0x75
push esi
call fcn.0052e440
push 3
push 3
push 7
push 0x6f
push esi
call fcn.0052e3e0
push 0
push str._missing_from_index
push 0
push 4
push 0
push 0x75
push esi
call fcn.0052e440
add esp, 0x4c
push 3
push 3
push 4
push 0x6f
push esi
call fcn.0052e3e0
push 0
push dword [ebx]
push 0
push 4
push 0
push 0x75
push esi
call fcn.0052e440
push 3
push 3
push 4
push 0x6f
push esi
mov dword [esp + 0x84], eax
call fcn.0052e3e0
add esp, 0x44
push esi
call fcn.004e3f70
push edi
push esi
mov dword [esp + 0x68], eax
call fcn.00536e00
add esp, 0xc
cmp byte [ebx + 0x36], 0
je 0x521dbc
dec dword [ebp + 0x38]
xor eax, eax
mov ebp, dword [ebp + 0x38]
xor edi, edi
cmp ax, word [ebx + 0x32]
jae 0x521d1d
mov eax, dword [ebx + 4]
movsx ecx, word [eax + edi*2]
test ecx, ecx
js 0x521d01
mov eax, dword [esp + 0x1c]
add ecx, ecx
mov eax, dword [eax + 4]
test byte [eax + ecx*8 + 4], 0xf
jne 0x521d14
mov eax, dword [esp + 0x38]
push ebp
add eax, edi
push eax
push 0x32
push esi
call fcn.0052e380
add esp, 0x10
movzx eax, word [ebx + 0x32]
inc edi
cmp edi, eax
jl 0x521ce6
push dword [esp + 0x30]
push 5
push esi
call fcn.0052e320
push ebp
push esi
mov edi, eax
call fcn.00536710
mov edx, dword [esi + 0x74]
add esp, 0x14
test edi, edi
jns 0x521d3f
lea edi, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x521d4e
mov eax, 0x784c9c
jmp 0x521d57
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.0052e510
push 0
push str.non_unique_entry_in_index
push 0
push 3
push 0
push 0x75
push esi
call fcn.0052e440
push dword [esp + 0x74]
push esi
call fcn.00536710
mov ecx, dword [esi + 0xc]
add esp, 0x3c
not ebp
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x521dac
push ebp
push esi
push ecx
call fcn.004f4f20
add esp, 0xc
jmp 0x521db5
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 0x521dca
lea ecx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x521dd9
mov eax, 0x784c9c
jmp 0x521de2
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 0x521e13
mov edi, dword [ebp + 8]
not edx
mov ecx, dword [edi + 0xc]
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x521e0a
push edx
push edi
push ecx
call fcn.004f4f20
add esp, 0xc
jmp 0x521e13
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 0x521be1
mov ebp, dword [esp + 0x4c]
mov edi, dword [esp + 0x64]
push edi
push dword [esp + 0x40]
push 5
push esi
call fcn.0052e380
mov edx, dword [esi + 0x74]
lea ecx, [edi - 1]
add esp, 0x10
test ecx, ecx
jns 0x521e4b
lea ecx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x521e5a
mov eax, 0x784c9c
jmp 0x521e63
mov eax, dword [esi + 0x70]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
test ebp, ebp
jne 0x521f43
push ebp
push str.wrong__of_entries_in_index
push ebp
push 2
push ebp
push 0x75
push esi
call fcn.0052e440
mov eax, dword [esp + 0x38]
add esp, 0x1c
mov edi, dword [eax + 8]
test edi, edi
je 0x521f43
mov eax, dword [esp + 0x28]
mov ebp, 8
jmp 0x521ea0
cmp eax, edi
je 0x521f37
mov eax, dword [esp + 0x54]
add eax, 0xfffffff8
push 3
add eax, ebp
push eax
push 0x61
push esi
call fcn.0052e380
push 3
push 0
push ebp
push 0x35
push esi
call fcn.0052e3e0
mov ebx, eax
add esp, 0x24
mov eax, dword [esi + 0x74]
test eax, eax
jle 0x521ee5
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.0052e440
push 3
push 2
push 4
push 0x6f
push esi
call fcn.0052e3e0
push esi
call fcn.004e3f70
mov edx, dword [esi + 0x74]
add esp, 0x34
test ebx, ebx
jns 0x521f18
lea ebx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x521f27
mov eax, 0x784c9c
jmp 0x521f30
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 0x521ea0
mov ebp, dword [esp + 0x84]
mov ebx, dword [esp + 0x58]
mov ebx, dword [ebx]
mov dword [esp + 0x58], ebx
test ebx, ebx
jne 0x521810
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 0x521644
mov ebp, dword [esp + 0x44]
push 0
push 0x583c1c
push 7
push esi
call fcn.0052e5a0
add esp, 0x10
test eax, eax
je 0x521fc4
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 0x521fc1
mov ecx, edx
mov dword [eax + 0x74], ecx
mov eax, dword [esi]
mov ecx, 0x784c9c
mov edx, dword [esi + 0x74]
cmp byte [eax + 0x57], 0
jne 0x521fd7
mov ecx, dword [esi + 0x70]
lea eax, [edx - 2]
mov dword [ecx + 0xc], eax
jmp 0x522569
mov ebx, ebp
jmp 0x521f63
test edx, edx
jne 0x522020
mov ebx, dword [esp + 0x84]
push ebx
call fcn.00522ee0
add esp, 4
test eax, eax
jne 0x522569
mov eax, dword [ebx]
movzx eax, byte [eax + 0x54]
push dword [eax*8 + 0x585bc0]
push esi
call fcn.004f6960
add esp, 8
jmp 0x522569
mov eax, dword [esp + 0x10]
test byte [eax + 0x18], 0x40
jne 0x52256d
mov eax, dword [str.UTF8]
mov esi, 0x585bc0
test eax, eax
je 0x522092
lea esp, [esp]
push eax
push edx
call fcn.00529a80
add esp, 8
test eax, eax
je 0x52205e
mov eax, dword [esi + 8]
add esi, 8
mov edx, dword [esp + 0x14]
test eax, eax
jne 0x522040
jmp 0x52208e
mov cl, byte [esi + 4]
test cl, cl
jne 0x522067
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.00528720
add esp, 8
cmp dword [esi], 0
jne 0x522569
mov edx, dword [esp + 0x14]
push edx
push str.unsupported_encoding:__s
push dword [esp + 0x8c]
call fcn.005071d0
jmp 0x522566
mov ebp, dword [esp + 0x18]
mov edi, dword [ebx + 8]
push ebp
push esi
call fcn.0053a3f0
add esp, 8
cmp dword [esp + 0x14], 0
je 0x5220fe
test byte [ebx + 5], 8
jne 0x5220fe
push 0
push 0x585c50
push 2
push esi
call fcn.0052e5a0
push dword [esp + 0x24]
mov esi, eax
mov dword [esi + 4], ebp
mov dword [esi + 0x18], ebp
mov dword [esi + 0x1c], edi
call fcn.004fb760
mov dword [esi + 0x20], eax
add esp, 0x14
mov eax, 1
mov word [esi + 0x16], ax
jmp 0x522569
push 0
push 0x585c58
push 3
push esi
call fcn.0052e5a0
add esp, 0x10
mov dword [eax + 4], ebp
mov dword [eax + 0x18], ebp
mov dword [eax + 0x20], edi
and dword [esi + 0xa0], 0xffffffdf
jmp 0x522569
mov eax, dword [esp + 0x84]
xor edi, edi
push edi
mov dword [eax + 0x2c], 1
call fcn.004a7e60
add esp, 4
test eax, eax
je 0x522165
push eax
push 1
push esi
inc edi
call fcn.005370e0
push 1
push 1
push 0x53
push esi
call fcn.0052e380
push edi
call fcn.004a7e60
add esp, 0x20
test eax, eax
jne 0x522142
and dword [esi + 0xa0], 0xffffffdf
jmp 0x522569
mov eax, dword [esp + 0x8c]
mov ebx, dword [esp + 0x18]
cmp dword [eax], 0
jne 0x522186
mov ebx, 0xc
xor edi, edi
test edx, edx
je 0x5221d5
push str.full
push edx
call fcn.00529a80
add esp, 8
test eax, eax
jne 0x5221a3
lea edi, [eax + 1]
jmp 0x5221d5
mov ebp, dword [esp + 0x14]
push str.restart
push ebp
call fcn.00529a80
add esp, 8
test eax, eax
jne 0x5221be
lea edi, [eax + 2]
jmp 0x5221d5
push str.truncate
push ebp
call fcn.00529a80
add esp, 8
test eax, eax
jne 0x5221d5
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.0052e3e0
push 3
push 1
push 0x53
push esi
call fcn.0052e380
add esp, 0x24
jmp 0x522569
test edx, edx
je 0x52221a
push edx
call fcn.004fb760
push eax
push dword [esp + 0x18]
call fcn.004b7b80
add esp, 0xc
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x110], 0x53bd70
jne 0x5205aa
mov eax, dword [eax + 0x114]
jmp 0x52255d
push dword [esp + 0x10]
call fcn.004a9f50
add esp, 4
jmp 0x522569
test edx, edx
je 0x522268
push edx
call fcn.004fb760
mov ecx, eax
add esp, 4
mov dword [esp + 0x4c], ecx
test cl, 2
je 0x522569
jmp 0x522270
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 0x522295
mov eax, ebp
mov dword [esp + 0x48], eax
jmp 0x5222b0
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x14]
dec eax
mov dword [esp + 0x48], eax
cmp ebp, eax
jg 0x5223d6
lea esp, [esp]
cmp ebp, 1
je 0x5223c2
push ebp
push ecx
call fcn.00502080
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 0x5223b7
lea esp, [esp]
mov edi, dword [ebx + 8]
test dword [edi + 0x1c], 0x100
je 0x5223a5
mov ax, word [edi + 0x26]
add ax, 0x2e
movzx ebp, ax
mov eax, dword [edi + 8]
test eax, eax
je 0x52230f
test byte [eax + 0x38], 0x80
je 0x522352
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x522302
test bp, bp
je 0x522352
push 0x65
push edi
push dword [esp + 0x20]
push dword [esp + 0x64]
push dword [esp + 0x94]
call fcn.0051c3b0
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.0052e3e0
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.0051b720
add esp, 0x10
mov edx, eax
test byte [esp + 0x4c], 1
je 0x5223e9
push dword [esp + 0x84]
call fcn.00516dc0
push 0xfffffffffffffff9
push edx
push 0
mov edi, eax
push edi
push 0
push 0x75
push esi
call fcn.0052e440
push 1
push edi
push 0x53
push esi
call fcn.0052e380
mov ecx, dword [esp + 0x40]
add esp, 0x30
mov edi, dword [esp + 0x44]
mov ebx, dword [ebx]
test ebx, ebx
jne 0x5222e0
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 0x5222b0
push 0xa5
push esi
call fcn.0052e2d0
add esp, 8
jmp 0x522569
push 0xfffffffffffffff9
push edx
push 0
push 0
push 0
push 0x93
push esi
call fcn.0052e440
mov ecx, dword [esp + 0x2c]
add esp, 0x1c
jmp 0x5223a9
test edx, edx
je 0x52242c
lea eax, [esp + 0x64]
push eax
push edx
call fcn.00505210
add esp, 8
test eax, eax
jne 0x52242c
push dword [esp + 0x68]
push dword [esp + 0x68]
call fcn.004aa030
add esp, 8
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.004aa030
push edx
push eax
push esi
call fcn.004f68d0
add esp, 0x14
jmp 0x522569
test edx, edx
je 0x522495
lea eax, [esp + 0x64]
push eax
push edx
call fcn.00505210
add esp, 8
test eax, eax
jne 0x522495
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.004aa140
mov edi, dword [esp + 0x70]
add esp, 8
mov ebx, eax
test edi, edi
jl 0x522495
mov ecx, dword [esp + 0x64]
jg 0x52247b
test ecx, ecx
je 0x522495
mov eax, ebx
or eax, edx
je 0x52248b
cmp edx, edi
jl 0x522495
jg 0x52248b
cmp ebx, ecx
jbe 0x522495
push edi
push ecx
call fcn.004aa140
add esp, 8
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.004aa140
push edx
push eax
push esi
call fcn.004f68d0
add esp, 0x14
jmp 0x522569
test edx, edx
je 0x5224ef
lea eax, [esp + 0x64]
push eax
push edx
call fcn.00505210
add esp, 8
test eax, eax
jne 0x5224ef
cmp dword [esp + 0x68], eax
jl 0x5224ef
mov eax, dword [esp + 0x64]
jg 0x5224d4
test eax, eax
jb 0x5224ef
and eax, 0x7fffffff
jl 0x5224ef
cmp eax, 8
jle 0x5224e5
mov eax, 8
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0xa4], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xa4]
jmp 0x52255d
test edx, edx
je 0x522530
lea eax, [esp + 0x64]
push eax
push edx
call fcn.00505210
add esp, 8
test eax, eax
jne 0x522530
cmp dword [esp + 0x68], eax
jl 0x522530
mov eax, dword [esp + 0x64]
jg 0x522521
test eax, eax
jb 0x522530
mov ecx, dword [esp + 0x10]
and eax, 0x7fffffff
mov dword [ecx + 0x1ec], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x1ec]
jmp 0x52255d
test edx, edx
je 0x522553
push edx
call fcn.004fb760
push eax
push dword [esp + 0x18]
call fcn.004ac6b0
add esp, 0xc
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x1f0]
cdq
push edx
push eax
push esi
call fcn.004f68d0
add esp, 0xc
mov eax, dword [esp + 0x10]
push dword [esp + 0x34]
push eax
call fcn.00504db0
mov eax, dword [esp + 0x1c]
add esp, 8
test eax, eax
je 0x52258f
push eax
push dword [esp + 0x14]
call fcn.00504db0
add esp, 8
pop edi
pop ebx
pop esi
pop ebp
add esp, 0x70
ret