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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1004ff18
mov eax, dword fs:[0]
push eax
sub esp, 0x6c
push ebx
push ebp
push esi
push edi
mov eax, dword [0x100682b0]
xor eax, esp
push eax
lea eax, [esp + 0x80]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0x14], esi
lea eax, [esi + 0x10]
push eax
lea ecx, [esp + 0x50]
call fcn.10044e70
xor ebx, ebx
mov dword [esp + 0x88], ebx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], ebx
xor ebp, ebp
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], ebp
mov dword [esp + 0x74], ebx
mov eax, dword [esi + 4]
mov edi, dword [eax]
mov byte [esp + 0x88], 2
cmp edi, eax
je 0x10040fdf
jmp 0x10040d90
mov ecx, dword [edi + 0x10]
mov edx, dword [ecx + 0x2c]
mov al, byte [edx + 0x61]
test al, al
je 0x10040f8a
mov eax, dword [edi + 0x10]
cmp dword [eax], 3
jne 0x10040dca
call fcn.10044dc0
mov ecx, dword [edi + 0x10]
sub eax, dword [ecx + 8]
sbb edx, dword [ecx + 0xc]
mov dword [esp + 0x58], edx
jne 0x10040dfc
cmp eax, 0x2dc6c0
jb 0x10040f8a
jmp 0x10040dfc
mov ecx, dword [eax + 0x2c]
cmp dword [ecx + 0x144], 0
je 0x10040dfc
mov ecx, dword [ecx + 0x144]
call fcn.10042d30
test eax, eax
jle 0x10040dfc
mov ecx, dword [edi + 0x10]
mov eax, dword [ecx + 0x2c]
mov ecx, dword [eax + 0x64]
lea edx, [ecx - 1]
mov dword [eax + 0x64], edx
test ecx, ecx
jg 0x10040f8a
mov eax, dword [edi + 0x10]
mov dword [eax], 8
lea ebp, [edi + 0xc]
call fcn.10044dc0
mov ecx, dword [ebp + 4]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x60]
mov dword [ecx + 0xc], edx
mov ecx, dword [esp + 0x5c]
cmp ebp, eax
jae 0x10040e51
cmp ecx, ebp
ja 0x10040e51
mov esi, ebp
sub esi, ecx
sar esi, 2
cmp eax, dword [esp + 0x64]
jne 0x10040e46
push 1
lea ecx, [esp + 0x60]
call fcn.1003d6d0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x5c]
test eax, eax
je 0x10040e6f
mov ecx, dword [ecx + esi*4]
mov dword [eax], ecx
jmp 0x10040e6f
cmp eax, dword [esp + 0x64]
jne 0x10040e66
push 1
lea ecx, [esp + 0x60]
call fcn.1003d6d0
mov eax, dword [esp + 0x60]
test eax, eax
je 0x10040e6f
mov edx, dword [ebp]
mov dword [eax], edx
mov esi, dword [esp + 0x14]
add eax, 4
lea ebx, [esi + 0x78]
push ebp
mov ecx, ebx
mov dword [esp + 0x64], eax
call fcn.1003ecf0
mov ecx, dword [ebp + 4]
mov dword [eax], ecx
mov edx, dword [edi + 0x10]
add edx, 0x20
push edx
lea eax, [esp + 0x1c]
push eax
mov ecx, esi
call fcn.1003d3f0
mov eax, dword [esi + 4]
mov esi, dword [esp + 0x18]
cmp esi, eax
jne 0x10040ece
mov ecx, dword [ebp + 4]
add ecx, 0x20
push ecx
lea edx, [esp + 0x28]
push edx
mov ecx, ebx
call fcn.1003d3f0
mov esi, dword [eax]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x18], esi
cmp esi, dword [eax + 0x7c]
je 0x10040f8a
mov ecx, dword [esi + 0x10]
add ecx, 0x3c
push ecx
call fcn.10044ec0
mov eax, dword [edi + 0x10]
mov edx, dword [esi + 0x10]
mov ebp, dword [edx + 0x30]
add esp, 4
add eax, 0x1c
push eax
lea eax, [esp + 0x38]
push eax
mov ecx, ebp
call fcn.10036d40
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
push ecx
lea edx, [esp + 0x20]
push edx
push ebx
push eax
mov dword [esp + 0x2c], 0
call fcn.10037090
mov ecx, dword [esp + 0x44]
add esp, 0x10
push ebx
push ecx
lea edx, [esp + 0x30]
push edx
mov ecx, ebp
call fcn.1003deb0
mov eax, dword [edi + 0x10]
mov ecx, dword [esi + 0x10]
mov ebp, dword [ecx + 0x34]
add eax, 0x1c
push eax
lea edx, [esp + 0x40]
push edx
mov ecx, ebp
call fcn.10036d40
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x40]
mov edx, dword [esp + 0x3c]
push eax
lea ecx, [esp + 0x24]
push ecx
push ebx
push edx
mov dword [esp + 0x30], 0
call fcn.10037090
mov eax, dword [esp + 0x4c]
add esp, 0x10
push ebx
push eax
lea ecx, [esp + 0x34]
push ecx
mov ecx, ebp
call fcn.1003deb0
mov edx, dword [esi + 0x10]
add edx, 0x3c
push edx
call fcn.10044ed0
add esp, 4
cmp byte [edi + 0x15], 0
jne 0x10040fca
mov eax, dword [edi + 8]
cmp byte [eax + 0x15], 0
jne 0x10040faf
mov edi, eax
mov eax, dword [edi]
cmp byte [eax + 0x15], 0
jne 0x10040fca
mov edi, eax
mov eax, dword [edi]
cmp byte [eax + 0x15], 0
je 0x10040fa3
jmp 0x10040fca
mov eax, dword [edi + 4]
cmp byte [eax + 0x15], 0
jne 0x10040fc8
cmp edi, dword [eax + 8]
jne 0x10040fc8
mov edi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0x15], 0
je 0x10040fb8
mov edi, eax
mov eax, dword [esp + 0x14]
cmp edi, dword [eax + 4]
jne 0x10040d90
mov ebp, dword [esp + 0x70]
mov ebx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x7c]
mov edi, dword [eax]
cmp edi, eax
je 0x100411bf
mov edx, dword [edi + 0x10]
mov eax, dword [edx + 0x2c]
cmp dword [eax + 0x84], 0
ja 0x10041008
cmp dword [eax + 0x80], 0
jbe 0x10041069
cmp dword [eax + 0xf0], 0
je 0x1004103d
mov ecx, dword [eax + 0xf0]
call fcn.100429b0
test eax, eax
je 0x1004103d
call fcn.10044dc0
mov ecx, dword [edi + 0x10]
mov ecx, dword [ecx + 0x2c]
cmp dword [ecx + 0x84], edx
ja 0x10041069
jb 0x1004103d
cmp dword [ecx + 0x80], eax
ja 0x10041069
mov eax, dword [edi + 0x10]
mov eax, dword [eax + 0x2c]
xor ecx, ecx
mov dword [eax + 0x80], ecx
mov dword [eax + 0x84], ecx
mov ecx, dword [edi + 0x10]
mov edx, dword [ecx + 0x2c]
mov byte [edx + 0x5f], 1
call fcn.10044dc0
mov ecx, dword [edi + 0x10]
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
lea esi, [edi + 0xc]
call fcn.10044dc0
mov ecx, dword [esi + 4]
sub eax, dword [ecx + 8]
sbb edx, dword [ecx + 0xc]
mov dword [esp + 0x58], edx
jne 0x1004108b
cmp eax, 0xf4240
jbe 0x10041170
mov eax, dword [edi + 0x10]
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx + 0x2a0]
test eax, eax
je 0x100410a5
cmp byte [eax + 0x18], 0
jne 0x10041170
cmp esi, ebp
jae 0x1004110f
cmp ebx, esi
ja 0x1004110f
mov ecx, dword [esp + 0x74]
sub esi, ebx
sar esi, 2
cmp ebp, ecx
jne 0x10041103
mov eax, ebp
sub eax, ebx
sar eax, 2
cmp eax, 0x3ffffffe
ja 0x10041260
sub ecx, ebx
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x10041103
mov edx, ecx
shr edx, 1
mov ebx, 0x3fffffff
sub ebx, edx
cmp ebx, ecx
jae 0x100410e9
xor ecx, ecx
jmp 0x100410eb
add ecx, edx
cmp ecx, eax
jae 0x100410f1
mov ecx, eax
push ecx
lea ecx, [esp + 0x70]
call fcn.1003ca50
mov ebp, dword [esp + 0x70]
mov ebx, dword [esp + 0x6c]
test ebp, ebp
je 0x10041169
mov edx, dword [ebx + esi*4]
mov dword [ebp], edx
jmp 0x10041169
mov ecx, dword [esp + 0x74]
cmp ebp, ecx
jne 0x10041160
mov eax, ebp
sub eax, ebx
sar eax, 2
cmp eax, 0x3ffffffe
ja 0x10041260
sub ecx, ebx
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x10041160
mov edx, ecx
shr edx, 1
mov ebx, 0x3fffffff
sub ebx, edx
cmp ebx, ecx
jae 0x10041146
xor ecx, ecx
jmp 0x10041148
add ecx, edx
cmp ecx, eax
jae 0x1004114e
mov ecx, eax
push ecx
lea ecx, [esp + 0x70]
call fcn.1003ca50
mov ebp, dword [esp + 0x70]
mov ebx, dword [esp + 0x6c]
test ebp, ebp
je 0x10041169
mov eax, dword [esi]
mov dword [ebp], eax
add ebp, 4
mov dword [esp + 0x70], ebp
cmp byte [edi + 0x15], 0
jne 0x100411b2
mov ecx, dword [edi + 8]
cmp byte [ecx + 0x15], 0
jne 0x10041195
mov eax, dword [ecx]
cmp byte [eax + 0x15], 0
jne 0x10041191
mov ecx, eax
mov eax, dword [ecx]
cmp byte [eax + 0x15], 0
je 0x10041187
mov edi, ecx
jmp 0x100411b2
mov eax, dword [edi + 4]
cmp byte [eax + 0x15], 0
jne 0x100411b0
mov edi, edi
cmp edi, dword [eax + 8]
jne 0x100411b0
mov edi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0x15], 0
je 0x100411a0
mov edi, eax
mov ecx, dword [esp + 0x14]
cmp edi, dword [ecx + 0x7c]
jne 0x10040ff0
mov esi, dword [esp + 0x5c]
cmp esi, dword [esp + 0x60]
je 0x100411fc
mov edi, dword [esp + 0x14]
lea ecx, [ecx]
push esi
lea edx, [esp + 0x48]
push edx
mov ecx, edi
call fcn.1003bfe0
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
push eax
push ecx
lea edx, [esp + 0x38]
push edx
mov ecx, edi
call fcn.1003d580
add esi, 4
cmp esi, dword [esp + 0x60]
jne 0x100411d0
mov esi, ebx
cmp ebx, ebp
je 0x10041217
mov edi, dword [esp + 0x14]
mov eax, dword [esi]
push eax
mov ecx, edi
call fcn.100407f0
add esi, 4
cmp esi, ebp
jne 0x10041206
test ebx, ebx
je 0x10041224
push ebx
call fcn.10019165
add esp, 4
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x10041235
push eax
call fcn.10019165
add esp, 4
lea ecx, [esp + 0x4c]
mov dword [esp + 0x88], 0xffffffff
call fcn.10044ea0
mov ecx, dword [esp + 0x80]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
push str.vector_T__too_long
call fcn.1002e921
int3