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

Disassembly:
sub esp, 0x44
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x58]
xor eax, eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x20], eax
mov ecx, dword [edi + 8]
mov edx, dword [edi]
mov dword [esp + 0x10], edx
mov dword [esp + 0x18], ecx
test ecx, ecx
jne 0x1002de54
cmp dword [edi + 0x78], eax
jne 0x1002de45
test byte [edx + 0x50], 8
jne 0x1002de45
mov byte [edi + 0x17], 1
push edi
call fcn.1007aff0
add esp, 4
mov dword [esp + 0x18], eax
mov ecx, eax
mov eax, dword [esp + 0x74]
mov esi, dword [esp + 0x68]
test eax, eax
jns 0x1002de76
movzx eax, byte [esi + 0x18]
push 0
push eax
push 0x31
push ecx
call fcn.1007a9c0
add esp, 0x10
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x70]
xor ebx, ebx
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x60]
mov dword [esp + 0x14], ebx
cmp dword [esi + 0x14], ebx
jle 0x1002e097
mov esi, dword [esp + 0x6c]
test eax, eax
je 0x1002dea2
mov eax, dword [eax + 4]
movzx eax, word [eax + ebx*2]
jmp 0x1002dea5
or eax, 0xffffffff
push eax
push ecx
push edx
push edi
call fcn.1002b370
mov edx, dword [esp + 0x78]
add esp, 0x10
mov ebp, eax
test esi, esi
je 0x1002dec1
movzx eax, word [esi + ebx*4]
jmp 0x1002dec5
movzx eax, word [edx + 0x24]
movsx ecx, ax
mov eax, dword [edx]
add ecx, ecx
mov eax, dword [eax + 4]
mov eax, dword [eax + ecx*8]
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x1002dede
xor esi, esi
jmp 0x1002def2
mov esi, eax
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x1002dee3
sub esi, ecx
and esi, 0x3fffffff
lea eax, [esi + 0x35]
push 0
push eax
push dword [esp + 0x18]
call fcn.10053d40
mov ebx, eax
add esp, 0xc
test ebx, ebx
je 0x1002df47
push 0x34
push 0
push ebx
call sub.VCRUNTIME140.dll_memset
or eax, 0xffffffff
mov byte [ebx], 0x3b
mov word [ebx + 0x22], ax
add esp, 0xc
lea eax, [ebx + 0x34]
mov dword [ebx + 8], eax
test esi, esi
je 0x1002df39
push esi
push dword [esp + 0x20]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [ebx + 8]
mov byte [esi + eax], 0
mov dword [ebx + 0x18], 1
push 0
push 0x34
push dword [edi]
call fcn.10053d40
mov esi, eax
add esp, 0xc
test esi, esi
je 0x1002dfce
push 0x34
push 0
push esi
call sub.VCRUNTIME140.dll_memset
or eax, 0xffffffff
mov byte [esi], 0x35
add esp, 0xc
mov word [esi + 0x22], ax
test ebx, ebx
je 0x1002df8a
mov dword [esi + 0x10], ebx
mov eax, dword [ebx + 4]
and eax, 0x400208
or dword [esi + 4], eax
mov ecx, dword [ebx + 0x18]
inc ecx
jmp 0x1002df8f
mov ecx, 1
mov dword [esi + 0x18], ecx
test ebp, ebp
je 0x1002dfb1
mov dword [esi + 0xc], ebp
mov eax, dword [ebp + 4]
and eax, 0x400208
or dword [esi + 4], eax
mov eax, dword [ebp + 0x18]
cmp eax, ecx
jl 0x1002dfb1
lea ecx, [eax + 1]
mov dword [esi + 0x18], ecx
mov eax, dword [edi]
mov eax, dword [eax + 0x84]
cmp ecx, eax
jle 0x1002dfec
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push edi
call fcn.10055e80
add esp, 0xc
jmp 0x1002dfec
test ebp, ebp
je 0x1002dfdd
push ebp
push dword [edi]
call fcn.100597d0
add esp, 8
test ebx, ebx
je 0x1002dfec
push ebx
push dword [edi]
call fcn.100597d0
add esp, 8
mov ebp, dword [esp + 0x58]
mov ebx, dword [edi]
test ebp, ebp
jne 0x1002dffc
mov dword [esp + 0x58], esi
jmp 0x1002e06d
test esi, esi
je 0x1002e06d
mov eax, dword [ebp + 4]
and eax, 0x20000001
cmp eax, 0x20000000
je 0x1002e01e
mov eax, dword [esi + 4]
and eax, 0x20000001
cmp eax, 0x20000000
jne 0x1002e05c
cmp byte [edi + 0xd4], 2
jae 0x1002e05c
push ebp
push edi
call fcn.10059750
push esi
push edi
call fcn.10059750
push 0
lea eax, [esp + 0x38]
mov dword [esp + 0x38], 0x100b4c78
push eax
push 0x9b
push ebx
mov dword [esp + 0x48], 1
call fcn.100564f0
add esp, 0x20
jmp 0x1002e069
push esi
push ebp
push 0x2c
push edi
call fcn.10066af0
add esp, 0x10
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x68]
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x6c]
inc ebx
mov edx, dword [esp + 0x60]
cmp ebx, dword [eax + 0x14]
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x14], ebx
jl 0x1002de95
mov esi, dword [esp + 0x68]
mov ebp, dword [esp + 0x5c]
cmp edx, dword [esi]
jne 0x1002e58f
cmp dword [esp + 0x74], 0
jle 0x1002e58f
test byte [edx + 0x1c], 0x80
jne 0x1002e202
push 0
push 0x35
push dword [edi]
call fcn.10053d40
mov ebx, eax
add esp, 0xc
test ebx, ebx
je 0x1002e0fe
push 0x34
push 0
push ebx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov byte [ebx], 0xb0
or eax, 0xffffffff
mov word [ebx + 0x22], ax
lea eax, [ebx + 0x34]
mov dword [ebx + 8], eax
mov byte [eax], 0
mov eax, dword [esp + 0x70]
mov dword [ebx + 0x18], 1
mov dword [ebx + 0x1c], eax
mov byte [ebx + 1], 0x44
mov eax, dword [ebp + 0x34]
push 0
push 0x35
push dword [esp + 0x18]
mov dword [esp + 0x28], eax
call fcn.10053d40
mov ebp, eax
add esp, 0xc
lea esi, [ebp + 0x18]
mov dword [esp + 0x14], esi
test ebp, ebp
je 0x1002e15d
push 0x34
push 0
push ebp
call sub.VCRUNTIME140.dll_memset
mov ecx, dword [esp + 0x6c]
lea eax, [ebp + 0x34]
add esp, 0xc
mov dword [ebp + 8], eax
or edx, 0xffffffff
mov byte [ebp], 0xa7
mov word [ebp + 0x22], dx
mov byte [eax], 0
mov eax, dword [esp + 0x1c]
mov dword [esi], 1
mov dword [ebp + 0x2c], ecx
mov dword [ebp + 0x1c], eax
mov word [ebp + 0x20], dx
jmp 0x1002e161
mov dword [esp + 0x14], esi
push 0
push 0x34
push dword [edi]
call fcn.10053d40
mov esi, eax
add esp, 0xc
test esi, esi
je 0x1002e1cf
push 0x34
push 0
push esi
call sub.VCRUNTIME140.dll_memset
or eax, 0xffffffff
mov byte [esi], 0x34
add esp, 0xc
mov word [esi + 0x22], ax
test ebp, ebp
je 0x1002e1a7
mov ecx, dword [esp + 0x14]
mov dword [esi + 0x10], ebp
mov eax, dword [ebp + 4]
and eax, 0x400208
or dword [esi + 4], eax
mov ecx, dword [ecx]
inc ecx
jmp 0x1002e1ac
mov ecx, 1
mov dword [esi + 0x18], ecx
test ebx, ebx
je 0x1002e4f8
mov dword [esi + 0xc], ebx
mov eax, dword [ebx + 4]
and eax, 0x400208
or dword [esi + 4], eax
mov eax, dword [ebx + 0x18]
cmp eax, ecx
jmp 0x1002e4f0
test ebx, ebx
je 0x1002e1de
push ebx
push dword [edi]
call fcn.100597d0
add esp, 8
test ebp, ebp
je 0x1002e1ed
push ebp
push dword [edi]
call fcn.100597d0
add esp, 8
mov ebp, dword [esp + 0x58]
mov ebx, dword [edi]
test ebp, ebp
jne 0x1002e51c
mov ebp, esi
jmp 0x1002e593
xor ecx, ecx
xor esi, esi
xor ebp, ebp
mov dword [esp + 0x1c], ecx
cmp si, word [eax + 0x32]
jae 0x1002e4a0
mov eax, dword [eax + 4]
movzx esi, word [eax + ecx*2]
push esi
push dword [esp + 0x74]
push edx
push edi
call fcn.1002b370
mov ecx, dword [esp + 0x70]
add esp, 0x10
movsx edx, si
add edx, edx
mov dword [esp + 0x14], eax
mov ecx, dword [ecx + 4]
mov eax, dword [ecx + edx*8]
mov dword [esp + 0x24], eax
test eax, eax
jne 0x1002e24b
xor esi, esi
jmp 0x1002e25f
mov esi, eax
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x1002e250
sub esi, ecx
and esi, 0x3fffffff
lea eax, [esi + 0x35]
push 0
push eax
push dword [esp + 0x18]
call fcn.10053d40
mov ebx, eax
add esp, 0xc
test ebx, ebx
je 0x1002e2b4
push 0x34
push 0
push ebx
call sub.VCRUNTIME140.dll_memset
or eax, 0xffffffff
mov byte [ebx], 0x3b
mov word [ebx + 0x22], ax
add esp, 0xc
lea eax, [ebx + 0x34]
mov dword [ebx + 8], eax
test esi, esi
je 0x1002e2a6
push esi
push dword [esp + 0x28]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [ebx + 8]
mov byte [esi + eax], 0
mov dword [ebx + 0x18], 1
push 0
push 0x34
push dword [edi]
call fcn.10053d40
mov esi, eax
add esp, 0xc
test esi, esi
je 0x1002e33f
push 0x34
push 0
push esi
call sub.VCRUNTIME140.dll_memset
or eax, 0xffffffff
mov byte [esi], 0x2d
add esp, 0xc
mov word [esi + 0x22], ax
test ebx, ebx
je 0x1002e2f7
mov dword [esi + 0x10], ebx
mov eax, dword [ebx + 4]
and eax, 0x400208
or dword [esi + 4], eax
mov ecx, dword [ebx + 0x18]
inc ecx
jmp 0x1002e2fc
mov ecx, 1
mov ebx, dword [esp + 0x14]
mov dword [esi + 0x18], ecx
test ebx, ebx
je 0x1002e322
mov dword [esi + 0xc], ebx
mov eax, dword [ebx + 4]
and eax, 0x400208
or dword [esi + 4], eax
mov eax, dword [ebx + 0x18]
cmp eax, ecx
jl 0x1002e322
lea ecx, [eax + 1]
mov dword [esi + 0x18], ecx
mov eax, dword [edi]
mov eax, dword [eax + 0x84]
cmp ecx, eax
jle 0x1002e361
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push edi
call fcn.10055e80
add esp, 0xc
jmp 0x1002e361
mov eax, dword [esp + 0x14]
test eax, eax
je 0x1002e352
push eax
push dword [edi]
call fcn.100597d0
add esp, 8
test ebx, ebx
je 0x1002e361
push ebx
push dword [edi]
call fcn.100597d0
add esp, 8
mov ebx, dword [edi]
test ebp, ebp
jne 0x1002e36e
mov ebp, esi
jmp 0x1002e47f
test esi, esi
je 0x1002e47f
mov eax, dword [ebp + 4]
and eax, 0x20000001
cmp eax, 0x20000000
je 0x1002e3a1
mov eax, dword [esi + 4]
lea ecx, [esi + 4]
and eax, 0x20000001
mov dword [esp + 0x14], ecx
cmp eax, 0x20000000
jne 0x1002e3eb
mov dword [esp + 0x14], ecx
jmp 0x1002e3a8
lea eax, [esi + 4]
mov dword [esp + 0x14], eax
cmp byte [edi + 0xd4], 2
jae 0x1002e3eb
push ebp
push edi
call fcn.10059750
push esi
push edi
call fcn.10059750
push 0
lea eax, [esp + 0x40]
mov dword [esp + 0x40], 0x100b4c78
push eax
push 0x9b
push ebx
mov dword [esp + 0x50], 1
call fcn.100564f0
add esp, 0x20
mov ebp, eax
jmp 0x1002e47f
push 0
push 0x34
push ebx
call fcn.10053d40
mov ebx, eax
add esp, 0xc
test ebx, ebx
je 0x1002e46a
push 0x34
push 0
push ebx
call sub.VCRUNTIME140.dll_memset
mov edx, dword [esp + 0x20]
or eax, 0xffffffff
mov word [ebx + 0x22], ax
add esp, 0xc
mov byte [ebx], 0x2c
mov dword [ebx + 0x10], esi
mov edx, dword [edx]
and edx, 0x400208
or edx, dword [ebx + 4]
mov dword [ebx + 4], edx
mov ecx, dword [esi + 0x18]
inc ecx
mov dword [ebx + 0x18], ecx
mov dword [ebx + 0xc], ebp
mov eax, dword [ebp + 4]
and eax, 0x400208
or eax, edx
mov dword [ebx + 4], eax
mov eax, dword [ebp + 0x18]
cmp eax, ecx
jl 0x1002e44c
inc eax
mov dword [ebx + 0x18], eax
mov eax, dword [edi]
mov eax, dword [eax + 0x84]
cmp dword [ebx + 0x18], eax
jle 0x1002e47d
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push edi
call fcn.10055e80
add esp, 0xc
jmp 0x1002e47d
push ebp
push dword [edi]
call fcn.100597d0
push esi
push dword [edi]
call fcn.100597d0
add esp, 0x10
mov ebp, ebx
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x60]
inc ecx
mov dword [esp + 0x1c], ecx
movzx eax, word [eax + 0x32]
cmp ecx, eax
mov eax, dword [esp + 0x64]
jl 0x1002e216
push 0
push 0x34
push dword [edi]
call fcn.10053d40
mov esi, eax
add esp, 0xc
test esi, esi
je 0x1002e1de
push 0x34
push 0
push esi
call sub.VCRUNTIME140.dll_memset
or eax, 0xffffffff
mov byte [esi], 0x13
add esp, 0xc
mov word [esi + 0x22], ax
mov dword [esi + 0x18], 1
lea ecx, [eax + 2]
test ebp, ebp
je 0x1002e4f8
mov dword [esi + 0xc], ebp
mov eax, dword [ebp + 4]
and eax, 0x400208
or dword [esi + 4], eax
mov eax, dword [ebp + 0x18]
cmp eax, ecx
jl 0x1002e4f8
lea ecx, [eax + 1]
mov dword [esi + 0x18], ecx
mov eax, dword [edi]
mov eax, dword [eax + 0x84]
cmp ecx, eax
jle 0x1002e1ed
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push edi
call fcn.10055e80
add esp, 0xc
jmp 0x1002e1ed
test esi, esi
je 0x1002e593
mov eax, dword [ebp + 4]
and eax, 0x20000001
cmp eax, 0x20000000
je 0x1002e53e
mov eax, dword [esi + 4]
and eax, 0x20000001
cmp eax, 0x20000000
jne 0x1002e57e
cmp byte [edi + 0xd4], 2
jae 0x1002e57e
push ebp
push edi
call fcn.10059750
push esi
push edi
call fcn.10059750
push 0
lea eax, [esp + 0x40]
mov dword [esp + 0x40], 0x100b4c78
push eax
push 0x9b
push ebx
mov dword [esp + 0x50], 1
call fcn.100564f0
add esp, 0x20
mov ebp, eax
jmp 0x1002e593
push esi
push ebp
push 0x2c
push edi
call fcn.10066af0
add esp, 0x10
mov ebp, eax
jmp 0x1002e593
mov ebp, dword [esp + 0x58]
mov esi, dword [esp + 0x5c]
lea eax, [esp + 0x34]
xorps xmm0, xmm0
mov dword [esp + 0x38], esi
push ebp
push eax
movlpd qword [esp + 0x44], xmm0
movlpd qword [esp + 0x4c], xmm0
movlpd qword [esp + 0x54], xmm0
mov dword [esp + 0x3c], edi
call fcn.1006fb40
add esp, 8
cmp dword [edi + 0x24], 0
jne 0x1002e64f
push 0
push 0
push 0
push 0
push 0
push ebp
push esi
push edi
call fcn.1008a440
mov ebx, dword [esp + 0x38]
mov esi, eax
mov eax, dword [esp + 0x88]
add esp, 0x20
mov ecx, dword [ebx + 0x6c]
movzx edx, byte [eax + 0x18]
cmp dword [ebx + 0x70], ecx
jg 0x1002e611
push 0
push dword [esp + 0x78]
push edx
push 0x9e
push ebx
call fcn.10031c40
add esp, 0x14
jmp 0x1002e640
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x74]
mov dword [eax + ecx*4], 0x9e
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
test esi, esi
je 0x1002e653
push esi
call fcn.1008d8e0
add esp, 4
jmp 0x1002e653
mov ebx, dword [esp + 0x18]
test ebp, ebp
je 0x1002e664
push ebp
push dword [esp + 0x14]
call fcn.100597d0
add esp, 8
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x1002e6a6
mov edx, dword [ebx + 0x6c]
lea eax, [edx - 1]
cmp ecx, eax
jne 0x1002e681
pop edi
pop esi
pop ebp
mov dword [ebx + 0x6c], eax
pop ebx
add esp, 0x44
ret
mov eax, dword [ebx]
cmp byte [eax + 0x57], 0
je 0x1002e699
pop edi
mov eax, 0x100bdf30
pop esi
pop ebp
pop ebx
mov dword [eax + 8], edx
add esp, 0x44
ret
mov eax, dword [ebx + 0x68]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4 + 8], edx
lea eax, [eax + ecx*4]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x44
ret