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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x74
mov eax, dword [0x519008]
xor eax, esp
mov dword [esp + 0x70], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x44], eax
mov eax, dword [ebp + 0x14]
push ebx
mov ebx, ecx
mov dword [esp + 0x50], eax
xor eax, eax
mov dword [esp + 8], edx
mov dword [esp + 0x18], eax
push esi
mov eax, dword [ebx + 0x28]
mov esi, dword [ebp + 0xc]
mov dword [esp + 0x24], eax
inc eax
mov dword [ebx + 0x28], eax
mov eax, dword [ebx + 8]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x40], esi
mov dword [esp + 0x14], eax
push edi
test eax, eax
jne 0x4ad2e0
cmp dword [ebx + 0x74], eax
jne 0x4ad2d3
mov eax, dword [ebx]
test byte [eax + 0x4c], 8
jne 0x4ad2d3
mov byte [ebx + 0x17], 1
call fcn.004c8600
mov edx, dword [esp + 0x10]
mov dword [esp + 0x18], eax
test esi, esi
je 0x4ad323
test dword [edx + 4], 0x800
je 0x4ad323
mov eax, dword [edx + 0x14]
xor edx, edx
mov esi, dword [eax]
mov edi, dword [esi]
test edi, edi
jle 0x4ad313
add esi, 4
lea ecx, [ecx]
mov ecx, dword [esi]
call fcn.004ade00
test eax, eax
jne 0x4ad313
inc edx
add esi, 0x18
cmp edx, edi
jl 0x4ad300
mov eax, dword [esp + 0x44]
sub edx, edi
neg edx
sbb edx, edx
and eax, edx
mov dword [esp + 0x44], eax
cmp dword [ebx + 0x24], 0
mov ecx, dword [esp + 0x10]
jne 0x4ad97e
mov eax, dword [ecx + 4]
test eax, 0x800
je 0x4ad97e
test al, 0x20
jne 0x4ad97e
mov eax, dword [ecx + 0x14]
cmp dword [eax + 0x34], 0
jne 0x4ad97e
test byte [eax + 8], 9
jne 0x4ad97e
cmp dword [eax + 0x3c], 0
jne 0x4ad97e
cmp dword [eax + 0x24], 0
jne 0x4ad97e
mov ecx, dword [eax + 0x20]
cmp dword [ecx], 1
jne 0x4ad97a
cmp dword [ecx + 0x1c], 0
jne 0x4ad97a
mov ebx, dword [ecx + 0x18]
mov dword [esp + 0x2c], ebx
cmp dword [ebx + 0x38], 0
jne 0x4ad976
mov eax, dword [eax]
xor edx, edx
mov dword [esp + 0x48], eax
mov esi, dword [eax]
mov dword [esp + 0x1c], esi
test esi, esi
jle 0x4ad3c3
lea ecx, [eax + 4]
mov edi, edi
mov eax, dword [ecx]
cmp byte [eax], 0xa2
jne 0x4ad976
inc edx
add ecx, 0x18
cmp edx, esi
jl 0x4ad3b0
mov edx, dword [ebx + 0x48]
mov ecx, 0xfff0bdc0
mov edi, dword [esp + 0x14]
test edx, edx
je 0x4ad3e9
mov eax, dword [edi]
xor ecx, ecx
mov eax, dword [eax + 0x10]
add eax, 0xc
cmp dword [eax], edx
je 0x4ad3e9
lea eax, [eax + 0x10]
inc ecx
cmp dword [eax], edx
jne 0x4ad3e1
mov edx, dword [edi + 0x74]
movzx eax, cx
movsx ecx, ax
mov dword [esp + 0x40], ecx
test edx, edx
jne 0x4ad3fc
mov edx, edi
mov esi, dword [edx + 0x54]
mov eax, 1
shl eax, cl
test esi, eax
jne 0x4ad420
bts esi, ecx
mov dword [edx + 0x54], esi
cmp ecx, 1
jne 0x4ad420
mov ecx, edx
call fcn.0049b260
mov ecx, dword [esp + 0x40]
push dword [ebx]
mov edx, ecx
mov ecx, edi
push 0
push dword [ebx + 0x1c]
call fcn.004a2730
mov edx, dword [esp + 0x28]
add esp, 0xc
cmp edx, 1
jne 0x4ad4c2
mov eax, dword [esp + 0x48]
mov eax, dword [eax + 4]
cmp word [eax + 0x20], 0
jge 0x4ad4c2
mov ecx, dword [esp + 0x18]
mov edx, 0x11
call fcn.004c8250
mov edx, dword [esp + 0x28]
mov ecx, edi
push 0x6c
push ebx
push dword [esp + 0x48]
mov esi, eax
call fcn.00491710
add esp, 0xc
mov dword [esp + 0x20], 1
push dword [ebx]
push str.USING_ROWID_SEARCH_ON_TABLE__s_FOR_IN_OPERATOR
push 0
push edi
call fcn.004c7d40
mov ebx, dword [esp + 0x28]
add esp, 0x10
mov edx, dword [ebx + 0x6c]
test esi, esi
jns 0x4ad49b
lea esi, [edx - 1]
mov eax, dword [ebx]
cmp byte [eax + 0x51], 0
je 0x4ad4b0
mov eax, 0x51e9d8
mov dword [eax + 8], edx
jmp 0x4ada36
mov eax, dword [ebx + 0x68]
lea ecx, [esi + esi*4]
mov dword [eax + ecx*4 + 8], edx
lea eax, [eax + ecx*4]
jmp 0x4ada36
mov dword [esp + 0x34], 0
mov eax, 1
mov dword [esp + 0x24], eax
test edx, edx
jle 0x4ad5b8
xor edi, edi
lea ecx, [ecx]
test eax, eax
je 0x4ad976
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0xc]
mov bl, byte [ecx]
mov al, bl
cmp al, 0xa8
jne 0x4ad4fa
mov al, byte [ecx + 0x26]
cmp al, 0xa9
jne 0x4ad507
mov eax, dword [ecx + 0x14]
mov edx, dword [eax]
mov esi, edx
jmp 0x4ad512
cmp al, 0x83
jne 0x4ad52c
mov eax, dword [ecx + 0x14]
mov edx, dword [eax]
mov esi, dword [edx]
cmp esi, 1
jle 0x4ad52c
cmp bl, 0x83
je 0x4ad528
cmp byte [ecx + 0x26], 0x83
je 0x4ad528
mov ecx, dword [eax + edi + 4]
jmp 0x4ad52c
mov ecx, dword [edx + edi + 4]
mov eax, dword [esp + 0x48]
mov eax, dword [edi + eax + 4]
movsx edx, word [eax + 0x20]
test edx, edx
js 0x4ad54b
mov eax, dword [esp + 0x2c]
add edx, edx
mov eax, dword [eax + 4]
mov bl, byte [eax + edx*8 + 0xd]
jmp 0x4ad54d
mov bl, 0x44
call fcn.004b1020
test al, al
je 0x4ad56b
test bl, bl
je 0x4ad573
cmp al, 0x43
jge 0x4ad567
cmp bl, 0x43
jge 0x4ad567
mov al, 0x41
jmp 0x4ad575
mov al, 0x43
jmp 0x4ad575
test bl, bl
jne 0x4ad573
mov al, 0x41
jmp 0x4ad575
add al, bl
movsx eax, al
sub eax, 0x41
je 0x4ad590
sub eax, 1
je 0x4ad590
xor eax, eax
cmp bl, 0x43
setge al
mov dword [esp + 0x24], eax
jmp 0x4ad594
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x34]
add edi, 0x18
mov edx, dword [esp + 0x1c]
inc ecx
mov dword [esp + 0x34], ecx
cmp ecx, edx
jl 0x4ad4e0
test eax, eax
je 0x4ad976
mov ebx, dword [esp + 0x2c]
mov edi, dword [ebx + 8]
mov dword [esp + 0x30], edi
test edi, edi
je 0x4ad976
xor ebx, ebx
lea esp, [esp]
test ebx, ebx
jne 0x4ada3a
movzx eax, word [edi + 0x34]
mov ecx, eax
cmp ecx, edx
jl 0x4ad95f
cmp dword [edi + 0x24], ebx
jne 0x4ad95f
cmp eax, 0x3f
jae 0x4ad95f
test byte [ebp + 8], 4
je 0x4ad617
movzx eax, word [edi + 0x32]
cmp eax, edx
jg 0x4ad95f
cmp ecx, edx
jle 0x4ad617
cmp byte [edi + 0x36], bl
je 0x4ad95f
xor esi, esi
mov dword [esp + 0x24], 0
mov dword [esp + 0x3c], esi
mov dword [esp + 0x34], esi
test edx, edx
jle 0x4ad7bd
mov dword [esp + 0x38], esi
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0xc]
mov bl, byte [edx]
mov al, bl
cmp al, 0xa8
jne 0x4ad647
mov al, byte [edx + 0x26]
cmp al, 0xa9
jne 0x4ad654
mov eax, dword [edx + 0x14]
mov ecx, dword [eax]
mov esi, ecx
jmp 0x4ad65f
cmp al, 0x83
jne 0x4ad683
mov eax, dword [edx + 0x14]
mov ecx, dword [eax]
mov esi, dword [ecx]
cmp esi, 1
jle 0x4ad683
cmp bl, 0x83
je 0x4ad679
cmp byte [edx + 0x26], 0x83
je 0x4ad679
mov esi, dword [esp + 0x38]
mov edx, dword [esi + eax + 4]
jmp 0x4ad687
mov esi, dword [esp + 0x38]
mov edx, dword [esi + ecx + 4]
jmp 0x4ad687
mov esi, dword [esp + 0x38]
test dword [edx + 4], 0x100
mov eax, dword [esp + 0x48]
mov esi, dword [esi + eax + 4]
je 0x4ad6a9
mov ecx, dword [esp + 0x14]
call fcn.004b0d90
mov ecx, eax
mov dword [esp + 0x2c], ecx
jmp 0x4ad6ed
test esi, esi
je 0x4ad6c9
test dword [esi + 4], 0x100
je 0x4ad6c9
mov ecx, dword [esp + 0x14]
mov edx, esi
call fcn.004b0d90
mov ecx, eax
mov dword [esp + 0x2c], ecx
jmp 0x4ad6ed
mov ebx, dword [esp + 0x14]
mov ecx, ebx
call fcn.004b0d90
mov ecx, eax
mov dword [esp + 0x2c], ecx
test ecx, ecx
jne 0x4ad6ed
mov edx, esi
mov ecx, ebx
call fcn.004b0d90
mov ecx, eax
mov dword [esp + 0x2c], eax
movzx edx, word [esi + 0x20]
xor ebx, ebx
mov eax, dword [edi + 4]
mov dword [esp + 0x54], edx
mov dword [esp + 0x4c], eax
mov edi, edi
cmp word [eax], dx
jne 0x4ad746
test ecx, ecx
je 0x4ad758
mov eax, dword [edi + 0x20]
mov edx, dword [ecx]
mov edi, dword [eax + ebx*4]
sub edi, edx
movzx eax, byte [edx]
movzx esi, byte [edi + edx]
cmp eax, esi
jne 0x4ad725
test eax, eax
je 0x4ad758
inc edx
jmp 0x4ad713
movzx ecx, byte [eax + 0x5077b0]
movzx eax, byte [esi + 0x5077b0]
sub ecx, eax
jne 0x4ad73a
inc edx
jmp 0x4ad713
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x54]
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
inc ebx
add eax, 2
mov dword [esp + 0x4c], eax
cmp ebx, dword [esp + 0x1c]
jl 0x4ad700
mov edi, dword [esp + 0x1c]
cmp ebx, edi
je 0x4ad7b5
mov eax, 1
xor edx, edx
mov ecx, ebx
call fcn.00421a50
mov esi, eax
mov eax, edx
and eax, dword [esp + 0x3c]
mov ecx, esi
and ecx, dword [esp + 0x24]
or ecx, eax
jne 0x4ad7b5
or dword [esp + 0x24], esi
mov esi, dword [esp + 0x3c]
mov eax, dword [esp + 0x50]
or esi, edx
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x3c], esi
test eax, eax
je 0x4ad79d
mov dword [eax + ecx*4], ebx
add dword [esp + 0x38], 0x18
inc ecx
cmp ecx, edi
mov dword [esp + 0x34], ecx
mov edi, dword [esp + 0x30]
jl 0x4ad635
jmp 0x4ad7b9
mov esi, dword [esp + 0x3c]
mov edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x1c]
mov eax, 1
xor edx, edx
mov ecx, ebx
call fcn.00421a50
add eax, 0xffffffff
adc edx, 0xffffffff
cmp dword [esp + 0x24], eax
jne 0x4ad959
cmp esi, edx
jne 0x4ad959
mov ecx, dword [esp + 0x18]
mov esi, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], esi
jg 0x4ad80a
push 0
push 0
push 0
mov edx, 0x11
call fcn.004c8320
add esp, 0xc
mov esi, eax
jmp 0x4ad841
lea eax, [esi + 1]
mov dword [ecx + 0x6c], eax
lea ecx, [esi + esi*4]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x68]
mov dword [eax + ecx*4], 0x11
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push dword [edi]
push str.USING_INDEX__s_FOR_IN_OPERATOR
push 0
push dword [esp + 0x20]
call fcn.004c7d40
mov edx, dword [edi + 0x2c]
add esp, 0x10
mov edi, dword [esp + 0x18]
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4ad87f
push dword [esp + 0x40]
mov ecx, edi
push edx
push dword [esp + 0x30]
mov edx, 0x6c
call fcn.004c8320
add esp, 0xc
jmp 0x4ad8ae
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x28]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x40]
mov dword [eax + ecx*4], 0x6c
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x14]
mov ecx, eax
mov edx, dword [esp + 0x30]
mov edi, dword [eax + 8]
call fcn.0049a6a0
mov edx, eax
test edx, edx
je 0x4ad8f0
mov ecx, dword [edi]
cmp byte [ecx + 0x51], 0
je 0x4ad8de
push edx
mov edx, 0xfffffff7
call fcn.004c7440
add esp, 4
jmp 0x4ad8f0
mov eax, dword [edi + 0x6c]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
mov byte [eax + ecx*4 - 0x13], 0xf7
mov dword [eax + ecx*4 - 4], edx
mov edi, dword [esp + 0x30]
mov edx, dword [esp + 0x44]
mov eax, dword [edi + 0x1c]
movzx eax, byte [eax]
add eax, 3
mov dword [esp + 0x20], eax
test edx, edx
je 0x4ad92c
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x2c]
inc eax
mov dword [ecx + 0x2c], eax
mov dword [edx], eax
cmp ebx, 1
jne 0x4ad92c
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x18]
push eax
call fcn.004adb10
add esp, 4
mov eax, dword [esp + 0x18]
mov edx, dword [eax + 0x6c]
test esi, esi
jns 0x4ad93a
lea esi, [edx - 1]
mov eax, dword [eax]
cmp byte [eax + 0x51], 0
je 0x4ad949
mov eax, 0x51e9d8
jmp 0x4ad956
mov eax, dword [esp + 0x18]
lea ecx, [esi + esi*4]
mov eax, dword [eax + 0x68]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov edx, ebx
mov ebx, dword [esp + 0x20]
mov edi, dword [edi + 0x14]
mov dword [esp + 0x30], edi
test edi, edi
jne 0x4ad5d0
test ebx, ebx
jne 0x4ada3a
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
test byte [ebp + 8], 1
je 0x4ad9dc
test dword [ecx + 4], 0x800
jne 0x4ad9dc
mov esi, dword [ecx + 0xc]
mov edx, ecx
mov dword [ecx + 0xc], 0
lea ecx, [esp + 0x60]
mov byte [esp + 0x74], 1
mov dword [esp + 0x64], fcn.004ae250
mov dword [esp + 0x68], 0x4ae490
mov dword [esp + 0x78], 0
call fcn.004b3e10
cmp byte [esp + 0x74], 0
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0xc], esi
je 0x4ad9d5
mov eax, dword [ecx + 0x14]
cmp dword [eax], 2
jg 0x4ad9dc
mov ebx, 5
jmp 0x4ada3e
mov edi, dword [ebx + 0x84]
xor esi, esi
test byte [ebp + 8], 4
mov eax, 2
mov dword [esp + 0x20], eax
je 0x4ad9fb
mov dword [ebx + 0x84], esi
jmp 0x4ada0b
mov eax, dword [esp + 0x44]
test eax, eax
je 0x4ada0b
inc dword [ebx + 0x2c]
mov esi, dword [ebx + 0x2c]
mov dword [eax], esi
push dword [esp + 0x28]
mov edx, ecx
mov ecx, ebx
call fcn.004aca00
add esp, 4
test esi, esi
je 0x4ada30
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x18]
push esi
call fcn.004adb10
add esp, 4
mov dword [ebx + 0x84], edi
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x50]
test edx, edx
je 0x4ada88
cmp ebx, 3
je 0x4ada88
cmp ebx, 4
je 0x4ada88
mov ecx, dword [ecx + 0xc]
mov al, byte [ecx]
cmp al, 0xa8
jne 0x4ada5c
mov al, byte [ecx + 0x26]
cmp al, 0xa9
jne 0x4ada67
mov eax, dword [ecx + 0x14]
mov eax, dword [eax]
jmp 0x4ada79
cmp al, 0x83
jne 0x4ada74
mov eax, dword [ecx + 0x14]
mov eax, dword [eax]
mov eax, dword [eax]
jmp 0x4ada79
mov eax, 1
xor ecx, ecx
test eax, eax
jle 0x4ada88
nop
mov dword [edx + ecx*4], ecx
inc ecx
cmp ecx, eax
jl 0x4ada80
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x28]
pop edi
pop esi
mov dword [ecx], eax
mov eax, ebx
mov ecx, dword [esp + 0x74]
pop ebx
xor ecx, esp
call fcn.00403d8c
mov esp, ebp
pop ebp
ret