Function at 0x40d3b0
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 0x40d3f7
nop dword [eax]
lea eax, [edx - 1]
inc ebx
and edx, eax
jne 0x40d3d0
cmp ebx, 1
jne 0x40d3e1
mov ecx, esi
jmp 0x40d403
test esi, 0x4000
je 0x40d3f7
mov ecx, esi
and ecx, 0xffffbfff
or ecx, 0x8000
mov esi, ecx
xor edx, edx
test esi, esi
je 0x40d5bd
lea eax, [ecx - 1]
inc edx
and ecx, eax
jne 0x40d403
cmp edx, 1
jbe 0x40d5bd
cmp edi, 8
jne 0x40d424
cmp esi, 0x20000
sete al
jmp 0x40d442
test edi, edi
je 0x40d440
cmp edi, 2
je 0x40d440
cmp edi, 1
je 0x40d440
cmp edi, 3
je 0x40d440
cmp edi, 4
je 0x40d440
xor al, al
jmp 0x40d442
mov al, 1
test al, al
je 0x40d456
mov esi, 0x20000
xor ebx, ebx
mov ecx, esi
mov edx, ecx
jmp 0x40d3d0
push 0x20
push 0
push 0x3e
call fcn.0040fcf0
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.00409bc0
add esp, 0xc
test esi, 0x8000
je 0x40d502
mov edi, eax
test edi, edi
je 0x40d4a1
mov eax, dword [esp + 0x34]
push edi
mov dword [edi + 0x30], ebx
push ebp
mov dword [edi + 0x34], eax
call fcn.0041dbe0
add esp, 8
add edi, 0x18
push edi
mov edi, dword [esp + 0x30]
push edi
push 0x1c5
push ebp
call fcn.0041d850
push 0
push 2
push eax
push ebp
call fcn.00410940
push eax
push ebp
call fcn.0041dfc0
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.0040d3b0
add esp, 0x4c
push 0
push ebp
call fcn.0041df60
add esp, 8
and esi, 0xffff7fff
jmp 0x40d58b
mov esi, eax
test esi, esi
je 0x40d51b
push esi
mov dword [esi + 0x30], ebx
push ebp
mov dword [esi + 0x34], edi
call fcn.0041dbe0
add esp, 8
add esi, 0x18
mov edi, dword [esp + 0x2c]
push esi
push edi
push 0x1c5
push ebp
call fcn.0041d850
push 0
push 1
push eax
push ebp
call fcn.00410940
push eax
push ebp
call fcn.0041dfc0
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.0040d3b0
add esp, 0x4c
push 0
push ebp
call fcn.0041df60
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.0040d3b0
push 0
push ebp
call fcn.0041dea0
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, 0x258
je 0x40d606
cmp esi, 0x200
je 0x40d5eb
cmp esi, 0x10000
mov ecx, 0x26e
mov eax, 0x25d
cmovne ecx, eax
jmp 0x40d67e
push esi
push edi
call fcn.0040c040
add esp, 8
mov ecx, 0x271
test al, al
mov edx, 0x25d
cmovne ecx, edx
jmp 0x40d67e
cmp esi, 0x8000
jg 0x40d661
je 0x40d64c
cmp esi, 0x200
je 0x40d627
cmp esi, 0x800
jne 0x40d64c
mov ecx, 0x274
jmp 0x40d67e
push esi
push edi
call fcn.0040c040
add esp, 8
test al, al
je 0x40d645
xor ecx, ecx
cmp edi, 2
sete cl
add ecx, 0x25a
jmp 0x40d67e
mov ecx, 0x270
jmp 0x40d67e
push esi
push edi
call fcn.0040c080
add esp, 8
test al, al
je 0x40d669
mov ecx, 0x26b
jmp 0x40d67e
cmp esi, 0x10000
je 0x40d679
xor ecx, ecx
cmp edi, 2
sete cl
add ecx, 0x25a
jmp 0x40d67e
mov ecx, 0x26c
push ecx
push dword [ebp + 0x10]
call fcn.00409a10
mov ebx, eax
add esp, 8
mov eax, dword [esp + 0x40]
cmp byte [eax + 0x11], 1
jne 0x40d6d0
cmp esi, 0x10000
je 0x40d6c0
cmp esi, 0x4000
je 0x40d6c0
cmp esi, 0x8000
je 0x40d6c0
push 0
push 0x22
push 6
push eax
push ebp
call fcn.0041e100
add esp, 0x14
jmp 0x40d6cc
push eax
push 0x1c
push ebp
call fcn.0041d800
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 0x40d6f5
cmp esi, 0x20000
sete al
jmp 0x40d713
test edi, edi
je 0x40d711
cmp edi, 2
je 0x40d711
cmp edi, 1
je 0x40d711
cmp edi, 3
je 0x40d711
cmp edi, 4
je 0x40d711
xor al, al
jmp 0x40d713
mov al, 1
test al, al
je 0x40d73d
mov esi, dword [esp + 0x2c]
xorps xmm0, xmm0
push edi
push esi
push ebp
movups xmmword [esp + 0x1c], xmm0
call fcn.0040c110
mov dword [esp + 0x28], eax
add esp, 0xc
movups xmm0, xmmword [esp + 0x10]
movups xmmword [ebx + 0x68], xmm0
jmp 0x40d7b9
cmp edi, 8
jne 0x40d74d
cmp esi, 0x20000
setne al
jmp 0x40d75d
cmp edi, 9
je 0x40d75b
cmp edi, 0xa
je 0x40d75b
xor al, al
jmp 0x40d75d
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 0x40d787
call fcn.0040c210
mov dword [esp + 0x28], eax
add esp, 0xc
movups xmm0, xmmword [esp + 0x10]
movups xmmword [ebx + 0x68], xmm0
jmp 0x40d7b9
call fcn.0040c1b0
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.0040c210
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 + 0x5237d6]
mov dword [ebx + eax*4 + 0x30], ecx
imul eax, dword [ebx + 0x18], 0x64
mov cl, byte [eax + 0x5237e6]
test cl, cl
je 0x40d7f7
mov edx, dword [esp + 0x28]
movzx ecx, cl
imul eax, dword [edx + 0x18], 0x64
movzx eax, byte [eax + 0x5237e6]
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 + 0x5237e9]
mov dword [ebx + eax*4 + 0x30], ecx
imul eax, dword [ebx + 0x18], 0x64
mov ecx, dword [esp + 0x3c]
movzx eax, byte [eax + 0x5237ea]
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 0x40d85d
movzx eax, byte [ecx + 0x11]
shr eax, 3
push eax
push edi
push esi
push ebp
call fcn.0040c0b0
push eax
push ebp
call fcn.0041dfc0
push ebx
push ebp
call fcn.0041dbe0
push 0
push ebp
call fcn.0041dea0
add esp, 0x28
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
push ebx
push ebp
call fcn.0041dbe0
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret