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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x1a0
xorps xmm0, xmm0
movaps xmmword [esp + 0x50], xmm0
lea ecx, [esp + 0xa8]
push dword [ebp + 0xc]
call fcn.0084ca10
lea edx, [esp + 0xc4]
lea eax, [esp + 0xac]
lea esi, [esp + 0xb8]
lea ecx, [esp + 0x50]
push esi
push eax
call fcn.008469b0
add esp, 8
mov eax, dword [0x93de78]
add eax, 8
mov dword [esp + 0xa8], eax
test byte [esp + 0xc4], 1
je 0x846e51
push dword [esp + 0xcc]
call fcn.0051c570
add esp, 4
mov eax, dword [0x93db78]
add eax, 8
mov dword [esp + 0xa8], eax
test byte [esp + 0xb8], 1
je 0x846e79
push dword [esp + 0xc0]
call fcn.0051c570
add esp, 4
test byte [esp + 0xac], 1
je 0x846e92
push dword [esp + 0xb4]
call fcn.0051c570
add esp, 4
xorps xmm0, xmm0
movaps xmmword [esp + 0x30], xmm0
lea esi, [esp + 0x20]
mov ecx, esi
lea eax, [esp + 0x50]
push eax
call fcn.00833d60
lea ebx, [esp + 0x30]
mov ecx, ebx
push esi
call fcn.00834fb0
mov edi, dword [esp + 0x24]
test edi, edi
je 0x846efd
mov eax, dword [esp + 0x28]
mov ecx, edi
cmp eax, edi
jne 0x846ed6
jmp 0x846ef0
mov eax, esi
cmp esi, edi
je 0x846eec
lea esi, [eax - 0xc]
test byte [eax - 0xc], 1
je 0x846ed0
push dword [eax - 4]
call fcn.0051c570
add esp, 4
jmp 0x846ed0
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x28], edi
push ecx
call fcn.0051c570
add esp, 4
xorps xmm0, xmm0
movaps xmmword [esp], xmm0
mov eax, dword [ebp + 0xc]
lea edx, [eax + 0x10]
add eax, 0x1c
mov esi, esp
mov ecx, esi
push eax
call fcn.00846bc0
add esp, 4
lea edi, [esp + 0x68]
mov ecx, edi
push esi
call fcn.00833e00
lea esi, [esp + 0x78]
mov ecx, esi
push ebx
call fcn.008350f0
mov dword [esp + 0xa0], 4
sub esp, 0x1c
mov dword [esp + 0x18], esi
movaps xmm0, xmmword [0x946ac0]
movups xmmword [esp + 4], xmm0
mov dword [esp], edi
mov dword [esp + 0x14], 0
lea ecx, [esp + 0xc4]
call fcn.00836bc0
mov eax, dword [esp + 0xa0]
cmp eax, 0xffffffff
je 0x846f83
lea ecx, [esp + 0x1c]
push esi
push ecx
call dword [eax*4 + 0x946b14]
add esp, 8
mov dword [esp + 0xa0], 0xffffffff
mov ebx, dword [esp + 0x6c]
test ebx, ebx
je 0x846fdd
mov eax, dword [esp + 0x70]
mov ecx, ebx
cmp eax, ebx
jne 0x846fb6
jmp 0x846fd0
mov eax, esi
cmp esi, ebx
je 0x846fcc
lea esi, [eax - 0xc]
test byte [eax - 0xc], 1
je 0x846fb0
push dword [eax - 4]
call fcn.0051c570
add esp, 4
jmp 0x846fb0
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x70], ebx
push ecx
call fcn.0051c570
add esp, 4
mov ebx, dword [esp + 4]
test ebx, ebx
je 0x84702d
mov eax, dword [esp + 8]
mov ecx, ebx
cmp eax, ebx
jne 0x847006
jmp 0x847020
mov eax, esi
cmp esi, ebx
je 0x84701c
lea esi, [eax - 0xc]
test byte [eax - 0xc], 1
je 0x847000
push dword [eax - 4]
call fcn.0051c570
add esp, 4
jmp 0x847000
mov ecx, dword [esp + 4]
mov dword [esp + 8], ebx
push ecx
call fcn.0051c570
add esp, 4
mov ebx, dword [esp + 0x34]
test ebx, ebx
je 0x84707d
mov eax, dword [esp + 0x38]
mov ecx, ebx
cmp eax, ebx
jne 0x847056
jmp 0x847070
mov eax, esi
cmp esi, ebx
je 0x84706c
lea esi, [eax - 0xc]
test byte [eax - 0xc], 1
je 0x847050
push dword [eax - 4]
call fcn.0051c570
add esp, 4
jmp 0x847050
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x38], ebx
push ecx
call fcn.0051c570
add esp, 4
mov eax, dword [ebp + 0xc]
movzx edi, word [eax + 0x40]
xorps xmm0, xmm0
movaps xmmword [esp + 0x30], xmm0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
lea esi, [esp + 0x20]
mov ecx, esi
lea eax, [esp + 0x50]
push eax
call fcn.00833d60
lea ebx, [esp + 0x30]
mov ecx, ebx
push esi
push edi
push 0
push 0
call fcn.00834850
mov edi, dword [esp + 0x24]
test edi, edi
je 0x84710d
mov eax, dword [esp + 0x28]
mov ecx, edi
cmp eax, edi
jne 0x8470e6
jmp 0x847100
mov eax, esi
cmp esi, edi
je 0x8470fc
lea esi, [eax - 0xc]
test byte [eax - 0xc], 1
je 0x8470e0
push dword [eax - 4]
call fcn.0051c570
add esp, 4
jmp 0x8470e0
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x28], edi
push ecx
call fcn.0051c570
add esp, 4
mov edi, esp
mov ecx, edi
lea eax, [esp + 0x50]
push eax
call fcn.00833d60
lea esi, [esp + 0x78]
mov ecx, esi
push ebx
call fcn.00834970
mov dword [esp + 0xa0], 1
sub esp, 0x1c
mov dword [esp + 0x18], esi
movaps xmm0, xmmword [0x946ad0]
movups xmmword [esp + 4], xmm0
mov dword [esp], edi
mov dword [esp + 0x14], 0
lea ecx, [esp + 0x114]
call fcn.00836bc0
mov eax, dword [esp + 0xa0]
cmp eax, 0xffffffff
je 0x847178
push esi
lea ecx, [esp + 0x6c]
push ecx
call dword [eax*4 + 0x946b14]
add esp, 8
mov dword [esp + 0xa0], 0xffffffff
mov edi, dword [esp + 4]
test edi, edi
je 0x8471cd
mov eax, dword [esp + 8]
mov ecx, edi
cmp eax, edi
jne 0x8471a6
jmp 0x8471c0
mov eax, esi
cmp esi, edi
je 0x8471bc
lea esi, [eax - 0xc]
test byte [eax - 0xc], 1
je 0x8471a0
push dword [eax - 4]
call fcn.0051c570
add esp, 4
jmp 0x8471a0
mov ecx, dword [esp + 4]
mov dword [esp + 8], edi
push ecx
call fcn.0051c570
add esp, 4
mov edi, dword [esp + 0x3c]
test edi, edi
je 0x84721d
mov eax, dword [esp + 0x40]
mov ecx, edi
cmp eax, edi
jne 0x8471f6
jmp 0x847210
mov eax, esi
cmp esi, edi
je 0x84720c
lea esi, [eax - 0xc]
test byte [eax - 0xc], 1
je 0x8471f0
push dword [eax - 4]
call fcn.0051c570
add esp, 4
jmp 0x8471f0
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x40], edi
push ecx
call fcn.0051c570
add esp, 4
xorps xmm0, xmm0
movaps xmmword [esp + 0x30], xmm0
mov eax, dword [ebp + 0xc]
add eax, 0x28
mov esi, esp
mov ecx, esi
push eax
call fcn.0084e030
lea ebx, [esp + 0x30]
mov ecx, ebx
push esi
call fcn.00835420
mov esi, dword [esp]
test esi, esi
lea edi, [esp + 0x78]
je 0x847292
mov eax, dword [esp + 4]
mov ecx, esi
cmp eax, esi
jne 0x847266
jmp 0x847285
mov eax, edi
cmp edi, esi
je 0x84727e
lea edi, [eax - 0xc]
mov ecx, dword [eax - 0xc]
test ecx, ecx
je 0x847260
mov dword [eax - 8], ecx
push ecx
call fcn.0051c570
add esp, 4
jmp 0x847260
mov ecx, dword [esp]
lea edi, [esp + 0x78]
mov dword [esp + 4], esi
push ecx
call fcn.0051c570
add esp, 4
lea esi, [esp + 0x20]
mov ecx, esi
lea eax, [esp + 0x50]
push eax
call fcn.00833d60
mov ecx, edi
push ebx
call fcn.008356d0
mov dword [esp + 0xa0], 5
sub esp, 0x1c
mov dword [esp + 0x18], edi
movaps xmm0, xmmword [0x946ae0]
movups xmmword [esp + 4], xmm0
mov dword [esp], esi
mov dword [esp + 0x14], 0
lea ecx, [esp + 0x164]
call fcn.00836bc0
mov eax, dword [esp + 0xa0]
cmp eax, 0xffffffff
je 0x8472fb
push edi
lea ecx, [esp + 0x6c]
push ecx
call dword [eax*4 + 0x946b14]
add esp, 8
mov dword [esp + 0xa0], 0xffffffff
mov esi, dword [esp + 0x24]
test esi, esi
je 0x84734d
mov eax, dword [esp + 0x28]
mov ecx, esi
cmp eax, esi
jne 0x847326
jmp 0x847340
mov eax, edi
cmp edi, esi
je 0x84733c
lea edi, [eax - 0xc]
test byte [eax - 0xc], 1
je 0x847320
push dword [eax - 4]
call fcn.0051c570
add esp, 4
jmp 0x847320
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x28], esi
push ecx
call fcn.0051c570
add esp, 4
mov edi, dword [ebp + 8]
mov esi, dword [esp + 0x34]
test esi, esi
je 0x84739d
mov eax, dword [esp + 0x38]
mov ecx, esi
cmp eax, esi
jne 0x847376
jmp 0x847390
mov eax, ebx
cmp ebx, esi
je 0x84738c
lea ebx, [eax - 0xc]
test byte [eax - 0xc], 1
je 0x847370
push dword [eax - 4]
call fcn.0051c570
add esp, 4
jmp 0x847370
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x38], esi
push ecx
call fcn.0051c570
add esp, 4
push 0xf0
call fcn.0051c3d0
add esp, 4
mov ebx, eax
mov dword [edi], eax
mov ecx, eax
lea eax, [esp + 0xa8]
push eax
call fcn.00836d90
lea ecx, [ebx + 0x50]
lea eax, [esp + 0xf8]
push eax
call fcn.00836d90
lea ecx, [ebx + 0xa0]
lea eax, [esp + 0x148]
push eax
call fcn.00836d90
movd xmm0, ebx
pshufd xmm0, xmm0, 0x50
paddd xmm0, xmmword [0x946af0]
movq qword [edi + 4], xmm0
mov eax, dword [esp + 0x190]
cmp eax, 0xffffffff
je 0x847419
lea ecx, [esp + 0x168]
push ecx
lea ecx, [esp + 0x7c]
push ecx
call dword [eax*4 + 0x946b14]
add esp, 8
mov dword [esp + 0x190], 0xffffffff
mov esi, dword [esp + 0x14c]
test esi, esi
je 0x847473
mov eax, dword [esp + 0x150]
mov ecx, esi
cmp eax, esi
jne 0x847446
jmp 0x847463
mov eax, ebx
cmp ebx, esi
je 0x84745c
lea ebx, [eax - 0xc]
test byte [eax - 0xc], 1
je 0x847440
push dword [eax - 4]
call fcn.0051c570
add esp, 4
jmp 0x847440
mov ecx, dword [esp + 0x14c]
mov dword [esp + 0x150], esi
push ecx
call fcn.0051c570
add esp, 4
mov eax, dword [esp + 0x140]
cmp eax, 0xffffffff
je 0x847496
lea ecx, [esp + 0x118]
push ecx
lea ecx, [esp + 0x7c]
push ecx
call dword [eax*4 + 0x946b14]
add esp, 8
mov dword [esp + 0x140], 0xffffffff
mov esi, dword [esp + 0xfc]
test esi, esi
je 0x8474f3
mov eax, dword [esp + 0x100]
mov ecx, esi
cmp eax, esi
jne 0x8474c6
jmp 0x8474e3
mov eax, ebx
cmp ebx, esi
je 0x8474dc
lea ebx, [eax - 0xc]
test byte [eax - 0xc], 1
je 0x8474c0
push dword [eax - 4]
call fcn.0051c570
add esp, 4
jmp 0x8474c0
mov ecx, dword [esp + 0xfc]
mov dword [esp + 0x100], esi
push ecx
call fcn.0051c570
add esp, 4
mov eax, dword [esp + 0xf0]
cmp eax, 0xffffffff
je 0x847516
lea ecx, [esp + 0xc8]
push ecx
lea ecx, [esp + 0x7c]
push ecx
call dword [eax*4 + 0x946b14]
add esp, 8
mov dword [esp + 0xf0], 0xffffffff
mov esi, dword [esp + 0xac]
test esi, esi
je 0x847573
mov eax, dword [esp + 0xb0]
mov ecx, esi
cmp eax, esi
jne 0x847546
jmp 0x847563
mov eax, ebx
cmp ebx, esi
je 0x84755c
lea ebx, [eax - 0xc]
test byte [eax - 0xc], 1
je 0x847540
push dword [eax - 4]
call fcn.0051c570
add esp, 4
jmp 0x847540
mov ecx, dword [esp + 0xac]
mov dword [esp + 0xb0], esi
push ecx
call fcn.0051c570
add esp, 4
mov esi, dword [esp + 0x54]
test esi, esi
je 0x8475bd
mov eax, dword [esp + 0x58]
mov ecx, esi
cmp eax, esi
jne 0x847596
jmp 0x8475b0
mov eax, ebx
cmp ebx, esi
je 0x8475ac
lea ebx, [eax - 0xc]
test byte [eax - 0xc], 1
je 0x847590
push dword [eax - 4]
call fcn.0051c570
add esp, 4
jmp 0x847590
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x58], esi
push ecx
call fcn.0051c570
add esp, 4
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret