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

Disassembly:
sub esp, 0x54
push ebx
mov ebx, dword [esp + 0x5c]
push ebp
push esi
push edi
mov eax, dword [ebx + 0x28]
mov dword [esp + 0x14], eax
inc eax
mov dword [ebx + 0x28], eax
mov eax, dword [ebx + 8]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x10], eax
test eax, eax
jne 0x100445d7
cmp dword [ebx + 0x74], eax
jne 0x100445ca
mov eax, dword [ebx]
test byte [eax + 0x4c], 8
jne 0x100445ca
mov byte [ebx + 0x17], 1
push ebx
call fcn.1005cd00
add esp, 4
mov dword [esp + 0x10], eax
mov ebp, dword [esp + 0x74]
test ebp, ebp
je 0x10044622
mov eax, dword [esp + 0x6c]
test dword [eax + 4], 0x800
je 0x10044622
mov eax, dword [eax + 0x14]
xor edx, edx
mov esi, dword [eax]
mov edi, dword [esi]
test edi, edi
jle 0x10044616
add esi, 4
lea esp, [esp]
push dword [esi]
call fcn.100402f0
add esp, 4
test eax, eax
jne 0x10044616
inc edx
add esi, 0x18
cmp edx, edi
jl 0x10044600
sub edx, edi
neg edx
sbb edx, edx
and edx, ebp
mov dword [esp + 0x74], edx
cmp dword [ebx + 0x24], 0
mov ecx, dword [esp + 0x6c]
jne 0x10044c75
mov eax, dword [ecx + 4]
test eax, 0x800
je 0x10044c75
test al, 0x20
jne 0x10044c75
mov eax, dword [ecx + 0x14]
cmp dword [eax + 0x34], 0
jne 0x10044c75
test byte [eax + 8], 9
jne 0x10044c75
cmp dword [eax + 0x3c], 0
jne 0x10044c75
cmp dword [eax + 0x24], 0
jne 0x10044c75
mov ecx, dword [eax + 0x20]
cmp dword [ecx], 1
jne 0x10044c71
cmp dword [ecx + 0x1c], 0
jne 0x10044c71
mov ebx, dword [ecx + 0x18]
mov dword [esp + 0x3c], ebx
cmp dword [ebx + 0x38], 0
jne 0x10044c6d
mov eax, dword [eax]
xor edx, edx
mov dword [esp + 0x30], eax
mov edi, dword [eax]
mov dword [esp + 0x24], edi
test edi, edi
jle 0x100446c3
lea ecx, [eax + 4]
lea ecx, [ecx]
mov eax, dword [ecx]
cmp byte [eax], 0xa2
jne 0x10044c6d
inc edx
add ecx, 0x18
cmp edx, edi
jl 0x100446b0
mov edx, dword [ebx + 0x48]
mov ecx, 0xfff0bdc0
mov ebp, dword [esp + 0x68]
test edx, edx
je 0x100446ea
mov eax, dword [ebp]
xor ecx, ecx
mov eax, dword [eax + 0x10]
add eax, 0xc
cmp dword [eax], edx
je 0x100446ea
lea eax, [eax + 0x10]
inc ecx
cmp dword [eax], edx
jne 0x100446e2
mov edx, dword [ebp + 0x74]
movzx eax, cx
movsx ecx, ax
mov dword [esp + 0x2c], ecx
test edx, edx
jne 0x100446fd
mov edx, ebp
mov esi, dword [edx + 0x54]
mov eax, 1
shl eax, cl
test esi, eax
jne 0x10044723
bts esi, ecx
mov dword [edx + 0x54], esi
cmp ecx, 1
jne 0x10044723
push edx
call fcn.1004dbb0
mov ecx, dword [esp + 0x30]
add esp, 4
push dword [ebx]
push 0
push dword [ebx + 0x1c]
push ecx
push ebp
call fcn.100595c0
add esp, 0x14
cmp edi, 1
jne 0x100447f1
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 4]
cmp word [eax + 0x20], 0
jge 0x100447f1
mov edi, dword [esp + 0x10]
push 0x11
push edi
call fcn.1005c3e0
push 0x6c
push ebx
push dword [esp + 0x3c]
mov esi, eax
push dword [esp + 0x28]
push ebp
call fcn.1004d870
push dword [ebx]
mov dword [esp + 0x3c], 1
push str.USING_ROWID_SEARCH_ON_TABLE__s_FOR_IN_OPERATOR
push 0
push ebp
call fcn.100646c0
mov edx, dword [edi + 0x6c]
add esp, 0x2c
test esi, esi
jns 0x10044792
lea esi, [edx - 1]
mov eax, dword [edi]
cmp byte [eax + 0x51], 0
je 0x100447a1
mov eax, 0x10095994
jmp 0x100447aa
mov eax, dword [edi + 0x68]
lea ecx, [esi + esi*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov ebp, dword [esp + 0x1c]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x78]
test edx, edx
je 0x10044d58
cmp ebp, 3
je 0x10044d58
cmp ebp, 4
je 0x10044d58
mov ecx, dword [ecx + 0xc]
mov al, byte [ecx]
cmp al, 0xa8
jne 0x100447df
mov al, byte [ecx + 0x26]
cmp al, 0xa9
jne 0x10044d34
mov eax, dword [ecx + 0x14]
mov eax, dword [eax]
jmp 0x10044d46
mov eax, 1
xor ebp, ebp
mov dword [esp + 0x28], eax
test edi, edi
jle 0x100448d8
xor edi, edi
test eax, eax
je 0x10044c6d
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax + 0xc]
mov bl, byte [ecx]
mov al, bl
cmp al, 0xa8
jne 0x10044820
mov al, byte [ecx + 0x26]
cmp al, 0xa9
jne 0x1004482d
mov eax, dword [ecx + 0x14]
mov edx, dword [eax]
mov esi, edx
jmp 0x10044838
cmp al, 0x83
jne 0x10044852
mov eax, dword [ecx + 0x14]
mov edx, dword [eax]
mov esi, dword [edx]
cmp esi, 1
jle 0x10044852
cmp bl, 0x83
je 0x1004484e
cmp byte [ecx + 0x26], 0x83
je 0x1004484e
mov ecx, dword [eax + edi + 4]
jmp 0x10044852
mov ecx, dword [edx + edi + 4]
mov eax, dword [esp + 0x30]
mov eax, dword [eax + edi + 4]
movsx edx, word [eax + 0x20]
test edx, edx
js 0x10044871
mov eax, dword [esp + 0x3c]
add edx, edx
mov eax, dword [eax + 4]
mov bl, byte [eax + edx*8 + 0xd]
jmp 0x10044873
mov bl, 0x44
push ecx
call fcn.1003fd90
add esp, 4
test al, al
je 0x10044895
test bl, bl
je 0x1004489d
cmp al, 0x43
jge 0x10044891
cmp bl, 0x43
jge 0x10044891
mov al, 0x41
jmp 0x1004489f
mov al, 0x43
jmp 0x1004489f
test bl, bl
jne 0x1004489d
mov al, 0x41
jmp 0x1004489f
add al, bl
movsx eax, al
sub eax, 0x41
je 0x100448ba
sub eax, 1
je 0x100448ba
xor eax, eax
cmp bl, 0x43
setge al
mov dword [esp + 0x28], eax
jmp 0x100448be
mov eax, dword [esp + 0x28]
inc ebp
add edi, 0x18
cmp ebp, dword [esp + 0x24]
jl 0x10044806
test eax, eax
je 0x10044c6d
mov ebx, dword [esp + 0x3c]
mov edi, dword [ebx + 8]
mov dword [esp + 0x18], edi
test edi, edi
je 0x10044c6d
mov ebp, dword [esp + 0x24]
jmp 0x100448f0
cmp dword [esp + 0x1c], 0
jne 0x100447ad
movzx eax, word [edi + 0x34]
mov ecx, eax
cmp ecx, ebp
jl 0x10044c4c
cmp dword [edi + 0x24], 0
jne 0x10044c4c
cmp eax, 0x3f
jae 0x10044c4c
test byte [esp + 0x70], 4
je 0x1004493d
movzx eax, word [edi + 0x32]
cmp eax, ebp
jg 0x10044c4c
cmp ecx, ebp
jle 0x1004493d
cmp byte [edi + 0x36], 0
je 0x10044c4c
xor esi, esi
mov dword [esp + 0x28], 0
mov dword [esp + 0x3c], esi
mov dword [esp + 0x34], esi
test ebp, ebp
jle 0x10044abe
xor ebp, ebp
mov dword [esp + 0x38], ebp
jmp 0x10044964
mov ebp, dword [esp + 0x38]
mov eax, dword [esp + 0x6c]
mov eax, dword [eax + 0xc]
mov bl, byte [eax]
mov cl, bl
cmp cl, 0xa8
jne 0x10044977
mov cl, byte [eax + 0x26]
cmp cl, 0xa9
jne 0x10044985
mov ecx, dword [eax + 0x14]
mov edx, dword [ecx]
mov esi, edx
jmp 0x10044991
cmp cl, 0x83
jne 0x100449ab
mov ecx, dword [eax + 0x14]
mov edx, dword [ecx]
mov esi, dword [edx]
cmp esi, 1
jle 0x100449ab
cmp bl, 0x83
je 0x100449a7
cmp byte [eax + 0x26], 0x83
je 0x100449a7
mov eax, dword [ecx + ebp + 4]
jmp 0x100449ab
mov eax, dword [edx + ebp + 4]
test dword [eax + 4], 0x100
mov ecx, dword [esp + 0x30]
mov esi, dword [ecx + ebp + 4]
je 0x100449c3
push eax
push dword [esp + 0x6c]
jmp 0x100449ef
test esi, esi
je 0x100449d7
test dword [esi + 4], 0x100
je 0x100449d7
push esi
push dword [esp + 0x6c]
jmp 0x100449ef
mov ebx, dword [esp + 0x68]
push eax
push ebx
call fcn.100425f0
add esp, 8
mov dword [esp + 0x20], eax
test eax, eax
jne 0x100449fb
push esi
push ebx
call fcn.100425f0
add esp, 8
mov dword [esp + 0x20], eax
movzx ecx, word [esi + 0x20]
xor ebx, ebx
mov ebp, dword [edi + 4]
mov dword [esp + 0x40], ecx
cmp word [ebp], cx
jne 0x10044a4f
test eax, eax
je 0x10044a5d
mov edx, dword [eax]
mov eax, dword [edi + 0x20]
mov edi, dword [eax + ebx*4]
sub edi, edx
lea esp, [esp]
movzx eax, byte [edx]
movzx esi, byte [edx + edi]
cmp eax, esi
jne 0x10044a32
test eax, eax
je 0x10044a5d
inc edx
jmp 0x10044a20
movzx ecx, byte [eax + 0x10087c80]
movzx eax, byte [esi + 0x10087c80]
sub ecx, eax
jne 0x10044a47
inc edx
jmp 0x10044a20
mov ecx, dword [esp + 0x40]
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
inc ebx
add ebp, 2
cmp ebx, dword [esp + 0x24]
jl 0x10044a08
mov ebp, dword [esp + 0x24]
cmp ebx, ebp
je 0x10044ab6
mov eax, 1
xor edx, edx
mov ecx, ebx
call fcn.10084690
mov edi, dword [esp + 0x3c]
mov esi, eax
mov ecx, esi
mov eax, edx
and ecx, dword [esp + 0x28]
and eax, edi
or ecx, eax
jne 0x10044ab6
or dword [esp + 0x28], esi
or edi, edx
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x34]
mov dword [esp + 0x3c], edi
test eax, eax
je 0x10044aa0
mov dword [eax + edx*4], ebx
add dword [esp + 0x38], 0x18
inc edx
mov edi, dword [esp + 0x18]
mov dword [esp + 0x34], edx
cmp edx, ebp
jl 0x10044960
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x3c]
mov eax, 1
xor edx, edx
mov ecx, ebp
call fcn.10084690
add eax, 0xffffffff
adc edx, 0xffffffff
cmp dword [esp + 0x28], eax
jne 0x10044c4c
cmp esi, edx
jne 0x10044c4c
mov edx, dword [esp + 0x10]
mov esi, dword [edx + 0x6c]
cmp dword [edx + 0x70], esi
jg 0x10044b05
push 0
push 0
push 0
push 0x11
push edx
call fcn.10025690
add esp, 0x14
mov esi, eax
jmp 0x10044b38
lea eax, [esi + 1]
mov dword [edx + 0x6c], eax
lea ecx, [esi + esi*4]
mov eax, dword [edx + 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]
mov ebx, dword [esp + 0x6c]
push str.USING_INDEX__s_FOR_IN_OPERATOR
push 0
push ebx
call fcn.100646c0
mov edx, dword [edi + 0x2c]
add esp, 0x10
mov edi, dword [esp + 0x10]
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x10044b73
push dword [esp + 0x2c]
push edx
push dword [esp + 0x1c]
push 0x6c
push edi
call fcn.10025690
add esp, 0x14
jmp 0x10044ba2
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x14]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x2c]
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
push dword [esp + 0x18]
mov edi, dword [ebx + 8]
push ebx
call fcn.1004bd30
mov edx, eax
add esp, 8
test edx, edx
je 0x10044be0
mov eax, dword [edi]
cmp byte [eax + 0x51], 0
je 0x10044bce
push edx
push 0xfffffffffffffff7
push eax
call fcn.10022f30
add esp, 0xc
jmp 0x10044be0
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 + 0x18]
mov ecx, dword [esp + 0x74]
mov eax, dword [edi + 0x1c]
movzx eax, byte [eax]
add eax, 3
mov dword [esp + 0x1c], eax
test ecx, ecx
je 0x10044c19
mov eax, dword [ebx + 0x2c]
inc eax
mov dword [ebx + 0x2c], eax
mov dword [ecx], eax
cmp ebp, 1
jne 0x10044c19
push eax
push dword [esp + 0x18]
mov eax, dword [esp + 0x18]
push eax
call fcn.10058120
add esp, 0xc
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x6c]
test esi, esi
jns 0x10044c27
lea esi, [edx - 1]
mov eax, dword [eax]
cmp byte [eax + 0x51], 0
je 0x10044c39
mov eax, 0x10095994
mov dword [eax + 8], edx
jmp 0x10044c50
mov eax, dword [esp + 0x10]
lea ecx, [esi + esi*4]
mov eax, dword [eax + 0x68]
mov dword [eax + ecx*4 + 8], edx
lea eax, [eax + ecx*4]
jmp 0x10044c50
mov ebx, dword [esp + 0x68]
mov edi, dword [edi + 0x14]
mov dword [esp + 0x18], edi
test edi, edi
jne 0x100448f0
mov ebp, dword [esp + 0x1c]
test ebp, ebp
jne 0x100447b1
jmp 0x10044c71
mov ebx, dword [esp + 0x68]
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x70]
test al, 1
je 0x10044cdf
test dword [ecx + 4], 0x800
jne 0x10044cdf
mov esi, dword [ecx + 0xc]
lea eax, [esp + 0x48]
push ecx
push eax
mov dword [ecx + 0xc], 0
mov byte [esp + 0x64], 1
mov dword [esp + 0x54], fcn.10020740
mov dword [esp + 0x58], 0x10058110
mov dword [esp + 0x68], 0
call fcn.10078760
mov ecx, dword [esp + 0x74]
add esp, 8
cmp byte [esp + 0x5c], 0
mov dword [ecx + 0xc], esi
je 0x10044cd1
mov eax, dword [ecx + 0x14]
cmp dword [eax], 2
jg 0x10044cdb
mov ebp, 5
jmp 0x100447b5
mov eax, dword [esp + 0x70]
mov edi, dword [ebx + 0x84]
xor esi, esi
lea ebp, [esi + 2]
test al, 4
je 0x10044cf6
mov dword [ebx + 0x84], esi
jmp 0x10044d06
mov eax, dword [esp + 0x74]
test eax, eax
je 0x10044d06
inc dword [ebx + 0x2c]
mov esi, dword [ebx + 0x2c]
mov dword [eax], esi
push dword [esp + 0x14]
push ecx
push ebx
call fcn.1003b670
add esp, 0xc
test esi, esi
je 0x10044d29
push esi
push dword [esp + 0x18]
push dword [esp + 0x18]
call fcn.10058120
add esp, 0xc
mov dword [ebx + 0x84], edi
jmp 0x100447b1
cmp al, 0x83
jne 0x10044d41
mov eax, dword [ecx + 0x14]
mov eax, dword [eax]
mov eax, dword [eax]
jmp 0x10044d46
mov eax, 1
xor ecx, ecx
test eax, eax
jle 0x10044d58
lea esp, [esp]
mov dword [edx + ecx*4], ecx
inc ecx
cmp ecx, eax
jl 0x10044d50
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x14]
pop edi
pop esi
mov dword [ecx], eax
mov eax, ebp
pop ebp
pop ebx
add esp, 0x54
ret