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

Disassembly:
sub esp, 0x48
push ebp
mov ebp, dword [esp + 0x54]
mov dword [esp + 0x20], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov eax, dword [ebp]
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
mov ecx, dword [eax]
mov dword [esp + 4], ecx
mov ecx, dword [ecx]
mov dword [esp + 0xc], ecx
cmp byte [ecx + 0x41], 0
jne 0x44e8df
mov ecx, dword [esp + 0x58]
add eax, 0x44
push ebx
push esi
push edi
mov edi, dword [ebp + 0x14]
lea ecx, [ecx + ecx*2]
shl ecx, 4
add edi, ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], eax
mov ebx, dword [edi]
mov dword [esp + 0x54], ebx
push dword [ebx + 0xc]
push eax
call fcn.004b2a30
movzx esi, byte [ebx]
add esp, 8
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edx
mov dword [esp + 0x50], esi
cmp esi, 0x4b
jne 0x44e13b
test dword [ebx + 4], 0x800
push dword [ebx + 0x14]
mov edx, dword [esp + 0x18]
push edx
je 0x44e134
call fcn.0044f630
jmp 0x44e15d
call fcn.004b29d0
jmp 0x44e15d
cmp esi, 0x4c
jne 0x44e150
mov dword [edi + 0x20], 0
mov dword [edi + 0x24], 0
jmp 0x44e166
push dword [ebx + 0x10]
mov edx, dword [esp + 0x18]
push edx
call fcn.004b2a30
add esp, 8
mov dword [edi + 0x20], eax
mov dword [edi + 0x24], edx
push ebx
push dword [esp + 0x18]
call fcn.004b2a30
add esp, 8
mov dword [esp + 0x30], eax
test byte [ebx + 4], 1
mov ecx, edx
mov dword [esp + 0x3c], ecx
je 0x44e1d6
mov edx, dword [esp + 0x14]
xor ecx, ecx
mov edx, dword [edx]
test edx, edx
jle 0x44e1b2
mov eax, dword [esp + 0x14]
add eax, 4
movsx ebp, word [ebx + 0x24]
cmp dword [eax], ebp
mov ebp, dword [esp + 0x60]
je 0x44e242
inc ecx
add eax, 4
cmp ecx, edx
jl 0x44e196
mov eax, dword [esp + 0x30]
xor edx, edx
mov dword [esp + 0x20], edx
mov ecx, dword [esp + 0x3c]
or eax, edx
or ecx, dword [esp + 0x20]
add edx, 0xffffffff
mov dword [esp + 0x30], eax
adc dword [esp + 0x20], 0xffffffff
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x2c], edx
mov dword [edi + 0x28], eax
xor eax, eax
mov dword [edi + 0x2c], ecx
mov dword [edi + 8], 0xffffffff
mov dword [edi + 4], 0xffffffff
mov word [edi + 0x12], ax
cmp esi, 0x4b
je 0x44e346
cmp esi, 0x4f
jl 0x44e207
cmp esi, 0x53
jle 0x44e346
cmp esi, 0x4c
je 0x44e346
cmp esi, 0x49
je 0x44e346
mov al, byte [ebx]
cmp al, 0x4a
jne 0x44e321
cmp byte [ebp + 8], 0x48
jne 0x44e321
mov eax, dword [ebx + 0x14]
xor edi, edi
xor ecx, ecx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x30], edi
mov dword [esp + 0x3c], ecx
jmp 0x44e267
mov eax, 1
xor edx, edx
call fcn.00402540
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x2c]
jmp 0x44e1b8
mov edi, dword [esp + 0x30]
mov eax, dword [eax + 4]
push 0
push 0
push dword [ecx + eax]
push dword [esp + 0x24]
call fcn.0044f220
push 0
push 0
push dword [ebx + 0xc]
mov esi, eax
push dword [esp + 0x34]
call fcn.0044f220
push 0
push esi
push eax
movzx eax, byte [edi + 0x4d9f64]
push eax
push dword [esp + 0x40]
call fcn.00493200
add esp, 0x34
test eax, eax
je 0x44e2b9
mov ecx, dword [ebx + 4]
and ecx, 1
or dword [eax + 4], ecx
mov cx, word [ebx + 0x24]
mov word [eax + 0x24], cx
push 3
push eax
push ebp
call fcn.004bbd90
mov esi, eax
push esi
push ebp
push dword [esp + 0x70]
call fcn.0044e090
mov ecx, dword [ebp + 0x14]
lea edx, [esi + esi*2]
mov eax, dword [esp + 0x7c]
add edx, edx
mov edi, dword [esp + 0x34]
add esp, 0x18
mov esi, dword [esp + 0x1c]
add edi, ecx
inc dword [esp + 0x30]
mov dword [ecx + edx*8 + 4], eax
mov ecx, dword [ebp + 0x14]
mov ax, word [esi + ecx + 0x10]
mov word [ecx + edx*8 + 0x10], ax
mov eax, dword [ebp + 0x14]
mov ecx, dword [esp + 0x3c]
add ecx, 0x18
mov dword [esp + 0x3c], ecx
inc byte [esi + eax + 0x16]
mov eax, dword [esp + 0x4c]
cmp ecx, 0x30
jl 0x44e263
jmp 0x44e4de
cmp al, 0x47
jne 0x44e4de
push dword [esp + 0x64]
push ebp
push dword [esp + 0x64]
call fcn.0044e8f0
mov edi, dword [ebp + 0x14]
add esp, 0xc
add edi, dword [esp + 0x1c]
jmp 0x44e4de
push dword [ebx + 0xc]
call fcn.00484db0
push dword [ebx + 0x10]
mov dword [esp + 0x50], eax
call fcn.00484db0
mov edx, dword [edi + 0x20]
add esp, 8
mov ecx, dword [edi + 0x24]
and edx, dword [esp + 0x40]
and ecx, dword [esp + 0x44]
or edx, ecx
mov dword [esp + 0x28], eax
mov edx, 0x1fff
je 0x44e37d
mov edx, 0x800
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x4c], edx
cmp byte [ecx], 0x9a
jne 0x44e3ab
mov eax, dword [ecx + 0x1c]
mov dword [edi + 8], eax
movsx eax, word [ecx + 0x20]
push esi
mov dword [edi + 0xc], eax
call fcn.0046af30
add esp, 4
and ax, dx
mov word [edi + 0x12], ax
mov eax, dword [esp + 0x28]
mov ecx, 0x800
cmp esi, 0x49
jne 0x44e3b9
or word [edi + 0x14], cx
test eax, eax
je 0x44e4de
cmp byte [eax], 0x9a
jne 0x44e4de
cmp dword [edi + 8], 0
mov dword [esp + 0x48], 0
jl 0x44e474
mov esi, dword [esp + 0x18]
push 0
push 0
push ebx
push esi
call fcn.0044f220
add esp, 0x10
mov dword [esp + 0x28], eax
cmp byte [esi + 0x41], 0
je 0x44e40a
push eax
push esi
call fcn.00483ce0
add esp, 8
pop edi
pop esi
pop ebx
pop ebp
add esp, 0x48
ret
push 3
push eax
push ebp
call fcn.004bbd90
add esp, 0xc
test eax, eax
je 0x44e8dc
push dword [esp + 0x64]
lea esi, [eax + eax*2]
push eax
shl esi, 4
add esi, dword [ebp + 0x14]
push ebp
call fcn.004678b0
add esp, 0xc
cmp dword [esp + 0x50], 0x49
jne 0x44e445
mov eax, 0x800
or word [esi + 0x14], ax
mov edi, dword [ebp + 0x14]
add edi, dword [esp + 0x1c]
push dword [esp + 0x28]
push dword [esp + 0x14]
or word [edi + 0x14], 8
call fcn.004b4830
add esp, 8
test eax, eax
je 0x44e47a
mov eax, 0x800
or word [edi + 0x12], ax
mov dword [esp + 0x48], eax
jmp 0x44e47a
mov dword [esp + 0x28], ebx
mov esi, edi
push dword [esp + 0x28]
push dword [esp + 0x14]
call fcn.0044f1b0
mov edx, dword [esp + 0x30]
push dword [edx + 0xc]
call fcn.00484db0
mov ecx, dword [eax + 0x1c]
mov dword [esi + 8], ecx
movsx eax, word [eax + 0x20]
mov ecx, dword [esp + 0x50]
or ecx, dword [esp + 0x2c]
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x4c]
or eax, dword [esp + 0x38]
mov dword [esi + 0x20], eax
mov eax, dword [esp + 0x3c]
mov dword [esi + 0x28], eax
mov eax, dword [esp + 0x48]
mov dword [esi + 0x24], ecx
mov dword [esi + 0x2c], eax
movzx eax, byte [edx]
push eax
call fcn.0046af30
add ax, word [esp + 0x58]
add esp, 0x10
and ax, word [esp + 0x4c]
mov word [esi + 0x12], ax
cmp byte [ebp + 8], 0x48
mov esi, dword [esp + 0x10]
jne 0x44e747
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x2c]
push eax
push ebx
push esi
call fcn.00466180
add esp, 0x14
test eax, eax
je 0x44e747
mov eax, dword [ebx + 0x14]
push 0
push 0
push dword [esp + 0x2c]
mov eax, dword [eax + 4]
push dword [esp + 0x24]
mov eax, dword [eax + 0x18]
mov dword [esp + 0x5c], eax
call fcn.0044f220
add esp, 0x10
mov ecx, eax
cmp dword [esp + 0x38], 0
mov dword [esp + 0x28], ecx
je 0x44e598
mov ecx, dword [esi]
cmp byte [ecx + 0x41], 0
jne 0x44e594
mov eax, 0x400
xor esi, esi
or word [edi + 0x14], ax
mov eax, dword [esp + 0x24]
mov edi, dword [eax + 8]
mov cl, byte [edi]
test cl, cl
je 0x44e594
mov ebx, dword [esp + 0x28]
mov ebp, eax
movzx edx, cl
movzx eax, byte [edx + 0x4d9500]
and al, 0x20
not al
and al, cl
mov byte [edi], al
mov ecx, dword [ebx + 8]
movzx eax, byte [edx + 0x4d9400]
mov byte [esi + ecx], al
inc esi
mov edi, dword [ebp + 8]
add edi, esi
mov cl, byte [edi]
test cl, cl
jne 0x44e561
mov ebx, dword [esp + 0x54]
mov ebp, dword [esp + 0x60]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
cmp byte [eax + 0x41], 0
jne 0x44e603
mov edx, dword [ecx + 8]
test edx, edx
jne 0x44e5ad
xor ecx, ecx
jmp 0x44e5c1
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44e5b2
sub ecx, esi
and ecx, 0x3fffffff
mov edi, dword [esp + 0x38]
add edx, ecx
mov al, byte [edx - 1]
test edi, edi
je 0x44e5f4
xor ecx, ecx
cmp al, 0x40
movzx eax, al
sete cl
dec ecx
and ecx, dword [esp + 0x34]
mov al, byte [eax + 0x4d9400]
mov esi, ecx
inc al
mov dword [esp + 0x60], ecx
mov byte [edx - 1], al
mov eax, dword [esp + 0x18]
jmp 0x44e60b
mov esi, dword [esp + 0x34]
inc al
mov byte [edx - 1], al
mov eax, dword [esp + 0x18]
jmp 0x44e60b
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x38]
test edi, edi
mov edi, str.NOCASE
jne 0x44e619
mov edi, str.BINARY
push 0
push 0
push dword [esp + 0x54]
push eax
call fcn.0044f220
add esp, 0x10
push 0
push dword [esp + 0x28]
push edi
push eax
push dword [esp + 0x20]
call fcn.004812a0
add esp, 0xc
push eax
push 0x53
push dword [esp + 0x20]
call fcn.00493200
add esp, 0x14
test eax, eax
je 0x44e662
mov ecx, dword [ebx + 4]
and ecx, 1
or dword [eax + 4], ecx
mov cx, word [ebx + 0x24]
mov word [eax + 0x24], cx
push 0x103
push eax
push ebp
call fcn.004bbd90
push eax
push ebp
push dword [esp + 0x70]
mov dword [esp + 0x78], eax
call fcn.0044e090
push 0
push 0
push dword [esp + 0x6c]
push dword [esp + 0x3c]
call fcn.0044f220
add esp, 0x28
push 0
push dword [esp + 0x2c]
push edi
mov edi, dword [esp + 0x1c]
push eax
push edi
call fcn.004812a0
add esp, 0xc
push eax
push 0x52
push edi
call fcn.00493200
add esp, 0x14
test eax, eax
je 0x44e6c7
mov ecx, dword [ebx + 4]
and ecx, 1
or dword [eax + 4], ecx
mov cx, word [ebx + 0x24]
mov word [eax + 0x24], cx
push 0x103
push eax
push ebp
call fcn.004bbd90
push eax
push ebp
push dword [esp + 0x70]
mov dword [esp + 0x6c], eax
call fcn.0044e090
mov edi, dword [esp + 0x34]
add esp, 0x18
mov eax, dword [ebp + 0x14]
add edi, eax
test esi, esi
je 0x44e743
mov ecx, dword [esp + 0x60]
mov esi, dword [esp + 0x1c]
lea edx, [ecx + ecx*2]
mov ecx, dword [esp + 0x64]
add edx, edx
mov dword [eax + edx*8 + 4], ecx
mov ecx, dword [ebp + 0x14]
movzx eax, word [esi + ecx + 0x10]
mov word [ecx + edx*8 + 0x10], ax
mov eax, dword [ebp + 0x14]
mov ecx, dword [esp + 0x64]
inc byte [esi + eax + 0x16]
mov eax, dword [esp + 0x54]
lea edx, [eax + eax*2]
mov eax, dword [ebp + 0x14]
add edx, edx
mov dword [eax + edx*8 + 4], ecx
mov ecx, dword [ebp + 0x14]
movzx eax, word [esi + ecx + 0x10]
mov word [ecx + edx*8 + 0x10], ax
mov eax, dword [ebp + 0x14]
inc byte [esi + eax + 0x16]
mov esi, dword [esp + 0x10]
cmp byte [ebx], 0x99
jne 0x44e8ce
push str.match
push dword [ebx + 8]
call fcn.0043ae40
add esp, 8
test eax, eax
jne 0x44e8ce
mov ecx, dword [ebx + 0x14]
cmp dword [ecx], 2
jne 0x44e8ce
mov eax, dword [ecx + 4]
mov eax, dword [eax + 0x18]
cmp byte [eax], 0x9a
jne 0x44e8ce
mov eax, dword [ecx + 4]
mov ebx, dword [eax]
mov eax, dword [eax + 0x18]
push ebx
push dword [esp + 0x18]
mov dword [esp + 0x50], eax
call fcn.004b2a30
push dword [esp + 0x50]
mov dword [esp + 0x6c], eax
push dword [esp + 0x20]
mov dword [esp + 0x5c], edx
call fcn.004b2a30
and eax, dword [esp + 0x70]
add esp, 0x10
and edx, dword [esp + 0x4c]
or eax, edx
jne 0x44e8ce
push eax
push eax
push ebx
push dword [esp + 0x24]
call fcn.0044f220
push 0
push 0x30
push dword [esi]
mov edi, eax
call fcn.0047f320
mov esi, eax
add esp, 0x1c
test esi, esi
je 0x44e801
push 0x30
push 0
push esi
call sub.MSVCRT.dll_memset
add esp, 0xc
mov byte [esi], 0x33
or eax, 0xffffffff
mov dword [esi + 0x18], 1
mov word [esi + 0x22], ax
mov eax, dword [esp + 0x10]
mov ebx, dword [eax]
test esi, esi
jne 0x44e81e
push esi
push ebx
call fcn.00483ce0
push edi
push ebx
call fcn.00483ce0
add esp, 0x10
jmp 0x44e856
test edi, edi
je 0x44e830
mov dword [esi + 0x10], edi
mov eax, dword [edi + 4]
and eax, 0x200100
or dword [esi + 4], eax
push esi
call fcn.0044f760
mov ecx, dword [esp + 0x14]
add esp, 4
mov eax, dword [ecx]
mov eax, dword [eax + 0x64]
cmp dword [esi + 0x18], eax
jle 0x44e856
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push ecx
call fcn.00481160
add esp, 0xc
push 3
push esi
push ebp
call fcn.004bbd90
mov esi, dword [ebp + 0x14]
add esp, 0xc
mov ecx, dword [esp + 0x48]
mov ebx, dword [esp + 0x1c]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x60]
shl edx, 4
add esi, edx
mov dword [esi + 0x20], eax
mov eax, dword [esp + 0x4c]
mov dword [esi + 0x24], eax
mov eax, dword [ecx + 0x1c]
mov dword [esi + 8], eax
movsx eax, word [ecx + 0x20]
mov ecx, dword [esp + 0x64]
mov dword [esi + 0xc], eax
mov eax, 0x40
mov word [esi + 0x12], ax
mov eax, dword [ebp + 0x14]
mov dword [eax + edx + 4], ecx
mov ecx, dword [ebp + 0x14]
mov ax, word [ebx + ecx + 0x10]
mov word [ecx + edx + 0x10], ax
mov eax, dword [ebp + 0x14]
inc byte [ebx + eax + 0x16]
mov edi, dword [ebp + 0x14]
add edi, ebx
mov eax, dword [edi + 0x28]
or word [edi + 0x14], 8
mov dword [esi + 0x28], eax
mov eax, dword [edi + 0x2c]
mov dword [esi + 0x2c], eax
mov eax, dword [esp + 0x2c]
or dword [edi + 0x20], eax
mov eax, dword [esp + 0x20]
or dword [edi + 0x24], eax
pop edi
pop esi
pop ebx
pop ebp
add esp, 0x48
ret