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

Disassembly:
mov ecx, dword [esp + 0x14]
sub esp, 0x10
mov edx, ecx
push ebx
push ebp
mov ebp, dword [esp + 0x1c]
xor ebx, ebx
push esi
mov esi, ecx
push edi
mov edi, dword [esp + 0x30]
test ecx, ecx
je 0x40d417
nop dword [eax]
lea eax, [edx - 1]
inc ebx
and edx, eax
jne 0x40d3f0
cmp ebx, 1
jne 0x40d401
mov ecx, esi
jmp 0x40d423
test esi, 0x4000
je 0x40d417
mov ecx, esi
and ecx, 0xffffbfff
or ecx, 0x8000
mov esi, ecx
xor edx, edx
test esi, esi
je 0x40d5dd
lea eax, [ecx - 1]
inc edx
and ecx, eax
jne 0x40d423
cmp edx, 1
jbe 0x40d5dd
cmp edi, 8
jne 0x40d444
cmp esi, 0x20000
sete al
jmp 0x40d462
test edi, edi
je 0x40d460
cmp edi, 2
je 0x40d460
cmp edi, 1
je 0x40d460
cmp edi, 3
je 0x40d460
cmp edi, 4
je 0x40d460
xor al, al
jmp 0x40d462
mov al, 1
test al, al
je 0x40d476
mov esi, 0x20000
xor ebx, ebx
mov ecx, esi
mov edx, ecx
jmp 0x40d3f0
push 0x20
push 0
push 0x3e
call fcn.0040fd20
add esp, 0xc
mov ebx, eax
mov eax, dword [ebp + 0x10]
mov edi, edx
mov dword [esp + 0x34], edi
push 0x20
push 1
push eax
call fcn.00409be0
add esp, 0xc
test esi, 0x8000
je 0x40d522
mov edi, eax
test edi, edi
je 0x40d4c1
mov eax, dword [esp + 0x34]
push edi
mov dword [edi + 0x30], ebx
push ebp
mov dword [edi + 0x34], eax
call fcn.0041dc20
add esp, 8
add edi, 0x18
push edi
mov edi, dword [esp + 0x30]
push edi
push 0x1c5
push ebp
call fcn.0041d890
push 0
push 2
push eax
push ebp
call fcn.00410970
push eax
push ebp
call fcn.0041e000
push dword [esp + 0x6c]
mov ebx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x68]
push ebx
push ecx
mov ecx, dword [esp + 0x6c]
push ecx
push 0x8000
push 8
push edi
push dword [esp + 0x6c]
push ebp
call fcn.0040d3d0
add esp, 0x4c
push 0
push ebp
call fcn.0041dfa0
add esp, 8
and esi, 0xffff7fff
jmp 0x40d5ab
mov esi, eax
test esi, esi
je 0x40d53b
push esi
mov dword [esi + 0x30], ebx
push ebp
mov dword [esi + 0x34], edi
call fcn.0041dc20
add esp, 8
add esi, 0x18
mov edi, dword [esp + 0x2c]
push esi
push edi
push 0x1c5
push ebp
call fcn.0041d890
push 0
push 1
push eax
push ebp
call fcn.00410970
push eax
push ebp
call fcn.0041e000
push dword [esp + 0x6c]
mov ebx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x68]
mov esi, dword [esp + 0x54]
push ebx
push ecx
mov ecx, dword [esp + 0x6c]
push ecx
push 0x10000
push 8
push edi
push esi
push ebp
call fcn.0040d3d0
add esp, 0x4c
push 0
push ebp
call fcn.0041dfa0
mov eax, dword [esp + 0x40]
add esp, 8
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x28], esi
mov esi, 0x20000
mov dword [esp + 0x3c], eax
mov ecx, dword [esp + 0x44]
movzx eax, cx
push eax
push ebx
push dword [esp + 0x44]
push dword [esp + 0x44]
push esi
push 8
push edi
push dword [esp + 0x44]
push ebp
call fcn.0040d3d0
push 0
push ebp
call fcn.0041dee0
add esp, 0x2c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x18]
sub eax, 0x259
je 0x40d626
cmp esi, 0x200
je 0x40d60b
cmp esi, 0x10000
mov ecx, 0x26f
mov eax, 0x25e
cmovne ecx, eax
jmp 0x40d69e
push esi
push edi
call fcn.0040c060
add esp, 8
mov ecx, 0x272
test al, al
mov edx, 0x25e
cmovne ecx, edx
jmp 0x40d69e
cmp esi, 0x8000
jg 0x40d681
je 0x40d66c
cmp esi, 0x200
je 0x40d647
cmp esi, 0x800
jne 0x40d66c
mov ecx, 0x275
jmp 0x40d69e
push esi
push edi
call fcn.0040c060
add esp, 8
test al, al
je 0x40d665
xor ecx, ecx
cmp edi, 2
sete cl
add ecx, 0x25b
jmp 0x40d69e
mov ecx, 0x271
jmp 0x40d69e
push esi
push edi
call fcn.0040c0a0
add esp, 8
test al, al
je 0x40d689
mov ecx, 0x26c
jmp 0x40d69e
cmp esi, 0x10000
je 0x40d699
xor ecx, ecx
cmp edi, 2
sete cl
add ecx, 0x25b
jmp 0x40d69e
mov ecx, 0x26d
push ecx
push dword [ebp + 0x10]
call fcn.00409a30
mov ebx, eax
add esp, 8
mov eax, dword [esp + 0x40]
cmp byte [eax + 0x11], 1
jne 0x40d6f0
cmp esi, 0x10000
je 0x40d6e0
cmp esi, 0x4000
je 0x40d6e0
cmp esi, 0x8000
je 0x40d6e0
push 0
push 0x22
push 6
push eax
push ebp
call fcn.0041e140
add esp, 0x14
jmp 0x40d6ec
push eax
push 0x1c
push ebp
call fcn.0041d840
add esp, 0xc
mov dword [esp + 0x40], eax
xorps xmm0, xmm0
movups xmmword [esp + 0x10], xmm0
mov dword [esp + 0x1c], eax
movups xmm0, xmmword [esp + 0x10]
movups xmmword [ebx + 0x58], xmm0
cmp edi, 8
jne 0x40d715
cmp esi, 0x20000
sete al
jmp 0x40d733
test edi, edi
je 0x40d731
cmp edi, 2
je 0x40d731
cmp edi, 1
je 0x40d731
cmp edi, 3
je 0x40d731
cmp edi, 4
je 0x40d731
xor al, al
jmp 0x40d733
mov al, 1
test al, al
je 0x40d75d
mov esi, dword [esp + 0x2c]
xorps xmm0, xmm0
push edi
push esi
push ebp
movups xmmword [esp + 0x1c], xmm0
call fcn.0040c130
mov dword [esp + 0x28], eax
add esp, 0xc
movups xmm0, xmmword [esp + 0x10]
movups xmmword [ebx + 0x68], xmm0
jmp 0x40d7d9
cmp edi, 8
jne 0x40d76d
cmp esi, 0x20000
setne al
jmp 0x40d77d
cmp edi, 9
je 0x40d77b
cmp edi, 0xa
je 0x40d77b
xor al, al
jmp 0x40d77d
mov al, 1
mov esi, dword [esp + 0x2c]
xorps xmm0, xmm0
push edi
push esi
movups xmmword [esp + 0x18], xmm0
push ebp
test al, al
je 0x40d7a7
call fcn.0040c230
mov dword [esp + 0x28], eax
add esp, 0xc
movups xmm0, xmmword [esp + 0x10]
movups xmmword [ebx + 0x68], xmm0
jmp 0x40d7d9
call fcn.0040c1d0
mov dword [esp + 0x28], eax
movups xmm0, xmmword [esp + 0x1c]
push edi
push esi
movups xmmword [ebx + 0x68], xmm0
push ebp
xorps xmm0, xmm0
movups xmmword [esp + 0x28], xmm0
call fcn.0040c230
mov dword [esp + 0x34], eax
add esp, 0x18
movups xmm0, xmmword [esp + 0x10]
movups xmmword [ebx + 0x78], xmm0
mov eax, dword [esp + 0x44]
movzx ecx, ax
imul eax, dword [ebx + 0x18], 0x64
movzx eax, byte [eax + 0x52382e]
mov dword [ebx + eax*4 + 0x30], ecx
imul eax, dword [ebx + 0x18], 0x64
mov cl, byte [eax + 0x52383e]
test cl, cl
je 0x40d817
mov edx, dword [esp + 0x28]
movzx ecx, cl
imul eax, dword [edx + 0x18], 0x64
movzx eax, byte [eax + 0x52383e]
mov eax, dword [edx + eax*4 + 0x30]
mov dword [ebx + ecx*4 + 0x30], eax
imul eax, dword [ebx + 0x18], 0x64
mov ecx, dword [esp + 0x38]
movzx eax, byte [eax + 0x523841]
mov dword [ebx + eax*4 + 0x30], ecx
imul eax, dword [ebx + 0x18], 0x64
mov ecx, dword [esp + 0x3c]
movzx eax, byte [eax + 0x523842]
mov dword [ebx + eax*4 + 0x30], ecx
mov ecx, dword [esp + 0x40]
mov al, byte [ecx + 0x10]
mov byte [ebx + 0x30], al
cmp edi, 4
jne 0x40d87d
movzx eax, byte [ecx + 0x11]
shr eax, 3
push eax
push edi
push esi
push ebp
call fcn.0040c0d0
push eax
push ebp
call fcn.0041e000
push ebx
push ebp
call fcn.0041dc20
push 0
push ebp
call fcn.0041dee0
add esp, 0x28
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
push ebx
push ebp
call fcn.0041dc20
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret