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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x158
mov eax, dword [ebp + 8]
mov edi, dword [edx]
mov esi, edx
mov dword [esp + 0x14], edx
mov ebx, dword [eax]
mov eax, ebx
mov dword [esp + 0x3c], ebx
mul edi
mov dword [esp + 0x7c], edx
mov dword [esp + 0x78], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
mov dword [esp + 4], eax
mul edi
mov dword [esp + 0x5c], edi
mov dword [esp + 8], eax
mov dword [esp], edx
mov esi, dword [esi + 4]
mov eax, esi
mov dword [esp + 0x54], esi
mul ebx
add eax, dword [esp + 8]
adc edx, dword [esp]
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], edx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov dword [esp + 0x40], eax
mul edi
mov dword [esp], edx
mov ebx, eax
mov eax, esi
mul dword [esp + 4]
mov esi, edx
mov edi, eax
add edi, ebx
adc esi, dword [esp]
mov eax, dword [esp + 0x14]
mov ebx, dword [eax + 8]
mov eax, ebx
mov dword [esp + 0x10], ebx
mul dword [esp + 0x3c]
add eax, edi
adc edx, esi
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], edx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
mov dword [esp], eax
mul dword [esp + 0x5c]
mov dword [esp + 8], edx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x40]
mov edi, dword [esp + 0x54]
mul edi
mov dword [esp + 0x1c], edx
mov dword [esp + 0xc], eax
mov eax, ebx
mul dword [esp + 4]
mov esi, eax
mov ebx, edx
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x4c], eax
mul dword [esp + 0x3c]
add esi, dword [esp + 0xc]
adc ebx, dword [esp + 0x1c]
add esi, dword [esp + 0x20]
adc ebx, dword [esp + 8]
add esi, eax
adc ebx, edx
mov dword [esp + 0x90], esi
mov dword [esp + 0x94], ebx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x20], eax
mov ebx, dword [esp + 0x5c]
mul ebx
mov dword [esp + 8], edx
mov dword [esp + 0x1c], eax
mov eax, dword [esp]
mul edi
mov dword [esp + 0xc], edx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x10]
mul dword [esp + 0x40]
mov edi, edx
mov esi, eax
mov eax, dword [esp + 0x4c]
mul dword [esp + 4]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x50], edx
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x30], eax
mul dword [esp + 0x3c]
add esi, dword [esp + 0x18]
adc edi, dword [esp + 0xc]
add esi, dword [esp + 0x2c]
adc edi, dword [esp + 0x50]
add esi, dword [esp + 0x1c]
adc edi, dword [esp + 8]
add esi, eax
adc edi, edx
mov dword [esp + 0x98], esi
mov dword [esp + 0x9c], edi
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x14]
mov dword [esp + 8], eax
mul ebx
mov dword [esp + 0x1c], edx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x20]
mul dword [esp + 0x54]
mov dword [esp + 0x18], edx
mov dword [esp + 0x2c], eax
mov eax, dword [esp]
mul dword [esp + 0x10]
mov dword [esp + 0x60], edx
mov dword [esp + 0x28], eax
mov edi, dword [esp + 0x4c]
mov eax, edi
mul dword [esp + 0x40]
mov ebx, edx
mov esi, eax
mov eax, dword [esp + 0x30]
mul dword [esp + 4]
mov dword [esp + 0x24], eax
mov dword [esp + 0x48], edx
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x14]
mov dword [esp + 0x50], eax
mul dword [esp + 0x3c]
add esi, dword [esp + 0x28]
adc ebx, dword [esp + 0x60]
add esi, dword [esp + 0x2c]
adc ebx, dword [esp + 0x18]
add esi, dword [esp + 0x24]
adc ebx, dword [esp + 0x48]
add esi, dword [esp + 0xc]
adc ebx, dword [esp + 0x1c]
add esi, eax
adc ebx, edx
mov dword [esp + 0xa0], esi
mov dword [esp + 0xa4], ebx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
mov dword [esp + 0x1c], eax
mul dword [esp + 0x5c]
mov dword [esp + 0xc], edx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 8]
mul dword [esp + 0x54]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x20]
mul dword [esp + 0x10]
mov dword [esp + 0x28], edx
mov dword [esp + 0x38], eax
mov eax, edi
mul dword [esp]
mov esi, edx
mov edi, eax
mov eax, dword [esp + 0x30]
mul dword [esp + 0x40]
mov dword [esp + 0x44], edx
mov ebx, eax
mov eax, dword [esp + 0x50]
mul dword [esp + 4]
mov dword [esp + 0x34], eax
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x18]
mov dword [esp + 0x60], eax
mul dword [esp + 0x3c]
add edi, dword [esp + 0x38]
adc esi, dword [esp + 0x28]
add edi, ebx
adc esi, dword [esp + 0x44]
add edi, dword [esp + 0x48]
adc esi, dword [esp + 0x2c]
add edi, dword [esp + 0x34]
adc esi, dword [esp + 0x24]
add edi, dword [esp + 0x18]
adc esi, dword [esp + 0xc]
add edi, eax
adc esi, edx
mov dword [esp + 0xa8], edi
mov dword [esp + 0xac], esi
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0xc], eax
mul dword [esp + 0x5c]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x1c]
mul dword [esp + 0x54]
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], eax
mov eax, dword [esp + 8]
mul dword [esp + 0x10]
mov dword [esp + 0x38], edx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x20]
mul dword [esp + 0x4c]
mov dword [esp + 0x6c], edx
mov esi, eax
mov eax, dword [esp + 0x30]
mul dword [esp]
mov edi, edx
mov ebx, eax
mov eax, dword [esp + 0x50]
mul dword [esp + 0x40]
mov dword [esp + 0x68], edx
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x60]
mul dword [esp + 4]
mov dword [esp + 0x58], eax
mov dword [esp + 0x44], edx
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x18], eax
mul dword [esp + 0x3c]
add ebx, esi
adc edi, dword [esp + 0x6c]
add ebx, dword [esp + 0x34]
adc edi, dword [esp + 0x38]
add ebx, dword [esp + 0x64]
adc edi, dword [esp + 0x68]
add ebx, dword [esp + 0x24]
adc edi, dword [esp + 0x28]
add ebx, dword [esp + 0x58]
adc edi, dword [esp + 0x44]
add ebx, dword [esp + 0x48]
adc edi, dword [esp + 0x2c]
add ebx, eax
adc edi, edx
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xb4], edi
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x20]
mov dword [esp + 0x2c], eax
mul dword [esp + 0x5c]
mov dword [esp + 0x48], edx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0xc]
mul dword [esp + 0x54]
mov dword [esp + 0x24], edx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x1c]
mul dword [esp + 0x10]
mov dword [esp + 0x34], edx
mov dword [esp + 0x44], eax
mov eax, dword [esp + 8]
mul dword [esp + 0x4c]
mov dword [esp + 0x68], edx
mov edi, eax
mov eax, dword [esp + 0x30]
mul dword [esp + 0x20]
mov dword [esp + 0x5c], edx
mov ebx, eax
mov eax, dword [esp + 0x50]
mul dword [esp]
mov dword [esp + 0x74], edx
mov esi, eax
mov eax, dword [esp + 0x60]
mul dword [esp + 0x40]
mov dword [esp + 0x64], edx
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x18]
mul dword [esp + 4]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x58], edx
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x20]
mov dword [esp + 0x14], eax
mul dword [esp + 0x3c]
add ebx, edi
mov edi, dword [esp + 0x5c]
adc edi, dword [esp + 0x68]
add ebx, esi
adc edi, dword [esp + 0x74]
add ebx, dword [esp + 0x44]
adc edi, dword [esp + 0x34]
add ebx, dword [esp + 0x70]
adc edi, dword [esp + 0x64]
add ebx, dword [esp + 0x38]
adc edi, dword [esp + 0x24]
add ebx, dword [esp + 0x6c]
adc edi, dword [esp + 0x58]
add ebx, dword [esp + 0x28]
adc edi, dword [esp + 0x48]
add ebx, eax
mov dword [esp + 0x48], ebx
adc edi, edx
mov dword [esp + 0x5c], edi
mov eax, dword [esp + 0x2c]
mul dword [esp + 0x54]
mov dword [esp + 0x54], edx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0xc]
mul dword [esp + 0x10]
mov dword [esp + 0x24], edx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x1c]
mul dword [esp + 0x4c]
mov dword [esp + 0x34], edx
mov dword [esp + 0x44], eax
mov eax, dword [esp + 8]
mul dword [esp + 0x30]
mov dword [esp + 0x68], edx
mov ebx, eax
mov eax, dword [esp + 0x50]
mul dword [esp + 0x20]
mov dword [esp + 0x3c], edx
mov esi, eax
mov edi, dword [esp + 0x60]
mov eax, edi
mul dword [esp]
mov dword [esp + 0x64], edx
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x18]
mul dword [esp + 0x40]
mov dword [esp + 0x58], edx
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x14]
mul dword [esp + 4]
add esi, ebx
mov ebx, dword [esp + 0x3c]
adc ebx, dword [esp + 0x68]
add esi, dword [esp + 0x44]
adc ebx, dword [esp + 0x34]
add esi, dword [esp + 0x70]
adc ebx, dword [esp + 0x64]
add esi, dword [esp + 0x38]
adc ebx, dword [esp + 0x24]
add esi, dword [esp + 0x6c]
adc ebx, dword [esp + 0x58]
add esi, dword [esp + 0x28]
adc ebx, dword [esp + 0x54]
add esi, eax
mov dword [esp + 0x54], esi
adc ebx, edx
mov dword [esp + 0x3c], ebx
mov eax, dword [esp + 0x2c]
mul dword [esp + 0x10]
mov dword [esp + 0x10], edx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0xc]
mul dword [esp + 0x4c]
mov dword [esp + 0x24], edx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x30]
mul ebx
mov dword [esp + 0x34], edx
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x50]
mul dword [esp + 8]
mov dword [esp + 4], edx
mov esi, eax
mov eax, edi
mul dword [esp + 0x20]
mov dword [esp + 0x68], edx
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x18]
mul dword [esp]
mov dword [esp + 0x44], edx
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x14]
mul dword [esp + 0x40]
add esi, dword [esp + 0x58]
mov edi, dword [esp + 4]
adc edi, dword [esp + 0x34]
add esi, dword [esp + 0x64]
adc edi, dword [esp + 0x68]
add esi, dword [esp + 0x38]
adc edi, dword [esp + 0x24]
add esi, dword [esp + 0x6c]
adc edi, dword [esp + 0x44]
add esi, dword [esp + 0x28]
adc edi, dword [esp + 0x10]
add esi, eax
mov dword [esp + 0x40], esi
adc edi, edx
mov dword [esp + 4], edi
mov eax, dword [esp + 0x2c]
mul dword [esp + 0x4c]
mov dword [esp + 0x10], edx
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0xc]
mul ebx
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x50]
mul ebx
mov dword [esp + 0x38], edx
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x60]
mul dword [esp + 8]
mov esi, edx
mov edi, eax
mov eax, dword [esp + 0x18]
mul dword [esp + 0x20]
mov dword [esp + 0x34], edx
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x14]
mul dword [esp]
add edi, dword [esp + 0x44]
adc esi, dword [esp + 0x38]
add edi, dword [esp + 0x24]
adc esi, dword [esp + 0x28]
add edi, dword [esp + 0x58]
adc esi, dword [esp + 0x34]
add edi, dword [esp + 0x4c]
adc esi, dword [esp + 0x10]
add edi, eax
mov dword [esp + 0x4c], edi
adc esi, edx
mov dword [esp + 0x28], esi
mov eax, dword [esp + 0x2c]
mul dword [esp + 0x30]
mov dword [esp + 0x30], edx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xc]
mul ebx
mov dword [esp + 0x24], edx
mov esi, eax
mov edi, dword [esp + 0x60]
mov eax, edi
mul dword [esp + 0x1c]
mov dword [esp], edx
mov ebx, eax
mov eax, dword [esp + 0x18]
mul dword [esp + 8]
mov dword [esp + 0x38], edx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x14]
mul dword [esp + 0x20]
add ebx, esi
mov esi, dword [esp]
adc esi, dword [esp + 0x24]
add ebx, dword [esp + 0x34]
adc esi, dword [esp + 0x38]
add ebx, dword [esp + 0x10]
adc esi, dword [esp + 0x30]
add ebx, eax
adc esi, edx
mov dword [esp], esi
mov eax, dword [esp + 0x2c]
mul dword [esp + 0x50]
mov dword [esp + 0x30], eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x48]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xc]
mul edi
mov dword [esp + 0x48], eax
mov dword [esp + 0x50], edx
mov eax, dword [esp + 0x5c]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x18]
mul dword [esp + 0x1c]
mov esi, eax
mov edi, edx
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x14]
mul dword [esp + 8]
mov ecx, dword [esp + 4]
mov dword [esp + 0xcc], ecx
add esi, dword [esp + 0x48]
adc edi, dword [esp + 0x50]
add esi, dword [esp + 0x30]
adc edi, dword [esp + 0x20]
add esi, eax
adc edi, edx
mov eax, dword [esp + 0x2c]
mul dword [esp + 0x60]
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0x18]
mul dword [esp + 0xc]
mov ecx, eax
mov dword [esp + 0xd8], ebx
mov eax, dword [esp]
mov dword [esp + 0xdc], eax
add ecx, dword [esp + 4]
adc edx, dword [esp + 8]
mov dword [esp], edx
mov eax, dword [esp + 0x14]
mul dword [esp + 0x1c]
mov ebx, eax
add ebx, ecx
adc edx, dword [esp]
mov dword [esp + 8], edx
mov ecx, dword [esp + 0x2c]
mov eax, ecx
mul dword [esp + 0x18]
mov dword [esp + 4], eax
mov dword [esp], edx
mov dword [esp + 0xe0], esi
mov dword [esp + 0xe4], edi
mov edi, dword [esp + 0x14]
mov eax, edi
mul dword [esp + 0xc]
mov esi, edx
mov dword [esp + 0xe8], ebx
mov edx, dword [esp + 8]
mov dword [esp + 0xec], edx
add eax, dword [esp + 4]
adc esi, dword [esp]
mov dword [esp + 0xf0], eax
mov eax, edi
mul ecx
mov dword [esp + 0xf4], esi
mov dword [esp + 0xfc], edx
mov dword [esp + 0xf8], eax
xor eax, eax
mov ecx, 0xffffffbc
xor edx, edx
add eax, dword [esp + ecx*2 + 0x100]
adc edx, dword [esp + ecx*2 + 0x104]
mov esi, eax
and esi, 0x3fffffff
mov dword [esp + ecx + 0x150], esi
shrd eax, edx, 0x1e
shr edx, 0x1e
add ecx, 4
jne 0x415c9b
mov dword [esp + 0x150], eax
mov eax, 0xffffffb8
xorps xmm0, xmm0
movsd xmm1, qword [esp + eax + 0x154]
unpcklps xmm1, xmm0
movups xmmword [esp + eax*2 + 0x108], xmm1
add eax, 8
jne 0x415cd3
mov edi, dword [esp + 0x104]
mov esi, dword [esp + 0x100]
mov eax, dword [esp + 0xfc]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0xf4]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0xf0]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0xdc]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0xd8]
mov dword [esp], ecx
mov ebx, dword [esp + 0xc0]
mov ecx, dword [esp + 0xc4]
mov dword [esp + 0x14], ecx
mov edx, 0x12
mov ecx, edi
mov dword [esp + 0x3c], ebx
mov ebx, edi
shld edi, esi, 0x1e
sar ecx, 2
add edi, eax
mov dword [esp + 0x1c], edi
adc ecx, dword [esp + 0x18]
mov dword [esp + 0x40], ecx
mov eax, esi
and eax, 3
shl eax, 0x1c
mov dword [esp + 4], ebx
mov ecx, ebx
shld ecx, esi, 0x1c
sar ebx, 4
sub eax, ecx
mov edi, esi
mov esi, 0
sbb esi, ebx
add eax, dword [esp + 0x20]
adc esi, dword [esp + 0xc]
mov ecx, dword [esp + 0x1c]
mov dword [esp + edx*8 + 0x68], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + edx*8 + 0x6c], ecx
mov dword [esp + edx*8 + 0x60], eax
mov dword [esp + 0x18], esi
mov dword [esp + edx*8 + 0x64], esi
mov dword [esp + 8], edi
mov ecx, edi
and ecx, 0xf
shl ecx, 0x1a
mov esi, dword [esp + edx*8 + 0x58]
sub esi, ecx
mov dword [esp + 0x20], esi
mov esi, dword [esp + edx*8 + 0x5c]
sbb esi, 0
mov ebx, dword [esp + 4]
mov ecx, ebx
shld ecx, edi, 0x16
sar ebx, 0xa
sub dword [esp], ecx
mov ecx, dword [esp + 0x30]
sbb ecx, ebx
mov edi, dword [esp + 0x20]
mov dword [esp + edx*8 + 0x58], edi
mov dword [esp + 0xc], esi
mov dword [esp + edx*8 + 0x5c], esi
mov esi, dword [esp]
mov dword [esp + edx*8 + 0x48], esi
mov dword [esp + edx*8 + 0x4c], ecx
mov ecx, dword [esp + 8]
shl ecx, 0x14
and ecx, 0x3ff00000
mov esi, dword [esp + edx*8 + 0x40]
sub esi, ecx
mov dword [esp], esi
mov ecx, dword [esp + edx*8 + 0x44]
sbb ecx, 0
mov ebx, dword [esp + 4]
mov edi, dword [esp + 8]
shld ebx, edi, 0x10
mov edi, dword [esp + 4]
sar edi, 0x10
add ebx, dword [esp + 0x3c]
adc edi, dword [esp + 0x14]
mov esi, dword [esp + edx*8 + 0x2c]
mov dword [esp + 4], esi
mov esi, dword [esp]
mov dword [esp + edx*8 + 0x40], esi
mov dword [esp + 0x30], ecx
mov dword [esp + edx*8 + 0x44], ecx
mov dword [esp + edx*8 + 0x30], ebx
mov dword [esp + edx*8 + 0x34], edi
movzx ebx, word [esp + 8]
shl ebx, 0xe
add ebx, dword [esp + edx*8 + 0x28]
mov ecx, dword [esp + 4]
adc ecx, 0
mov dword [esp + edx*8 + 0x28], ebx
mov dword [esp + edx*8 + 0x2c], ecx
dec edx
cmp edx, 9
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x1c]
mov edi, ecx
ja 0x415d50
xor edx, edx
mov ecx, 0xffffffdc
xor edi, edi
mov ebx, dword [esp + 0x10]
mov esi, edx
add esi, dword [esp + ecx*2 + 0xc0]
mov eax, edi
adc eax, dword [esp + ecx*2 + 0xc4]
mov edi, esi
and edi, 0x3fffffff
mov edx, eax
shld edx, esi, 2
mov dword [ebx + ecx + 0x24], edi
mov edi, eax
sar edi, 0x1e
add ecx, 4
jne 0x415e94
shld eax, esi, 0x10
movzx edi, word [ebx + 0x20]
mov ecx, eax
shl ecx, 6
mov esi, dword [ebx + 0xc]
sub esi, ecx
mov edx, dword [ebx + 0x18]
mov ecx, eax
shl ecx, 0xc
and ecx, 0x3ffff000
sub edx, ecx
mov ecx, eax
sar ecx, 0x10
add ecx, edi
mov edi, eax
shr edi, 0x1f
mov ebx, edi
shl ebx, 6
add ebx, esi
mov esi, dword [esp + 0x10]
sub dword [esi], edi
mov esi, dword [esp + 0x10]
mov dword [esi + 0xc], ebx
mov ebx, dword [esp + 0x10]
mov esi, edi
shl esi, 0xc
add esi, edx
mov edx, eax
sar edx, 0x12
mov dword [ebx + 0x18], esi
mov esi, edi
shl esi, 0xe
add esi, edx
movzx edx, ax
shl edx, 0xe
add edx, dword [ebx + 0x1c]
sub edx, esi
mov dword [ebx + 0x1c], edx
shl edi, 0x10
add edi, ecx
mov dword [ebx + 0x20], edi
mov ecx, 0xffffffdc
add eax, dword [ebx + ecx + 0x24]
mov edx, eax
and edx, 0x3fffffff
mov dword [ebx + ecx + 0x24], edx
sar eax, 0x1e
add ecx, 4
jne 0x415f39
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret