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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x7c
mov eax, dword [0x577018]
xor eax, esp
mov dword [esp + 0x78], eax
mov eax, dword [ebp + 0x10]
push ebx
mov ebx, ecx
mov dword [esp + 0x48], eax
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov dword [esp + 0x5c], eax
push esi
mov eax, dword [ebx + 0x28]
mov esi, dword [ebp + 0xc]
mov dword [esp + 0x20], eax
inc eax
mov dword [ebx + 0x28], eax
mov eax, dword [ebx + 8]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x48], esi
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], eax
push edi
test eax, eax
jne 0x45f762
cmp dword [ebx + 0x74], ecx
jne 0x45f753
mov eax, dword [ebx]
test byte [eax + 0x4c], 8
jne 0x45f753
mov byte [ebx + 0x17], 1
mov ecx, ebx
call fcn.00446150
mov edx, dword [esp + 0x14]
mov dword [esp + 0x20], eax
test esi, esi
je 0x45f7a2
test dword [edx + 4], 0x800
je 0x45f7a2
mov eax, dword [edx + 0x14]
xor edx, edx
mov esi, dword [eax]
mov edi, dword [esi]
test edi, edi
jle 0x45f793
add esi, 4
nop
mov ecx, dword [esi]
call fcn.0045f3f0
test eax, eax
jne 0x45f793
inc edx
add esi, 0x18
cmp edx, edi
jl 0x45f780
mov esi, dword [esp + 0x4c]
xor eax, eax
cmp edx, edi
cmove esi, eax
mov dword [esp + 0x4c], esi
cmp dword [ebx + 0x24], 0
mov edx, dword [esp + 0x14]
jne 0x45fe70
mov eax, dword [edx + 4]
test eax, 0x800
je 0x45fe70
test al, 0x20
jne 0x45fe70
mov eax, dword [edx + 0x14]
cmp dword [eax + 0x34], 0
jne 0x45fe70
test byte [eax + 8], 9
jne 0x45fe70
cmp dword [eax + 0x3c], 0
jne 0x45fe70
cmp dword [eax + 0x24], 0
jne 0x45fe70
mov ecx, dword [eax + 0x20]
cmp dword [ecx], 1
jne 0x45fe70
cmp dword [ecx + 0x1c], 0
jne 0x45fe70
mov ebx, dword [ecx + 0x18]
mov dword [esp + 0x28], ebx
cmp dword [ebx + 0x38], 0
jne 0x45fe6c
mov edi, dword [eax]
xor edx, edx
mov esi, dword [edi]
mov dword [esp + 0x38], esi
test esi, esi
jle 0x45f843
lea ecx, [edi + 4]
nop dword [eax]
mov eax, dword [ecx]
cmp byte [eax], 0x9e
jne 0x45fe68
inc edx
add ecx, 0x18
cmp edx, esi
jl 0x45f830
mov edx, dword [ebx + 0x48]
mov ecx, 0xfff0bdc0
test edx, edx
je 0x45f869
mov eax, dword [esp + 0x10]
xor ecx, ecx
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
add eax, 0xc
cmp dword [eax], edx
je 0x45f869
lea eax, [eax + 0x10]
inc ecx
cmp dword [eax], edx
jne 0x45f861
movsx eax, cx
mov ecx, dword [esp + 0x10]
mov edx, ecx
mov dword [esp + 0x48], eax
mov eax, dword [ecx + 0x74]
test eax, eax
mov ecx, dword [esp + 0x48]
cmovne edx, eax
mov eax, 1
shl eax, cl
mov esi, dword [edx + 0x54]
test esi, eax
jne 0x45f8a6
bts esi, ecx
mov dword [edx + 0x54], esi
cmp ecx, 1
jne 0x45f8a6
mov ecx, edx
call fcn.00471eb0
mov ecx, dword [esp + 0x48]
push dword [ebx]
mov edx, ecx
mov ecx, dword [esp + 0x14]
push 0
push dword [ebx + 0x1c]
call fcn.0046a6e0
mov ecx, dword [esp + 0x44]
add esp, 0xc
cmp ecx, 1
jne 0x45f94f
mov eax, dword [edi + 4]
lea edx, [edi + 4]
mov dword [esp + 0x54], edx
cmp word [eax + 0x20], 0
jge 0x45f956
lea edx, [ecx + 0x10]
mov ecx, dword [esp + 0x20]
call fcn.004464a0
mov edi, dword [esp + 0x10]
mov esi, eax
mov edx, dword [esp + 0x24]
mov ecx, edi
push 0x6d
push ebx
push dword [esp + 0x50]
call fcn.0047bf50
add esp, 0xc
mov dword [esp + 0x18], 1
push dword [ebx]
push str.USING_ROWID_SEARCH_ON_TABLE__s_FOR_IN_OPERATOR
push 0
push edi
call fcn.004468a0
mov ebx, dword [esp + 0x30]
add esp, 0x10
mov edx, dword [ebx + 0x6c]
test esi, esi
jns 0x45f928
lea esi, [edx - 1]
mov eax, dword [ebx]
cmp byte [eax + 0x51], 0
je 0x45f93d
mov eax, 0x57ad14
mov dword [eax + 8], edx
jmp 0x45ff61
mov eax, dword [ebx + 0x68]
lea ecx, [esi + esi*4]
mov dword [eax + ecx*4 + 8], edx
lea eax, [eax + ecx*4]
jmp 0x45ff61
lea eax, [edi + 4]
mov dword [esp + 0x54], eax
mov dword [esp + 0x40], 0
mov eax, 1
mov dword [esp + 0x2c], eax
test ecx, ecx
jle 0x45fa59
xor ebx, ebx
mov dword [esp + 0x3c], ebx
test eax, eax
je 0x45fe68
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0xc]
mov al, byte [ecx]
mov byte [esp + 0x33], al
cmp al, 0xa4
jne 0x45f991
mov al, byte [ecx + 0x26]
cmp al, 0xa5
jne 0x45f99c
lea esi, [ecx + 0x14]
mov eax, esi
jmp 0x45f9a6
cmp al, 0x7f
jne 0x45f9c8
mov esi, dword [ecx + 0x14]
lea eax, [ecx + 0x14]
mov edi, dword [eax]
mov eax, dword [esi]
cmp dword [eax], 1
jle 0x45f9c8
cmp byte [esp + 0x33], 0x7f
je 0x45f9c2
cmp byte [ecx + 0x26], 0x7f
je 0x45f9c2
mov ecx, dword [edi + ebx + 4]
jmp 0x45f9c8
mov eax, dword [edi]
mov ecx, dword [eax + ebx + 4]
mov eax, dword [esp + 0x54]
mov eax, dword [ebx + eax]
movsx edx, word [eax + 0x20]
test edx, edx
js 0x45f9e6
mov eax, dword [esp + 0x28]
add edx, edx
mov eax, dword [eax + 4]
mov bl, byte [eax + edx*8 + 0xd]
jmp 0x45f9e8
mov bl, 0x44
call fcn.0045c630
test al, al
je 0x45fa06
test bl, bl
je 0x45fa0e
cmp al, 0x43
jge 0x45fa02
cmp bl, 0x43
jge 0x45fa02
mov al, 0x41
jmp 0x45fa10
mov al, 0x43
jmp 0x45fa10
test bl, bl
jne 0x45fa0e
mov al, 0x41
jmp 0x45fa10
add al, bl
movsx eax, al
sub eax, 0x41
je 0x45fa2b
sub eax, 1
je 0x45fa2b
xor eax, eax
cmp bl, 0x43
setge al
mov dword [esp + 0x2c], eax
jmp 0x45fa2f
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x40]
mov ebx, dword [esp + 0x3c]
inc ecx
add ebx, 0x18
mov dword [esp + 0x40], ecx
mov dword [esp + 0x3c], ebx
cmp ecx, dword [esp + 0x38]
jl 0x45f975
test eax, eax
je 0x45fe68
mov ebx, dword [esp + 0x28]
mov esi, dword [ebx + 8]
mov dword [esp + 0x1c], esi
test esi, esi
je 0x45fe68
xor ebx, ebx
nop word [eax + eax]
test ebx, ebx
jne 0x45ff65
movzx eax, word [esi + 0x34]
mov ebx, dword [esp + 0x38]
mov ecx, eax
cmp ecx, ebx
jl 0x45fe4d
cmp dword [esi + 0x24], 0
jne 0x45fe4d
cmp eax, 0x3f
jae 0x45fe4d
test byte [ebp + 8], 4
je 0x45fabd
movzx eax, word [esi + 0x32]
cmp eax, ebx
jg 0x45fe4d
cmp ecx, ebx
jle 0x45fabd
cmp byte [esi + 0x36], 0
je 0x45fe4d
mov dword [esp + 0x40], 0
xorps xmm0, xmm0
movlpd qword [esp + 0x58], xmm0
test ebx, ebx
jle 0x45fce7
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x44], 0
mov dword [esp + 0x28], eax
nop
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0xc]
mov bl, byte [edx]
mov al, bl
cmp al, 0xa4
jne 0x45fb02
mov al, byte [edx + 0x26]
cmp al, 0xa5
jne 0x45fb0d
lea esi, [edx + 0x14]
mov eax, esi
jmp 0x45fb17
cmp al, 0x7f
jne 0x45fb41
mov esi, dword [edx + 0x14]
lea eax, [edx + 0x14]
mov edi, dword [eax]
mov eax, dword [esi]
cmp dword [eax], 1
jle 0x45fb41
cmp bl, 0x7f
je 0x45fb35
cmp byte [edx + 0x26], 0x7f
je 0x45fb35
mov esi, dword [esp + 0x44]
mov edx, dword [edi + esi + 4]
jmp 0x45fb45
mov eax, dword [edi]
mov esi, dword [esp + 0x44]
mov edx, dword [eax + esi + 4]
jmp 0x45fb45
mov esi, dword [esp + 0x44]
test dword [edx + 4], 0x100
mov eax, dword [esp + 0x54]
mov esi, dword [esi + eax]
je 0x45fb66
mov ecx, dword [esp + 0x10]
call fcn.0045c7c0
mov ecx, eax
mov dword [esp + 0x2c], ecx
jmp 0x45fbaa
test esi, esi
je 0x45fb86
test dword [esi + 4], 0x100
je 0x45fb86
mov ecx, dword [esp + 0x10]
mov edx, esi
call fcn.0045c7c0
mov ecx, eax
mov dword [esp + 0x2c], ecx
jmp 0x45fbaa
mov ebx, dword [esp + 0x10]
mov ecx, ebx
call fcn.0045c7c0
mov ecx, eax
mov dword [esp + 0x2c], ecx
test ecx, ecx
jne 0x45fbaa
mov edx, esi
mov ecx, ebx
call fcn.0045c7c0
mov ecx, eax
mov dword [esp + 0x2c], eax
mov ebx, dword [esp + 0x1c]
xor edi, edi
movzx edx, word [esi + 0x20]
mov dword [esp + 0x60], edx
mov eax, dword [ebx + 4]
mov dword [esp + 0x3c], eax
nop
cmp word [eax], dx
jne 0x45fc1d
test ecx, ecx
je 0x45fc2f
mov eax, dword [ecx]
mov ecx, dword [ebx + 0x20]
mov bl, byte [eax]
mov esi, dword [ecx + edi*4]
movzx ecx, byte [esi]
movzx edx, byte [ecx + 0x554bc0]
movzx ecx, bl
movzx ecx, byte [ecx + 0x554bc0]
sub ecx, edx
jne 0x45fc11
sub esi, eax
nop dword [eax]
test bl, bl
je 0x45fc2f
movzx ecx, byte [esi + eax + 1]
inc eax
movzx edx, byte [ecx + 0x554bc0]
mov bl, byte [eax]
movzx ecx, bl
movzx ecx, byte [ecx + 0x554bc0]
sub ecx, edx
je 0x45fbf0
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x2c]
inc edi
add eax, 2
mov dword [esp + 0x3c], eax
cmp edi, dword [esp + 0x38]
jl 0x45fbc0
mov ebx, dword [esp + 0x38]
cmp edi, ebx
je 0x45fc8b
xor edx, edx
mov eax, edi
bts edx, eax
xor esi, esi
cmp eax, 0x20
cmovae esi, edx
xor edx, esi
cmp eax, 0x40
mov ecx, edx
cmovae esi, edx
and ecx, dword [esp + 0x28]
mov eax, esi
and eax, dword [esp + 0x34]
or ecx, eax
jne 0x45fc8b
or dword [esp + 0x28], edx
or dword [esp + 0x34], esi
mov ecx, dword [esp + 0x50]
test ecx, ecx
je 0x45fc75
mov eax, dword [esp + 0x40]
mov dword [ecx + eax*4], edi
mov edi, dword [esp + 0x40]
add dword [esp + 0x44], 0x18
inc edi
mov dword [esp + 0x40], edi
cmp edi, ebx
jl 0x45faf0
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x34]
xor ecx, ecx
xor edx, edx
mov eax, ebx
bts ecx, eax
cmp eax, 0x20
cmovae edx, ecx
xor ecx, edx
cmp eax, 0x40
cmovae edx, ecx
add ecx, 0xffffffff
adc edx, 0xffffffff
cmp dword [esp + 0x28], ecx
jne 0x45fe4d
cmp edi, edx
jne 0x45fe4d
mov ebx, dword [esp + 0x20]
mov edi, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], edi
jg 0x45fcf5
push 0
push 0
push 0
mov edx, 0x11
mov ecx, ebx
call fcn.004463f0
add esp, 0xc
mov edi, eax
jmp 0x45fd28
mov eax, dword [esp + 0x58]
mov edi, dword [esp + 0x5c]
mov dword [esp + 0x28], eax
jmp 0x45fc93
lea eax, [edi + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [edi + edi*4]
mov eax, dword [ebx + 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 [esi]
push str.USING_INDEX__s_FOR_IN_OPERATOR
push 0
push dword [esp + 0x1c]
call fcn.004468a0
mov ecx, dword [ebx + 0x6c]
add esp, 0x10
mov edx, dword [esi + 0x2c]
cmp dword [ebx + 0x70], ecx
jg 0x45fd62
push dword [esp + 0x48]
mov ecx, ebx
push edx
push dword [esp + 0x2c]
mov edx, 0x6d
call fcn.004463f0
add esp, 0xc
jmp 0x45fd91
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov ebx, dword [esp + 0x24]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x48]
mov dword [eax + ecx*4], 0x6d
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x10]
mov edx, esi
mov ecx, eax
mov ebx, dword [eax + 8]
call fcn.004728c0
mov esi, eax
test esi, esi
je 0x45fddb
mov eax, dword [ebx]
cmp byte [eax + 0x51], 0
je 0x45fdc9
cmp dword [eax + 0x1e0], 0
jne 0x45fddb
add dword [esi], 0xffffffff
jne 0x45fddb
mov ecx, dword [esi + 0xc]
mov edx, esi
call fcn.00423590
jmp 0x45fddb
mov eax, dword [ebx + 0x6c]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 0x68]
mov byte [eax + ecx*4 - 0x13], 0xf7
mov dword [eax + ecx*4 - 4], esi
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x4c]
mov eax, dword [esi + 0x1c]
movzx ebx, byte [eax]
add ebx, 3
mov dword [esp + 0x18], ebx
test edx, edx
je 0x45fe19
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x2c]
inc eax
cmp dword [esp + 0x38], 1
mov dword [ecx + 0x2c], eax
mov dword [edx], eax
jne 0x45fe19
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
push eax
call fcn.0045f5a0
add esp, 4
mov eax, dword [esp + 0x20]
mov edx, dword [eax + 0x6c]
mov eax, dword [eax]
cmp byte [eax + 0x51], 0
je 0x45fe32
mov eax, 0x57ad14
mov dword [eax + 8], edx
jmp 0x45fe51
test edi, edi
lea eax, [edx - 1]
cmovns eax, edi
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x68]
mov dword [eax + ecx*4 + 8], edx
lea eax, [eax + ecx*4]
jmp 0x45fe51
mov ebx, dword [esp + 0x18]
mov esi, dword [esi + 0x14]
mov dword [esp + 0x1c], esi
test esi, esi
jne 0x45fa70
test ebx, ebx
jne 0x45ff65
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
mov eax, dword [ebp + 8]
test al, 1
je 0x45fed6
test dword [edx + 4], 0x800
jne 0x45fed6
mov esi, dword [edx + 0xc]
lea ecx, [esp + 0x68]
mov dword [edx + 0xc], 0
mov byte [esp + 0x7c], 1
mov dword [esp + 0x6c], fcn.0045f040
mov dword [esp + 0x70], 0x45efe0
mov dword [esp + 0x80], 0
call fcn.00459a40
cmp byte [esp + 0x7c], 0
mov edx, dword [esp + 0x14]
mov dword [edx + 0xc], esi
je 0x45fec9
mov eax, dword [edx + 0x14]
cmp dword [eax], 2
jg 0x45fed3
mov ebx, 5
jmp 0x45ff69
mov eax, dword [ebp + 8]
mov edi, dword [ebx + 0x80]
xor esi, esi
mov ecx, 2
mov dword [esp + 0x18], ecx
test al, 4
je 0x45ff26
mov dword [ebx + 0x80], esi
mov eax, dword [edx + 0xc]
cmp word [eax + 0x20], si
jge 0x45ff0d
test dword [edx + 4], 0x800
mov eax, 1
cmove ecx, eax
mov dword [esp + 0x18], ecx
xor eax, eax
cmp ecx, 1
mov ecx, ebx
sete al
push eax
push dword [esp + 0x28]
call fcn.004601d0
add esp, 8
jmp 0x45ff5b
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x45ff36
inc dword [ebx + 0x2c]
mov esi, dword [ebx + 0x2c]
mov dword [eax], esi
push 0
push dword [esp + 0x28]
mov ecx, ebx
call fcn.004601d0
add esp, 8
test esi, esi
je 0x45ff5b
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
push esi
call fcn.0045f5a0
add esp, 4
mov dword [ebx + 0x80], edi
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x50]
test edi, edi
je 0x460050
cmp ebx, 3
je 0x460050
cmp ebx, 4
je 0x460050
mov ecx, dword [edx + 0xc]
mov al, byte [ecx]
cmp al, 0xa4
jne 0x45ff93
mov al, byte [ecx + 0x26]
cmp al, 0xa5
jne 0x45ff9c
lea eax, [ecx + 0x14]
jmp 0x45ffa7
cmp al, 0x7f
jne 0x460041
mov eax, dword [ecx + 0x14]
mov eax, dword [eax]
mov esi, dword [eax]
test esi, esi
jle 0x460050
xor ecx, ecx
cmp esi, 0x10
jb 0x460048
movaps xmm1, xmmword [0x5685a0]
mov eax, esi
and eax, reloc.WS2_32.dll_ntohs
jns 0x45ffd3
dec eax
or eax, 0xfffffff0
inc eax
mov edx, dword [esp + 0x50]
mov edi, esi
sub edi, eax
add edx, 0x20
nop
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm0, xmm0, 0
lea edx, [edx + 0x40]
paddd xmm0, xmm1
movups xmmword [edx - 0x60], xmm0
movd xmm0, eax
lea eax, [ecx + 8]
pshufd xmm0, xmm0, 0
paddd xmm0, xmm1
movups xmmword [edx - 0x50], xmm0
movd xmm0, eax
lea eax, [ecx + 0xc]
pshufd xmm0, xmm0, 0
add ecx, 0x10
paddd xmm0, xmm1
movups xmmword [edx - 0x40], xmm0
movd xmm0, eax
pshufd xmm0, xmm0, 0
paddd xmm0, xmm1
movups xmmword [edx - 0x30], xmm0
cmp ecx, edi
jl 0x45ffe0
cmp ecx, esi
jge 0x460050
mov edi, dword [esp + 0x50]
jmp 0x460048
mov esi, 1
xor ecx, ecx
mov dword [edi + ecx*4], ecx
inc ecx
cmp ecx, esi
jl 0x460048
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x24]
pop edi
pop esi
mov dword [ecx], eax
mov eax, ebx
mov ecx, dword [esp + 0x7c]
pop ebx
xor ecx, esp
call fcn.00517154
mov esp, ebp
pop ebp
ret