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

Disassembly:
sub esp, 0xa4
mov eax, dword [0x4b000c]
xor eax, esp
mov dword [esp + 0x9c], eax
push ebx
push ebp
push esi
mov esi, ecx
mov eax, 0xff7f
push edi
and ax, word [esi + 0x41c]
movzx edx, ax
mov word [esi + 0x41c], ax
test eax, 0x400
jne 0x446f9c
mov eax, dword [esi + 0x400]
sub eax, 9
je 0x446d18
sub eax, 1
jne 0x446f9c
movzx edx, word [esi + 0x406]
lea edi, [esi + 0x497]
movzx ecx, word [esi + 0x408]
mov dword [esp + 0x24], ecx
imul ecx, edx
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov eax, dword [esi + 0x414]
mov dword [esp + 0x14], eax
mov eax, edx
shl ecx, 3
shr eax, 2
shl eax, 3
mov dword [esp + 0x1c], ecx
mov ecx, dword [edi]
mov dword [esp + 0x20], edx
mov dword [esp + 0x28], 1
mov dword [esp + 0x2c], 1
mov dword [esp + 0x30], 0x47
mov dword [esp + 0x34], 1
mov dword [esp + 0x40], 8
mov dword [esp + 0x18], eax
mov word [esi + 0x410], ax
test ecx, ecx
je 0x446c90
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [edi], 0
mov eax, dword [0x4e96b8]
lea edx, [esp + 0x14]
push edi
push edx
lea edx, [esp + 0x28]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x14]
test eax, eax
js 0x446f9c
mov ecx, dword [esi + 0x49f]
lea ebx, [esi + 0x49f]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], 4
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 1
test ecx, ecx
je 0x446cea
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [ebx], 0
mov eax, dword [0x4e96b8]
lea edx, [esp + 0x4c]
push ebx
push edx
push dword [edi]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x1c]
test eax, eax
jns 0x446ed9
mov eax, dword [edi]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov dword [edi], 0
jmp 0x446f9c
mov ecx, dword [esi + 0x497]
lea edi, [esi + 0x497]
mov word [esi + 0x41c], dx
mov ebx, edx
test ecx, ecx
je 0x446d3e
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
movzx ebx, word [esi + 0x41c]
movzx edx, word [esi + 0x406]
test ebx, 0x1000
movzx ecx, word [esi + 0x408]
mov eax, 8
mov ebx, 0x28
mov dword [esp + 0x24], ecx
cmovne eax, ebx
mov dword [esp + 0x20], edx
mov dword [esp + 0x40], eax
mov eax, dword [esi + 0x414]
mov dword [esp + 0x14], eax
lea eax, [edx*4]
imul ecx, edx
lea edx, [esp + 0x14]
mov dword [esp + 0x18], eax
mov word [esi + 0x410], ax
mov dword [edi], 0
mov eax, dword [0x4e96b8]
push edi
push edx
mov dword [esp + 0x30], 1
lea edx, [esp + 0x28]
mov dword [esp + 0x34], 1
mov dword [esp + 0x3c], 1
mov dword [esp + 0x40], 0
mov dword [esp + 0x38], 0x57
mov dword [esp + 0x44], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x24], ecx
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x14]
test eax, eax
js 0x446f9c
mov ebp, 0x1000
test word [esi + 0x41c], bp
je 0x446e54
mov ecx, dword [esi + 0x4a3]
lea ebx, [esi + 0x4a3]
test ecx, ecx
je 0x446e1c
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [ebx], 0
mov eax, dword [0x4e96b8]
lea edx, [esp + 0x64]
push ebx
xorps xmm0, xmm0
mov dword [esp + 0x68], 0x57
push edx
push dword [edi]
movlpd qword [esp + 0x7c], xmm0
mov dword [esp + 0x74], 4
mov dword [esp + 0x78], 0
mov ecx, dword [eax]
push eax
call dword [ecx + 0x24]
test eax, eax
js 0x446ec6
mov ecx, dword [esi + 0x49f]
lea ebx, [esi + 0x49f]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], 4
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 1
test ecx, ecx
je 0x446e90
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [ebx], 0
mov eax, dword [0x4e96b8]
lea edx, [esp + 0x4c]
push ebx
push edx
push dword [edi]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x1c]
test eax, eax
jns 0x446ed9
test word [esi + 0x41c], bp
je 0x446ec6
mov eax, dword [esi + 0x4a3]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov dword [esi + 0x4a3], 0
mov eax, dword [edi]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov dword [edi], 0
jmp 0x446f9c
mov ecx, dword [esi + 0x49b]
lea edi, [esi + 0x49b]
test ecx, ecx
je 0x446ef5
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [edi], 0
mov eax, dword [esi + 0x434]
lea edx, [esp + 0x78]
xorps xmm0, xmm0
mov dword [esp + 0x84], 3
push edi
mov dword [esp + 0x8c], 0
mov eax, dword [eax*4 + 0x4a0cf4]
mov dword [esp + 0x7c], eax
mov eax, dword [esi + 0x428]
mov dword [esp + 0x90], 1
mov dword [esp + 0x94], 8
movups xmmword [esp + 0x98], xmm0
mov eax, dword [eax*4 + 0x4a0d24]
mov dword [esp + 0x80], eax
mov eax, dword [esi + 0x42c]
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0x7f7fffff
push edx
mov eax, dword [eax*4 + 0x4a0d24]
mov dword [esp + 0x88], eax
mov eax, dword [0x4e96b8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x5c]
test eax, eax
js 0x446f9c
mov eax, 0x80
or word [esi + 0x41c], ax
mov ecx, dword [esp + 0xac]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0046ad4d
add esp, 0xa4
ret