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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x254
mov esi, dword [esp + 0x274]
mov ebp, dword [esp + 0x284]
mov dword [esp + 0x9c], ecx
mov edi, dword [esp + 0x26c]
mov dword [esp + 0xa0], edx
mov eax, dword [esi + 4]
mov ecx, dword [ebp + 4]
mov edx, esi
or eax, dword [esi]
or ecx, dword [ebp]
or eax, dword [esi + 8]
or ecx, dword [ebp + 8]
or eax, dword [esi + 0xc]
or ecx, dword [ebp + 0xc]
or eax, dword [esi + 0x10]
or ecx, dword [ebp + 0x10]
or eax, dword [esi + 0x14]
or ecx, dword [ebp + 0x14]
or eax, dword [esi + 0x18]
or ecx, dword [ebp + 0x18]
or eax, dword [esi + 0x1c]
or ecx, dword [ebp + 0x1c]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x34], eax
lea ecx, [esp + 0x114]
push esi
call fcn.00472750
add esp, 4
cmp dword [esp + 0x278], 0
je 0x473f98
movups xmm0, xmmword [edi]
pxor xmm2, xmm2
movups xmmword [esp + 0xf4], xmm0
movups xmm0, xmmword [edi + 0x10]
movups xmmword [esp + 0x104], xmm0
movdqu xmm0, xmmword [esi + 0xc]
mov ebp, dword [esi + 0x1c]
mov eax, dword [esi + 8]
mov edx, dword [esi]
mov ecx, dword [esi + 4]
movd xmm4, dword [esi + 0x1c]
movdqa xmm3, xmm0
movdqa xmm1, xmm0
movd ebx, xmm0
mov edi, eax
shr ebp, 0x1f
psrldq xmm0, 0xc
mov dword [esp + 8], edx
punpckhdq xmm3, xmm2
punpckldq xmm1, xmm2
shld ebx, eax, 1
shld edi, ecx, 1
shld ecx, edx, 1
mov dword [esp + 0xc], ebp
xor ebp, ebp
mov eax, 0
punpcklqdq xmm0, xmm4
mov edx, 1
movdqa xmm2, xmm1
shufpd xmm1, xmm3, 1
mov dword [esp + 0x10], ebx
add ebx, 0xffffffff
mov dword [esp + 4], edi
psrlq xmm3, 0x1f
paddq xmm0, xmm0
mov dword [esp], ecx
psrlq xmm2, 0x1f
paddq xmm1, xmm1
adc eax, 0xffffffff
por xmm0, xmm3
por xmm1, xmm2
sar eax, 0x1f
movd ecx, xmm0
movd edi, xmm1
pshufd xmm2, xmm1, 0x4e
add edi, eax
movd esi, xmm2
pshufd xmm2, xmm0, 0x4e
adc eax, 0
movd xmm3, edi
sar eax, 0x1f
add esi, eax
adc eax, 0
movd xmm5, esi
shr eax, 0x1f
punpcklqdq xmm3, xmm5
not eax
add eax, ecx
movd ecx, xmm2
adc ebp, 0xffffffff
movd xmm2, eax
mov eax, dword [esp + 8]
sar ebp, 0x1f
add ecx, ebp
adc ebp, 0
add ecx, edx
mov edx, 0xffffffff
adc ebp, edx
xor edx, edx
movd xmm4, ecx
mov ecx, dword [esp]
shr ebp, 0x1f
punpcklqdq xmm2, xmm4
cmp dword [esp + 0xc], ebp
setae dl
cmovb ebx, dword [esp + 0x10]
movd xmm6, edx
lea eax, [edx + eax*2]
mov edx, dword [esp + 4]
pshufd xmm4, xmm6, 0x44
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x270]
psllq xmm4, 0x3f
psrad xmm4, 0x1f
pshufd xmm4, xmm4, 0xf5
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], ebx
movdqa xmm5, xmm4
pand xmm2, xmm4
pand xmm3, xmm4
pandn xmm4, xmm1
pandn xmm5, xmm0
por xmm4, xmm3
por xmm5, xmm2
shufps xmm4, xmm5, 0x88
movups xmmword [esp + 0x4c], xmm4
movups xmm0, xmmword [ecx]
movups xmmword [esp + 0xd4], xmm0
movdqu xmm0, xmmword [ecx + 0x10]
movdqu xmmword [esp + 0xe4], xmm0
jmp 0x474328
lea ebx, [esp + 0x5c]
mov edx, ebp
mov ecx, ebx
push ebp
call fcn.00472750
add esp, 4
lea ecx, [esp + 0xf4]
mov edx, edi
push ebx
call fcn.00472750
add esp, 4
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 4]
mov edx, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
mov dword [esp + 0x10], 0
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x14]
mov dword [esp], eax
mov eax, dword [ebp]
add eax, dword [esi]
adc ecx, dword [esi + 4]
mov dword [esp + 0x24], eax
adc edx, dword [esi + 8]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp]
adc edi, dword [esi + 0xc]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 8]
adc ebx, dword [esi + 0x10]
mov dword [esp + 0x2c], edi
adc ecx, dword [esi + 0x14]
mov dword [esp + 0x18], ebx
mov ebx, dword [ebp + 0x1c]
mov ebp, 1
adc edx, dword [esi + 0x18]
mov dword [esp], ecx
adc ebx, dword [esi + 0x1c]
mov esi, 1
mov dword [esp + 8], edx
mov dword [esp + 0x1c], ebx
setb byte [esp + 0x28]
add eax, esi
mov ebx, dword [esp + 0xc]
mov esi, 1
mov dword [esp + 0x20], eax
mov eax, 0xffffffff
adc eax, 0
sar eax, 0x1f
add ebx, eax
adc eax, 0
add ebx, esi
mov esi, 0xffffffff
adc eax, esi
mov esi, dword [esp + 0x14]
sar eax, 0x1f
add esi, eax
adc eax, 0
add esi, ebp
mov ebp, 0xffffffff
adc eax, ebp
mov ebp, 1
sar eax, 0x1f
add edi, eax
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x18]
adc eax, 0
sar eax, 0x1f
add edi, eax
adc eax, 0
mov dword [esp + 4], edi
mov edi, ecx
mov ecx, 0
sar eax, 0x1f
add edi, eax
adc eax, 0
shr eax, 0x1f
not eax
add eax, edx
mov edx, dword [esp + 0x1c]
adc ecx, 0xffffffff
sar ecx, 0x1f
add edx, ecx
adc ecx, 0
add edx, ebp
mov ebp, 0xffffffff
adc ecx, ebp
movzx ebp, byte [esp + 0x28]
shr ecx, 0x1f
cmp ebp, ecx
mov ecx, dword [esp + 4]
mov ebp, dword [esp + 0x30]
cmovb esi, dword [esp + 0x14]
cmovb ebx, dword [esp + 0xc]
cmovb edx, dword [esp + 0x1c]
cmovb eax, dword [esp + 8]
cmovb edi, dword [esp]
cmovb ecx, dword [esp + 0x18]
cmovb ebp, dword [esp + 0x2c]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x20]
cmovb ecx, dword [esp + 0x24]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 4]
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], ebp
mov dword [esp + 0x4c], ecx
lea ecx, [esp + 0x3c]
mov dword [esp + 0x50], edi
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], edx
mov edx, ecx
push ecx
call fcn.00472750
add esp, 4
mov eax, dword [esp + 0x3c]
mov edx, 0
mov ebx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
mov ebp, dword [esp + 0x54]
mov esi, dword [esp + 0x58]
mov edi, 0
sub eax, dword [esp + 0x114]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x40]
sbb edx, edx
sar edx, 0x1f
add eax, edx
adc edx, 0
sub eax, dword [esp + 0x118]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x44]
sbb edx, 0
sar edx, 0x1f
add eax, edx
adc edx, 0
sub eax, dword [esp + 0x11c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x48]
sbb edx, 0
sar edx, 0x1f
add eax, edx
adc edx, 0
sub eax, dword [esp + 0x120]
sbb edx, 0
mov dword [esp], eax
mov eax, dword [esp + 8]
sar edx, 0x1f
add ebx, edx
adc edx, 0
sub ebx, dword [esp + 0x124]
sbb edx, 0
sar edx, 0x1f
add ecx, edx
adc edx, 0
sub ecx, dword [esp + 0x128]
sbb edx, 0
sar edx, 0x1f
add ebp, edx
adc edx, 0
sub ebp, dword [esp + 0x12c]
sbb edx, 0
sar edx, 0x1f
add esi, edx
adc edx, 0
sub esi, dword [esp + 0x130]
sbb edx, 0
sar edx, 0x1f
sub ebp, edx
sbb edi, edx
add esi, edx
add eax, edx
adc dword [esp + 4], edx
adc edx, dword [esp + 0xc]
adc dword [esp], 0
adc ebx, 0
adc ecx, 0
adc ebp, 0
adc esi, edi
sub eax, dword [esp + 0x5c]
mov edi, dword [esp + 4]
mov dword [esp + 8], eax
mov eax, 0
sbb eax, eax
sar eax, 0x1f
add edi, eax
adc eax, 0
sub edi, dword [esp + 0x60]
sbb eax, 0
mov dword [esp + 4], edi
mov edi, dword [esp]
sar eax, 0x1f
add edx, eax
adc eax, 0
sub edx, dword [esp + 0x64]
sbb eax, 0
sar eax, 0x1f
add edi, eax
adc eax, 0
sub edi, dword [esp + 0x68]
sbb eax, 0
mov dword [esp], edi
mov edi, dword [esp + 4]
sar eax, 0x1f
add ebx, eax
adc eax, 0
sub ebx, dword [esp + 0x6c]
sbb eax, 0
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 8]
sar eax, 0x1f
add ecx, eax
adc eax, 0
sub ecx, dword [esp + 0x70]
sbb eax, 0
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x14]
sar eax, 0x1f
add ebp, eax
adc eax, 0
sub ebp, dword [esp + 0x74]
sbb eax, 0
sar eax, 0x1f
add esi, eax
adc eax, 0
sub esi, dword [esp + 0x78]
sbb eax, 0
sar eax, 0x1f
sub ebp, eax
sbb dword [esp + 0x10], eax
add esi, eax
add ebx, eax
adc edi, eax
mov dword [esp + 0x3c], ebx
adc eax, edx
mov edx, dword [esp]
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], eax
adc edx, 0
adc ecx, 0
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x284]
adc dword [esp + 0xc], 0
mov dword [esp + 0x4c], ecx
mov eax, dword [esp + 0xc]
adc ebp, 0
adc esi, dword [esp + 0x10]
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], ebp
lea ebp, [esp + 0xd4]
lea eax, [esp + 0x5c]
mov ecx, ebp
mov dword [esp + 0x58], esi
push eax
call fcn.00472750
add esp, 4
mov ecx, ebp
mov edx, ebp
push dword [esp + 0x270]
call fcn.00472750
add esp, 4
mov edx, dword [esp + 0x27c]
lea ecx, [esp + 0x1d4]
lea esi, [esp + 0x114]
push esi
call fcn.00472750
add esp, 4
mov eax, dword [esp + 0x1d4]
mov edi, 0
mov ebp, dword [esp + 0x1e0]
mov esi, dword [esp + 0x1e4]
mov edx, dword [esp + 0x1e8]
mov ecx, dword [esp + 0x1ec]
mov ebx, 0
sub eax, dword [esp + 0xf4]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x1d8]
sbb edi, edi
sar edi, 0x1f
add eax, edi
adc edi, 0
sub eax, dword [esp + 0xf8]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1dc]
sbb edi, 0
sar edi, 0x1f
add eax, edi
adc edi, 0
sub eax, dword [esp + 0xfc]
sbb edi, 0
mov dword [esp + 4], eax
mov eax, dword [esp + 0x1f0]
sar edi, 0x1f
add ebp, edi
adc edi, 0
sub ebp, dword [esp + 0x100]
sbb edi, 0
sar edi, 0x1f
add esi, edi
adc edi, 0
sub esi, dword [esp + 0x104]
sbb edi, 0
sar edi, 0x1f
add edx, edi
adc edi, 0
sub edx, dword [esp + 0x108]
sbb edi, 0
sar edi, 0x1f
add ecx, edi
adc edi, 0
sub ecx, dword [esp + 0x10c]
sbb edi, 0
sar edi, 0x1f
add eax, edi
adc edi, 0
sub eax, dword [esp + 0x110]
sbb edi, 0
sar edi, 0x1f
sub ecx, edi
sbb ebx, edi
add eax, edi
add dword [esp + 0x18], edi
adc dword [esp + 0x1c], edi
adc edi, dword [esp + 4]
adc ebp, 0
adc esi, 0
mov dword [esp + 0x30], ebp
adc edx, 0
mov dword [esp + 0xb0], esi
adc ecx, 0
mov dword [esp + 0xac], edx
adc eax, ebx
mov ebx, dword [esp + 0x18]
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xa4], eax
mov dword [esp + 0xb4], ebx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0xb8], ebx
mov dword [esp + 0xbc], edi
mov dword [esp + 0xc0], ebp
mov dword [esp + 0xc4], esi
mov dword [esp + 0xc8], edx
mov dword [esp + 0xcc], ecx
mov dword [esp + 0xd0], eax
lea eax, [esp + 0x3c]
lea ecx, [esp + 0x214]
lea edx, [esp + 0xb4]
push eax
call fcn.00472750
add esp, 4
mov edx, dword [esp + 0x274]
lea ebp, [esp + 0x234]
lea eax, [esp + 0x114]
mov ecx, ebp
push eax
call fcn.00472750
add esp, 4
mov edx, dword [esp + 0x280]
lea ecx, [esp + 0x1b4]
push ebp
call fcn.00472750
add esp, 4
mov eax, dword [esp + 0x1b4]
mov ecx, dword [esp + 0x1b8]
mov esi, dword [esp + 0x1c8]
mov ebp, dword [esp + 0x1cc]
sub eax, dword [esp + 0xd4]
mov dword [esp + 0x10], eax
mov eax, 0
sbb eax, eax
sar eax, 0x1f
add ecx, eax
adc eax, 0
sub ecx, dword [esp + 0xd8]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x1bc]
sbb eax, 0
sar eax, 0x1f
add ecx, eax
adc eax, 0
sub ecx, dword [esp + 0xdc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x1c0]
sbb eax, 0
sar eax, 0x1f
add ecx, eax
adc eax, 0
sub ecx, dword [esp + 0xe0]
mov dword [esp], ecx
mov ecx, dword [esp + 0x1c4]
sbb eax, 0
sar eax, 0x1f
add ecx, eax
adc eax, 0
sub ecx, dword [esp + 0xe4]
sbb eax, 0
mov ebx, ecx
mov ecx, dword [esp + 0x1d0]
sar eax, 0x1f
add esi, eax
adc eax, 0
sub esi, dword [esp + 0xe8]
sbb eax, 0
sar eax, 0x1f
add ebp, eax
adc eax, 0
sub ebp, dword [esp + 0xec]
sbb eax, 0
sar eax, 0x1f
add ecx, eax
adc eax, 0
sub ecx, dword [esp + 0xf0]
sbb eax, 0
mov edx, ecx
mov ecx, 0
sar eax, 0x1f
sub ebp, eax
sbb ecx, eax
add edx, eax
add dword [esp + 0x10], eax
adc dword [esp + 4], eax
adc eax, dword [esp + 8]
adc dword [esp], 0
adc ebx, 0
adc esi, 0
mov dword [esp + 0x14], ebx
adc ebp, 0
adc edx, ecx
mov ecx, dword [esp + 0x10]
mov ebx, edx
shld edx, ebp, 1
shld ebp, esi, 1
mov dword [esp + 0x20], ebp
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x28], edx
mov edx, dword [esp]
shr ebx, 0x1f
mov dword [esp + 0x2c], ebx
mov ebx, 0
shld esi, ebp, 1
shld ebp, edx, 1
shld edx, eax, 1
mov dword [esp + 0x24], esi
mov esi, dword [esp + 4]
mov dword [esp], edx
mov dword [esp + 0x14], ebp
shld eax, esi, 1
shld esi, ecx, 1
mov ecx, edx
mov edx, dword [esp + 0x28]
add ecx, 0xffffffff
mov dword [esp + 4], esi
mov esi, dword [esp + 0x24]
adc ebx, 0xffffffff
mov dword [esp + 8], ecx
mov ecx, ebp
mov ebp, 0
sar ebx, 0x1f
add ecx, ebx
adc ebx, 0
mov dword [esp + 0xc], ecx
mov ecx, 1
sar ebx, 0x1f
add esi, ebx
adc ebx, 0
shr ebx, 0x1f
not ebx
add ebx, dword [esp + 0x20]
adc ebp, 0xffffffff
sar ebp, 0x1f
add edx, ebp
adc ebp, 0
add edx, ecx
mov ecx, 0xffffffff
adc ebp, ecx
xor ecx, ecx
shr ebp, 0x1f
cmp dword [esp + 0x2c], ebp
mov ebp, dword [esp + 0xc]
cmovb ebp, dword [esp + 0x14]
setae cl
cmovb edx, dword [esp + 0x28]
cmovb ebx, dword [esp + 0x20]
cmovb esi, dword [esp + 0x24]
mov dword [esp + 0xc], ebp
mov ebp, dword [esp + 8]
cmovb ebp, dword [esp]
cmp dword [esp + 0x38], 0
mov dword [esp], esi
mov dword [esp + 8], ebp
mov ebp, dword [esp + 0x10]
lea ecx, [ecx + ebp*2]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x154], ecx
mov ecx, dword [esp + 4]
mov dword [esp + 0x158], ecx
mov ebp, ecx
mov ecx, dword [esp + 8]
mov dword [esp + 0x15c], eax
mov dword [esp + 0x160], ecx
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x164], ecx
mov dword [esp + 0x168], esi
mov dword [esp + 0x16c], ebx
mov dword [esp + 0x170], edx
je 0x4747a9
cmp dword [esp + 0x34], 0
je 0x4747a9
mov esi, edx
mov edx, dword [esp + 0x18]
or edx, edi
or edx, dword [esp + 0x30]
or edx, dword [esp + 0xb0]
or edx, dword [esp + 0xac]
or edx, dword [esp + 0xa8]
or edx, dword [esp + 0xa4]
or edx, ebp
or edx, eax
or edx, dword [esp + 8]
or edx, ecx
or edx, dword [esp]
or edx, ebx
or edx, esi
or edx, dword [esp + 0x10]
or dword [esp + 0x1c], edx
jne 0x4747a9
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0xa0]
push dword [esp + 0x274]
push dword [esp + 0x274]
push dword [esp + 0x274]
push dword [esp + 0x274]
call fcn.00475230
add esp, 0x10
jmp 0x475225
movdqu xmm0, xmmword [esp + 0xc0]
mov eax, dword [esp + 0xbc]
mov edi, dword [esp + 0xd0]
mov edx, dword [esp + 0xb4]
mov ecx, dword [esp + 0xb8]
pxor xmm2, xmm2
movd xmm4, dword [esp + 0xd0]
movd esi, xmm0
movdqa xmm3, xmm0
movdqa xmm1, xmm0
shr edi, 0x1f
mov dword [esp + 8], edx
psrldq xmm0, 0xc
shld esi, eax, 1
punpckhdq xmm3, xmm2
punpckldq xmm1, xmm2
mov dword [esp + 0xc], edi
punpcklqdq xmm0, xmm4
mov ebx, esi
movdqa xmm2, xmm1
shufpd xmm1, xmm3, 1
mov dword [esp + 0x10], esi
mov esi, eax
psrlq xmm3, 0x1f
paddq xmm0, xmm0
mov eax, 0
mov edi, ebx
shld esi, ecx, 1
shld ecx, edx, 1
psrlq xmm2, 0x1f
paddq xmm1, xmm1
mov edx, 0
por xmm0, xmm3
mov ebx, 1
add edi, 0xffffffff
por xmm1, xmm2
mov dword [esp + 4], esi
mov dword [esp], ecx
movd ecx, xmm0
adc edx, 0xffffffff
movd ebp, xmm1
pshufd xmm2, xmm1, 0x4e
sar edx, 0x1f
movd esi, xmm2
pshufd xmm2, xmm0, 0x4e
add ebp, edx
adc edx, 0
movd xmm3, ebp
sar edx, 0x1f
add esi, edx
adc edx, 0
movd xmm5, esi
shr edx, 0x1f
punpcklqdq xmm3, xmm5
not edx
add edx, ecx
movd ecx, xmm2
adc eax, 0xffffffff
movd xmm2, edx
mov edx, dword [esp]
sar eax, 0x1f
add ecx, eax
adc eax, 0
add ecx, ebx
mov ebx, 0xffffffff
adc eax, ebx
xor ebx, ebx
movd xmm4, ecx
mov ecx, dword [esp + 4]
shr eax, 0x1f
punpcklqdq xmm2, xmm4
cmp dword [esp + 0xc], eax
mov eax, dword [esp + 8]
setae bl
cmovb edi, dword [esp + 0x10]
movd xmm6, ebx
lea eax, [ebx + eax*2]
lea ebx, [esp + 0x1f4]
pshufd xmm4, xmm6, 0x44
mov dword [esp + 0x1f4], eax
mov dword [esp + 0x1f8], edx
mov dword [esp + 0x1fc], ecx
mov ecx, ebx
mov edx, ebx
psllq xmm4, 0x3f
psrad xmm4, 0x1f
mov dword [esp + 0x200], edi
pshufd xmm4, xmm4, 0xf5
movdqa xmm5, xmm4
pand xmm2, xmm4
pand xmm3, xmm4
pandn xmm4, xmm1
pandn xmm5, xmm0
por xmm4, xmm3
por xmm5, xmm2
shufps xmm4, xmm5, 0x88
movups xmmword [esp + 0x204], xmm4
push ebx
call fcn.00472750
add esp, 4
lea ecx, [esp + 0x134]
lea edx, [esp + 0xb4]
push ebx
call fcn.00472750
add esp, 4
lea ecx, [esp + 0x194]
lea edx, [esp + 0xf4]
push ebx
call fcn.00472750
add esp, 4
lea edx, [esp + 0x154]
lea ecx, [esp + 0x5c]
push edx
call fcn.00472750
add esp, 4
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
mov ecx, 0
mov edi, dword [esp + 0x70]
mov ebp, dword [esp + 0x74]
mov ebx, dword [esp + 0x78]
sub eax, dword [esp + 0x134]
sbb ecx, ecx
mov esi, eax
mov eax, dword [esp + 0x64]
sar ecx, 0x1f
add edx, ecx
adc ecx, 0
sub edx, dword [esp + 0x138]
sbb ecx, 0
sar ecx, 0x1f
add eax, ecx
adc ecx, 0
sub eax, dword [esp + 0x13c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x68]
sbb ecx, 0
sar ecx, 0x1f
add eax, ecx
adc ecx, 0
sub eax, dword [esp + 0x140]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x6c]
sbb ecx, 0
sar ecx, 0x1f
add eax, ecx
adc ecx, 0
sub eax, dword [esp + 0x144]
sbb ecx, 0
mov dword [esp], eax
mov eax, 0
sar ecx, 0x1f
add edi, ecx
adc ecx, 0
sub edi, dword [esp + 0x148]
sbb ecx, 0
sar ecx, 0x1f
add ebp, ecx
adc ecx, 0
sub ebp, dword [esp + 0x14c]
sbb ecx, 0
sar ecx, 0x1f
add ebx, ecx
adc ecx, 0
sub ebx, dword [esp + 0x150]
sbb ecx, 0
sar ecx, 0x1f
sub ebp, ecx
sbb eax, ecx
add ebx, ecx
add esi, ecx
adc edx, ecx
adc ecx, dword [esp + 8]
adc dword [esp + 4], 0
adc dword [esp], 0
adc edi, 0
adc ebp, 0
adc ebx, eax
mov eax, dword [esp + 0x194]
sub esi, eax
mov dword [esp + 0x1c], eax
mov eax, 0
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x198]
sbb eax, eax
sar eax, 0x1f
add edx, eax
adc eax, 0
sub edx, esi
mov dword [esp + 0xc], esi
mov esi, dword [esp + 4]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x19c]
sbb eax, 0
sar eax, 0x1f
add ecx, eax
adc eax, 0
sub ecx, edx
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x1a0]
sbb eax, 0
sar eax, 0x1f
add esi, eax
adc eax, 0
sub esi, edx
mov dword [esp + 0x14], edx
mov edx, dword [esp]
mov dword [esp + 4], esi
mov esi, dword [esp + 0x1a4]
sbb eax, 0
sar eax, 0x1f
add edx, eax
adc eax, 0
sub edx, esi
mov dword [esp + 8], esi
mov esi, 0
mov dword [esp], edx
mov edx, dword [esp + 0x1a8]
sbb eax, 0
sar eax, 0x1f
add edi, eax
adc eax, 0
sub edi, edx
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x1ac]
sbb eax, 0
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x20]
sar eax, 0x1f
add ebp, eax
adc eax, 0
sub ebp, edx
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x1b0]
sbb eax, 0
sar eax, 0x1f
add ebx, eax
adc eax, 0
sub ebx, edx
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x24]
sbb eax, 0
sar eax, 0x1f
sub ebp, eax
sbb esi, eax
add ebx, eax
add edx, eax
adc edi, eax
adc eax, ecx
mov ecx, 0
adc dword [esp + 4], 0
adc dword [esp], 0
adc dword [esp + 0x30], 0
adc ebp, 0
adc ebx, esi
sub edx, dword [esp + 0x1c]
sbb ecx, ecx
mov esi, edx
mov edx, dword [esp + 4]
sar ecx, 0x1f
add edi, ecx
adc ecx, 0
sub edi, dword [esp + 0xc]
sbb ecx, 0
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x30]
sar ecx, 0x1f
add eax, ecx
adc ecx, 0
sub eax, dword [esp + 0x18]
sbb ecx, 0
sar ecx, 0x1f
add edx, ecx
adc ecx, 0
sub edx, dword [esp + 0x14]
mov dword [esp + 4], edx
mov edx, dword [esp]
sbb ecx, 0
sar ecx, 0x1f
add edx, ecx
adc ecx, 0
sub edx, dword [esp + 8]
sbb ecx, 0
mov dword [esp], edx
mov edx, 0
sar ecx, 0x1f
add edi, ecx
adc ecx, 0
sub edi, dword [esp + 0x10]
sbb ecx, 0
sar ecx, 0x1f
add ebp, ecx
adc ecx, 0
sub ebp, dword [esp + 0x28]
sbb ecx, 0
sar ecx, 0x1f
add ebx, ecx
adc ecx, 0
sub ebx, dword [esp + 0x2c]
sbb ecx, 0
sar ecx, 0x1f
sub ebp, ecx
sbb edx, ecx
add ebx, ecx
add esi, ecx
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x20]
adc esi, ecx
adc ecx, eax
mov eax, dword [esp + 0x24]
adc dword [esp + 4], 0
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], esi
mov dword [esp + 0x64], ecx
adc dword [esp], 0
adc edi, 0
adc ebp, 0
adc ebx, edx
sub dword [esp + 0x1c], eax
mov edx, dword [esp + 0xc]
mov eax, 0
sbb eax, eax
sar eax, 0x1f
add edx, eax
adc eax, 0
sub edx, esi
mov esi, 0
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x18]
sbb eax, 0
sar eax, 0x1f
add edx, eax
adc eax, 0
sub edx, ecx
mov ecx, dword [esp + 4]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x14]
sbb eax, 0
sar eax, 0x1f
mov dword [esp + 0x68], ecx
add edx, eax
adc eax, 0
sub edx, ecx
mov ecx, dword [esp]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 8]
sbb eax, 0
sar eax, 0x1f
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], ebp
mov dword [esp + 0x78], ebx
add edx, eax
adc eax, 0
sub edx, ecx
mov ecx, dword [esp + 0x10]
sbb eax, 0
mov dword [esp + 8], edx
mov edx, dword [esp + 0x1c]
sar eax, 0x1f
add ecx, eax
adc eax, 0
sub ecx, edi
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x28]
sbb eax, 0
sar eax, 0x1f
add ecx, eax
adc eax, 0
sub ecx, ebp
mov ebp, ecx
mov ecx, dword [esp + 0x2c]
sbb eax, 0
sar eax, 0x1f
add ecx, eax
adc eax, 0
sub ecx, ebx
mov ebx, dword [esp + 0xc]
sbb eax, 0
mov edi, ecx
mov ecx, dword [esp + 0x14]
sar eax, 0x1f
sub ebp, eax
sbb esi, eax
add edi, eax
add edx, eax
adc ebx, eax
mov dword [esp + 0x7c], edx
adc eax, dword [esp + 0x18]
mov dword [esp + 0x80], ebx
adc ecx, 0
mov dword [esp + 0x84], eax
adc dword [esp + 8], 0
mov dword [esp + 0x88], ecx
lea ecx, [esp + 0x7c]
mov eax, dword [esp + 8]
mov edx, ecx
adc dword [esp + 0x10], 0
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x10]
adc ebp, 0
mov dword [esp + 0x90], eax
lea eax, [esp + 0x154]
adc edi, esi
mov dword [esp + 0x94], ebp
mov dword [esp + 0x98], edi
push eax
call fcn.00472750
add esp, 4
lea eax, [esp + 0x134]
lea ecx, [esp + 0x174]
lea edx, [esp + 0xd4]
push eax
call fcn.00472750
add esp, 4
mov ecx, dword [esp + 0x174]
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0x80]
mov edi, dword [esp + 0x8c]
mov ebx, dword [esp + 0x94]
mov ebp, dword [esp + 0x98]
movdqu xmm1, xmmword [esp + 0x5c]
sub eax, ecx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x178]
mov edx, eax
mov eax, 0
sbb eax, eax
sar eax, 0x1f
add esi, eax
mov dword [esp + 0x14], ecx
adc eax, 0
sub esi, ecx
mov ecx, dword [esp + 0x17c]
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x84]
sbb eax, 0
sar eax, 0x1f
mov dword [esp + 0x18], ecx
add esi, eax
adc eax, 0
sub esi, ecx
mov ecx, dword [esp + 0x180]
mov dword [esp + 0xc], esi
mov esi, dword [esp + 0x88]
sbb eax, 0
sar eax, 0x1f
mov dword [esp + 0x1c], ecx
add esi, eax
adc eax, 0
sub esi, ecx
mov ecx, dword [esp + 0x184]
sbb eax, 0
mov dword [esp + 4], esi
mov esi, dword [esp + 0x90]
sar eax, 0x1f
add edi, eax
adc eax, 0
sub edi, ecx
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x188]
sbb eax, 0
sar eax, 0x1f
add esi, eax
adc eax, 0
sub esi, ecx
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x18c]
sbb eax, 0
mov dword [esp], esi
mov esi, dword [esp + 0x10]
sar eax, 0x1f
add ebx, eax
adc eax, 0
sub ebx, ecx
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x190]
sbb eax, 0
sar eax, 0x1f
add ebp, eax
adc eax, 0
sub ebp, ecx
mov dword [esp + 0x2c], ecx
mov ecx, 0
sbb eax, 0
sar eax, 0x1f
sub ebx, eax
sbb ecx, eax
add ebp, eax
add edx, eax
adc esi, eax
adc eax, dword [esp + 0xc]
adc dword [esp + 4], 0
adc edi, 0
adc dword [esp], 0
adc ebx, 0
adc ebp, ecx
sub edx, dword [esp + 8]
mov ecx, 0
sbb ecx, ecx
mov dword [esp + 0xc], edx
mov edx, 0
sar ecx, 0x1f
add esi, ecx
adc ecx, 0
sub esi, dword [esp + 0x14]
sbb ecx, 0
mov dword [esp + 0x10], esi
mov esi, dword [esp + 4]
sar ecx, 0x1f
add eax, ecx
adc ecx, 0
sub eax, dword [esp + 0x18]
sbb ecx, 0
sar ecx, 0x1f
add esi, ecx
adc ecx, 0
sub esi, dword [esp + 0x1c]
sbb ecx, 0
sar ecx, 0x1f
add edi, ecx
adc ecx, 0
sub edi, dword [esp + 0x24]
mov dword [esp + 8], edi
mov edi, dword [esp]
sbb ecx, 0
sar ecx, 0x1f
add edi, ecx
adc ecx, 0
sub edi, dword [esp + 0x20]
sbb ecx, 0
sar ecx, 0x1f
add ebx, ecx
adc ecx, 0
sub ebx, dword [esp + 0x28]
sbb ecx, 0
sar ecx, 0x1f
add ebp, ecx
adc ecx, 0
sub ebp, dword [esp + 0x2c]
sbb ecx, 0
sar ecx, 0x1f
sub ebx, ecx
sbb edx, ecx
add ebp, ecx
add dword [esp + 0xc], ecx
adc dword [esp + 0x10], ecx
adc ecx, eax
adc esi, 0
mov dword [esp + 4], esi
mov esi, dword [esp + 8]
adc esi, 0
adc edi, 0
mov dword [esp + 0x8c], esi
mov dword [esp + 8], esi
mov esi, dword [esp + 0x9c]
adc ebx, 0
mov dword [esp + 0x90], edi
mov dword [esp], edi
mov edi, dword [esp + 0x10]
adc ebp, edx
xor eax, eax
cmp dword [esp + 0x34], 0
mov dword [esp + 0x94], ebx
mov edx, dword [esp + 0x26c]
mov dword [esp + 0x98], ebp
sete al
cmp dword [esp + 0x38], 0
movd xmm0, eax
mov eax, dword [esp + 0x27c]
pshufd xmm0, xmm0, 0
pslld xmm0, 0x1f
psrad xmm0, 0x1f
movdqu xmm2, xmmword [eax]
movdqa xmm3, xmm0
movdqa xmm4, xmm0
pandn xmm3, xmm1
pand xmm2, xmm0
por xmm2, xmm3
movdqu xmmword [esp + 0x5c], xmm2
movdqu xmm1, xmmword [eax + 0x10]
movdqu xmm3, xmmword [esp + 0x6c]
movd eax, xmm2
pandn xmm4, xmm3
pand xmm1, xmm0
pshufd xmm3, xmm2, 0xe5
por xmm1, xmm4
movdqa xmm4, xmm0
movdqu xmmword [esp + 0x6c], xmm1
cmove eax, dword [edx]
mov dword [esi], eax
movd eax, xmm3
pshufd xmm3, xmm2, 0x4e
pshufd xmm2, xmm2, 0xe7
cmove eax, dword [edx + 4]
mov dword [esi + 4], eax
movd eax, xmm3
cmove eax, dword [edx + 8]
mov dword [esi + 8], eax
movd eax, xmm2
pshufd xmm2, xmm1, 0xe5
cmove eax, dword [edx + 0xc]
mov dword [esi + 0xc], eax
movd eax, xmm1
cmove eax, dword [edx + 0x10]
mov dword [esi + 0x10], eax
movd eax, xmm2
pshufd xmm2, xmm1, 0x4e
pshufd xmm1, xmm1, 0xe7
cmove eax, dword [edx + 0x14]
mov dword [esi + 0x14], eax
movd eax, xmm2
cmove eax, dword [edx + 0x18]
mov dword [esi + 0x18], eax
movd eax, xmm1
cmove eax, dword [edx + 0x1c]
cmp dword [esp + 0x34], 0
mov edx, dword [esp + 0xc]
mov dword [esi + 0x1c], eax
mov eax, dword [esp + 0x280]
cmove edx, dword [eax]
mov dword [esp + 0x7c], edx
mov esi, edx
mov edx, dword [esp + 4]
cmove edi, dword [eax + 4]
mov dword [esp + 0x80], edi
cmove ecx, dword [eax + 8]
mov dword [esp + 0x84], ecx
cmove edx, dword [eax + 0xc]
mov dword [esp + 4], edx
mov dword [esp + 0x88], edx
mov edx, dword [esp + 8]
cmove edx, dword [eax + 0x10]
mov dword [esp + 8], edx
mov dword [esp + 0x8c], edx
mov edx, dword [esp]
cmove edx, dword [eax + 0x14]
mov dword [esp + 0x90], edx
mov dword [esp], edx
mov edx, dword [esp + 0x270]
cmove ebx, dword [eax + 0x18]
mov dword [esp + 0x94], ebx
cmove ebp, dword [eax + 0x1c]
cmp dword [esp + 0x38], 0
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x98], ebp
cmove esi, dword [edx]
mov dword [eax], esi
cmove edi, dword [edx + 4]
mov dword [eax + 4], edi
cmove ecx, dword [edx + 8]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 4]
cmove ecx, dword [edx + 0xc]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 8]
cmove ecx, dword [edx + 0x10]
mov dword [eax + 0x10], ecx
mov ecx, dword [esp]
cmove ecx, dword [edx + 0x14]
mov dword [eax + 0x14], ecx
mov ecx, dword [esp + 0x274]
cmove ebx, dword [edx + 0x18]
mov dword [eax + 0x18], ebx
cmove ebp, dword [edx + 0x1c]
mov edx, dword [esp + 0x268]
mov dword [eax + 0x1c], ebp
mov eax, dword [esp + 0x284]
movdqu xmm2, xmmword [esp + 0x214]
movdqu xmm3, xmmword [esp + 0x224]
movdqu xmm1, xmmword [eax]
pandn xmm4, xmm2
pand xmm1, xmm0
por xmm1, xmm4
movdqu xmmword [esp + 0x214], xmm1
movdqu xmm2, xmmword [eax + 0x10]
movd eax, xmm1
pand xmm2, xmm0
pandn xmm0, xmm3
por xmm0, xmm2
pshufd xmm2, xmm1, 0xe5
movdqu xmmword [esp + 0x224], xmm0
movd esi, xmm2
pshufd xmm2, xmm1, 0x4e
pshufd xmm1, xmm1, 0xe7
cmove eax, dword [ecx]
movd edi, xmm2
mov dword [edx], eax
cmove esi, dword [ecx + 4]
mov dword [edx + 4], esi
movd esi, xmm1
pshufd xmm1, xmm0, 0xe5
cmove edi, dword [ecx + 8]
mov dword [edx + 8], edi
movd edi, xmm0
cmove esi, dword [ecx + 0xc]
mov dword [edx + 0xc], esi
movd esi, xmm1
pshufd xmm1, xmm0, 0x4e
pshufd xmm0, xmm0, 0xe7
cmove edi, dword [ecx + 0x10]
mov dword [edx + 0x10], edi
movd edi, xmm1
cmove esi, dword [ecx + 0x14]
mov dword [edx + 0x14], esi
movd esi, xmm0
cmove edi, dword [ecx + 0x18]
mov dword [edx + 0x18], edi
cmove esi, dword [ecx + 0x1c]
mov dword [edx + 0x1c], esi
add esp, 0x254
pop esi
pop edi
pop ebx
pop ebp
ret