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

Disassembly:
sub esp, 0x54
push ebx
push ebp
mov ebp, dword [esp + 0x60]
mov eax, dword [ebp + 0x28]
mov dword [esp + 0x1c], eax
inc eax
mov dword [ebp + 0x28], eax
mov eax, dword [ebp + 8]
push esi
push edi
mov dword [esp + 0x18], 0
test eax, eax
jne 0x505aa0
cmp dword [ebp + 0x74], eax
jne 0x505a97
mov eax, dword [ebp]
test byte [eax + 0x44], 8
jne 0x505a97
mov byte [ebp + 0x17], 1
push ebp
call fcn.004cbbb0
add esp, 4
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x70]
shr eax, 2
and eax, 1
cmp dword [esp + 0x74], 0
mov dword [esp + 0x34], eax
je 0x505af7
mov ecx, dword [esp + 0x6c]
test dword [ecx + 4], 0x800
je 0x505af7
mov edx, ecx
mov eax, dword [edx + 0x14]
mov eax, dword [eax]
mov edi, dword [eax]
xor esi, esi
test edi, edi
jle 0x505aeb
lea ebx, [eax + 4]
mov eax, dword [ebx]
call fcn.004b63e0
test eax, eax
jne 0x505aeb
inc esi
add ebx, 0x18
cmp esi, edi
jl 0x505ad8
cmp esi, edi
jne 0x505af7
mov dword [esp + 0x74], 0
cmp dword [ebp + 0x24], 0
jne 0x5060e5
mov ecx, dword [esp + 0x6c]
call fcn.004b6590
test eax, eax
je 0x5060e5
mov esi, dword [eax]
mov eax, dword [eax + 0x20]
mov ebx, dword [eax + 0x18]
mov ecx, dword [esi]
mov eax, dword [ebx + 0x48]
mov edx, dword [ebp]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x38], esi
mov dword [esp + 0x2c], ebx
mov ecx, 0xfff0bdc0
test eax, eax
je 0x505b4b
mov edx, dword [edx + 0x10]
add edx, 0xc
xor ecx, ecx
cmp dword [edx], eax
je 0x505b4b
add edx, 0x10
inc ecx
cmp dword [edx], eax
jne 0x505b43
mov eax, dword [ebp + 0x74]
movsx edi, cx
mov dword [esp + 0x30], edi
test eax, eax
jne 0x505b5b
mov eax, ebp
mov ecx, edi
mov edx, 1
shl edx, cl
mov ecx, dword [eax + 0x54]
test edx, ecx
jne 0x505b7a
or ecx, edx
mov dword [eax + 0x54], ecx
cmp edi, 1
jne 0x505b7a
call fcn.00502390
mov ecx, dword [ebx]
mov edx, dword [ebx + 0x1c]
push ecx
push 0
push edx
push edi
mov eax, ebp
call fcn.004c74a0
add esp, 0x10
cmp dword [esp + 0x10], 1
jne 0x505c64
mov eax, dword [esi + 4]
cmp word [eax + 0x20], 0
jge 0x505c64
mov ecx, dword [esp + 0x1c]
push 0
push 0
push 0
push 0x11
push ecx
call fcn.004c5570
mov edx, dword [esp + 0x38]
push 0x6d
mov esi, eax
push edi
push edx
mov eax, ebx
mov ecx, ebp
call fcn.004fa9f0
mov eax, dword [ebx]
push eax
push str.USING_ROWID_SEARCH_ON_TABLE__s_FOR_IN_OPERATOR
push 0
push ebp
mov dword [esp + 0x48], 1
call fcn.004d4e20
mov ecx, dword [esp + 0x4c]
mov eax, dword [ecx + 0x88]
add esp, 0x30
test esi, esi
jge 0x505bf8
lea esi, [eax - 1]
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx]
cmp byte [edx + 0x49], 0
je 0x505c0b
mov ecx, 0x6413f8
jmp 0x505c14
mov ecx, dword [ecx + 0x58]
lea edx, [esi + esi*4]
lea ecx, [ecx + edx*4]
mov dword [ecx + 8], eax
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x18]
mov dword [ecx + 0x1c], eax
mov edi, ecx
mov edx, dword [esp + 0x78]
test edx, edx
je 0x5061c8
cmp ebx, 3
je 0x5061c8
cmp ebx, 4
je 0x5061c8
mov ecx, dword [edi + 0xc]
mov al, byte [ecx]
cmp al, 0xa4
jne 0x505c52
mov al, byte [ecx + 0x26]
cmp al, 0xa5
jne 0x5061a5
mov eax, dword [ecx + 0x14]
mov ecx, dword [eax]
jmp 0x5061b7
cmp dword [esp + 0x10], 0
mov dword [esp + 0x20], 1
mov dword [esp + 0x14], 0
jle 0x505d67
xor edi, edi
add esi, 4
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x10]
lea esp, [esp]
cmp dword [esp + 0x20], 0
je 0x5060e5
mov edx, dword [esp + 0x6c]
mov eax, dword [edx + 0xc]
mov bl, byte [eax]
mov cl, bl
cmp cl, 0xa4
jne 0x505cae
mov cl, byte [eax + 0x26]
cmp cl, 0xa5
jne 0x505cba
mov ecx, dword [eax + 0x14]
mov edx, dword [ecx]
jmp 0x505cc6
cmp cl, 0x7f
jne 0x505ce2
mov ecx, dword [eax + 0x14]
mov edx, dword [ecx]
mov edx, dword [edx]
cmp edx, 1
jle 0x505ce2
cmp bl, 0x7f
je 0x505cdc
cmp byte [eax + 0x26], 0x7f
je 0x505cdc
mov eax, dword [ecx + edi + 4]
jmp 0x505ce2
mov eax, dword [ecx]
mov eax, dword [eax + edi + 4]
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx]
movsx ecx, word [edx + 0x20]
test ecx, ecx
jl 0x505d00
mov edx, dword [esp + 0x2c]
mov edx, dword [edx + 4]
shl ecx, 4
mov bl, byte [ecx + edx + 0xd]
jmp 0x505d02
mov bl, 0x44
call fcn.004c6830
test al, al
je 0x505d20
test bl, bl
je 0x505d28
cmp al, 0x43
jge 0x505d1c
cmp bl, 0x43
jge 0x505d1c
mov al, 0x41
jmp 0x505d2a
mov al, 0x43
jmp 0x505d2a
test bl, bl
jne 0x505d28
mov al, 0x41
jmp 0x505d2a
add al, bl
movsx eax, al
sub eax, 0x41
je 0x505d43
sub eax, 1
je 0x505d43
xor eax, eax
cmp bl, 0x43
setge al
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x14]
add dword [esp + 0x28], 0x18
inc eax
add edi, 0x18
cmp eax, esi
mov dword [esp + 0x14], eax
jl 0x505c90
cmp dword [esp + 0x20], 0
je 0x5060e5
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx + 8]
mov dword [esp + 0x20], edx
test edx, edx
je 0x5060e5
xor edi, edi
lea esp, [esp]
mov esi, dword [esp + 0x10]
cmp dword [esp + 0x18], edi
jne 0x505c17
movzx eax, word [edx + 0x34]
movzx ecx, ax
cmp ecx, esi
jl 0x5060c2
cmp ax, 0x3f
jae 0x5060c2
cmp dword [esp + 0x34], edi
je 0x505dc7
movzx eax, word [edx + 0x32]
cmp eax, esi
jg 0x5060c2
cmp ecx, esi
jle 0x505dc7
cmp byte [edx + 0x36], 0
je 0x5060c2
cmp esi, edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x14], edi
jle 0x505f23
mov ecx, dword [esp + 0x38]
add ecx, 4
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], ecx
mov edi, edi
mov edx, dword [esp + 0x6c]
mov eax, dword [edx + 0xc]
mov bl, byte [eax]
mov cl, bl
cmp cl, 0xa4
jne 0x505e03
mov cl, byte [eax + 0x26]
cmp cl, 0xa5
jne 0x505e0f
mov ecx, dword [eax + 0x14]
mov edx, dword [ecx]
jmp 0x505e1b
cmp cl, 0x7f
jne 0x505e3f
mov ecx, dword [eax + 0x14]
mov edx, dword [ecx]
mov edx, dword [edx]
cmp edx, 1
jle 0x505e3f
cmp bl, 0x7f
je 0x505e35
cmp byte [eax + 0x26], 0x7f
je 0x505e35
mov eax, dword [esp + 0x28]
mov eax, dword [ecx + eax + 4]
jmp 0x505e3f
mov ecx, dword [ecx]
mov edx, dword [esp + 0x28]
mov eax, dword [ecx + edx + 4]
mov ecx, dword [esp + 0x2c]
mov esi, dword [ecx]
mov ecx, 0x100
test dword [eax + 4], ecx
je 0x505e56
mov edx, dword [esp + 0x68]
push edx
jmp 0x505e7c
test esi, esi
je 0x505e66
test dword [esi + 4], ecx
je 0x505e66
mov eax, dword [esp + 0x68]
push eax
jmp 0x505e7a
mov edi, dword [esp + 0x68]
push edi
call fcn.004edfc0
mov ebp, eax
add esp, 4
test ebp, ebp
jne 0x505e86
push edi
mov eax, esi
call fcn.004edfc0
add esp, 4
mov ebp, eax
movzx ecx, word [esi + 0x20]
mov edx, dword [esp + 0x20]
mov esi, dword [edx + 4]
mov ebx, dword [esp + 0x10]
xor edi, edi
mov dword [esp + 0x3c], ecx
jmp 0x505ea0
mov ax, word [esp + 0x3c]
cmp word [esi], ax
jne 0x505ec4
test ebp, ebp
je 0x505ecc
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + 0x20]
mov eax, dword [edx + edi*4]
mov ecx, dword [ebp]
call fcn.004acfb0
test eax, eax
je 0x505ecc
inc edi
add esi, 2
cmp edi, ebx
jl 0x505ea0
cmp edi, ebx
je 0x505f23
mov eax, 1
xor edx, edx
mov ecx, edi
call fcn.0058e3c0
mov ecx, eax
and ecx, dword [esp + 0x40]
mov ebp, edx
and ebp, dword [esp + 0x44]
or ecx, ebp
jne 0x505f23
or dword [esp + 0x40], eax
mov eax, dword [esp + 0x78]
or dword [esp + 0x44], edx
test eax, eax
je 0x505f05
mov ecx, dword [esp + 0x14]
mov dword [eax + ecx*4], edi
mov eax, dword [esp + 0x14]
mov ecx, 0x18
add dword [esp + 0x28], ecx
add dword [esp + 0x2c], ecx
inc eax
cmp eax, ebx
mov dword [esp + 0x14], eax
jl 0x505df0
mov ecx, dword [esp + 0x10]
mov eax, 1
xor edx, edx
call fcn.0058e3c0
add eax, 0xffffffff
adc edx, 0xffffffff
cmp dword [esp + 0x40], eax
jne 0x5060c2
cmp dword [esp + 0x44], edx
jne 0x5060c2
mov edi, dword [esp + 0x1c]
mov ecx, dword [edi + 0x88]
mov edx, dword [edi + 0xc]
cmp dword [edx + 0x30], ecx
jg 0x505f79
push 0
push 0
push 0
push 0x11
mov esi, edi
call fcn.004c5530
add esp, 0x10
mov dword [esp + 0x2c], eax
xor esi, esi
jmp 0x505faa
lea eax, [ecx + 1]
mov dword [edi + 0x88], eax
mov eax, dword [edi + 0x58]
lea edx, [ecx + ecx*4]
lea eax, [eax + edx*4]
xor edx, edx
xor esi, esi
mov byte [eax], 0x11
mov word [eax + 2], dx
mov dword [eax + 4], esi
mov dword [eax + 8], esi
mov dword [eax + 0xc], esi
mov dword [eax + 0x10], esi
mov byte [eax + 1], 0
mov dword [esp + 0x2c], ecx
mov ebp, dword [esp + 0x20]
mov eax, dword [ebp]
mov ebx, dword [esp + 0x68]
push eax
push str.USING_INDEX__s_FOR_IN_OPERATOR
push esi
push ebx
call fcn.004d4e20
mov eax, dword [edi + 0x88]
mov edx, dword [edi + 0xc]
mov ecx, dword [ebp + 0x2c]
add esp, 0x10
cmp dword [edx + 0x30], eax
jg 0x505fef
mov eax, dword [esp + 0x30]
push eax
push ecx
mov ecx, dword [esp + 0x2c]
push ecx
push 0x6d
mov esi, edi
call fcn.004c5530
add esp, 0x10
jmp 0x506022
lea edx, [eax + 1]
mov dword [edi + 0x88], edx
mov edx, dword [edi + 0x58]
lea eax, [eax + eax*4]
lea eax, [edx + eax*4]
xor edx, edx
mov word [eax + 2], dx
mov edx, dword [esp + 0x24]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x30]
mov byte [eax], 0x6d
mov dword [eax + 4], edx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], esi
mov byte [eax + 1], 0
mov esi, dword [ebx + 8]
push ebp
push ebx
call fcn.004ef460
add esp, 8
test eax, eax
je 0x50605e
mov ecx, dword [esi]
cmp byte [ecx + 0x49], 0
je 0x506047
push 0xfffffffffffffff7
call fcn.004bfdb0
add esp, 4
jmp 0x50605e
mov ecx, dword [esi + 0x88]
lea edx, [ecx + ecx*4]
mov ecx, dword [esi + 0x58]
lea ecx, [ecx + edx*4 - 0x14]
mov byte [ecx + 1], 0xf7
mov dword [ecx + 0x10], eax
mov edx, dword [ebp + 0x1c]
movzx eax, byte [edx]
mov ecx, dword [esp + 0x74]
add eax, 3
mov dword [esp + 0x18], eax
test ecx, ecx
je 0x506096
mov edx, 1
add dword [ebx + 0x2c], edx
mov eax, dword [ebx + 0x2c]
mov dword [ecx], eax
cmp dword [esp + 0x10], edx
jne 0x506096
push eax
mov eax, dword [esp + 0x28]
push eax
mov esi, edi
call fcn.004c7040
add esp, 8
mov eax, dword [esp + 0x2c]
mov ecx, dword [edi + 0x88]
test eax, eax
jge 0x5060a7
lea eax, [ecx - 1]
mov edx, dword [edi]
cmp byte [edx + 0x49], 0
je 0x5060b6
mov eax, 0x6413f8
jmp 0x5060bf
mov edx, dword [edi + 0x58]
lea eax, [eax + eax*4]
lea eax, [edx + eax*4]
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x20]
mov edx, dword [eax + 0x14]
xor edi, edi
mov dword [esp + 0x20], edx
cmp edx, edi
jne 0x505d80
cmp dword [esp + 0x18], edi
jne 0x505c17
mov ebp, dword [esp + 0x68]
test byte [esp + 0x70], 1
mov edi, dword [esp + 0x6c]
je 0x506147
test dword [edi + 4], 0x800
jne 0x506147
mov esi, dword [edi + 0xc]
xor eax, eax
lea ecx, [esp + 0x48]
push edi
push ecx
mov dword [edi + 0xc], eax
mov byte [esp + 0x64], 1
mov dword [esp + 0x54], 0x4b6240
mov dword [esp + 0x58], 0x4b61e0
mov dword [esp + 0x68], eax
call fcn.004c1270
add esp, 8
cmp byte [esp + 0x5c], 0
mov dword [edi + 0xc], esi
je 0x50613a
mov edx, dword [edi + 0x14]
cmp dword [edx], 2
jg 0x506147
mov dword [esp + 0x18], 5
jmp 0x505c17
mov esi, dword [ebp + 0x80]
xor eax, eax
test byte [esp + 0x70], 4
lea ebx, [eax + 2]
je 0x506176
mov dword [ebp + 0x80], eax
mov ecx, dword [edi + 0xc]
cmp word [ecx + 0x20], ax
jge 0x506186
test dword [edi + 4], 0x800
jne 0x506186
lea ebx, [eax + 1]
jmp 0x506186
mov ecx, dword [esp + 0x74]
cmp ecx, eax
je 0x506186
inc dword [ebp + 0x2c]
mov eax, dword [ebp + 0x2c]
mov dword [ecx], eax
xor edx, edx
cmp ebx, 1
sete dl
push edx
push eax
push edi
push ebp
call fcn.0050fdc0
add esp, 0x10
mov dword [ebp + 0x80], esi
jmp 0x505c28
cmp al, 0x7f
jne 0x5061b2
mov ecx, dword [ecx + 0x14]
mov eax, dword [ecx]
mov ecx, dword [eax]
jmp 0x5061b7
mov ecx, 1
xor eax, eax
test ecx, ecx
jle 0x5061c8
lea ecx, [ecx]
mov dword [edx + eax*4], eax
inc eax
cmp eax, ecx
jl 0x5061c0
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0x54
ret