Function at 0x40d460
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 0x40d4a7
nop dword [eax]
lea eax, [edx - 1]
inc ebx
and edx, eax
jne 0x40d480
cmp ebx, 1
jne 0x40d491
mov ecx, esi
jmp 0x40d4b3
test esi, 0x4000
je 0x40d4a7
mov ecx, esi
and ecx, 0xffffbfff
or ecx, 0x8000
mov esi, ecx
xor edx, edx
test esi, esi
je 0x40d66d
lea eax, [ecx - 1]
inc edx
and ecx, eax
jne 0x40d4b3
cmp edx, 1
jbe 0x40d66d
cmp edi, 8
jne 0x40d4d4
cmp esi, 0x20000
sete al
jmp 0x40d4f2
test edi, edi
je 0x40d4f0
cmp edi, 2
je 0x40d4f0
cmp edi, 1
je 0x40d4f0
cmp edi, 3
je 0x40d4f0
cmp edi, 4
je 0x40d4f0
xor al, al
jmp 0x40d4f2
mov al, 1
test al, al
je 0x40d506
mov esi, 0x20000
xor ebx, ebx
mov ecx, esi
mov edx, ecx
jmp 0x40d480
push 0x20
push 0
push 0x3e
call fcn.0040fdb0
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.00409c50
add esp, 0xc
test esi, 0x8000
je 0x40d5b2
mov edi, eax
test edi, edi
je 0x40d551
mov eax, dword [esp + 0x34]
push edi
mov dword [edi + 0x30], ebx
push ebp
mov dword [edi + 0x34], eax
call fcn.0041dcb0
add esp, 8
add edi, 0x18
push edi
mov edi, dword [esp + 0x30]
push edi
push 0x1c5
push ebp
call fcn.0041d920
push 0
push 2
push eax
push ebp
call fcn.00410a00
push eax
push ebp
call fcn.0041e090
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.0040d460
add esp, 0x4c
push 0
push ebp
call fcn.0041e030
add esp, 8
and esi, 0xffff7fff
jmp 0x40d63b
mov esi, eax
test esi, esi
je 0x40d5cb
push esi
mov dword [esi + 0x30], ebx
push ebp
mov dword [esi + 0x34], edi
call fcn.0041dcb0
add esp, 8
add esi, 0x18
mov edi, dword [esp + 0x2c]
push esi
push edi
push 0x1c5
push ebp
call fcn.0041d920
push 0
push 1
push eax
push ebp
call fcn.00410a00
push eax
push ebp
call fcn.0041e090
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.0040d460
add esp, 0x4c
push 0
push ebp
call fcn.0041e030
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.0040d460
push 0
push ebp
call fcn.0041df70
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 0x40d6b6
cmp esi, 0x200
je 0x40d69b
cmp esi, 0x10000
mov ecx, 0x26f
mov eax, 0x25e
cmovne ecx, eax
jmp 0x40d72e
push esi
push edi
call fcn.0040c0e0
add esp, 8
mov ecx, 0x272
test al, al
mov edx, 0x25e
cmovne ecx, edx
jmp 0x40d72e
cmp esi, 0x8000
jg 0x40d711
je 0x40d6fc
cmp esi, 0x200
je 0x40d6d7
cmp esi, 0x800
jne 0x40d6fc
mov ecx, 0x275
jmp 0x40d72e
push esi
push edi
call fcn.0040c0e0
add esp, 8
test al, al
je 0x40d6f5
xor ecx, ecx
cmp edi, 2
sete cl
add ecx, 0x25b
jmp 0x40d72e
mov ecx, 0x271
jmp 0x40d72e
push esi
push edi
call fcn.0040c120
add esp, 8
test al, al
je 0x40d719
mov ecx, 0x26c
jmp 0x40d72e
cmp esi, 0x10000
je 0x40d729
xor ecx, ecx
cmp edi, 2
sete cl
add ecx, 0x25b
jmp 0x40d72e
mov ecx, 0x26d
push ecx
push dword [ebp + 0x10]
call fcn.00409aa0
mov ebx, eax
add esp, 8
mov eax, dword [esp + 0x40]
cmp byte [eax + 0x11], 1
jne 0x40d780
cmp esi, 0x10000
je 0x40d770
cmp esi, 0x4000
je 0x40d770
cmp esi, 0x8000
je 0x40d770
push 0
push 0x22
push 6
push eax
push ebp
call fcn.0041e1d0
add esp, 0x14
jmp 0x40d77c
push eax
push 0x1c
push ebp
call fcn.0041d8d0
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 0x40d7a5
cmp esi, 0x20000
sete al
jmp 0x40d7c3
test edi, edi
je 0x40d7c1
cmp edi, 2
je 0x40d7c1
cmp edi, 1
je 0x40d7c1
cmp edi, 3
je 0x40d7c1
cmp edi, 4
je 0x40d7c1
xor al, al
jmp 0x40d7c3
mov al, 1
test al, al
je 0x40d7ed
mov esi, dword [esp + 0x2c]
xorps xmm0, xmm0
push edi
push esi
push ebp
movups xmmword [esp + 0x1c], xmm0
call fcn.0040c1b0
mov dword [esp + 0x28], eax
add esp, 0xc
movups xmm0, xmmword [esp + 0x10]
movups xmmword [ebx + 0x68], xmm0
jmp 0x40d869
cmp edi, 8
jne 0x40d7fd
cmp esi, 0x20000
setne al
jmp 0x40d80d
cmp edi, 9
je 0x40d80b
cmp edi, 0xa
je 0x40d80b
xor al, al
jmp 0x40d80d
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 0x40d837
call fcn.0040c2b0
mov dword [esp + 0x28], eax
add esp, 0xc
movups xmm0, xmmword [esp + 0x10]
movups xmmword [ebx + 0x68], xmm0
jmp 0x40d869
call fcn.0040c250
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.0040c2b0
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 0x40d8a7
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 0x40d90d
movzx eax, byte [ecx + 0x11]
shr eax, 3
push eax
push edi
push esi
push ebp
call fcn.0040c150
push eax
push ebp
call fcn.0041e090
push ebx
push ebp
call fcn.0041dcb0
push 0
push ebp
call fcn.0041df70
add esp, 0x28
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
push ebx
push ebp
call fcn.0041dcb0
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret