Function at 0x50be50
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 0x50be94
cmp dword [eax + 0x74], esi
jne 0x50be79
test byte [ebp + 0x50], 8
jne 0x50be79
mov byte [eax + 0x17], 1
push eax
call fcn.0051ae50
mov esi, eax
add esp, 4
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x1c], esi
test esi, esi
je 0x50e5e1
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.005167f0
add esp, 0x10
mov dword [esp + 0x14], eax
test eax, eax
js 0x50e5e0
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 0x50bef7
push dword [esp + 0x84]
call fcn.00508740
add esp, 4
test eax, eax
jne 0x50e5df
push dword [esp + 0x58]
push dword [esp + 0x14]
call fcn.005080e0
add esp, 8
mov dword [esp + 0x34], eax
test eax, eax
je 0x50e5df
cmp dword [esp + 0x94], 0
push dword [esp + 0x90]
je 0x50bf37
push 0x57d024
push dword [esp + 0x18]
call fcn.00507770
add esp, 0xc
jmp 0x50bf43
push dword [esp + 0x14]
call fcn.005080e0
add esp, 8
cmp dword [ebx + 4], 0
mov dword [esp + 0x14], eax
jbe 0x50bf52
mov ebx, dword [ebp]
jmp 0x50bf54
xor ebx, ebx
push ebx
push eax
push dword [esp + 0x3c]
mov dword [esp + 0x28], ebx
push 0x13
push dword [esp + 0x94]
call fcn.004e7a40
add esp, 0x14
test eax, eax
jne 0x50e5b9
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.0049c080
mov ebx, eax
add esp, 0x10
test ebx, ebx
jne 0x50bff2
push 1
push esi
call fcn.00525880
push 0xffffffffffffffff
push dword [esp + 0x7c]
push ebx
push ebx
push esi
call fcn.00525830
push dword [esp + 0x8c]
push esi
call fcn.004e29b0
push dword [esp + 0x94]
call fcn.00499150
add esp, 0x28
jmp 0x50e5b9
cmp ebx, 0xc
je 0x50c02f
mov eax, dword [esp + 0x70]
test eax, eax
je 0x50c01d
push eax
push 0x562f9c
push dword [esp + 0x8c]
call fcn.004f3220
push dword [esp + 0x7c]
call fcn.00499150
add esp, 0x10
mov eax, dword [esp + 0x84]
inc dword [eax + 0x24]
mov dword [eax + 0xc], ebx
jmp 0x50e5b9
push dword [esp + 0x34]
call fcn.004dd390
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x50e5b9
test byte [ebx + 5], 1
je 0x50c062
push dword [esp + 0x84]
call fcn.0050ef30
add esp, 4
test eax, eax
jne 0x50e5b9
mov al, byte [ebx + 5]
test al, 2
jne 0x50c07f
test al, 4
je 0x50c075
mov edx, dword [esp + 0x14]
test edx, edx
jne 0x50c083
push ebx
push esi
call fcn.004e4cb0
add esp, 8
mov edx, dword [esp + 0x14]
movzx eax, byte [ebx + 4]
dec eax
cmp eax, 0x2a
ja case.0x50c091.5
jmp dword [eax*4 + 0x50e5e8]
mov ebx, dword [esp + 0x18]
push ebx
push esi
call fcn.00526440
mov eax, dword [esp + 0x1c]
add esp, 8
test eax, eax
jne 0x50c0dd
mov eax, dword [esp + 0x84]
push 0
push 0x572e44
push 9
add dword [eax + 0x2c], 2
push esi
call fcn.0051a5f0
add esp, 0x10
mov dword [eax + 4], ebx
mov dword [eax + 0x18], ebx
mov dword [eax + 0x7c], 0xfffff830
jmp 0x50e5b9
push eax
call fcn.004e77b0
push eax
call fcn.004e5220
push ebx
push 0
push dword [esp + 0x94]
mov edi, eax
call fcn.004e8500
push edi
push 3
push ebx
push 0x63
push esi
call fcn.0051a430
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.004ebf10
add esp, 0x30
jmp 0x50e5b9
mov edi, dword [ebp + 4]
test edx, edx
jne 0x50c13c
test edi, edi
je 0x50c5fa
mov eax, dword [edi + 4]
mov eax, dword [eax + 0x24]
jmp 0x50e5ad
push edx
call fcn.004e77b0
mov ecx, dword [esp + 0x14]
push 0
push 0
push eax
push edi
mov dword [ecx + 0x64], eax
call fcn.004ebfc0
add esp, 0x14
cmp eax, 7
jne 0x50e5b9
push dword [esp + 0x10]
call fcn.00508310
add esp, 4
jmp 0x50e5b9
mov eax, dword [ebp + 4]
or ebp, 0xffffffff
mov dword [esp + 0x58], eax
test edx, edx
je 0x50c1a8
push str.fast
push edx
call fcn.004a2b50
add esp, 8
test eax, eax
jne 0x50c196
lea ebp, [eax + 2]
jmp 0x50c1a8
mov eax, dword [esp + 0x14]
push 0
push eax
call fcn.00502b20
add esp, 8
movzx ebp, al
mov eax, dword [esp + 0x8c]
cmp dword [eax + 4], 0
jne 0x50c1e5
test ebp, ebp
js 0x50c1e5
mov eax, dword [esp + 0x10]
xor ebx, ebx
cmp dword [eax + 0x14], ebx
jle 0x50c1e5
xor edi, edi
mov esi, eax
mov eax, dword [esi + 0x10]
push ebp
push dword [edi + eax + 4]
call fcn.004ebe30
inc ebx
lea edi, [edi + 0x10]
add esp, 8
cmp ebx, dword [esi + 0x14]
jl 0x50c1c8
mov esi, dword [esp + 0x24]
push ebp
push dword [esp + 0x5c]
call fcn.004ebe30
cdq
push edx
push eax
push esi
call fcn.004e2920
add esp, 0x14
jmp 0x50e5b9
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.004ee0d0
mov eax, dword [esp + 0x3c]
add esp, 8
inc dword [ebx + 0x2c]
mov edi, dword [ebx + 0x2c]
movzx eax, byte [eax]
cmp byte [eax + 0x5726b0], 0x70
jne 0x50c25e
push edi
push ebp
push 0xb0
push esi
call fcn.0051a3d0
add esp, 0x10
push 1
push edi
push 0x53
push esi
call fcn.0051a3d0
add esp, 0x10
jmp 0x50e5b9
mov eax, dword [esp + 0x14]
test eax, eax
je 0x50c2a4
lea ecx, [esp + 0x64]
push ecx
push eax
call fcn.004f1260
add esp, 8
test eax, eax
jne 0x50c2a4
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x64]
test ecx, ecx
jg 0x50c295
jl 0x50c2a4
test eax, eax
jb 0x50c2a4
test ecx, ecx
jl 0x50c2aa
jg 0x50c295
cmp eax, 0xfffffffe
jbe 0x50c2aa
mov eax, 0xfffffffe
mov dword [esp + 0x68], 0
jmp 0x50c2aa
xor eax, eax
mov dword [esp + 0x68], eax
push eax
push edi
push ebp
push 0xb1
push esi
call fcn.0051a430
add esp, 0x14
push 1
push edi
push 0x53
push esi
call fcn.0051a3d0
add esp, 0x10
jmp 0x50e5b9
push edx
mov ebx, str.normal
call fcn.004cde70
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 0x50c34a
cmp ecx, 0xffffffff
jne 0x50c2ff
mov eax, dword [esp + 0x10]
movzx eax, byte [eax + 0x59]
jmp 0x50c35b
test eax, eax
jne 0x50c34a
mov eax, dword [esp + 0x10]
mov ebx, 2
cmp dword [eax + 0x14], ebx
jle 0x50c342
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.005096f0
mov ecx, dword [esp + 0x54]
lea edi, [edi + 0x10]
inc ebx
add esp, 8
cmp ebx, dword [esi + 0x14]
jl 0x50c318
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.005096f0
add esp, 8
cmp eax, 1
jne 0x50c365
mov ebx, str.exclusive
push ebx
push esi
call fcn.004e29b0
add esp, 8
jmp 0x50e5b9
test edx, edx
je 0x50c3c0
push edx
call fcn.00515b60
add esp, 4
mov edi, eax
xor ebx, ebx
cmp ebx, 6
je 0x50c3c0
mov ecx, dword [ebx*4 + 0x572c14]
test ecx, ecx
je 0x50c3c0
push edi
push ecx
push dword [esp + 0x1c]
call fcn.004a2bd0
add esp, 0xc
test eax, eax
je 0x50c3aa
inc ebx
jmp 0x50c385
cmp ebx, 2
jne 0x50c3df
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x20]
and eax, 0x10000000
or eax, 0
je 0x50c3e4
or ebx, 0xffffffff
mov ecx, dword [esp + 0x8c]
cmp dword [ecx + 4], 0
jne 0x50c3eb
xor edx, edx
mov dword [ecx + 4], 1
mov dword [esp + 0x18], edx
jmp 0x50c3ef
cmp ebx, 0xffffffff
je 0x50c3c3
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x14]
dec edi
js 0x50c43f
mov ebp, edi
shl ebp, 4
mov edi, edi
mov eax, dword [eax + 0x10]
cmp dword [eax + ebp + 4], 0
je 0x50c42a
cmp edi, edx
je 0x50c414
cmp dword [ecx + 4], 0
jne 0x50c42a
push edi
push esi
call fcn.00526440
push ebx
push 1
push edi
push 7
push esi
call fcn.0051a430
add esp, 0x1c
mov ecx, dword [esp + 0x8c]
sub ebp, 0x10
dec edi
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
jns 0x50c400
push 1
push 1
push 0x53
push esi
call fcn.0051a3d0
add esp, 0x10
jmp 0x50e5b9
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 0x50c49c
lea eax, [esp + 0x64]
push eax
push edx
call fcn.004f1260
mov ecx, dword [esp + 0x70]
add esp, 8
cmp ecx, 0xffffffff
jg 0x50c498
jl 0x50c491
mov eax, dword [esp + 0x64]
cmp eax, 0xffffffff
jae 0x50c49c
or eax, 0xffffffff
or ecx, eax
jmp 0x50c49c
mov eax, dword [esp + 0x64]
push ecx
push eax
push edi
call fcn.00509660
push edx
push eax
push esi
call fcn.004e2920
add esp, 0x18
jmp 0x50e5b9
mov edi, dword [ebp + 4]
test edx, edx
jne 0x50c4d2
push edi
call fcn.004e9f00
cdq
push edx
push eax
push esi
call fcn.004e2920
add esp, 0x10
jmp 0x50e5b9
push edx
call fcn.004cdc60
mov ebx, eax
mov eax, dword [esp + 0x14]
push ebx
push edi
mov byte [eax + 0x5a], bl
call fcn.004ebea0
add esp, 0xc
test eax, eax
jne 0x50e5b9
cmp ebx, 1
je 0x50c501
cmp ebx, 2
jne 0x50e5b9
mov edi, dword [esi + 0x74]
push 0
push 0x572f14
push 5
push esi
call fcn.0051a5f0
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.00526440
add esp, 0x18
jmp 0x50e5b9
test edx, edx
je 0x50c559
lea eax, [esp + 0x58]
push eax
push edx
call fcn.00502c30
add esp, 8
test eax, eax
je 0x50c559
mov edi, dword [esp + 0x58]
test edi, edi
jg 0x50c55e
mov edi, closesocket
mov ebx, dword [esp + 0x18]
push ebx
push 0
push dword [esp + 0x8c]
call fcn.004e8500
push 1
push edi
push 0x47
push esi
call fcn.0051a3d0
push ebx
push 0x3d
push esi
call fcn.0051a370
push 1
push 0x53
push esi
mov edi, eax
call fcn.0051a370
push 0xffffffffffffffff
push 1
push 0x55
push esi
call fcn.0051a3d0
add esp, 0x44
push edi
push 1
push 0x31
push esi
call fcn.0051a3d0
push edi
push esi
call fcn.00522e50
add esp, 0x18
jmp 0x50e5b9
test edx, edx
jne 0x50c5c9
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x50]
jmp 0x50e5ad
push edx
call fcn.004e77b0
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.004ebf10
jmp 0x50e5b6
test edx, edx
jne 0x50c613
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x20]
and eax, 0x20
or eax, edx
jne 0x50c601
xor eax, eax
jmp 0x50e5ad
push 0
push dword [ebp + 4]
call fcn.004ec0f0
add esp, 8
jmp 0x50e5ad
lea eax, [esp + 0x4c]
mov dword [esp + 0x4c], 1
push eax
push edx
call fcn.00502c30
mov esi, dword [esp + 0x54]
add esp, 8
test eax, eax
je 0x50c63d
push esi
push dword [ebp + 4]
call fcn.004ec0f0
add esp, 8
test esi, esi
setne al
movzx eax, al
push eax
push dword [esp + 0x18]
call fcn.00502b20
mov ecx, dword [esp + 0x18]
add esp, 8
test al, al
mov eax, dword [ecx + 0x24]
mov dword [ecx + 0x24], eax
je 0x50c672
or dword [ecx + 0x20], 0x20
push ecx
call fcn.004e4a50
add esp, 4
jmp 0x50e5b9
and dword [ecx + 0x20], 0xffffffdf
push ecx
call fcn.004e4a50
add esp, 4
jmp 0x50e5b9
test edx, edx
je 0x50c72b
lea eax, [esp + 0x64]
push eax
push edx
call fcn.004f1260
mov ebp, dword [esp + 0x70]
add esp, 8
test ebp, ebp
jg 0x50c6c2
jl 0x50c6ac
mov edx, dword [esp + 0x64]
test edx, edx
jae 0x50c6c6
mov edx, dword [0x69bf78]
mov ebp, dword [0x69bf7c]
mov dword [esp + 0x64], edx
mov dword [esp + 0x68], ebp
jmp 0x50c6c6
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x8c]
mov ebx, dword [esp + 0x10]
cmp dword [ecx + 4], 0
jne 0x50c6dd
mov dword [ebx + 0x30], edx
mov dword [ebx + 0x34], ebp
mov edi, dword [ebx + 0x14]
dec edi
js 0x50c72b
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 0x50c721
cmp edi, dword [esp + 0x18]
je 0x50c707
cmp dword [ecx + 4], 0
jne 0x50c721
push ebp
push edx
push eax
call fcn.004ebf60
mov ebp, dword [esp + 0x74]
add esp, 0xc
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x8c]
sub ebx, 0x10
dec edi
jns 0x50c6f0
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.0049c080
add esp, 0x10
test eax, eax
jne 0x50c764
push dword [esp + 0x68]
push dword [esp + 0x68]
jmp 0x50e5b0
cmp eax, 0xc
je 0x50e5b9
mov ecx, dword [esp + 0x84]
inc dword [ecx + 0x24]
mov dword [ecx + 0xc], eax
jmp 0x50e5b9
test edx, edx
jne 0x50c790
mov eax, dword [esp + 0x10]
movzx eax, byte [eax + 0x56]
jmp 0x50e5ad
push edx
push dword [esp + 0x88]
call fcn.004ae5c0
add esp, 8
jmp 0x50e5b9
test edx, edx
jne 0x50c7bd
push dword [0x6a3f60]
push esi
call fcn.004e29b0
add esp, 8
jmp 0x50e5b9
cmp byte [edx], 0
je 0x50c7fc
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 0x50c7e3
cmp dword [esp + 0x58], eax
jne 0x50c7fc
push str.not_a_writable_directory
push dword [esp + 0x88]
call fcn.004f3220
add esp, 8
jmp 0x50e5b9
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x56], 1
ja 0x50c815
push dword [esp + 0x84]
call fcn.004d0130
add esp, 4
push dword [0x6a3f60]
call fcn.00499150
mov eax, dword [esp + 0x18]
add esp, 4
cmp byte [eax], 0
je 0x50c844
push eax
push 0x562f9c
call fcn.00498b40
add esp, 8
mov dword [0x6a3f60], eax
jmp 0x50e5b9
mov dword [0x6a3f60], 0
jmp 0x50e5b9
test edx, edx
jne 0x50c86b
push dword [0x6a3f64]
push esi
call fcn.004e29b0
add esp, 8
jmp 0x50e5b9
cmp byte [edx], 0
je 0x50c899
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 0x50c7e3
cmp dword [esp + 0x58], eax
je 0x50c7e3
push dword [0x6a3f64]
call fcn.00499150
mov eax, dword [esp + 0x18]
add esp, 4
cmp byte [eax], 0
je 0x50c8c8
push eax
push 0x562f9c
call fcn.00498b40
add esp, 8
mov dword [0x6a3f64], eax
jmp 0x50e5b9
mov dword [0x6a3f64], 0
jmp 0x50e5b9
test edx, edx
jne 0x50c8e5
movzx eax, byte [ebp + 8]
dec eax
jmp 0x50e5ad
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x55], 0
jne 0x50c908
push str.Safety_level_may_not_be_changed_inside_a_transaction
push dword [esp + 0x88]
call fcn.004f3220
add esp, 8
jmp 0x50e5b9
cmp dword [esp + 0x18], 1
je 0x50e5bd
push 1
push 0
push edx
call fcn.004ced30
inc eax
add esp, 0xc
and eax, 7
jne 0x50c92b
mov eax, 1
push dword [esp + 0x10]
mov byte [ebp + 8], al
mov byte [ebp + 9], 1
call fcn.004e4a50
add esp, 4
jmp 0x50e5b9
test edx, edx
jne 0x50c973
push ebx
push esi
call fcn.004e4cb0
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 0x50c5fa
mov eax, 1
jmp 0x50e5ad
mov eax, dword [esp + 0x10]
mov edi, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
cmp byte [eax + 0x55], 0
jne 0x50c989
and edi, 0xffffbfff
push 0
push edx
call fcn.00502b20
add esp, 8
test al, al
je 0x50c9a4
mov eax, dword [esp + 0x10]
or dword [eax + 0x20], edi
or dword [eax + 0x24], ebx
jmp 0x50c9f7
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 0x50c9ce
test ebx, ebx
jne 0x50c9ce
mov dword [edx + 0x208], ebx
mov dword [edx + 0x20c], ebx
and edi, 1
or edi, 0
je 0x50c9f7
push str.reset
push dword [esp + 0x18]
call fcn.004a2b50
add esp, 8
test eax, eax
jne 0x50c9f7
push dword [esp + 0x10]
call fcn.0050fd80
add esp, 4
push 0xa5
push esi
call fcn.0051a320
push dword [esp + 0x18]
call fcn.004e4a50
jmp 0x50e5b6
test edx, edx
je 0x50e5b9
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0x84]
push ebp
push edi
call fcn.004ee060
push ebp
push dword [esp + 0x20]
push 2
push edi
call fcn.00507240
mov ebp, eax
add esp, 0x18
mov dword [esp + 0x40], ebp
test ebp, ebp
je 0x50e5b9
push ebp
mov dword [esp + 0x48], 0
call fcn.0050ec30
push ebp
push edi
mov dword [esp + 0x64], eax
mov dword [edi + 0x2c], 7
call fcn.00526520
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 0x50e5b9
mov edx, dword [esp + 0x40]
lea ebx, [ebx]
movzx ecx, word [ecx + 0xe]
xor edi, edi
test cl, 0x62
je 0x50cac8
mov eax, dword [ebx + 8]
or eax, dword [ebx + 0xc]
jne 0x50cab0
inc dword [esp + 0x44]
mov ebp, dword [esp + 0x38]
jmp 0x50cb6d
test cl, 0x20
je 0x50cabc
mov edi, 2
jmp 0x50cac8
movzx edi, cl
and edi, 0x40
or edi, 0x20
shr edi, 5
test cl, 1
jne 0x50cad1
xor edx, edx
jmp 0x50caf6
mov eax, dword [esp + 0x58]
mov edx, 1
test eax, eax
je 0x50caf6
cmp ebp, edx
jl 0x50caf6
mov ecx, dword [eax + 4]
movsx eax, word [ecx]
cmp eax, dword [esp + 0x3c]
je 0x50caf6
inc edx
add ecx, 2
cmp edx, ebp
jle 0x50cae5
mov ebp, dword [esp + 0x38]
push ebp
push dword [esp + 0x44]
call fcn.004ee3a0
add esp, 8
cmp edi, 2
jge 0x50cb15
test eax, eax
je 0x50cb15
mov ecx, dword [eax + 8]
jmp 0x50cb17
xor ecx, ecx
mov eax, dword [ebx + 8]
or eax, dword [ebx + 0xc]
mov dword [esp + 0x4c], str.issisii
jne 0x50cb2f
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 0x55b23e
push ebp
call fcn.004ee5c0
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.00524990
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 0x50ca90
jmp 0x50e5b9
mov eax, dword [esp + 0x84]
mov ebx, dword [esp + 0x1c]
push ebx
push eax
mov dword [eax + 0x2c], 6
call fcn.004ee060
mov eax, dword [esp + 0x18]
add esp, 8
mov dword [esp + 0x48], 0
cmp dword [eax + 0x14], 0
jle 0x50e5bd
xor ebp, ebp
test ebx, ebx
je 0x50cbe1
mov eax, dword [eax + 0x10]
push dword [eax + ebp]
push ebx
call fcn.004a2b50
add esp, 8
test eax, eax
jne 0x50cd42
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 0x50cca3
mov esi, dword [esp + 0x10]
mov edi, edi
mov eax, dword [edx + 8]
dec ebx
test eax, eax
je 0x50cc9f
lea esp, [esp]
mov ecx, dword [eax + 8]
cmp word [ecx + 0x22], 0
je 0x50cc22
mov eax, dword [eax]
test eax, eax
jne 0x50cc10
jmp 0x50cc9f
push dword [ecx]
push str.SELECTFROM__w_
push esi
call fcn.00507770
mov edi, eax
add esp, 0xc
test edi, edi
je 0x50cc67
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.005073d0
push dword [esp + 0x68]
call fcn.004a4620
push edi
push esi
call fcn.004f0e00
add esp, 0x28
cmp byte [esi + 0x57], 0
je 0x50cc8d
push 0x567410
push dword [esi + 0x10c]
call fcn.004f3220
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 0x50cc00
mov esi, dword [esp + 0x24]
mov ebx, dword [edx + 8]
test ebx, ebx
je 0x50cd3e
mov edi, edi
mov eax, dword [esp + 0x14]
mov edi, dword [ebx + 8]
test eax, eax
je 0x50ccca
push dword [edi]
push eax
call fcn.004a2b50
add esp, 8
test eax, eax
jne 0x50cd34
mov al, byte [edi + 0x2b]
cmp al, 2
jne 0x50ccd8
mov edx, str.view
jmp 0x50ccf6
cmp al, 1
jne 0x50cce3
mov edx, str.virtual
jmp 0x50ccf6
test dword [edi + 0x1c], 0x1000
mov edx, str.shadow
jne 0x50ccf6
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.0050e6e0
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.00524990
add esp, 0x24
mov ebx, dword [ebx]
test ebx, ebx
jne 0x50ccb0
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 0x50cbc6
jmp 0x50e5bd
test edx, edx
je 0x50e5b9
mov edi, dword [esp + 0x1c]
push edi
push edx
push dword [esp + 0x18]
call fcn.004f9270
mov ebp, eax
add esp, 0xc
test ebp, ebp
jne 0x50cdc0
push edi
push dword [esp + 0x18]
mov edi, dword [esp + 0x8c]
push 2
push edi
call fcn.00507240
add esp, 0x10
test eax, eax
je 0x50e5b9
test byte [eax + 0x1c], 0x80
je 0x50e5b9
push eax
call fcn.0050ec30
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x50e5b9
jmp 0x50cdc7
mov edi, dword [esp + 0x84]
push dword [ebp + 0x18]
push dword [esp + 0x14]
call fcn.00511750
mov ecx, dword [ebx + 8]
add esp, 8
or ecx, dword [ebx + 0xc]
mov edx, eax
je 0x50cded
movzx eax, word [ebp + 0x34]
mov dword [edi + 0x2c], 6
jmp 0x50cdf8
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.004ee0d0
xor edi, edi
add esp, 8
cmp dword [esp + 0x44], edi
jle 0x50e5b9
lea esp, [esp]
mov eax, dword [ebp + 4]
movzx edx, word [eax + edi*2]
test dx, dx
jns 0x50ce30
xor eax, eax
jmp 0x50ce3f
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.00524990
mov eax, dword [ebx + 8]
add esp, 0x18
or eax, dword [ebx + 0xc]
je 0x50ce87
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.00524990
add esp, 0x18
mov eax, dword [esp + 0x84]
push dword [eax + 0x2c]
push 1
push 0x53
push esi
call fcn.0051a3d0
inc edi
add esp, 0x10
cmp edi, dword [esp + 0x44]
jl 0x50ce20
jmp 0x50e5b9
test edx, edx
je 0x50e5b9
mov ebx, dword [esp + 0x1c]
push ebx
push edx
push dword [esp + 0x18]
call fcn.004f9340
mov edi, eax
add esp, 0xc
test edi, edi
je 0x50e5b9
push dword [edi + 0x3c]
push dword [esp + 0x14]
call fcn.00511750
mov ecx, dword [esp + 0x8c]
push eax
push ecx
mov dword [ecx + 0x2c], 5
call fcn.004ee0d0
mov edi, dword [edi + 8]
add esp, 0x10
xor ebx, ebx
test edi, edi
je 0x50e5b9
mov dword [esp + 0x64], 0x57d0cc
mov dword [esp + 0x68], 0x57d0d0
mov dword [esp + 0x6c], 0x571b5c
jmp 0x50cf20
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.00524990
mov edi, dword [edi + 0x14]
add esp, 0x20
inc ebx
test edi, edi
jne 0x50cf20
jmp 0x50e5b9
mov eax, dword [esp + 0x84]
xor edi, edi
mov dword [eax + 0x2c], 3
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x14], edi
jle 0x50e5bd
xor ebx, ebx
jmp 0x50cf80
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx + ebx + 4]
test eax, eax
je 0x50cfa6
push eax
call fcn.004e9f50
push eax
push dword [ecx + ebx]
push edi
push 0x57d0dc
push 1
push esi
call fcn.00524990
add esp, 0x1c
mov eax, dword [esp + 0x10]
inc edi
add ebx, 0x10
cmp edi, dword [eax + 0x14]
jl 0x50cf80
jmp 0x50e5bd
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 0x50e5b9
lea ebx, [ebx]
mov eax, dword [edi + 8]
push dword [eax]
push ebx
push 0x57d0e0
push 1
push esi
call fcn.00524990
mov edi, dword [edi]
add esp, 0x14
inc ebx
test edi, edi
jne 0x50cfe0
jmp 0x50e5b9
mov eax, dword [esp + 0x10]
mov ebp, 0x6a4018
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 0x50d044
lea esp, [esp]
push ebx
push 1
push edi
push esi
call fcn.004dd300
mov edi, dword [edi + 0x24]
add esp, 0x10
test edi, edi
jne 0x50d030
add ebp, 4
cmp ebp, 0x6a4074
jl 0x50d022
mov edi, dword [esp + 0x10]
mov edi, dword [edi + 0x1a4]
test edi, edi
je 0x50e5b9
push ebx
push 0
push dword [edi + 8]
push esi
call fcn.004dd300
mov edi, dword [edi]
add esp, 0x10
test edi, edi
jne 0x50d061
jmp 0x50e5b9
mov eax, dword [esp + 0x84]
mov edi, dword [esp + 0x10]
mov dword [eax + 0x2c], 1
mov edi, dword [edi + 0x188]
test edi, edi
je 0x50e5b9
jmp 0x50d0a0
mov eax, dword [edi + 8]
push dword [eax + 4]
push 0x57b0ac
push 1
push esi
call fcn.00524990
mov edi, dword [edi]
add esp, 0x10
test edi, edi
jne 0x50d0a0
jmp 0x50e5b9
mov edi, 0x571cc8
push dword [edi]
push 0x57b0ac
push 1
push esi
call fcn.00524990
add edi, 0x10
add esp, 0x10
cmp edi, 0x5720f8
jl 0x50d0c6
jmp 0x50e5b9
test edx, edx
je 0x50e5b9
mov ebx, dword [esp + 0x1c]
push ebx
push edx
push dword [esp + 0x18]
call fcn.004f9340
add esp, 0xc
mov dword [esp + 0x58], eax
test eax, eax
je 0x50e5b9
cmp byte [eax + 0x2b], 0
jne 0x50e5b9
mov edi, dword [eax + 0x30]
test edi, edi
je 0x50e5b9
push dword [eax + 0x3c]
push dword [esp + 0x14]
call fcn.00511750
mov ecx, dword [esp + 0x8c]
xor ebp, ebp
push eax
push ecx
mov dword [esp + 0x54], ebp
mov dword [ecx + 0x2c], 8
call fcn.004ee0d0
add esp, 0x10
lea ecx, [ecx]
xor ebx, ebx
cmp dword [edi + 0x14], ebx
jle 0x50d1b8
lea ebp, [edi + 0x24]
lea ebx, [ebx]
movzx eax, byte [edi + 0x19]
push str.NONE
push eax
call fcn.004a7cb0
add esp, 4
push eax
movzx eax, byte [edi + 0x1a]
push eax
call fcn.004a7cb0
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.00524990
inc ebx
lea ebp, [ebp + 8]
add esp, 0x2c
cmp ebx, dword [edi + 0x14]
jl 0x50d160
mov ebp, dword [esp + 0x44]
mov edi, dword [edi + 4]
inc ebp
mov dword [esp + 0x44], ebp
test edi, edi
jne 0x50d150
jmp 0x50e5b9
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 0x50e5b9
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x50d220
push ebx
push ecx
push 0
push edx
call fcn.00507240
add esp, 0x10
mov edi, eax
xor eax, eax
jmp 0x50d225
mov edi, dword [eax + 8]
mov eax, dword [eax]
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], edi
test edi, edi
je 0x50d58b
cmp byte [edi + 0x2b], 0
jne 0x50d58b
cmp dword [edi + 0x30], 0
je 0x50d58b
push dword [edi + 0x3c]
push dword [esp + 0x14]
call fcn.00511750
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.004ee0d0
push dword [edi]
push 0
push dword [edi + 0x14]
push ebx
push dword [esp + 0xa4]
call fcn.00515e90
mov ecx, dword [esp + 0xa8]
add esp, 0x24
movsx eax, word [edi + 0x22]
add eax, ebp
cmp eax, dword [ecx + 0x2c]
jle 0x50d2a6
mov dword [ecx + 0x2c], eax
push 0x65
push edi
push ebx
push 0
push ecx
call fcn.00508400
push dword [edi]
push dword [esp + 0x48]
push esi
call fcn.00523130
mov ebx, dword [edi + 0x30]
add esp, 0x20
mov ebp, 1
test ebx, ebx
je 0x50d381
push dword [esp + 0x1c]
push dword [ebx + 8]
push dword [esp + 0x18]
call fcn.004f9340
mov edi, eax
add esp, 0xc
test edi, edi
je 0x50d371
push dword [edi]
mov dword [esp + 0x30], 0
push 0
push dword [edi + 0x14]
push dword [esp + 0x50]
push dword [esp + 0x94]
call fcn.00515e90
push 0
lea eax, [esp + 0x44]
push eax
push ebx
push edi
push dword [esp + 0xa8]
call fcn.004fab00
add esp, 0x28
test eax, eax
jne 0x50e5b9
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x50d34e
push 0x65
push edi
push dword [esp + 0x4c]
push ebp
push dword [esp + 0x94]
call fcn.00508400
add esp, 0x14
jmp 0x50d371
push dword [esp + 0x44]
push dword [eax + 0x2c]
push ebp
push 0x65
push esi
call fcn.0051a430
push dword [esp + 0x40]
push dword [esp + 0x9c]
call fcn.005258f0
add esp, 0x1c
mov ebx, dword [ebx + 4]
inc ebp
test ebx, ebx
jne 0x50d2d1
mov edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x84]
cmp dword [eax + 0x28], ebp
jge 0x50d390
mov dword [eax + 0x28], ebp
push 0
push 0x26
push esi
call fcn.0051a370
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 0x50d567
jmp 0x50d3c0
push dword [esp + 0x1c]
push dword [ebx + 8]
push dword [esp + 0x18]
call fcn.004f9340
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 0x50d409
lea ecx, [esp + 0x38]
push ecx
lea ecx, [esp + 0x30]
push ecx
push ebx
push eax
push edi
call fcn.004fab00
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 0x50d424
mov dword [edi + 0x2c], eax
xor edi, edi
cmp dword [ebx + 0x14], edi
jle 0x50d47b
lea eax, [ebx + 0x24]
mov ebp, edx
mov dword [esp + 0x4c], eax
test ecx, ecx
je 0x50d43d
mov eax, dword [ecx + edi*4]
jmp 0x50d43f
mov eax, dword [eax]
push ebp
push eax
push 0
push dword [esp + 0x48]
push esi
call fcn.004f43c0
push dword [esp + 0x5c]
push ebp
push 0x32
push esi
call fcn.0051a3d0
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 0x50d434
mov ebp, dword [esp + 0x48]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x50d4be
push dword [ebx + 0x14]
push eax
push dword [esp + 0x18]
call fcn.00504060
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.0051a490
push 0
push edi
mov edi, dword [esp + 0x4c]
push ebp
push edi
push 0x1f
push esi
call fcn.0051a560
add esp, 0x34
jmp 0x50d4e4
cmp dword [esp + 0x54], 0
mov edi, dword [esp + 0x28]
je 0x50d4e4
mov eax, dword [esi + 0x74]
push edx
add eax, 2
push eax
push edi
push 0x20
push esi
call fcn.0051a430
push ebp
push esi
call fcn.00522760
add esp, 0x1c
mov eax, dword [esp + 0x3c]
test byte [eax + 0x1c], 0x80
mov eax, dword [esp + 0x30]
jne 0x50d4fd
inc eax
push eax
push 0
push 0x86
jmp 0x50d503
inc eax
push eax
push 0
push 0x4a
push esi
call fcn.0051a3d0
add esp, 0x10
lea eax, [edi - 1]
push eax
push dword [ebx + 8]
mov eax, dword [esp + 0x38]
push 0x57d0f8
add eax, 2
push eax
push esi
call fcn.00524990
push 4
push dword [esp + 0x48]
push 0x53
push esi
call fcn.0051a3d0
push ebp
push esi
call fcn.00525570
mov eax, dword [esp + 0x64]
add esp, 0x2c
test eax, eax
je 0x50d553
push eax
push dword [esp + 0x14]
call fcn.004f0e00
add esp, 8
mov ebx, dword [ebx + 4]
inc edi
mov dword [esp + 0x28], edi
test ebx, ebx
jne 0x50d3c0
mov ebp, dword [esp + 0x50]
lea eax, [ebp + 1]
push eax
push 0
push 5
push esi
call fcn.0051a3d0
push ebp
push esi
call fcn.00522e50
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 0x50d205
jmp 0x50e5b9
test edx, edx
je 0x50e5b9
push 0
push edx
call fcn.00502b20
movzx eax, al
push eax
push dword [esp + 0x1c]
call fcn.0050f6e0
add esp, 0x10
jmp 0x50e5b9
xor eax, eax
xor ecx, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x34]
movzx eax, byte [eax]
cmp byte [eax + 0x5726b0], 0x71
mov eax, dword [esp + 0x8c]
sete cl
mov dword [esp + 0x4c], ecx
cmp dword [eax], 0
jne 0x50d5f6
or edi, 0xffffffff
mov dword [esp + 0x18], edi
jmp 0x50d5fa
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 0x50d670
lea eax, [esp + 0x40]
push eax
push edx
call fcn.00502c30
add esp, 8
test eax, eax
je 0x50d63e
mov ebp, dword [esp + 0x40]
mov dword [esp + 0x44], ebp
test ebp, ebp
jg 0x50d670
mov ebp, 0x64
jmp 0x50d66c
test edi, edi
js 0x50d652
mov eax, dword [esp + 0x10]
mov ecx, edi
add ecx, ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8]
jmp 0x50d654
xor eax, eax
push eax
push dword [esp + 0x18]
push 0
push ebx
call fcn.00507240
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.0051a3d0
mov eax, dword [esp + 0x20]
xor ecx, ecx
add esp, 0x10
mov dword [esp + 0x2c], ecx
cmp dword [eax + 0x14], ecx
jle 0x50dfd1
xor ebp, ebp
test edi, edi
js 0x50d6a2
cmp ecx, edi
jne 0x50dfbf
push ecx
push ebx
call fcn.004ee0d0
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 0x50dfac
mov ecx, dword [esp + 0x20]
lea ebx, [ebx]
mov eax, dword [edi + 8]
test ecx, ecx
je 0x50d6eb
cmp ecx, eax
jne 0x50d713
test byte [eax + 0x1c], 0x80
jne 0x50d6f2
inc edx
mov eax, dword [eax + 8]
xor ecx, ecx
test eax, eax
je 0x50d709
jmp 0x50d700
mov eax, dword [eax + 0x14]
inc edx
inc ecx
test eax, eax
jne 0x50d700
cmp ecx, ebp
jle 0x50d70f
mov ebp, ecx
mov ecx, dword [esp + 0x20]
mov edi, dword [edi]
test edi, edi
jne 0x50d6e0
test edx, edx
je 0x50dfac
test ecx, ecx
je 0x50d726
inc edx
lea eax, [edx*4 + 4]
push 0
push eax
push dword [esp + 0x18]
call fcn.004f0ee0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x50dfcd
mov eax, dword [esp + 0x20]
xor edx, edx
test eax, eax
je 0x50d75c
mov edx, 1
mov dword [edi + 4], 0
mov ebx, dword [ebx + 8]
test ebx, ebx
je 0x50d79e
mov esi, dword [esp + 0x20]
mov ecx, dword [ebx + 8]
test esi, esi
je 0x50d772
cmp esi, ecx
jne 0x50d794
test byte [ecx + 0x1c], 0x80
jne 0x50d77f
mov eax, dword [ecx + 0x14]
inc edx
mov dword [edi + edx*4], eax
mov ecx, dword [ecx + 8]
test ecx, ecx
je 0x50d794
mov eax, dword [ecx + 0x2c]
inc edx
mov dword [edi + edx*4], eax
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x50d786
mov ebx, dword [ebx]
test ebx, ebx
jne 0x50d767
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 0x50d7b3
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.0051a490
mov eax, dword [esp + 0x48]
movzx eax, al
push eax
push esi
call fcn.0051a9d0
push 2
push 0x32
push esi
call fcn.0051a370
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.00507770
add esp, 0xc
push eax
push 0
push 3
push 0
push 0x75
push esi
call fcn.0051a490
push 3
push 3
push 2
push 0x6f
push esi
call fcn.0051a430
push esi
call fcn.004cffc0
push edi
push esi
call fcn.00522e50
mov eax, dword [esp + 0x8c]
add esp, 0x3c
mov ebx, dword [eax + 8]
mov dword [esp + 0x58], ebx
test ebx, ebx
je 0x50e032
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 0x50df9a
mov eax, dword [esp + 0x20]
test eax, eax
je 0x50d891
cmp eax, ebx
jne 0x50df9a
test byte [ebx + 0x1c], 0x80
jne 0x50d8a1
mov dword [esp + 0x28], 0
jmp 0x50d8ae
push ebx
call fcn.0050ec30
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.00508520
push 7
push 0
push 0x47
push esi
call fcn.0051a3d0
mov edi, dword [ebx + 8]
add esp, 0x30
test edi, edi
je 0x50d8fc
mov ebx, 8
push ebx
push 0
push 0x47
push esi
call fcn.0051a3d0
mov edi, dword [edi + 0x14]
add esp, 0x10
inc ebx
test edi, edi
jne 0x50d8e2
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x3c]
push 0
push ebp
push 0x26
push esi
call fcn.0051a3d0
push 1
push 7
push 0x55
push esi
call fcn.0051a3d0
add esp, 0x20
mov dword [esp + 0x64], eax
cmp dword [esp + 0x4c], 0
jne 0x50d944
movsx ecx, word [ebx + 0x24]
push 3
dec ecx
push ecx
push ebp
push 0x5d
push esi
call fcn.0051a430
push pe_nt_image_headers32
push esi
call fcn.0051a9d0
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 0x50daff
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 0x50dae5
test byte [ebx + 4], 0xf
jne 0x50d997
test ecx, ecx
je 0x50dae5
mov eax, dword [esp + 0x84]
dec dword [eax + 0x38]
mov edi, dword [eax + 0x38]
mov dword [esp + 0x48], edi
jmp 0x50d9b6
test ecx, ecx
je 0x50d9ae
mov eax, dword [esp + 0x84]
dec dword [eax + 0x38]
mov edi, dword [eax + 0x38]
mov dword [esp + 0x48], edi
jmp 0x50d9b6
mov dword [esp + 0x48], 0
push 3
push ebp
push dword [esp + 0x44]
push edx
push esi
call fcn.004f43c0
push 0xffffffffffffffff
push esi
call fcn.00522730
add esp, 0x1c
cmp byte [eax], 0x5d
jne 0x50d9e2
push pe_nt_image_headers32
push esi
call fcn.0051a9d0
add esp, 8
test byte [ebx + 4], 0xf
je 0x50da50
push 3
push 0x33
push esi
call fcn.0051a370
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.00507770
push 0xfffffffffffffff9
push eax
push 0
push 3
push 0
push 0x75
push esi
call fcn.0051a490
add esp, 0x38
cmp dword [esp + 0x30], 0
je 0x50da3d
mov eax, dword [ebx + 4]
and al, 0xf0
cmp al, 0x10
je 0x50da3d
push dword [esp + 0x48]
push esi
call fcn.00522760
add esp, 8
jmp 0x50da46
push esi
call fcn.004cffc0
add esp, 4
push edi
push esi
call fcn.00522e50
add esp, 8
mov eax, dword [esp + 0x1c]
test dword [eax + 0x1c], 0x10000
je 0x50dae1
mov eax, dword [ebx + 4]
shr eax, 4
and eax, 0xf
cmp eax, 1
je 0x50dae1
movsx eax, byte [eax + 0x572a5f]
push eax
push 0
push 3
push 0x15
push esi
call fcn.0051a430
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 + 0x69bfe4]
push str.non__s_value_in__s._s
push dword [esp + 0x34]
call fcn.00507770
push 0xfffffffffffffff9
push eax
push 0
push 3
push 0
push 0x75
push esi
call fcn.0051a490
add esp, 0x44
push dword [esp + 0x48]
push esi
call fcn.00525570
push esi
call fcn.004cffc0
push edi
push esi
call fcn.00522e50
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 0x50d961
mov ecx, dword [ebx + 0x10]
test ecx, ecx
je 0x50dbfc
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0x20]
and eax, 0x200
or eax, 0
jne 0x50dbfc
push eax
push ecx
push edi
call fcn.004f7ed0
add esp, 0xc
mov ebx, eax
cmp byte [edi + 0x57], 0
mov dword [esp + 0x48], ebx
jne 0x50dbea
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 0x50db8a
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.004f6f90
dec edi
lea ebx, [ebx - 0x14]
add esp, 0x10
test edi, edi
jg 0x50db65
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.004f73c0
push ebp
push esi
call fcn.00525570
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.00507770
push 0xfffffffffffffff9
push eax
push 0
push 3
push 0
push 0x75
push esi
call fcn.0051a490
add esp, 0x40
push esi
call fcn.004cffc0
push edi
push esi
call fcn.00525570
mov edi, dword [esp + 0x1c]
add esp, 0xc
test ebx, ebx
je 0x50dbf8
push ebx
push edi
call fcn.004b85c0
add esp, 8
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x4c]
test ebp, ebp
jne 0x50de7a
mov ebx, dword [ebx + 8]
test ebx, ebx
je 0x50de7a
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 0x50de67
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.005023b0
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.0051a3d0
movzx ecx, word [ebx + 0x34]
push ecx
push dword [esp + 0x6c]
push edi
push dword [esp + 0x6c]
push 0x1f
push esi
call fcn.0051a560
add esp, 0x48
mov edi, eax
push 0
push str.row
push 0
push 3
push 0
push 0x75
push esi
call fcn.0051a490
push 3
push 3
push 7
push 0x6f
push esi
call fcn.0051a430
push 0
push str._missing_from_index
push 0
push 4
push 0
push 0x75
push esi
call fcn.0051a490
add esp, 0x4c
push 3
push 3
push 4
push 0x6f
push esi
call fcn.0051a430
push 0
push dword [ebx]
push 0
push 4
push 0
push 0x75
push esi
call fcn.0051a490
push 3
push 3
push 4
push 0x6f
push esi
mov dword [esp + 0x84], eax
call fcn.0051a430
add esp, 0x44
push esi
call fcn.004cffc0
push edi
push esi
mov dword [esp + 0x68], eax
call fcn.00522e50
add esp, 0xc
cmp byte [ebx + 0x36], 0
je 0x50de0c
dec dword [ebp + 0x38]
xor eax, eax
mov ebp, dword [ebp + 0x38]
xor edi, edi
cmp ax, word [ebx + 0x32]
jae 0x50dd6d
mov eax, dword [ebx + 4]
movsx ecx, word [eax + edi*2]
test ecx, ecx
js 0x50dd51
mov eax, dword [esp + 0x1c]
add ecx, ecx
mov eax, dword [eax + 4]
test byte [eax + ecx*8 + 4], 0xf
jne 0x50dd64
mov eax, dword [esp + 0x38]
push ebp
add eax, edi
push eax
push 0x32
push esi
call fcn.0051a3d0
add esp, 0x10
movzx eax, word [ebx + 0x32]
inc edi
cmp edi, eax
jl 0x50dd36
push dword [esp + 0x30]
push 5
push esi
call fcn.0051a370
push ebp
push esi
mov edi, eax
call fcn.00522760
mov edx, dword [esi + 0x74]
add esp, 0x14
test edi, edi
jns 0x50dd8f
lea edi, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x50dd9e
mov eax, 0x6a4314
jmp 0x50dda7
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.0051a560
push 0
push str.non_unique_entry_in_index
push 0
push 3
push 0
push 0x75
push esi
call fcn.0051a490
push dword [esp + 0x74]
push esi
call fcn.00522760
mov ecx, dword [esi + 0xc]
add esp, 0x3c
not ebp
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x50ddfc
push ebp
push esi
push ecx
call fcn.004e0f70
add esp, 0xc
jmp 0x50de05
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 0x50de1a
lea ecx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x50de29
mov eax, 0x6a4314
jmp 0x50de32
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 0x50de63
mov edi, dword [ebp + 8]
not edx
mov ecx, dword [edi + 0xc]
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x50de5a
push edx
push edi
push ecx
call fcn.004e0f70
add esp, 0xc
jmp 0x50de63
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 0x50dc31
mov ebp, dword [esp + 0x4c]
mov edi, dword [esp + 0x64]
push edi
push dword [esp + 0x40]
push 5
push esi
call fcn.0051a3d0
mov edx, dword [esi + 0x74]
lea ecx, [edi - 1]
add esp, 0x10
test ecx, ecx
jns 0x50de9b
lea ecx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x50deaa
mov eax, 0x6a4314
jmp 0x50deb3
mov eax, dword [esi + 0x70]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
test ebp, ebp
jne 0x50df93
push ebp
push str.wrong__of_entries_in_index
push ebp
push 2
push ebp
push 0x75
push esi
call fcn.0051a490
mov eax, dword [esp + 0x38]
add esp, 0x1c
mov edi, dword [eax + 8]
test edi, edi
je 0x50df93
mov eax, dword [esp + 0x28]
mov ebp, 8
jmp 0x50def0
cmp eax, edi
je 0x50df87
mov eax, dword [esp + 0x54]
add eax, 0xfffffff8
push 3
add eax, ebp
push eax
push 0x61
push esi
call fcn.0051a3d0
push 3
push 0
push ebp
push 0x35
push esi
call fcn.0051a430
mov ebx, eax
add esp, 0x24
mov eax, dword [esi + 0x74]
test eax, eax
jle 0x50df35
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.0051a490
push 3
push 2
push 4
push 0x6f
push esi
call fcn.0051a430
push esi
call fcn.004cffc0
mov edx, dword [esi + 0x74]
add esp, 0x34
test ebx, ebx
jns 0x50df68
lea ebx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x50df77
mov eax, 0x6a4314
jmp 0x50df80
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 0x50def0
mov ebp, dword [esp + 0x84]
mov ebx, dword [esp + 0x58]
mov ebx, dword [ebx]
mov dword [esp + 0x58], ebx
test ebx, ebx
jne 0x50d860
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 0x50d694
mov ebp, dword [esp + 0x44]
push 0
push 0x5752dc
push 7
push esi
call fcn.0051a5f0
add esp, 0x10
test eax, eax
je 0x50e014
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], 0x57d1bc
mov byte [eax + 0x65], 0xff
test edx, edx
je 0x50e011
mov ecx, edx
mov dword [eax + 0x74], ecx
mov eax, dword [esi]
mov ecx, 0x6a4314
mov edx, dword [esi + 0x74]
cmp byte [eax + 0x57], 0
jne 0x50e027
mov ecx, dword [esi + 0x70]
lea eax, [edx - 2]
mov dword [ecx + 0xc], eax
jmp 0x50e5b9
mov ebx, ebp
jmp 0x50dfb3
test edx, edx
jne 0x50e070
mov ebx, dword [esp + 0x84]
push ebx
call fcn.0050ef30
add esp, 4
test eax, eax
jne 0x50e5b9
mov eax, dword [ebx]
movzx eax, byte [eax + 0x54]
push dword [eax*8 + 0x577280]
push esi
call fcn.004e29b0
add esp, 8
jmp 0x50e5b9
mov eax, dword [esp + 0x10]
test byte [eax + 0x18], 0x40
jne 0x50e5bd
mov eax, dword [str.UTF8]
mov esi, 0x577280
test eax, eax
je 0x50e0e2
lea esp, [esp]
push eax
push edx
call fcn.00515ad0
add esp, 8
test eax, eax
je 0x50e0ae
mov eax, dword [esi + 8]
add esi, 8
mov edx, dword [esp + 0x14]
test eax, eax
jne 0x50e090
jmp 0x50e0de
mov cl, byte [esi + 4]
test cl, cl
jne 0x50e0b7
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.00514770
add esp, 8
cmp dword [esi], 0
jne 0x50e5b9
mov edx, dword [esp + 0x14]
push edx
push str.unsupported_encoding:__s
push dword [esp + 0x8c]
call fcn.004f3220
jmp 0x50e5b6
mov ebp, dword [esp + 0x18]
mov edi, dword [ebx + 8]
push ebp
push esi
call fcn.00526440
add esp, 8
cmp dword [esp + 0x14], 0
je 0x50e14e
test byte [ebx + 5], 8
jne 0x50e14e
push 0
push 0x577310
push 2
push esi
call fcn.0051a5f0
push dword [esp + 0x24]
mov esi, eax
mov dword [esi + 4], ebp
mov dword [esi + 0x18], ebp
mov dword [esi + 0x1c], edi
call fcn.004e77b0
mov dword [esi + 0x20], eax
add esp, 0x14
mov eax, 1
mov word [esi + 0x16], ax
jmp 0x50e5b9
push 0
push 0x577318
push 3
push esi
call fcn.0051a5f0
add esp, 0x10
mov dword [eax + 4], ebp
mov dword [eax + 0x18], ebp
mov dword [eax + 0x20], edi
and dword [esi + 0xa0], 0xffffffdf
jmp 0x50e5b9
mov eax, dword [esp + 0x84]
xor edi, edi
push edi
mov dword [eax + 0x2c], 1
call fcn.00493eb0
add esp, 4
test eax, eax
je 0x50e1b5
push eax
push 1
push esi
inc edi
call fcn.00523130
push 1
push 1
push 0x53
push esi
call fcn.0051a3d0
push edi
call fcn.00493eb0
add esp, 0x20
test eax, eax
jne 0x50e192
and dword [esi + 0xa0], 0xffffffdf
jmp 0x50e5b9
mov eax, dword [esp + 0x8c]
mov ebx, dword [esp + 0x18]
cmp dword [eax], 0
jne 0x50e1d6
mov ebx, 0xc
xor edi, edi
test edx, edx
je 0x50e225
push str.full
push edx
call fcn.00515ad0
add esp, 8
test eax, eax
jne 0x50e1f3
lea edi, [eax + 1]
jmp 0x50e225
mov ebp, dword [esp + 0x14]
push str.restart
push ebp
call fcn.00515ad0
add esp, 8
test eax, eax
jne 0x50e20e
lea edi, [eax + 2]
jmp 0x50e225
push str.truncate
push ebp
call fcn.00515ad0
add esp, 8
test eax, eax
jne 0x50e225
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.0051a430
push 3
push 1
push 0x53
push esi
call fcn.0051a3d0
add esp, 0x24
jmp 0x50e5b9
test edx, edx
je 0x50e26a
push edx
call fcn.004e77b0
push eax
push dword [esp + 0x18]
call fcn.004a3bd0
add esp, 0xc
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x110], 0x527dc0
jne 0x50c5fa
mov eax, dword [eax + 0x114]
jmp 0x50e5ad
push dword [esp + 0x10]
call fcn.00495fa0
add esp, 4
jmp 0x50e5b9
test edx, edx
je 0x50e2b8
push edx
call fcn.004e77b0
mov ecx, eax
add esp, 4
mov dword [esp + 0x4c], ecx
test cl, 2
je 0x50e5b9
jmp 0x50e2c0
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 0x50e2e5
mov eax, ebp
mov dword [esp + 0x48], eax
jmp 0x50e300
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x14]
dec eax
mov dword [esp + 0x48], eax
cmp ebp, eax
jg 0x50e426
lea esp, [esp]
cmp ebp, 1
je 0x50e412
push ebp
push ecx
call fcn.004ee0d0
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 0x50e407
lea esp, [esp]
mov edi, dword [ebx + 8]
test dword [edi + 0x1c], 0x100
je 0x50e3f5
mov ax, word [edi + 0x26]
add ax, 0x2e
movzx ebp, ax
mov eax, dword [edi + 8]
test eax, eax
je 0x50e35f
test byte [eax + 0x38], 0x80
je 0x50e3a2
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x50e352
test bp, bp
je 0x50e3a2
push 0x65
push edi
push dword [esp + 0x20]
push dword [esp + 0x64]
push dword [esp + 0x94]
call fcn.00508400
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.0051a430
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.00507770
add esp, 0x10
mov edx, eax
test byte [esp + 0x4c], 1
je 0x50e439
push dword [esp + 0x84]
call fcn.00502e10
push 0xfffffffffffffff9
push edx
push 0
mov edi, eax
push edi
push 0
push 0x75
push esi
call fcn.0051a490
push 1
push edi
push 0x53
push esi
call fcn.0051a3d0
mov ecx, dword [esp + 0x40]
add esp, 0x30
mov edi, dword [esp + 0x44]
mov ebx, dword [ebx]
test ebx, ebx
jne 0x50e330
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 0x50e300
push 0xa5
push esi
call fcn.0051a320
add esp, 8
jmp 0x50e5b9
push 0xfffffffffffffff9
push edx
push 0
push 0
push 0
push 0x93
push esi
call fcn.0051a490
mov ecx, dword [esp + 0x2c]
add esp, 0x1c
jmp 0x50e3f9
test edx, edx
je 0x50e47c
lea eax, [esp + 0x64]
push eax
push edx
call fcn.004f1260
add esp, 8
test eax, eax
jne 0x50e47c
push dword [esp + 0x68]
push dword [esp + 0x68]
call fcn.00496080
add esp, 8
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.00496080
push edx
push eax
push esi
call fcn.004e2920
add esp, 0x14
jmp 0x50e5b9
test edx, edx
je 0x50e4e5
lea eax, [esp + 0x64]
push eax
push edx
call fcn.004f1260
add esp, 8
test eax, eax
jne 0x50e4e5
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.00496190
mov edi, dword [esp + 0x70]
add esp, 8
mov ebx, eax
test edi, edi
jl 0x50e4e5
mov ecx, dword [esp + 0x64]
jg 0x50e4cb
test ecx, ecx
je 0x50e4e5
mov eax, ebx
or eax, edx
je 0x50e4db
cmp edx, edi
jl 0x50e4e5
jg 0x50e4db
cmp ebx, ecx
jbe 0x50e4e5
push edi
push ecx
call fcn.00496190
add esp, 8
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.00496190
push edx
push eax
push esi
call fcn.004e2920
add esp, 0x14
jmp 0x50e5b9
test edx, edx
je 0x50e53f
lea eax, [esp + 0x64]
push eax
push edx
call fcn.004f1260
add esp, 8
test eax, eax
jne 0x50e53f
cmp dword [esp + 0x68], eax
jl 0x50e53f
mov eax, dword [esp + 0x64]
jg 0x50e524
test eax, eax
jb 0x50e53f
and eax, 0x7fffffff
jl 0x50e53f
cmp eax, 8
jle 0x50e535
mov eax, 8
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0xa4], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xa4]
jmp 0x50e5ad
test edx, edx
je 0x50e580
lea eax, [esp + 0x64]
push eax
push edx
call fcn.004f1260
add esp, 8
test eax, eax
jne 0x50e580
cmp dword [esp + 0x68], eax
jl 0x50e580
mov eax, dword [esp + 0x64]
jg 0x50e571
test eax, eax
jb 0x50e580
mov ecx, dword [esp + 0x10]
and eax, 0x7fffffff
mov dword [ecx + 0x1ec], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x1ec]
jmp 0x50e5ad
test edx, edx
je 0x50e5a3
push edx
call fcn.004e77b0
push eax
push dword [esp + 0x18]
call fcn.00498700
add esp, 0xc
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x1f0]
cdq
push edx
push eax
push esi
call fcn.004e2920
add esp, 0xc
mov eax, dword [esp + 0x10]
push dword [esp + 0x34]
push eax
call fcn.004f0e00
mov eax, dword [esp + 0x1c]
add esp, 8
test eax, eax
je 0x50e5df
push eax
push dword [esp + 0x14]
call fcn.004f0e00
add esp, 8
pop edi
pop ebx
pop esi
pop ebp
add esp, 0x70
ret