Function at 0x5047c0
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 0x504804
cmp dword [eax + 0x74], esi
jne 0x5047e9
test byte [ebp + 0x50], 8
jne 0x5047e9
mov byte [eax + 0x17], 1
push eax
call fcn.005137c0
mov esi, eax
add esp, 4
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x1c], esi
test esi, esi
je 0x506f51
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.0050f160
add esp, 0x10
mov dword [esp + 0x14], eax
test eax, eax
js 0x506f50
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 0x504867
push dword [esp + 0x84]
call fcn.005010b0
add esp, 4
test eax, eax
jne 0x506f4f
push dword [esp + 0x58]
push dword [esp + 0x14]
call fcn.00500a50
add esp, 8
mov dword [esp + 0x34], eax
test eax, eax
je 0x506f4f
cmp dword [esp + 0x94], 0
push dword [esp + 0x90]
je 0x5048a7
push 0x5759bc
push dword [esp + 0x18]
call fcn.005000e0
add esp, 0xc
jmp 0x5048b3
push dword [esp + 0x14]
call fcn.00500a50
add esp, 8
cmp dword [ebx + 4], 0
mov dword [esp + 0x14], eax
jbe 0x5048c2
mov ebx, dword [ebp]
jmp 0x5048c4
xor ebx, ebx
push ebx
push eax
push dword [esp + 0x3c]
mov dword [esp + 0x28], ebx
push 0x13
push dword [esp + 0x94]
call fcn.004e03b0
add esp, 0x14
test eax, eax
jne 0x506f29
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.004949f0
mov ebx, eax
add esp, 0x10
test ebx, ebx
jne 0x504962
push 1
push esi
call fcn.0051e1f0
push 0xffffffffffffffff
push dword [esp + 0x7c]
push ebx
push ebx
push esi
call fcn.0051e1a0
push dword [esp + 0x8c]
push esi
call fcn.004db320
push dword [esp + 0x94]
call fcn.00491ac0
add esp, 0x28
jmp 0x506f29
cmp ebx, 0xc
je 0x50499f
mov eax, dword [esp + 0x70]
test eax, eax
je 0x50498d
push eax
push 0x5729a4
push dword [esp + 0x8c]
call fcn.004ebb90
push dword [esp + 0x7c]
call fcn.00491ac0
add esp, 0x10
mov eax, dword [esp + 0x84]
inc dword [eax + 0x24]
mov dword [eax + 0xc], ebx
jmp 0x506f29
push dword [esp + 0x34]
call fcn.004d5d00
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x506f29
test byte [ebx + 5], 1
je 0x5049d2
push dword [esp + 0x84]
call fcn.005078a0
add esp, 4
test eax, eax
jne 0x506f29
mov al, byte [ebx + 5]
test al, 2
jne 0x5049ef
test al, 4
je 0x5049e5
mov edx, dword [esp + 0x14]
test edx, edx
jne 0x5049f3
push ebx
push esi
call fcn.004dd620
add esp, 8
mov edx, dword [esp + 0x14]
movzx eax, byte [ebx + 4]
dec eax
cmp eax, 0x2a
ja case.0x504a01.5
jmp dword [eax*4 + 0x506f58]
mov ebx, dword [esp + 0x18]
push ebx
push esi
call fcn.0051edb0
mov eax, dword [esp + 0x1c]
add esp, 8
test eax, eax
jne 0x504a4d
mov eax, dword [esp + 0x84]
push 0
push 0x56b754
push 9
add dword [eax + 0x2c], 2
push esi
call fcn.00512f60
add esp, 0x10
mov dword [eax + 4], ebx
mov dword [eax + 0x18], ebx
mov dword [eax + 0x7c], 0xfffff830
jmp 0x506f29
push eax
call fcn.004e0120
push eax
call fcn.004ddb90
push ebx
push 0
push dword [esp + 0x94]
mov edi, eax
call fcn.004e0e70
push edi
push 3
push ebx
push 0x63
push esi
call fcn.00512da0
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.004e4880
add esp, 0x30
jmp 0x506f29
mov edi, dword [ebp + 4]
test edx, edx
jne 0x504aac
test edi, edi
je 0x504f6a
mov eax, dword [edi + 4]
mov eax, dword [eax + 0x24]
jmp 0x506f1d
push edx
call fcn.004e0120
mov ecx, dword [esp + 0x14]
push 0
push 0
push eax
push edi
mov dword [ecx + 0x64], eax
call fcn.004e4930
add esp, 0x14
cmp eax, 7
jne 0x506f29
push dword [esp + 0x10]
call fcn.00500c80
add esp, 4
jmp 0x506f29
mov eax, dword [ebp + 4]
or ebp, 0xffffffff
mov dword [esp + 0x58], eax
test edx, edx
je 0x504b18
push str.fast
push edx
call fcn.0049b4c0
add esp, 8
test eax, eax
jne 0x504b06
lea ebp, [eax + 2]
jmp 0x504b18
mov eax, dword [esp + 0x14]
push 0
push eax
call fcn.004fb490
add esp, 8
movzx ebp, al
mov eax, dword [esp + 0x8c]
cmp dword [eax + 4], 0
jne 0x504b55
test ebp, ebp
js 0x504b55
mov eax, dword [esp + 0x10]
xor ebx, ebx
cmp dword [eax + 0x14], ebx
jle 0x504b55
xor edi, edi
mov esi, eax
mov eax, dword [esi + 0x10]
push ebp
push dword [edi + eax + 4]
call fcn.004e47a0
inc ebx
lea edi, [edi + 0x10]
add esp, 8
cmp ebx, dword [esi + 0x14]
jl 0x504b38
mov esi, dword [esp + 0x24]
push ebp
push dword [esp + 0x5c]
call fcn.004e47a0
cdq
push edx
push eax
push esi
call fcn.004db290
add esp, 0x14
jmp 0x506f29
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.004e6a40
mov eax, dword [esp + 0x3c]
add esp, 8
inc dword [ebx + 0x2c]
mov edi, dword [ebx + 0x2c]
movzx eax, byte [eax]
cmp byte [eax + 0x56afc0], 0x70
jne 0x504bce
push edi
push ebp
push 0xb0
push esi
call fcn.00512d40
add esp, 0x10
push 1
push edi
push 0x53
push esi
call fcn.00512d40
add esp, 0x10
jmp 0x506f29
mov eax, dword [esp + 0x14]
test eax, eax
je 0x504c14
lea ecx, [esp + 0x64]
push ecx
push eax
call fcn.004e9bd0
add esp, 8
test eax, eax
jne 0x504c14
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x64]
test ecx, ecx
jg 0x504c05
jl 0x504c14
test eax, eax
jb 0x504c14
test ecx, ecx
jl 0x504c1a
jg 0x504c05
cmp eax, 0xfffffffe
jbe 0x504c1a
mov eax, 0xfffffffe
mov dword [esp + 0x68], 0
jmp 0x504c1a
xor eax, eax
mov dword [esp + 0x68], eax
push eax
push edi
push ebp
push 0xb1
push esi
call fcn.00512da0
add esp, 0x14
push 1
push edi
push 0x53
push esi
call fcn.00512d40
add esp, 0x10
jmp 0x506f29
push edx
mov ebx, str.normal
call fcn.004c67e0
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 0x504cba
cmp ecx, 0xffffffff
jne 0x504c6f
mov eax, dword [esp + 0x10]
movzx eax, byte [eax + 0x59]
jmp 0x504ccb
test eax, eax
jne 0x504cba
mov eax, dword [esp + 0x10]
mov ebx, 2
cmp dword [eax + 0x14], ebx
jle 0x504cb2
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.00502060
mov ecx, dword [esp + 0x54]
lea edi, [edi + 0x10]
inc ebx
add esp, 8
cmp ebx, dword [esi + 0x14]
jl 0x504c88
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.00502060
add esp, 8
cmp eax, 1
jne 0x504cd5
mov ebx, str.exclusive
push ebx
push esi
call fcn.004db320
add esp, 8
jmp 0x506f29
test edx, edx
je 0x504d30
push edx
call fcn.0050e4d0
add esp, 4
mov edi, eax
xor ebx, ebx
cmp ebx, 6
je 0x504d30
mov ecx, dword [ebx*4 + 0x56b524]
test ecx, ecx
je 0x504d30
push edi
push ecx
push dword [esp + 0x1c]
call fcn.0049b540
add esp, 0xc
test eax, eax
je 0x504d1a
inc ebx
jmp 0x504cf5
cmp ebx, 2
jne 0x504d4f
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x20]
and eax, 0x10000000
or eax, 0
je 0x504d54
or ebx, 0xffffffff
mov ecx, dword [esp + 0x8c]
cmp dword [ecx + 4], 0
jne 0x504d5b
xor edx, edx
mov dword [ecx + 4], 1
mov dword [esp + 0x18], edx
jmp 0x504d5f
cmp ebx, 0xffffffff
je 0x504d33
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x14]
dec edi
js 0x504daf
mov ebp, edi
shl ebp, 4
mov edi, edi
mov eax, dword [eax + 0x10]
cmp dword [eax + ebp + 4], 0
je 0x504d9a
cmp edi, edx
je 0x504d84
cmp dword [ecx + 4], 0
jne 0x504d9a
push edi
push esi
call fcn.0051edb0
push ebx
push 1
push edi
push 7
push esi
call fcn.00512da0
add esp, 0x1c
mov ecx, dword [esp + 0x8c]
sub ebp, 0x10
dec edi
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
jns 0x504d70
push 1
push 1
push 0x53
push esi
call fcn.00512d40
add esp, 0x10
jmp 0x506f29
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 0x504e0c
lea eax, [esp + 0x64]
push eax
push edx
call fcn.004e9bd0
mov ecx, dword [esp + 0x70]
add esp, 8
cmp ecx, 0xffffffff
jg 0x504e08
jl 0x504e01
mov eax, dword [esp + 0x64]
cmp eax, 0xffffffff
jae 0x504e0c
or eax, 0xffffffff
or ecx, eax
jmp 0x504e0c
mov eax, dword [esp + 0x64]
push ecx
push eax
push edi
call fcn.00501fd0
push edx
push eax
push esi
call fcn.004db290
add esp, 0x18
jmp 0x506f29
mov edi, dword [ebp + 4]
test edx, edx
jne 0x504e42
push edi
call fcn.004e2870
cdq
push edx
push eax
push esi
call fcn.004db290
add esp, 0x10
jmp 0x506f29
push edx
call fcn.004c65d0
mov ebx, eax
mov eax, dword [esp + 0x14]
push ebx
push edi
mov byte [eax + 0x5a], bl
call fcn.004e4810
add esp, 0xc
test eax, eax
jne 0x506f29
cmp ebx, 1
je 0x504e71
cmp ebx, 2
jne 0x506f29
mov edi, dword [esi + 0x74]
push 0
push 0x56b824
push 5
push esi
call fcn.00512f60
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.0051edb0
add esp, 0x18
jmp 0x506f29
test edx, edx
je 0x504ec9
lea eax, [esp + 0x58]
push eax
push edx
call fcn.004fb5a0
add esp, 8
test eax, eax
je 0x504ec9
mov edi, dword [esp + 0x58]
test edi, edi
jg 0x504ece
mov edi, closesocket
mov ebx, dword [esp + 0x18]
push ebx
push 0
push dword [esp + 0x8c]
call fcn.004e0e70
push 1
push edi
push 0x47
push esi
call fcn.00512d40
push ebx
push 0x3d
push esi
call fcn.00512ce0
push 1
push 0x53
push esi
mov edi, eax
call fcn.00512ce0
push 0xffffffffffffffff
push 1
push 0x55
push esi
call fcn.00512d40
add esp, 0x44
push edi
push 1
push 0x31
push esi
call fcn.00512d40
push edi
push esi
call fcn.0051b7c0
add esp, 0x18
jmp 0x506f29
test edx, edx
jne 0x504f39
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x50]
jmp 0x506f1d
push edx
call fcn.004e0120
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.004e4880
jmp 0x506f26
test edx, edx
jne 0x504f83
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x20]
and eax, 0x20
or eax, edx
jne 0x504f71
xor eax, eax
jmp 0x506f1d
push 0
push dword [ebp + 4]
call fcn.004e4a60
add esp, 8
jmp 0x506f1d
lea eax, [esp + 0x4c]
mov dword [esp + 0x4c], 1
push eax
push edx
call fcn.004fb5a0
mov esi, dword [esp + 0x54]
add esp, 8
test eax, eax
je 0x504fad
push esi
push dword [ebp + 4]
call fcn.004e4a60
add esp, 8
test esi, esi
setne al
movzx eax, al
push eax
push dword [esp + 0x18]
call fcn.004fb490
mov ecx, dword [esp + 0x18]
add esp, 8
test al, al
mov eax, dword [ecx + 0x24]
mov dword [ecx + 0x24], eax
je 0x504fe2
or dword [ecx + 0x20], 0x20
push ecx
call fcn.004dd3c0
add esp, 4
jmp 0x506f29
and dword [ecx + 0x20], 0xffffffdf
push ecx
call fcn.004dd3c0
add esp, 4
jmp 0x506f29
test edx, edx
je 0x50509b
lea eax, [esp + 0x64]
push eax
push edx
call fcn.004e9bd0
mov ebp, dword [esp + 0x70]
add esp, 8
test ebp, ebp
jg 0x505032
jl 0x50501c
mov edx, dword [esp + 0x64]
test edx, edx
jae 0x505036
mov edx, dword [0x606200]
mov ebp, dword [0x606204]
mov dword [esp + 0x64], edx
mov dword [esp + 0x68], ebp
jmp 0x505036
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x8c]
mov ebx, dword [esp + 0x10]
cmp dword [ecx + 4], 0
jne 0x50504d
mov dword [ebx + 0x30], edx
mov dword [ebx + 0x34], ebp
mov edi, dword [ebx + 0x14]
dec edi
js 0x50509b
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 0x505091
cmp edi, dword [esp + 0x18]
je 0x505077
cmp dword [ecx + 4], 0
jne 0x505091
push ebp
push edx
push eax
call fcn.004e48d0
mov ebp, dword [esp + 0x74]
add esp, 0xc
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x8c]
sub ebx, 0x10
dec edi
jns 0x505060
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.004949f0
add esp, 0x10
test eax, eax
jne 0x5050d4
push dword [esp + 0x68]
push dword [esp + 0x68]
jmp 0x506f20
cmp eax, 0xc
je 0x506f29
mov ecx, dword [esp + 0x84]
inc dword [ecx + 0x24]
mov dword [ecx + 0xc], eax
jmp 0x506f29
test edx, edx
jne 0x505100
mov eax, dword [esp + 0x10]
movzx eax, byte [eax + 0x56]
jmp 0x506f1d
push edx
push dword [esp + 0x88]
call fcn.004a6f30
add esp, 8
jmp 0x506f29
test edx, edx
jne 0x50512d
push dword [0x610768]
push esi
call fcn.004db320
add esp, 8
jmp 0x506f29
cmp byte [edx], 0
je 0x50516c
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 0x505153
cmp dword [esp + 0x58], eax
jne 0x50516c
push str.not_a_writable_directory
push dword [esp + 0x88]
call fcn.004ebb90
add esp, 8
jmp 0x506f29
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x56], 1
ja 0x505185
push dword [esp + 0x84]
call fcn.004c8aa0
add esp, 4
push dword [0x610768]
call fcn.00491ac0
mov eax, dword [esp + 0x18]
add esp, 4
cmp byte [eax], 0
je 0x5051b4
push eax
push 0x5729a4
call fcn.004914b0
add esp, 8
mov dword [0x610768], eax
jmp 0x506f29
mov dword [0x610768], 0
jmp 0x506f29
test edx, edx
jne 0x5051db
push dword [0x61076c]
push esi
call fcn.004db320
add esp, 8
jmp 0x506f29
cmp byte [edx], 0
je 0x505209
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 0x505153
cmp dword [esp + 0x58], eax
je 0x505153
push dword [0x61076c]
call fcn.00491ac0
mov eax, dword [esp + 0x18]
add esp, 4
cmp byte [eax], 0
je 0x505238
push eax
push 0x5729a4
call fcn.004914b0
add esp, 8
mov dword [0x61076c], eax
jmp 0x506f29
mov dword [0x61076c], 0
jmp 0x506f29
test edx, edx
jne 0x505255
movzx eax, byte [ebp + 8]
dec eax
jmp 0x506f1d
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x55], 0
jne 0x505278
push str.Safety_level_may_not_be_changed_inside_a_transaction
push dword [esp + 0x88]
call fcn.004ebb90
add esp, 8
jmp 0x506f29
cmp dword [esp + 0x18], 1
je 0x506f2d
push 1
push 0
push edx
call fcn.004c76a0
inc eax
add esp, 0xc
and eax, 7
jne 0x50529b
mov eax, 1
push dword [esp + 0x10]
mov byte [ebp + 8], al
mov byte [ebp + 9], 1
call fcn.004dd3c0
add esp, 4
jmp 0x506f29
test edx, edx
jne 0x5052e3
push ebx
push esi
call fcn.004dd620
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 0x504f6a
mov eax, 1
jmp 0x506f1d
mov eax, dword [esp + 0x10]
mov edi, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
cmp byte [eax + 0x55], 0
jne 0x5052f9
and edi, 0xffffbfff
push 0
push edx
call fcn.004fb490
add esp, 8
test al, al
je 0x505314
mov eax, dword [esp + 0x10]
or dword [eax + 0x20], edi
or dword [eax + 0x24], ebx
jmp 0x505367
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 0x50533e
test ebx, ebx
jne 0x50533e
mov dword [edx + 0x208], ebx
mov dword [edx + 0x20c], ebx
and edi, 1
or edi, 0
je 0x505367
push str.reset
push dword [esp + 0x18]
call fcn.0049b4c0
add esp, 8
test eax, eax
jne 0x505367
push dword [esp + 0x10]
call fcn.005086f0
add esp, 4
push 0xa5
push esi
call fcn.00512c90
push dword [esp + 0x18]
call fcn.004dd3c0
jmp 0x506f26
test edx, edx
je 0x506f29
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0x84]
push ebp
push edi
call fcn.004e69d0
push ebp
push dword [esp + 0x20]
push 2
push edi
call fcn.004ffbb0
mov ebp, eax
add esp, 0x18
mov dword [esp + 0x40], ebp
test ebp, ebp
je 0x506f29
push ebp
mov dword [esp + 0x48], 0
call fcn.005075a0
push ebp
push edi
mov dword [esp + 0x64], eax
mov dword [edi + 0x2c], 7
call fcn.0051ee90
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 0x506f29
mov edx, dword [esp + 0x40]
lea ebx, [ebx]
movzx ecx, word [ecx + 0xe]
xor edi, edi
test cl, 0x62
je 0x505438
mov eax, dword [ebx + 8]
or eax, dword [ebx + 0xc]
jne 0x505420
inc dword [esp + 0x44]
mov ebp, dword [esp + 0x38]
jmp 0x5054dd
test cl, 0x20
je 0x50542c
mov edi, 2
jmp 0x505438
movzx edi, cl
and edi, 0x40
or edi, 0x20
shr edi, 5
test cl, 1
jne 0x505441
xor edx, edx
jmp 0x505466
mov eax, dword [esp + 0x58]
mov edx, 1
test eax, eax
je 0x505466
cmp ebp, edx
jl 0x505466
mov ecx, dword [eax + 4]
movsx eax, word [ecx]
cmp eax, dword [esp + 0x3c]
je 0x505466
inc edx
add ecx, 2
cmp edx, ebp
jle 0x505455
mov ebp, dword [esp + 0x38]
push ebp
push dword [esp + 0x44]
call fcn.004e6d10
add esp, 8
cmp edi, 2
jge 0x505485
test eax, eax
je 0x505485
mov ecx, dword [eax + 8]
jmp 0x505487
xor ecx, ecx
mov eax, dword [ebx + 8]
or eax, dword [ebx + 0xc]
mov dword [esp + 0x4c], str.issisii
jne 0x50549f
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 0x5653d3
push ebp
call fcn.004e6f30
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.0051d300
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 0x505400
jmp 0x506f29
mov eax, dword [esp + 0x84]
mov ebx, dword [esp + 0x1c]
push ebx
push eax
mov dword [eax + 0x2c], 6
call fcn.004e69d0
mov eax, dword [esp + 0x18]
add esp, 8
mov dword [esp + 0x48], 0
cmp dword [eax + 0x14], 0
jle 0x506f2d
xor ebp, ebp
test ebx, ebx
je 0x505551
mov eax, dword [eax + 0x10]
push dword [eax + ebp]
push ebx
call fcn.0049b4c0
add esp, 8
test eax, eax
jne 0x5056b2
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 0x505613
mov esi, dword [esp + 0x10]
mov edi, edi
mov eax, dword [edx + 8]
dec ebx
test eax, eax
je 0x50560f
lea esp, [esp]
mov ecx, dword [eax + 8]
cmp word [ecx + 0x22], 0
je 0x505592
mov eax, dword [eax]
test eax, eax
jne 0x505580
jmp 0x50560f
push dword [ecx]
push str.SELECTFROM__w_
push esi
call fcn.005000e0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x5055d7
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.004ffd40
push dword [esp + 0x68]
call fcn.0049cf90
push edi
push esi
call fcn.004e9770
add esp, 0x28
cmp byte [esi + 0x57], 0
je 0x5055fd
push 0x567fcc
push dword [esi + 0x10c]
call fcn.004ebb90
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 0x505570
mov esi, dword [esp + 0x24]
mov ebx, dword [edx + 8]
test ebx, ebx
je 0x5056ae
mov edi, edi
mov eax, dword [esp + 0x14]
mov edi, dword [ebx + 8]
test eax, eax
je 0x50563a
push dword [edi]
push eax
call fcn.0049b4c0
add esp, 8
test eax, eax
jne 0x5056a4
mov al, byte [edi + 0x2b]
cmp al, 2
jne 0x505648
mov edx, str.view
jmp 0x505666
cmp al, 1
jne 0x505653
mov edx, str.virtual
jmp 0x505666
test dword [edi + 0x1c], 0x1000
mov edx, str.shadow
jne 0x505666
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.00507050
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.0051d300
add esp, 0x24
mov ebx, dword [ebx]
test ebx, ebx
jne 0x505620
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 0x505536
jmp 0x506f2d
test edx, edx
je 0x506f29
mov edi, dword [esp + 0x1c]
push edi
push edx
push dword [esp + 0x18]
call fcn.004f1be0
mov ebp, eax
add esp, 0xc
test ebp, ebp
jne 0x505730
push edi
push dword [esp + 0x18]
mov edi, dword [esp + 0x8c]
push 2
push edi
call fcn.004ffbb0
add esp, 0x10
test eax, eax
je 0x506f29
test byte [eax + 0x1c], 0x80
je 0x506f29
push eax
call fcn.005075a0
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x506f29
jmp 0x505737
mov edi, dword [esp + 0x84]
push dword [ebp + 0x18]
push dword [esp + 0x14]
call fcn.0050a0c0
mov ecx, dword [ebx + 8]
add esp, 8
or ecx, dword [ebx + 0xc]
mov edx, eax
je 0x50575d
movzx eax, word [ebp + 0x34]
mov dword [edi + 0x2c], 6
jmp 0x505768
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.004e6a40
xor edi, edi
add esp, 8
cmp dword [esp + 0x44], edi
jle 0x506f29
lea esp, [esp]
mov eax, dword [ebp + 4]
movzx edx, word [eax + edi*2]
test dx, dx
jns 0x5057a0
xor eax, eax
jmp 0x5057af
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.0051d300
mov eax, dword [ebx + 8]
add esp, 0x18
or eax, dword [ebx + 0xc]
je 0x5057f7
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.0051d300
add esp, 0x18
mov eax, dword [esp + 0x84]
push dword [eax + 0x2c]
push 1
push 0x53
push esi
call fcn.00512d40
inc edi
add esp, 0x10
cmp edi, dword [esp + 0x44]
jl 0x505790
jmp 0x506f29
test edx, edx
je 0x506f29
mov ebx, dword [esp + 0x1c]
push ebx
push edx
push dword [esp + 0x18]
call fcn.004f1cb0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x506f29
push dword [edi + 0x3c]
push dword [esp + 0x14]
call fcn.0050a0c0
mov ecx, dword [esp + 0x8c]
push eax
push ecx
mov dword [ecx + 0x2c], 5
call fcn.004e6a40
mov edi, dword [edi + 8]
add esp, 0x10
xor ebx, ebx
test edi, edi
je 0x506f29
mov dword [esp + 0x64], 0x575a64
mov dword [esp + 0x68], 0x575a68
mov dword [esp + 0x6c], 0x56a46c
jmp 0x505890
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.0051d300
mov edi, dword [edi + 0x14]
add esp, 0x20
inc ebx
test edi, edi
jne 0x505890
jmp 0x506f29
mov eax, dword [esp + 0x84]
xor edi, edi
mov dword [eax + 0x2c], 3
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x14], edi
jle 0x506f2d
xor ebx, ebx
jmp 0x5058f0
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx + ebx + 4]
test eax, eax
je 0x505916
push eax
call fcn.004e28c0
push eax
push dword [ecx + ebx]
push edi
push 0x575a74
push 1
push esi
call fcn.0051d300
add esp, 0x1c
mov eax, dword [esp + 0x10]
inc edi
add ebx, 0x10
cmp edi, dword [eax + 0x14]
jl 0x5058f0
jmp 0x506f2d
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 0x506f29
lea ebx, [ebx]
mov eax, dword [edi + 8]
push dword [eax]
push ebx
push 0x575a78
push 1
push esi
call fcn.0051d300
mov edi, dword [edi]
add esp, 0x14
inc ebx
test edi, edi
jne 0x505950
jmp 0x506f29
mov eax, dword [esp + 0x10]
mov ebp, 0x610820
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 0x5059b4
lea esp, [esp]
push ebx
push 1
push edi
push esi
call fcn.004d5c70
mov edi, dword [edi + 0x24]
add esp, 0x10
test edi, edi
jne 0x5059a0
add ebp, 4
cmp ebp, 0x61087c
jl 0x505992
mov edi, dword [esp + 0x10]
mov edi, dword [edi + 0x1a4]
test edi, edi
je 0x506f29
push ebx
push 0
push dword [edi + 8]
push esi
call fcn.004d5c70
mov edi, dword [edi]
add esp, 0x10
test edi, edi
jne 0x5059d1
jmp 0x506f29
mov eax, dword [esp + 0x84]
mov edi, dword [esp + 0x10]
mov dword [eax + 0x2c], 1
mov edi, dword [edi + 0x188]
test edi, edi
je 0x506f29
jmp 0x505a10
mov eax, dword [edi + 8]
push dword [eax + 4]
push 0x573a2c
push 1
push esi
call fcn.0051d300
mov edi, dword [edi]
add esp, 0x10
test edi, edi
jne 0x505a10
jmp 0x506f29
mov edi, 0x56a5d8
push dword [edi]
push 0x573a2c
push 1
push esi
call fcn.0051d300
add edi, 0x10
add esp, 0x10
cmp edi, 0x56aa08
jl 0x505a36
jmp 0x506f29
test edx, edx
je 0x506f29
mov ebx, dword [esp + 0x1c]
push ebx
push edx
push dword [esp + 0x18]
call fcn.004f1cb0
add esp, 0xc
mov dword [esp + 0x58], eax
test eax, eax
je 0x506f29
cmp byte [eax + 0x2b], 0
jne 0x506f29
mov edi, dword [eax + 0x30]
test edi, edi
je 0x506f29
push dword [eax + 0x3c]
push dword [esp + 0x14]
call fcn.0050a0c0
mov ecx, dword [esp + 0x8c]
xor ebp, ebp
push eax
push ecx
mov dword [esp + 0x54], ebp
mov dword [ecx + 0x2c], 8
call fcn.004e6a40
add esp, 0x10
lea ecx, [ecx]
xor ebx, ebx
cmp dword [edi + 0x14], ebx
jle 0x505b28
lea ebp, [edi + 0x24]
lea ebx, [ebx]
movzx eax, byte [edi + 0x19]
push str.NONE
push eax
call fcn.004a0620
add esp, 4
push eax
movzx eax, byte [edi + 0x1a]
push eax
call fcn.004a0620
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.0051d300
inc ebx
lea ebp, [ebp + 8]
add esp, 0x2c
cmp ebx, dword [edi + 0x14]
jl 0x505ad0
mov ebp, dword [esp + 0x44]
mov edi, dword [edi + 4]
inc ebp
mov dword [esp + 0x44], ebp
test edi, edi
jne 0x505ac0
jmp 0x506f29
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 0x506f29
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x505b90
push ebx
push ecx
push 0
push edx
call fcn.004ffbb0
add esp, 0x10
mov edi, eax
xor eax, eax
jmp 0x505b95
mov edi, dword [eax + 8]
mov eax, dword [eax]
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], edi
test edi, edi
je 0x505efb
cmp byte [edi + 0x2b], 0
jne 0x505efb
cmp dword [edi + 0x30], 0
je 0x505efb
push dword [edi + 0x3c]
push dword [esp + 0x14]
call fcn.0050a0c0
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.004e6a40
push dword [edi]
push 0
push dword [edi + 0x14]
push ebx
push dword [esp + 0xa4]
call fcn.0050e800
mov ecx, dword [esp + 0xa8]
add esp, 0x24
movsx eax, word [edi + 0x22]
add eax, ebp
cmp eax, dword [ecx + 0x2c]
jle 0x505c16
mov dword [ecx + 0x2c], eax
push 0x65
push edi
push ebx
push 0
push ecx
call fcn.00500d70
push dword [edi]
push dword [esp + 0x48]
push esi
call fcn.0051baa0
mov ebx, dword [edi + 0x30]
add esp, 0x20
mov ebp, 1
test ebx, ebx
je 0x505cf1
push dword [esp + 0x1c]
push dword [ebx + 8]
push dword [esp + 0x18]
call fcn.004f1cb0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x505ce1
push dword [edi]
mov dword [esp + 0x30], 0
push 0
push dword [edi + 0x14]
push dword [esp + 0x50]
push dword [esp + 0x94]
call fcn.0050e800
push 0
lea eax, [esp + 0x44]
push eax
push ebx
push edi
push dword [esp + 0xa8]
call fcn.004f3470
add esp, 0x28
test eax, eax
jne 0x506f29
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x505cbe
push 0x65
push edi
push dword [esp + 0x4c]
push ebp
push dword [esp + 0x94]
call fcn.00500d70
add esp, 0x14
jmp 0x505ce1
push dword [esp + 0x44]
push dword [eax + 0x2c]
push ebp
push 0x65
push esi
call fcn.00512da0
push dword [esp + 0x40]
push dword [esp + 0x9c]
call fcn.0051e260
add esp, 0x1c
mov ebx, dword [ebx + 4]
inc ebp
test ebx, ebx
jne 0x505c41
mov edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x84]
cmp dword [eax + 0x28], ebp
jge 0x505d00
mov dword [eax + 0x28], ebp
push 0
push 0x26
push esi
call fcn.00512ce0
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 0x505ed7
jmp 0x505d30
push dword [esp + 0x1c]
push dword [ebx + 8]
push dword [esp + 0x18]
call fcn.004f1cb0
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 0x505d79
lea ecx, [esp + 0x38]
push ecx
lea ecx, [esp + 0x30]
push ecx
push ebx
push eax
push edi
call fcn.004f3470
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 0x505d94
mov dword [edi + 0x2c], eax
xor edi, edi
cmp dword [ebx + 0x14], edi
jle 0x505deb
lea eax, [ebx + 0x24]
mov ebp, edx
mov dword [esp + 0x4c], eax
test ecx, ecx
je 0x505dad
mov eax, dword [ecx + edi*4]
jmp 0x505daf
mov eax, dword [eax]
push ebp
push eax
push 0
push dword [esp + 0x48]
push esi
call fcn.004ecd30
push dword [esp + 0x5c]
push ebp
push 0x32
push esi
call fcn.00512d40
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 0x505da4
mov ebp, dword [esp + 0x48]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x505e2e
push dword [ebx + 0x14]
push eax
push dword [esp + 0x18]
call fcn.004fc9d0
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.00512e00
push 0
push edi
mov edi, dword [esp + 0x4c]
push ebp
push edi
push 0x1f
push esi
call fcn.00512ed0
add esp, 0x34
jmp 0x505e54
cmp dword [esp + 0x54], 0
mov edi, dword [esp + 0x28]
je 0x505e54
mov eax, dword [esi + 0x74]
push edx
add eax, 2
push eax
push edi
push 0x20
push esi
call fcn.00512da0
push ebp
push esi
call fcn.0051b0d0
add esp, 0x1c
mov eax, dword [esp + 0x3c]
test byte [eax + 0x1c], 0x80
mov eax, dword [esp + 0x30]
jne 0x505e6d
inc eax
push eax
push 0
push 0x86
jmp 0x505e73
inc eax
push eax
push 0
push 0x4a
push esi
call fcn.00512d40
add esp, 0x10
lea eax, [edi - 1]
push eax
push dword [ebx + 8]
mov eax, dword [esp + 0x38]
push 0x575a90
add eax, 2
push eax
push esi
call fcn.0051d300
push 4
push dword [esp + 0x48]
push 0x53
push esi
call fcn.00512d40
push ebp
push esi
call fcn.0051dee0
mov eax, dword [esp + 0x64]
add esp, 0x2c
test eax, eax
je 0x505ec3
push eax
push dword [esp + 0x14]
call fcn.004e9770
add esp, 8
mov ebx, dword [ebx + 4]
inc edi
mov dword [esp + 0x28], edi
test ebx, ebx
jne 0x505d30
mov ebp, dword [esp + 0x50]
lea eax, [ebp + 1]
push eax
push 0
push 5
push esi
call fcn.00512d40
push ebp
push esi
call fcn.0051b7c0
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 0x505b75
jmp 0x506f29
test edx, edx
je 0x506f29
push 0
push edx
call fcn.004fb490
movzx eax, al
push eax
push dword [esp + 0x1c]
call fcn.00508050
add esp, 0x10
jmp 0x506f29
xor eax, eax
xor ecx, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x34]
movzx eax, byte [eax]
cmp byte [eax + 0x56afc0], 0x71
mov eax, dword [esp + 0x8c]
sete cl
mov dword [esp + 0x4c], ecx
cmp dword [eax], 0
jne 0x505f66
or edi, 0xffffffff
mov dword [esp + 0x18], edi
jmp 0x505f6a
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 0x505fe0
lea eax, [esp + 0x40]
push eax
push edx
call fcn.004fb5a0
add esp, 8
test eax, eax
je 0x505fae
mov ebp, dword [esp + 0x40]
mov dword [esp + 0x44], ebp
test ebp, ebp
jg 0x505fe0
mov ebp, 0x64
jmp 0x505fdc
test edi, edi
js 0x505fc2
mov eax, dword [esp + 0x10]
mov ecx, edi
add ecx, ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8]
jmp 0x505fc4
xor eax, eax
push eax
push dword [esp + 0x18]
push 0
push ebx
call fcn.004ffbb0
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.00512d40
mov eax, dword [esp + 0x20]
xor ecx, ecx
add esp, 0x10
mov dword [esp + 0x2c], ecx
cmp dword [eax + 0x14], ecx
jle 0x506941
xor ebp, ebp
test edi, edi
js 0x506012
cmp ecx, edi
jne 0x50692f
push ecx
push ebx
call fcn.004e6a40
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 0x50691c
mov ecx, dword [esp + 0x20]
lea ebx, [ebx]
mov eax, dword [edi + 8]
test ecx, ecx
je 0x50605b
cmp ecx, eax
jne 0x506083
test byte [eax + 0x1c], 0x80
jne 0x506062
inc edx
mov eax, dword [eax + 8]
xor ecx, ecx
test eax, eax
je 0x506079
jmp 0x506070
mov eax, dword [eax + 0x14]
inc edx
inc ecx
test eax, eax
jne 0x506070
cmp ecx, ebp
jle 0x50607f
mov ebp, ecx
mov ecx, dword [esp + 0x20]
mov edi, dword [edi]
test edi, edi
jne 0x506050
test edx, edx
je 0x50691c
test ecx, ecx
je 0x506096
inc edx
lea eax, [edx*4 + 4]
push 0
push eax
push dword [esp + 0x18]
call fcn.004e9850
mov edi, eax
add esp, 0xc
test edi, edi
je 0x50693d
mov eax, dword [esp + 0x20]
xor edx, edx
test eax, eax
je 0x5060cc
mov edx, 1
mov dword [edi + 4], 0
mov ebx, dword [ebx + 8]
test ebx, ebx
je 0x50610e
mov esi, dword [esp + 0x20]
mov ecx, dword [ebx + 8]
test esi, esi
je 0x5060e2
cmp esi, ecx
jne 0x506104
test byte [ecx + 0x1c], 0x80
jne 0x5060ef
mov eax, dword [ecx + 0x14]
inc edx
mov dword [edi + edx*4], eax
mov ecx, dword [ecx + 8]
test ecx, ecx
je 0x506104
mov eax, dword [ecx + 0x2c]
inc edx
mov dword [edi + edx*4], eax
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x5060f6
mov ebx, dword [ebx]
test ebx, ebx
jne 0x5060d7
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 0x506123
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.00512e00
mov eax, dword [esp + 0x48]
movzx eax, al
push eax
push esi
call fcn.00513340
push 2
push 0x32
push esi
call fcn.00512ce0
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.005000e0
add esp, 0xc
push eax
push 0
push 3
push 0
push 0x75
push esi
call fcn.00512e00
push 3
push 3
push 2
push 0x6f
push esi
call fcn.00512da0
push esi
call fcn.004c8930
push edi
push esi
call fcn.0051b7c0
mov eax, dword [esp + 0x8c]
add esp, 0x3c
mov ebx, dword [eax + 8]
mov dword [esp + 0x58], ebx
test ebx, ebx
je 0x5069a2
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 0x50690a
mov eax, dword [esp + 0x20]
test eax, eax
je 0x506201
cmp eax, ebx
jne 0x50690a
test byte [ebx + 0x1c], 0x80
jne 0x506211
mov dword [esp + 0x28], 0
jmp 0x50621e
push ebx
call fcn.005075a0
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.00500e90
push 7
push 0
push 0x47
push esi
call fcn.00512d40
mov edi, dword [ebx + 8]
add esp, 0x30
test edi, edi
je 0x50626c
mov ebx, 8
push ebx
push 0
push 0x47
push esi
call fcn.00512d40
mov edi, dword [edi + 0x14]
add esp, 0x10
inc ebx
test edi, edi
jne 0x506252
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x3c]
push 0
push ebp
push 0x26
push esi
call fcn.00512d40
push 1
push 7
push 0x55
push esi
call fcn.00512d40
add esp, 0x20
mov dword [esp + 0x64], eax
cmp dword [esp + 0x4c], 0
jne 0x5062b4
movsx ecx, word [ebx + 0x24]
push 3
dec ecx
push ecx
push ebp
push 0x5d
push esi
call fcn.00512da0
push pe_nt_image_headers32
push esi
call fcn.00513340
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 0x50646f
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 0x506455
test byte [ebx + 4], 0xf
jne 0x506307
test ecx, ecx
je 0x506455
mov eax, dword [esp + 0x84]
dec dword [eax + 0x38]
mov edi, dword [eax + 0x38]
mov dword [esp + 0x48], edi
jmp 0x506326
test ecx, ecx
je 0x50631e
mov eax, dword [esp + 0x84]
dec dword [eax + 0x38]
mov edi, dword [eax + 0x38]
mov dword [esp + 0x48], edi
jmp 0x506326
mov dword [esp + 0x48], 0
push 3
push ebp
push dword [esp + 0x44]
push edx
push esi
call fcn.004ecd30
push 0xffffffffffffffff
push esi
call fcn.0051b0a0
add esp, 0x1c
cmp byte [eax], 0x5d
jne 0x506352
push pe_nt_image_headers32
push esi
call fcn.00513340
add esp, 8
test byte [ebx + 4], 0xf
je 0x5063c0
push 3
push 0x33
push esi
call fcn.00512ce0
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.005000e0
push 0xfffffffffffffff9
push eax
push 0
push 3
push 0
push 0x75
push esi
call fcn.00512e00
add esp, 0x38
cmp dword [esp + 0x30], 0
je 0x5063ad
mov eax, dword [ebx + 4]
and al, 0xf0
cmp al, 0x10
je 0x5063ad
push dword [esp + 0x48]
push esi
call fcn.0051b0d0
add esp, 8
jmp 0x5063b6
push esi
call fcn.004c8930
add esp, 4
push edi
push esi
call fcn.0051b7c0
add esp, 8
mov eax, dword [esp + 0x1c]
test dword [eax + 0x1c], 0x10000
je 0x506451
mov eax, dword [ebx + 4]
shr eax, 4
and eax, 0xf
cmp eax, 1
je 0x506451
movsx eax, byte [eax + 0x56b36f]
push eax
push 0
push 3
push 0x15
push esi
call fcn.00512da0
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 + 0x60626c]
push str.non__s_value_in__s._s
push dword [esp + 0x34]
call fcn.005000e0
push 0xfffffffffffffff9
push eax
push 0
push 3
push 0
push 0x75
push esi
call fcn.00512e00
add esp, 0x44
push dword [esp + 0x48]
push esi
call fcn.0051dee0
push esi
call fcn.004c8930
push edi
push esi
call fcn.0051b7c0
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 0x5062d1
mov ecx, dword [ebx + 0x10]
test ecx, ecx
je 0x50656c
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0x20]
and eax, 0x200
or eax, 0
jne 0x50656c
push eax
push ecx
push edi
call fcn.004f0840
add esp, 0xc
mov ebx, eax
cmp byte [edi + 0x57], 0
mov dword [esp + 0x48], ebx
jne 0x50655a
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 0x5064fa
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.004ef900
dec edi
lea ebx, [ebx - 0x14]
add esp, 0x10
test edi, edi
jg 0x5064d5
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.004efd30
push ebp
push esi
call fcn.0051dee0
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.005000e0
push 0xfffffffffffffff9
push eax
push 0
push 3
push 0
push 0x75
push esi
call fcn.00512e00
add esp, 0x40
push esi
call fcn.004c8930
push edi
push esi
call fcn.0051dee0
mov edi, dword [esp + 0x1c]
add esp, 0xc
test ebx, ebx
je 0x506568
push ebx
push edi
call fcn.004b0f30
add esp, 8
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x4c]
test ebp, ebp
jne 0x5067ea
mov ebx, dword [ebx + 8]
test ebx, ebx
je 0x5067ea
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 0x5067d7
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.004fad20
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.00512d40
movzx ecx, word [ebx + 0x34]
push ecx
push dword [esp + 0x6c]
push edi
push dword [esp + 0x6c]
push 0x1f
push esi
call fcn.00512ed0
add esp, 0x48
mov edi, eax
push 0
push str.row
push 0
push 3
push 0
push 0x75
push esi
call fcn.00512e00
push 3
push 3
push 7
push 0x6f
push esi
call fcn.00512da0
push 0
push str._missing_from_index
push 0
push 4
push 0
push 0x75
push esi
call fcn.00512e00
add esp, 0x4c
push 3
push 3
push 4
push 0x6f
push esi
call fcn.00512da0
push 0
push dword [ebx]
push 0
push 4
push 0
push 0x75
push esi
call fcn.00512e00
push 3
push 3
push 4
push 0x6f
push esi
mov dword [esp + 0x84], eax
call fcn.00512da0
add esp, 0x44
push esi
call fcn.004c8930
push edi
push esi
mov dword [esp + 0x68], eax
call fcn.0051b7c0
add esp, 0xc
cmp byte [ebx + 0x36], 0
je 0x50677c
dec dword [ebp + 0x38]
xor eax, eax
mov ebp, dword [ebp + 0x38]
xor edi, edi
cmp ax, word [ebx + 0x32]
jae 0x5066dd
mov eax, dword [ebx + 4]
movsx ecx, word [eax + edi*2]
test ecx, ecx
js 0x5066c1
mov eax, dword [esp + 0x1c]
add ecx, ecx
mov eax, dword [eax + 4]
test byte [eax + ecx*8 + 4], 0xf
jne 0x5066d4
mov eax, dword [esp + 0x38]
push ebp
add eax, edi
push eax
push 0x32
push esi
call fcn.00512d40
add esp, 0x10
movzx eax, word [ebx + 0x32]
inc edi
cmp edi, eax
jl 0x5066a6
push dword [esp + 0x30]
push 5
push esi
call fcn.00512ce0
push ebp
push esi
mov edi, eax
call fcn.0051b0d0
mov edx, dword [esi + 0x74]
add esp, 0x14
test edi, edi
jns 0x5066ff
lea edi, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x50670e
mov eax, 0x610b1c
jmp 0x506717
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.00512ed0
push 0
push str.non_unique_entry_in_index
push 0
push 3
push 0
push 0x75
push esi
call fcn.00512e00
push dword [esp + 0x74]
push esi
call fcn.0051b0d0
mov ecx, dword [esi + 0xc]
add esp, 0x3c
not ebp
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x50676c
push ebp
push esi
push ecx
call fcn.004d98e0
add esp, 0xc
jmp 0x506775
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 0x50678a
lea ecx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x506799
mov eax, 0x610b1c
jmp 0x5067a2
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 0x5067d3
mov edi, dword [ebp + 8]
not edx
mov ecx, dword [edi + 0xc]
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x5067ca
push edx
push edi
push ecx
call fcn.004d98e0
add esp, 0xc
jmp 0x5067d3
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 0x5065a1
mov ebp, dword [esp + 0x4c]
mov edi, dword [esp + 0x64]
push edi
push dword [esp + 0x40]
push 5
push esi
call fcn.00512d40
mov edx, dword [esi + 0x74]
lea ecx, [edi - 1]
add esp, 0x10
test ecx, ecx
jns 0x50680b
lea ecx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x50681a
mov eax, 0x610b1c
jmp 0x506823
mov eax, dword [esi + 0x70]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
test ebp, ebp
jne 0x506903
push ebp
push str.wrong__of_entries_in_index
push ebp
push 2
push ebp
push 0x75
push esi
call fcn.00512e00
mov eax, dword [esp + 0x38]
add esp, 0x1c
mov edi, dword [eax + 8]
test edi, edi
je 0x506903
mov eax, dword [esp + 0x28]
mov ebp, 8
jmp 0x506860
cmp eax, edi
je 0x5068f7
mov eax, dword [esp + 0x54]
add eax, 0xfffffff8
push 3
add eax, ebp
push eax
push 0x61
push esi
call fcn.00512d40
push 3
push 0
push ebp
push 0x35
push esi
call fcn.00512da0
mov ebx, eax
add esp, 0x24
mov eax, dword [esi + 0x74]
test eax, eax
jle 0x5068a5
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.00512e00
push 3
push 2
push 4
push 0x6f
push esi
call fcn.00512da0
push esi
call fcn.004c8930
mov edx, dword [esi + 0x74]
add esp, 0x34
test ebx, ebx
jns 0x5068d8
lea ebx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x5068e7
mov eax, 0x610b1c
jmp 0x5068f0
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 0x506860
mov ebp, dword [esp + 0x84]
mov ebx, dword [esp + 0x58]
mov ebx, dword [ebx]
mov dword [esp + 0x58], ebx
test ebx, ebx
jne 0x5061d0
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 0x506004
mov ebp, dword [esp + 0x44]
push 0
push 0x56dbec
push 7
push esi
call fcn.00512f60
add esp, 0x10
test eax, eax
je 0x506984
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], 0x575b54
mov byte [eax + 0x65], 0xff
test edx, edx
je 0x506981
mov ecx, edx
mov dword [eax + 0x74], ecx
mov eax, dword [esi]
mov ecx, 0x610b1c
mov edx, dword [esi + 0x74]
cmp byte [eax + 0x57], 0
jne 0x506997
mov ecx, dword [esi + 0x70]
lea eax, [edx - 2]
mov dword [ecx + 0xc], eax
jmp 0x506f29
mov ebx, ebp
jmp 0x506923
test edx, edx
jne 0x5069e0
mov ebx, dword [esp + 0x84]
push ebx
call fcn.005078a0
add esp, 4
test eax, eax
jne 0x506f29
mov eax, dword [ebx]
movzx eax, byte [eax + 0x54]
push dword [eax*8 + 0x56fb90]
push esi
call fcn.004db320
add esp, 8
jmp 0x506f29
mov eax, dword [esp + 0x10]
test byte [eax + 0x18], 0x40
jne 0x506f2d
mov eax, dword [str.UTF8]
mov esi, 0x56fb90
test eax, eax
je 0x506a52
lea esp, [esp]
push eax
push edx
call fcn.0050e440
add esp, 8
test eax, eax
je 0x506a1e
mov eax, dword [esi + 8]
add esi, 8
mov edx, dword [esp + 0x14]
test eax, eax
jne 0x506a00
jmp 0x506a4e
mov cl, byte [esi + 4]
test cl, cl
jne 0x506a27
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.0050d0e0
add esp, 8
cmp dword [esi], 0
jne 0x506f29
mov edx, dword [esp + 0x14]
push edx
push str.unsupported_encoding:__s
push dword [esp + 0x8c]
call fcn.004ebb90
jmp 0x506f26
mov ebp, dword [esp + 0x18]
mov edi, dword [ebx + 8]
push ebp
push esi
call fcn.0051edb0
add esp, 8
cmp dword [esp + 0x14], 0
je 0x506abe
test byte [ebx + 5], 8
jne 0x506abe
push 0
push 0x56fc20
push 2
push esi
call fcn.00512f60
push dword [esp + 0x24]
mov esi, eax
mov dword [esi + 4], ebp
mov dword [esi + 0x18], ebp
mov dword [esi + 0x1c], edi
call fcn.004e0120
mov dword [esi + 0x20], eax
add esp, 0x14
mov eax, 1
mov word [esi + 0x16], ax
jmp 0x506f29
push 0
push 0x56fc28
push 3
push esi
call fcn.00512f60
add esp, 0x10
mov dword [eax + 4], ebp
mov dword [eax + 0x18], ebp
mov dword [eax + 0x20], edi
and dword [esi + 0xa0], 0xffffffdf
jmp 0x506f29
mov eax, dword [esp + 0x84]
xor edi, edi
push edi
mov dword [eax + 0x2c], 1
call fcn.0048c820
add esp, 4
test eax, eax
je 0x506b25
push eax
push 1
push esi
inc edi
call fcn.0051baa0
push 1
push 1
push 0x53
push esi
call fcn.00512d40
push edi
call fcn.0048c820
add esp, 0x20
test eax, eax
jne 0x506b02
and dword [esi + 0xa0], 0xffffffdf
jmp 0x506f29
mov eax, dword [esp + 0x8c]
mov ebx, dword [esp + 0x18]
cmp dword [eax], 0
jne 0x506b46
mov ebx, 0xc
xor edi, edi
test edx, edx
je 0x506b95
push str.full
push edx
call fcn.0050e440
add esp, 8
test eax, eax
jne 0x506b63
lea edi, [eax + 1]
jmp 0x506b95
mov ebp, dword [esp + 0x14]
push str.restart
push ebp
call fcn.0050e440
add esp, 8
test eax, eax
jne 0x506b7e
lea edi, [eax + 2]
jmp 0x506b95
push str.truncate
push ebp
call fcn.0050e440
add esp, 8
test eax, eax
jne 0x506b95
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.00512da0
push 3
push 1
push 0x53
push esi
call fcn.00512d40
add esp, 0x24
jmp 0x506f29
test edx, edx
je 0x506bda
push edx
call fcn.004e0120
push eax
push dword [esp + 0x18]
call fcn.0049c540
add esp, 0xc
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x110], 0x520730
jne 0x504f6a
mov eax, dword [eax + 0x114]
jmp 0x506f1d
push dword [esp + 0x10]
call fcn.0048e910
add esp, 4
jmp 0x506f29
test edx, edx
je 0x506c28
push edx
call fcn.004e0120
mov ecx, eax
add esp, 4
mov dword [esp + 0x4c], ecx
test cl, 2
je 0x506f29
jmp 0x506c30
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 0x506c55
mov eax, ebp
mov dword [esp + 0x48], eax
jmp 0x506c70
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x14]
dec eax
mov dword [esp + 0x48], eax
cmp ebp, eax
jg 0x506d96
lea esp, [esp]
cmp ebp, 1
je 0x506d82
push ebp
push ecx
call fcn.004e6a40
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 0x506d77
lea esp, [esp]
mov edi, dword [ebx + 8]
test dword [edi + 0x1c], 0x100
je 0x506d65
mov ax, word [edi + 0x26]
add ax, 0x2e
movzx ebp, ax
mov eax, dword [edi + 8]
test eax, eax
je 0x506ccf
test byte [eax + 0x38], 0x80
je 0x506d12
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x506cc2
test bp, bp
je 0x506d12
push 0x65
push edi
push dword [esp + 0x20]
push dword [esp + 0x64]
push dword [esp + 0x94]
call fcn.00500d70
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.00512da0
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.005000e0
add esp, 0x10
mov edx, eax
test byte [esp + 0x4c], 1
je 0x506da9
push dword [esp + 0x84]
call fcn.004fb780
push 0xfffffffffffffff9
push edx
push 0
mov edi, eax
push edi
push 0
push 0x75
push esi
call fcn.00512e00
push 1
push edi
push 0x53
push esi
call fcn.00512d40
mov ecx, dword [esp + 0x40]
add esp, 0x30
mov edi, dword [esp + 0x44]
mov ebx, dword [ebx]
test ebx, ebx
jne 0x506ca0
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 0x506c70
push 0xa5
push esi
call fcn.00512c90
add esp, 8
jmp 0x506f29
push 0xfffffffffffffff9
push edx
push 0
push 0
push 0
push 0x93
push esi
call fcn.00512e00
mov ecx, dword [esp + 0x2c]
add esp, 0x1c
jmp 0x506d69
test edx, edx
je 0x506dec
lea eax, [esp + 0x64]
push eax
push edx
call fcn.004e9bd0
add esp, 8
test eax, eax
jne 0x506dec
push dword [esp + 0x68]
push dword [esp + 0x68]
call fcn.0048e9f0
add esp, 8
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.0048e9f0
push edx
push eax
push esi
call fcn.004db290
add esp, 0x14
jmp 0x506f29
test edx, edx
je 0x506e55
lea eax, [esp + 0x64]
push eax
push edx
call fcn.004e9bd0
add esp, 8
test eax, eax
jne 0x506e55
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.0048eb00
mov edi, dword [esp + 0x70]
add esp, 8
mov ebx, eax
test edi, edi
jl 0x506e55
mov ecx, dword [esp + 0x64]
jg 0x506e3b
test ecx, ecx
je 0x506e55
mov eax, ebx
or eax, edx
je 0x506e4b
cmp edx, edi
jl 0x506e55
jg 0x506e4b
cmp ebx, ecx
jbe 0x506e55
push edi
push ecx
call fcn.0048eb00
add esp, 8
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.0048eb00
push edx
push eax
push esi
call fcn.004db290
add esp, 0x14
jmp 0x506f29
test edx, edx
je 0x506eaf
lea eax, [esp + 0x64]
push eax
push edx
call fcn.004e9bd0
add esp, 8
test eax, eax
jne 0x506eaf
cmp dword [esp + 0x68], eax
jl 0x506eaf
mov eax, dword [esp + 0x64]
jg 0x506e94
test eax, eax
jb 0x506eaf
and eax, 0x7fffffff
jl 0x506eaf
cmp eax, 8
jle 0x506ea5
mov eax, 8
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0xa4], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xa4]
jmp 0x506f1d
test edx, edx
je 0x506ef0
lea eax, [esp + 0x64]
push eax
push edx
call fcn.004e9bd0
add esp, 8
test eax, eax
jne 0x506ef0
cmp dword [esp + 0x68], eax
jl 0x506ef0
mov eax, dword [esp + 0x64]
jg 0x506ee1
test eax, eax
jb 0x506ef0
mov ecx, dword [esp + 0x10]
and eax, 0x7fffffff
mov dword [ecx + 0x1ec], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x1ec]
jmp 0x506f1d
test edx, edx
je 0x506f13
push edx
call fcn.004e0120
push eax
push dword [esp + 0x18]
call fcn.00491070
add esp, 0xc
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x1f0]
cdq
push edx
push eax
push esi
call fcn.004db290
add esp, 0xc
mov eax, dword [esp + 0x10]
push dword [esp + 0x34]
push eax
call fcn.004e9770
mov eax, dword [esp + 0x1c]
add esp, 8
test eax, eax
je 0x506f4f
push eax
push dword [esp + 0x14]
call fcn.004e9770
add esp, 8
pop edi
pop ebx
pop esi
pop ebp
add esp, 0x70
ret