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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x124
mov dword [esp + 0x78], edx
mov edx, dword [esp + 0x144]
mov edi, dword [esp + 0x13c]
mov ebx, dword [esp + 0x140]
mov dword [esp + 0x74], ecx
lea ecx, [esp + 0x54]
push edx
call fcn.00472750
add esp, 4
lea ecx, [esp + 0x7c]
mov edx, ebx
mov esi, ecx
push ebx
call fcn.00472750
add esp, 4
lea ecx, [esp + 0xe4]
mov edx, edi
push esi
call fcn.00472750
add esp, 4
mov eax, dword [edi + 0x1c]
mov ecx, dword [esp + 0x54]
mov edx, dword [edi + 0xc]
mov ebx, dword [edi + 8]
mov esi, 0
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0x18]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x44], ebx
mov dword [esp + 0xbc], edx
mov dword [esp + 0x24], eax
mov eax, dword [edi + 0x14]
mov dword [esp + 0x1c], eax
mov eax, dword [edi + 0x10]
mov dword [esp + 0x28], eax
mov eax, dword [edi]
mov edi, dword [edi + 4]
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x30], eax
sub eax, ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x34], edi
sbb esi, esi
mov dword [esp + 0x38], eax
mov eax, edi
mov edi, dword [esp + 0x1c]
sar esi, 0x1f
add eax, esi
adc esi, 0
sub eax, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x5c]
sbb esi, 0
sar esi, 0x1f
add ebx, esi
adc esi, 0
mov dword [esp + 0x2c], ecx
sub ebx, eax
mov dword [esp + 4], eax
mov eax, edx
mov edx, dword [esp + 0x24]
sbb esi, 0
sar esi, 0x1f
add eax, esi
adc esi, 0
sub eax, ecx
mov ecx, dword [esp + 0x64]
sbb esi, 0
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x68]
sar esi, 0x1f
add ebp, esi
adc esi, 0
sub ebp, ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x70]
sbb esi, 0
mov dword [esp + 0xc], eax
sar esi, 0x1f
add edi, esi
adc esi, 0
sub edi, eax
mov eax, dword [esp + 0x6c]
mov dword [esp], ecx
sbb esi, 0
sar esi, 0x1f
add edx, esi
adc esi, 0
sub edx, eax
mov dword [esp + 8], eax
mov eax, dword [esp + 0x18]
sbb esi, 0
sar esi, 0x1f
add eax, esi
adc esi, 0
sub eax, ecx
mov ecx, 0
sbb esi, 0
sar esi, 0x1f
sub edx, esi
sbb ecx, esi
add eax, esi
add dword [esp + 0x38], esi
adc dword [esp + 0x50], esi
adc esi, ebx
mov ebx, dword [esp + 0x14]
adc dword [esp + 0x3c], 0
adc ebp, 0
adc edi, 0
mov dword [esp + 0x40], ebp
adc edx, 0
mov dword [esp + 0x4c], edi
mov edi, dword [esp + 0x2c]
adc eax, ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x48], edx
mov edx, dword [esp + 4]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x20]
add eax, dword [esp + 0x30]
adc ecx, dword [esp + 0x34]
mov ebp, eax
mov dword [esp + 0x20], eax
adc edx, dword [esp + 0x44]
mov eax, ecx
mov dword [esp + 0x10], ecx
adc edi, dword [esp + 0xbc]
mov dword [esp + 4], edx
adc ebx, dword [esp + 0x28]
mov dword [esp + 0x2c], edi
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0xc]
adc ebx, dword [esp + 0x1c]
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 8]
adc ebx, dword [esp + 0x24]
mov dword [esp + 8], ebx
mov ebx, dword [esp]
adc ebx, dword [esp + 0x18]
setb byte [esp + 0x34]
add ebp, 1
mov dword [esp], ebx
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x18], ebp
mov ebp, 0
mov ecx, dword [esp]
adc ebp, 0xffffffff
sar ebp, 0x1f
add eax, ebp
adc ebp, 0
add eax, 1
adc ebp, 0xffffffff
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0xc]
sar ebp, 0x1f
add edx, ebp
adc ebp, 0
add edx, 1
adc ebp, 0xffffffff
mov dword [esp + 0x1c], edx
mov edx, 0
sar ebp, 0x1f
add edi, ebp
adc ebp, 0
mov dword [esp + 0x28], edi
movzx edi, byte [esp + 0x34]
sar ebp, 0x1f
add ebx, ebp
adc ebp, 0
sar ebp, 0x1f
add eax, ebp
adc ebp, 0
mov dword [esp + 0x30], eax
mov eax, ecx
shr ebp, 0x1f
not ebp
add ebp, dword [esp + 8]
adc edx, 0xffffffff
sar edx, 0x1f
add eax, edx
adc edx, 0
add eax, 1
adc edx, 0xffffffff
shr edx, 0x1f
cmp edi, edx
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x30]
cmovb eax, ecx
mov ecx, dword [esp + 0x28]
cmovb ebx, dword [esp + 0x14]
cmovb ebp, dword [esp + 8]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x24]
cmovb edx, dword [esp + 4]
cmovb edi, dword [esp + 0xc]
cmovb ecx, dword [esp + 0x2c]
mov dword [esp + 0x44], ebx
cmovb eax, dword [esp + 0x10]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x30], edi
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x18]
cmovb eax, dword [esp + 0x20]
mov dword [esp + 0x18], eax
mov eax, ecx
shld eax, edx, 1
mov edx, eax
mov dword [esp + 0x10], eax
mov eax, ebx
shld eax, ecx, 1
mov ecx, eax
mov dword [esp + 4], eax
mov eax, edi
shld edi, ebx, 1
mov ebx, edi
mov dword [esp + 0x2c], edi
mov edi, ebp
shld edi, eax, 1
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x34]
mov eax, edi
shld edi, ebp, 1
shr eax, 0x1f
mov dword [esp], eax
mov eax, edx
mov edx, 0
add eax, 0xffffffff
adc edx, 0xffffffff
mov dword [esp + 0x20], eax
mov eax, ecx
mov ecx, edi
sar edx, 0x1f
add eax, edx
adc edx, 0
mov dword [esp + 0xc], eax
mov eax, ebx
sar edx, 0x1f
add eax, edx
adc edx, 0
mov dword [esp + 8], eax
mov eax, 0
shr edx, 0x1f
not edx
add edx, dword [esp + 0x14]
adc eax, 0xffffffff
sar eax, 0x1f
add ecx, eax
adc eax, 0
add ecx, 1
adc eax, 0xffffffff
xor ebx, ebx
shr eax, 0x1f
cmp dword [esp], eax
mov eax, dword [esp + 8]
cmovb eax, dword [esp + 0x2c]
cmovb ecx, edi
mov edi, dword [esp + 0x20]
setae bl
cmovb edx, dword [esp + 0x14]
mov dword [esp], ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 0xc]
cmovb edi, dword [esp + 0x10]
cmovb eax, dword [esp + 4]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x18]
lea ecx, [ebx + eax*2]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x24]
mov ebx, ecx
shld ebx, eax, 1
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x14], ebx
shld dword [esp + 0x14], ecx, 1
add dword [esp + 0x10], eax
mov ebx, dword [esp + 4]
mov eax, dword [esp + 0x1c]
adc ebx, ecx
mov ecx, dword [esp + 0xc]
adc dword [esp + 0x14], eax
mov eax, dword [esp]
mov dword [esp + 4], ebx
adc edi, dword [esp + 0x28]
mov dword [esp + 0x20], edi
adc ecx, dword [esp + 0x44]
mov edi, dword [esp + 8]
adc edi, dword [esp + 0x30]
mov dword [esp + 0xc], ecx
adc edx, ebp
mov ebp, dword [esp + 0x14]
mov dword [esp + 8], edi
adc eax, dword [esp + 0x34]
mov dword [esp], eax
mov eax, dword [esp + 0x10]
setb byte [esp + 0x30]
add eax, 1
mov dword [esp + 0x2c], eax
mov eax, 0
adc eax, 0xffffffff
sar eax, 0x1f
add ebx, eax
adc eax, 0
add ebx, 1
adc eax, 0xffffffff
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x20]
sar eax, 0x1f
add ebp, eax
adc eax, 0
add ebp, 1
adc eax, 0xffffffff
sar eax, 0x1f
add ebx, eax
adc eax, 0
mov dword [esp + 0x34], ebx
movzx ebx, byte [esp + 0x30]
sar eax, 0x1f
add ecx, eax
adc eax, 0
mov dword [esp + 0x44], ecx
mov ecx, edi
mov edi, dword [esp]
sar eax, 0x1f
add ecx, eax
adc eax, 0
mov dword [esp + 0x1c], ecx
mov ecx, 0
shr eax, 0x1f
not eax
add eax, edx
adc ecx, 0xffffffff
sar ecx, 0x1f
add edi, ecx
adc ecx, 0
add edi, 1
adc ecx, 0xffffffff
shr ecx, 0x1f
cmp ebx, ecx
mov ecx, dword [esp + 0x38]
mov ebx, dword [esp + 0x44]
cmovb eax, edx
mov edx, dword [esp + 0x28]
cmovb ebp, dword [esp + 0x14]
cmovb edi, dword [esp]
mov dword [esp + 0x9c], ecx
mov ecx, dword [esp + 0x50]
cmovb ebx, dword [esp + 0xc]
cmovb edx, dword [esp + 4]
mov dword [esp + 0xa0], ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0xa4], esi
mov esi, dword [esp + 0x34]
mov dword [esp + 0xa8], ecx
mov ecx, dword [esp + 0x40]
cmovb esi, dword [esp + 0x20]
mov dword [esp + 0xac], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0xb0], ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + 0xb4], ecx
mov ecx, dword [esp + 0xc0]
mov dword [esp + 0xb8], ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xc4], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0xc8], ecx
mov ecx, dword [esp + 0x1c]
cmovb ecx, dword [esp + 8]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x2c]
cmovb ecx, dword [esp + 0x10]
mov dword [esp + 0xc4], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0xc8], edx
mov dword [esp + 0xcc], ebp
mov dword [esp + 0xd0], esi
mov dword [esp + 0xd4], ebx
lea esi, [esp + 0x104]
lea edx, [esp + 0x9c]
mov dword [esp + 0xd8], ecx
mov dword [esp + 0xdc], eax
lea eax, [esp + 0xc4]
mov dword [esp + 0xe0], edi
mov ecx, esi
push eax
call fcn.00472750
add esp, 4
mov ecx, dword [esp + 0x74]
mov edx, esi
push esi
call fcn.00472750
add esp, 4
mov edx, dword [esp + 0xe8]
mov esi, dword [esp + 0xe4]
mov ecx, dword [esp + 0xec]
mov edi, dword [esp + 0xf8]
mov ebp, dword [esp + 0xf4]
mov ebx, dword [esp + 0xf0]
mov eax, edx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], ecx
shld eax, esi, 1
mov esi, dword [esp + 0x100]
mov dword [esp + 0x30], eax
mov eax, ecx
shld eax, edx, 1
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xfc]
mov edx, esi
shr esi, 0x1f
mov dword [esp], esi
mov esi, 0
shld edx, eax, 1
shld eax, edi, 1
shld edi, ebp, 1
shld ebp, ebx, 1
shld ebx, ecx, 1
mov dword [esp + 0x24], edx
mov edx, eax
mov dword [esp + 0x10], eax
mov eax, ebx
add eax, 0xffffffff
mov ecx, dword [esp + 0x24]
adc esi, 0xffffffff
mov dword [esp + 0x20], eax
mov eax, ebp
sar esi, 0x1f
add eax, esi
adc esi, 0
mov dword [esp + 8], eax
mov eax, edi
sar esi, 0x1f
add eax, esi
adc esi, 0
mov dword [esp + 0xc], eax
mov eax, 0
shr esi, 0x1f
not esi
add esi, edx
adc eax, 0xffffffff
sar eax, 0x1f
add ecx, eax
adc eax, 0
add ecx, 1
adc eax, 0xffffffff
xor edx, edx
shr eax, 0x1f
cmp dword [esp], eax
mov eax, dword [esp + 0xc]
cmovb eax, edi
mov edi, dword [esp + 0x20]
setae dl
cmovb ecx, dword [esp + 0x24]
cmovb esi, dword [esp + 0x10]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 8]
cmovb edi, ebx
cmovb eax, ebp
mov dword [esp + 8], eax
mov eax, dword [esp + 0x1c]
lea edx, [edx + eax*2]
shr eax, 0x1e
and eax, 1
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
shr edx, 0x1e
shr eax, 0x1e
and edx, 1
and eax, 1
mov dword [esp + 0x18], eax
mov eax, edi
lea edi, [edx + edi*2]
mov edx, dword [esp + 8]
mov dword [esp], edi
shrd eax, edx, 0x1f
mov ebx, eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xc]
shrd edx, eax, 0x1f
shrd eax, esi, 0x1f
shrd esi, ecx, 0x1f
mov ebp, eax
mov eax, ecx
mov ecx, 0
mov dword [esp + 8], edx
shr eax, 0x1f
add edi, 0xffffffff
adc ecx, 0xffffffff
mov dword [esp + 0x14], edi
mov edi, ebp
sar ecx, 0x1f
add ebx, ecx
adc ecx, 0
mov dword [esp + 0xc], ebx
sar ecx, 0x1f
add edx, ecx
adc ecx, 0
shr ecx, 0x1f
not ecx
add ecx, ebp
mov ebp, esi
mov dword [esp + 0x24], ecx
mov ecx, 0
adc ecx, 0xffffffff
sar ecx, 0x1f
add ebp, ecx
adc ecx, 0
add ebp, 1
adc ecx, 0xffffffff
xor ebx, ebx
shr ecx, 0x1f
cmp eax, ecx
mov eax, dword [esp + 0x24]
mov ecx, ebp
cmovb ecx, esi
mov esi, edx
mov edx, dword [esp + 0xc]
setae bl
cmovb esi, dword [esp + 8]
mov dword [esp + 0x50], ecx
cmovb eax, edi
mov edi, dword [esp + 0x14]
cmovb edx, dword [esp + 0x20]
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x24], eax
mov dword [esp + 8], esi
cmovb edi, dword [esp]
lea ebx, [ebx + ebx]
mov ebp, edx
mov dword [esp + 0xc], edx
shrd ebx, edi, 0x1f
shld ebp, edi, 1
mov dword [esp + 0x14], edi
mov edi, esi
shld edi, edx, 1
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x34], ebp
mov edx, edi
mov dword [esp + 0x40], edi
mov edi, eax
shld edi, esi, 1
mov esi, ecx
shr esi, 0x1f
mov dword [esp + 0x38], esi
mov esi, ecx
mov ecx, 0
shld esi, eax, 1
mov eax, ebx
add eax, 0xffffffff
adc ecx, 0xffffffff
mov dword [esp + 4], eax
mov eax, ebp
mov ebp, dword [esp + 0x18]
sar ecx, 0x1f
add eax, ecx
adc ecx, 0
mov dword [esp + 0x10], eax
mov eax, edx
mov edx, esi
sar ecx, 0x1f
add eax, ecx
adc ecx, 0
mov dword [esp], eax
mov eax, 0
shr ecx, 0x1f
not ecx
add ecx, edi
adc eax, 0xffffffff
sar eax, 0x1f
add edx, eax
adc eax, 0
add edx, 1
adc eax, 0xffffffff
xor ebx, ebx
shr eax, 0x1f
cmp dword [esp + 0x38], eax
mov eax, dword [esp + 0x2c]
lea eax, [ebp + eax*2]
cmovb edx, esi
mov esi, dword [esp + 0x74]
cmovb ecx, edi
mov edi, dword [esp + 0x28]
setae bl
mov dword [esp + 0x18], eax
mov eax, dword [esp]
mov dword [esp + 0x38], edx
mov edx, dword [esi]
mov ebp, esi
cmovb eax, dword [esp + 0x40]
mov dword [esp], eax
mov eax, dword [esp + 0x10]
cmovb eax, dword [esp + 0x34]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 4]
cmovb eax, dword [esp + 0x3c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
lea eax, [eax + edi*2]
mov dword [esp + 0x20], eax
lea eax, [ebx + eax*2]
mov ebx, dword [esp + 0x30]
sub edx, eax
lea eax, [edi + edi]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x1c]
lea edi, [edx + ebx*2]
mov edx, 0
sbb edx, edx
mov dword [esp + 0x1c], edi
shrd eax, edi, 0x1f
mov edi, dword [esi + 4]
mov esi, dword [esp + 0x18]
sar edx, 0x1f
add edi, edx
adc edx, 0
sub edi, eax
lea eax, [ebx + ebx]
mov ebx, ebp
sbb edx, 0
shrd eax, esi, 0x1f
mov esi, dword [ebp + 8]
mov dword [esp + 0x28], edi
mov edi, dword [ebx + 0x14]
sar edx, 0x1f
add esi, edx
adc edx, 0
sub esi, eax
mov eax, dword [ebp + 0xc]
mov ebp, dword [ebp + 0x10]
sbb edx, 0
mov dword [esp + 0x30], esi
mov esi, dword [ebx + 0x18]
sar edx, 0x1f
add eax, edx
adc edx, 0
sub eax, dword [esp + 4]
sbb edx, 0
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x1c]
sar edx, 0x1f
add ebp, edx
adc edx, 0
sub ebp, dword [esp + 0x10]
sbb edx, 0
sar edx, 0x1f
add edi, edx
adc edx, 0
sub edi, dword [esp]
sbb edx, 0
sar edx, 0x1f
add esi, edx
adc edx, 0
sub esi, ecx
mov ecx, 0
sbb edx, 0
sar edx, 0x1f
add eax, edx
adc edx, 0
sub eax, dword [esp + 0x38]
sbb edx, 0
sar edx, 0x1f
sub esi, edx
sbb ecx, edx
add eax, edx
add dword [esp + 0x2c], edx
adc dword [esp + 0x28], edx
adc edx, dword [esp + 0x30]
adc dword [esp + 4], 0
adc ebp, 0
adc edi, 0
adc esi, 0
adc eax, ecx
mov ecx, ebx
mov ebx, dword [esp + 0x2c]
mov dword [ecx], ebx
mov ebx, dword [esp + 0x28]
mov dword [ecx + 4], ebx
mov dword [ecx + 8], edx
mov edx, dword [esp + 4]
mov dword [ecx + 0xc], edx
mov dword [ecx + 0x10], ebp
mov dword [ecx + 0x14], edi
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x1c], eax
mov edi, 0
mov eax, dword [esp + 0x54]
mov ebx, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x70]
add eax, dword [esp + 0x7c]
adc ebx, dword [esp + 0x80]
mov dword [esp + 0x30], eax
adc edx, dword [esp + 0x84]
mov dword [esp + 0x3c], ebx
mov esi, edx
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x60]
adc edx, dword [esp + 0x88]
mov ebp, edx
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x64]
adc edx, dword [esp + 0x8c]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x68]
adc edx, dword [esp + 0x90]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x6c]
adc edx, dword [esp + 0x94]
adc ecx, dword [esp + 0x98]
mov dword [esp + 0x2c], edx
mov edx, esi
mov esi, dword [esp + 4]
setb byte [esp + 0x34]
add eax, 1
mov dword [esp + 0x28], ecx
adc edi, 0xffffffff
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
sar edi, 0x1f
add ebx, edi
adc edi, 0
add ebx, 1
adc edi, 0xffffffff
sar edi, 0x1f
add edx, edi
adc edi, 0
add edx, 1
adc edi, 0xffffffff
sar edi, 0x1f
add ebp, edi
adc edi, 0
mov dword [esp + 0x48], ebp
movzx ebp, byte [esp + 0x34]
sar edi, 0x1f
add eax, edi
adc edi, 0
mov dword [esp], eax
mov eax, 0
sar edi, 0x1f
add esi, edi
adc edi, 0
shr edi, 0x1f
not edi
add edi, dword [esp + 0x2c]
adc eax, 0xffffffff
sar eax, 0x1f
add ecx, eax
adc eax, 0
add ecx, 1
adc eax, 0xffffffff
shr eax, 0x1f
cmp ebp, eax
mov eax, dword [esp]
mov ebp, dword [esp + 0x48]
cmovb edx, dword [esp + 0x40]
cmovb ebx, dword [esp + 0x3c]
cmovb ecx, dword [esp + 0x28]
cmovb edi, dword [esp + 0x2c]
cmovb esi, dword [esp + 4]
cmovb eax, dword [esp + 0x10]
cmovb ebp, dword [esp + 0x4c]
mov dword [esp], eax
mov eax, dword [esp + 0x38]
cmovb eax, dword [esp + 0x30]
mov dword [esp + 0x54], eax
mov eax, dword [esp]
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], edx
mov dword [esp + 0x60], ebp
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x144]
mov dword [esp + 0x68], esi
mov dword [esp + 0x6c], edi
mov dword [esp + 0x70], ecx
mov ecx, dword [eax + 0x1c]
mov ebp, dword [eax + 0x14]
mov ebx, dword [eax + 0x10]
mov edi, dword [eax + 0xc]
mov esi, dword [eax + 8]
mov edx, dword [eax + 4]
mov dword [esp + 0x10], ecx
mov ecx, dword [eax + 0x18]
mov dword [esp + 4], ecx
mov ecx, dword [eax]
mov eax, dword [esp + 0x140]
add ecx, dword [eax]
adc edx, dword [eax + 4]
mov dword [esp + 0x3c], ecx
adc esi, dword [eax + 8]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 4]
adc edi, dword [eax + 0xc]
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x28]
adc ebx, dword [eax + 0x10]
mov dword [esp + 0x4c], edi
adc ebp, dword [eax + 0x14]
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x38], ebp
adc edx, dword [eax + 0x18]
mov ebp, dword [esp + 0x10]
adc ebp, dword [eax + 0x1c]
mov eax, 0
mov dword [esp + 4], edx
setb byte [esp + 0x40]
add ecx, 1
mov dword [esp + 0x10], ebp
adc eax, 0xffffffff
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x30]
sar eax, 0x1f
add ebx, eax
adc eax, 0
add ebx, 1
adc eax, 0xffffffff
sar eax, 0x1f
add esi, eax
adc eax, 0
add esi, 1
adc eax, 0xffffffff
sar eax, 0x1f
add edi, eax
adc eax, 0
mov dword [esp + 0x48], edi
mov edi, dword [esp + 0x38]
sar eax, 0x1f
add ecx, eax
adc eax, 0
mov dword [esp], ecx
mov ecx, 0
sar eax, 0x1f
add edi, eax
adc eax, 0
shr eax, 0x1f
not eax
add eax, edx
mov edx, ebp
movzx ebp, byte [esp + 0x40]
adc ecx, 0xffffffff
sar ecx, 0x1f
add edx, ecx
adc ecx, 0
add edx, 1
adc ecx, 0xffffffff
shr ecx, 0x1f
cmp ebp, ecx
mov ecx, dword [esp]
mov ebp, dword [esp + 0x48]
cmovb esi, dword [esp + 0x28]
cmovb ebx, dword [esp + 0x2c]
cmovb edx, dword [esp + 0x10]
cmovb eax, dword [esp + 4]
cmovb edi, dword [esp + 0x38]
cmovb ecx, dword [esp + 0x30]
cmovb ebp, dword [esp + 0x4c]
mov dword [esp], ecx
mov ecx, dword [esp + 0x34]
cmovb ecx, dword [esp + 0x3c]
mov dword [esp + 0x9c], ecx
mov ecx, dword [esp]
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xa4], esi
mov esi, dword [esp + 0x138]
mov dword [esp + 0xa8], ebp
mov dword [esp + 0xac], ecx
mov dword [esp + 0xb0], edi
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], edx
lea edx, [esp + 0x9c]
mov ecx, esi
push edx
call fcn.00472750
add esp, 4
mov eax, dword [esi]
mov ecx, 0
mov edi, dword [esi + 0xc]
mov ebx, dword [esi + 0x10]
mov ebp, dword [esi + 0x14]
mov edx, dword [esi + 0x18]
pxor xmm2, xmm2
sub eax, dword [esp + 0x54]
mov dword [esp], eax
mov eax, dword [esi + 4]
sbb ecx, ecx
sar ecx, 0x1f
add eax, ecx
adc ecx, 0
sub eax, dword [esp + 0x58]
mov dword [esp + 0x10], eax
mov eax, dword [esi + 8]
sbb ecx, 0
sar ecx, 0x1f
add eax, ecx
adc ecx, 0
sub eax, dword [esp + 0x5c]
sbb ecx, 0
mov dword [esp + 4], eax
mov eax, dword [esi + 0x1c]
mov esi, 0
sar ecx, 0x1f
add edi, ecx
adc ecx, 0
sub edi, dword [esp + 0x60]
sbb ecx, 0
sar ecx, 0x1f
add ebx, ecx
adc ecx, 0
sub ebx, dword [esp + 0x64]
sbb ecx, 0
sar ecx, 0x1f
add ebp, ecx
adc ecx, 0
sub ebp, dword [esp + 0x68]
sbb ecx, 0
sar ecx, 0x1f
add edx, ecx
adc ecx, 0
sub edx, dword [esp + 0x6c]
sbb ecx, 0
sar ecx, 0x1f
add eax, ecx
adc ecx, 0
sub eax, dword [esp + 0x70]
sbb ecx, 0
sar ecx, 0x1f
sub edx, ecx
sbb esi, ecx
add eax, ecx
add dword [esp], ecx
adc dword [esp + 0x10], ecx
adc ecx, dword [esp + 4]
adc edi, 0
adc ebx, 0
mov dword [esp + 4], edi
mov edi, dword [esp]
adc ebp, 0
adc edx, 0
adc eax, esi
mov esi, dword [esp + 0x138]
mov dword [esi], edi
mov edi, dword [esp + 0x10]
mov dword [esi + 4], edi
mov dword [esi + 8], ecx
mov ecx, dword [esp + 4]
mov dword [esi + 0xc], ecx
mov dword [esi + 0x10], ebx
mov dword [esi + 0x14], ebp
mov dword [esi + 0x18], edx
mov dword [esi + 0x1c], eax
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x24]
mov ebx, dword [esp + 0x50]
sub eax, dword [edx]
mov esi, edx
mov dword [esp + 0x20], eax
mov eax, 0
sbb eax, eax
mov edi, dword [esp + 0x20]
sar eax, 0x1f
add ecx, eax
adc eax, 0
sub ecx, dword [edx + 4]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x18]
sbb eax, 0
sar eax, 0x1f
add ecx, eax
adc eax, 0
sub ecx, dword [edx + 8]
mov edx, dword [esp + 0x14]
sbb eax, 0
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
sar eax, 0x1f
add edx, eax
adc eax, 0
sub edx, dword [esi + 0xc]
sbb eax, 0
sar eax, 0x1f
add ecx, eax
adc eax, 0
sub ecx, dword [esi + 0x10]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 8]
sbb eax, 0
sar eax, 0x1f
add ecx, eax
adc eax, 0
sub ecx, dword [esi + 0x14]
sbb eax, 0
mov dword [esp + 8], ecx
mov ecx, 0
sar eax, 0x1f
add ebp, eax
adc eax, 0
sub ebp, dword [esi + 0x18]
sbb eax, 0
sar eax, 0x1f
add ebx, eax
adc eax, 0
sub ebx, dword [esi + 0x1c]
mov esi, dword [esp + 0x1c]
sbb eax, 0
sar eax, 0x1f
sub ebp, eax
sbb ecx, eax
add ebx, eax
add edi, eax
adc esi, eax
adc eax, dword [esp + 0x18]
adc edx, 0
adc dword [esp + 0xc], 0
adc dword [esp + 8], 0
adc ebp, 0
adc ebx, ecx
mov ecx, dword [esp + 0x78]
mov dword [ecx], edi
mov dword [ecx + 4], esi
mov dword [ecx + 8], eax
mov eax, dword [esp + 0xc]
mov dword [ecx + 0xc], edx
mov dword [ecx + 0x10], eax
mov eax, dword [esp + 8]
mov dword [ecx + 0x14], eax
mov dword [ecx + 0x18], ebp
mov dword [ecx + 0x1c], ebx
movdqu xmm0, xmmword [esp + 0x88]
mov eax, dword [esp + 0x84]
mov edi, dword [esp + 0x98]
mov edx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x80]
movd xmm4, dword [esp + 0x98]
movd esi, xmm0
movdqa xmm3, xmm0
movdqa xmm1, xmm0
shr edi, 0x1f
mov dword [esp + 0x18], edx
psrldq xmm0, 0xc
shld esi, eax, 1
punpckhdq xmm3, xmm2
punpckldq xmm1, xmm2
mov dword [esp + 0x14], edi
punpcklqdq xmm0, xmm4
mov ebx, esi
movdqa xmm2, xmm1
shufpd xmm1, xmm3, 1
mov dword [esp + 0x24], 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
add edi, 0xffffffff
por xmm1, xmm2
mov dword [esp + 0xc], esi
mov dword [esp + 8], 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 + 8]
sar eax, 0x1f
add ecx, eax
adc eax, 0
add ecx, 1
adc eax, 0xffffffff
xor ebx, ebx
movd xmm4, ecx
mov ecx, dword [esp + 0xc]
shr eax, 0x1f
punpcklqdq xmm2, xmm4
cmp dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
setae bl
cmovb edi, dword [esp + 0x24]
movd xmm6, ebx
lea eax, [ebx + eax*2]
pshufd xmm4, xmm6, 0x44
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], edx
mov dword [esp + 0x84], ecx
lea ecx, [esp + 0x7c]
psllq xmm4, 0x3f
mov edx, ecx
psrad xmm4, 0x1f
mov dword [esp + 0x88], 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 + 0x8c], xmm4
push ecx
call fcn.00472750
add esp, 4
mov ecx, dword [esp + 0x78]
lea edx, [esp + 0x104]
push ecx
call fcn.00472750
add esp, 4
mov ecx, dword [esp + 0x98]
mov edi, dword [esp + 0x94]
mov esi, dword [esp + 0x90]
mov eax, dword [esp + 0x8c]
mov ebp, dword [esp + 0x88]
mov edx, ecx
shr ecx, 0x1f
shld edx, edi, 1
shld edi, esi, 1
shld esi, eax, 1
shld eax, ebp, 1
mov dword [esp + 0x14], ecx
mov ecx, 0
mov ebx, edx
mov dword [esp + 0x20], edx
mov edx, eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x84]
shld ebp, eax, 1
mov dword [esp + 0x1c], eax
mov eax, ebp
add eax, 0xffffffff
adc ecx, 0xffffffff
mov dword [esp + 0x18], eax
mov eax, edx
mov edx, ebx
sar ecx, 0x1f
add eax, ecx
adc ecx, 0
mov dword [esp + 8], eax
mov eax, esi
sar ecx, 0x1f
add eax, ecx
adc ecx, 0
mov dword [esp + 0xc], eax
mov eax, 0
shr ecx, 0x1f
not ecx
add ecx, edi
adc eax, 0xffffffff
sar eax, 0x1f
add edx, eax
adc eax, 0
add edx, 1
adc eax, 0xffffffff
xor ebx, ebx
shr eax, 0x1f
cmp dword [esp + 0x14], eax
mov eax, dword [esp + 0xc]
cmovb eax, esi
cmovb ecx, edi
mov edi, dword [esp + 0x78]
cmovb edx, dword [esp + 0x20]
setae bl
mov dword [esp + 0xc], eax
mov eax, dword [esp + 8]
mov esi, dword [edi]
mov dword [esp + 0x20], edx
cmovb eax, dword [esp + 0x24]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x18]
cmovb eax, ebp
mov ebp, dword [edi + 0x10]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x7c]
lea edx, [ebx + eax*2]
mov ebx, dword [edi + 4]
sub esi, edx
mov edx, dword [esp + 0x80]
mov dword [esp + 0x24], esi
mov esi, 0
sbb esi, esi
sar esi, 0x1f
shrd eax, edx, 0x1f
add ebx, esi
adc esi, 0
sub ebx, eax
mov eax, dword [esp + 0x1c]
sbb esi, 0
mov dword [esp + 0x14], ebx
mov ebx, dword [edi + 0x18]
sar esi, 0x1f
shld eax, edx, 1
mov edx, dword [edi + 8]
add edx, esi
adc esi, 0
sub edx, eax
mov eax, dword [edi + 0xc]
sbb esi, 0
mov dword [esp + 0x1c], edx
mov edx, dword [edi + 0x14]
sar esi, 0x1f
add eax, esi
adc esi, 0
sub eax, dword [esp + 0x18]
sbb esi, 0
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0x1c]
sar esi, 0x1f
add ebp, esi
adc esi, 0
sub ebp, dword [esp + 8]
sbb esi, 0
sar esi, 0x1f
add edx, esi
adc esi, 0
sub edx, dword [esp + 0xc]
sbb esi, 0
sar esi, 0x1f
add ebx, esi
adc esi, 0
sub ebx, ecx
mov ecx, 0
sbb esi, 0
sar esi, 0x1f
add eax, esi
adc esi, 0
sub eax, dword [esp + 0x20]
sbb esi, 0
sar esi, 0x1f
sub ebx, esi
sbb ecx, esi
add eax, esi
add dword [esp + 0x24], esi
adc dword [esp + 0x14], esi
adc esi, dword [esp + 0x1c]
adc dword [esp + 0x18], 0
adc ebp, 0
adc edx, 0
adc ebx, 0
adc eax, ecx
mov ecx, edi
mov edi, dword [esp + 0x24]
mov dword [ecx], edi
mov edi, dword [esp + 0x14]
mov dword [ecx + 4], edi
mov dword [ecx + 8], esi
mov esi, dword [esp + 0x18]
mov dword [ecx + 0xc], esi
mov dword [ecx + 0x10], ebp
mov dword [ecx + 0x14], edx
mov dword [ecx + 0x18], ebx
mov dword [ecx + 0x1c], eax
add esp, 0x124
pop esi
pop edi
pop ebx
pop ebp
ret