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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x6c
push ebx
push esi
mov esi, edx
mov edx, ecx
mov dword [esp + 0xc], edx
push edi
cmp esi, 0x20
ja 0x45ebed
cmp esi, 0x10
jbe 0x45f490
push 0xb492b66f
push 0xbe98f273
push dword [edx + 4]
lea edi, [esi + esi]
xor ebx, ebx
push dword [edx]
add edi, 0x2f90404f
mov dword [esp + 0x68], edi
adc ebx, 0x9ae16a3b
mov dword [esp + 0x6c], ebx
call fcn.0047efa0
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x10]
push ebx
push edi
mov dword [esp + 0x5c], edx
push dword [eax + esi - 4]
push dword [eax + esi - 8]
call fcn.0047efa0
mov edi, eax
mov ebx, edx
mov eax, dword [esp + 0x10]
push 0x9ae16a3b
push 0x2f90404f
push dword [eax + esi - 0xc]
push dword [eax + esi - 0x10]
call fcn.0047efa0
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x48], edx
push dword [esp + 0x5c]
mov esi, dword [eax + 8]
mov ecx, dword [eax + 0xc]
add esi, 0x2f90404f
mov eax, esi
adc ecx, 0x9ae16a3b
xor edx, edx
shrd esi, ecx, 0x12
shl eax, 0xe
shr ecx, 0x12
or edx, esi
or eax, ecx
mov esi, edi
mov ecx, dword [esp + 0x58]
add edx, edi
push dword [esp + 0x5c]
adc eax, ebx
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x68]
add edx, eax
mov dword [esp + 0x68], edx
adc dword [esp + 0x58], ecx
xor edx, edx
shrd edi, ebx, 0x1e
shl esi, 2
or edx, edi
shr ebx, 0x1e
mov edi, dword [esp + 0x18]
or esi, ebx
mov ebx, dword [edi + 8]
add ebx, eax
mov eax, edi
mov edi, dword [eax + 0xc]
adc edi, ecx
xor eax, eax
mov ecx, edi
shld edi, ebx, 0x15
shr ecx, 0xb
shl ebx, 0x15
or eax, edi
or ecx, ebx
add ecx, edx
adc eax, esi
add ecx, dword [esp + 0x54]
adc eax, dword [esp + 0x50]
xor eax, dword [esp + 0x58]
xor ecx, dword [esp + 0x68]
push eax
push ecx
call fcn.0047efa0
mov esi, edx
mov ebx, dword [esp + 0x5c]
xor ecx, ecx
xor ecx, dword [esp + 0x50]
mov edi, dword [esp + 0x58]
xor ecx, edx
push ebx
shr esi, 0xf
xor esi, dword [esp + 0x64]
push edi
xor esi, eax
push ecx
push esi
call fcn.0047efa0
push ebx
push edi
xor ecx, ecx
mov esi, edx
xor ecx, edx
shr esi, 0xf
push ecx
xor esi, eax
push esi
call fcn.0047efa0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea ecx, [edx + esi]
mov dword [esp + 0x14], ecx
cmp esi, 0x40
ja 0x45ee1f
mov eax, dword [ecx - 0x18]
lea edi, [esi + esi]
push 0x9ae16a3b
push 0x2f90404f
push dword [edx + 0x14]
xor ebx, ebx
mov dword [esp + 0x44], eax
mov eax, dword [ecx - 0x14]
add edi, 0x2f90404f
push dword [edx + 0x10]
adc ebx, 0x9ae16a3b
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], eax
call fcn.0047efa0
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x48], edx
push ebx
mov edx, dword [ecx + 0x1c]
mov esi, edx
mov eax, dword [ecx + 0x18]
mov ecx, eax
mov ebx, dword [esp + 0x18]
shld esi, ecx, 3
push edi
shl ecx, 3
push dword [ebx - 0xc]
add eax, ecx
push dword [ebx - 0x10]
adc edx, esi
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], edx
call fcn.0047efa0
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x10]
push 0x9ae16a3b
push 0x2f90404f
mov dword [esp + 0x5c], edx
push dword [eax + 4]
push dword [eax]
call fcn.0047efa0
mov esi, eax
add esi, dword [ebx - 8]
mov eax, esi
adc edx, dword [ebx - 4]
xor ebx, ebx
mov ecx, edx
mov edi, edx
shld ecx, eax, 0x15
shr edi, 0xb
or ebx, ecx
shl eax, 0x15
mov ecx, dword [esp + 0x10]
or edi, eax
mov dword [esp + 0x50], ebx
mov dword [esp + 0x60], edi
xor edi, edi
mov eax, dword [ecx + 8]
mov ebx, eax
mov ecx, dword [ecx + 0xc]
shrd eax, ecx, 0x1e
shl ebx, 2
shr ecx, 0x1e
or edi, eax
or ebx, ecx
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx - 0x20]
xor eax, esi
mov esi, dword [ecx - 0x1c]
xor esi, edx
add eax, dword [esp + 0x40]
adc esi, dword [esp + 0x3c]
add eax, 1
mov dword [esp + 0x5c], eax
adc esi, 0
add edi, dword [esp + 0x38]
mov dword [esp + 0x44], esi
mov eax, edi
adc ebx, dword [esp + 0x34]
mov ecx, ebx
push dword [esp + 0x30]
shld ecx, eax, 3
push dword [esp + 0x30]
shl eax, 3
add edi, eax
adc ebx, ecx
add edi, dword [esp + 0x68]
adc ebx, dword [esp + 0x58]
add edi, dword [esp + 0x64]
adc ebx, esi
push ebx
push edi
call fcn.0047efa0
mov ecx, dword [esp + 0x3c]
mov esi, eax
mov eax, dword [esp + 0x40]
push dword [esp + 0x30]
bswap edx
add edx, dword [esp + 0x5c]
push dword [esp + 0x30]
bswap esi
adc esi, dword [esp + 0x5c]
add eax, dword [esp + 0x54]
mov dword [esp + 0x48], eax
adc ecx, dword [esp + 0x50]
xor edi, edi
mov ebx, ecx
mov dword [esp + 0x44], ecx
shld ecx, eax, 0x16
shr ebx, 0xa
shl eax, 0x16
or edi, ecx
mov ecx, dword [esp + 0x3c]
or ebx, eax
mov eax, dword [esp + 0x40]
add ebx, eax
adc edi, ecx
add eax, dword [esp + 0x48]
mov dword [esp + 0x40], eax
adc ecx, dword [esp + 0x44]
add edx, dword [esp + 0x64]
mov dword [esp + 0x3c], ecx
adc esi, dword [esp + 0x4c]
push esi
push edx
call fcn.0047efa0
mov ecx, dword [esp + 0x14]
push dword [esp + 0x30]
bswap edx
add edx, dword [esp + 0x3c]
push dword [esp + 0x30]
bswap eax
adc eax, dword [esp + 0x3c]
add edx, ebx
adc eax, edi
add edx, dword [ecx - 8]
adc eax, dword [ecx - 4]
push eax
push edx
call fcn.0047efa0
mov ecx, dword [esp + 0x10]
push dword [esp + 0x30]
bswap edx
add edx, dword [esp + 0x3c]
push dword [esp + 0x30]
bswap eax
adc eax, dword [esp + 0x3c]
add edx, dword [ecx + 8]
adc eax, dword [ecx + 0xc]
push eax
push edx
call fcn.0047efa0
mov esi, eax
mov eax, dword [esp + 0x14]
add esi, dword [esp + 0x58]
adc edx, dword [esp + 0x54]
add esi, dword [eax - 0x20]
adc edx, dword [eax - 0x1c]
mov ecx, edx
shr ecx, 0xf
xor eax, eax
push dword [esp + 0x30]
xor eax, edx
xor ecx, esi
push dword [esp + 0x30]
push eax
push ecx
call fcn.0047efa0
add eax, ebx
adc edx, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ecx - 0x38]
add eax, dword [ecx - 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [ecx - 0x18]
mov dword [esp + 0x34], eax
mov eax, dword [ecx - 0x34]
adc eax, dword [ecx - 0xc]
mov ecx, esi
add ecx, dword [edx - 0x30]
mov dword [esp + 0x40], eax
mov eax, dword [edx - 0x2c]
push 0x9ddfea08
adc eax, 0
xor ecx, ebx
xor eax, dword [edx - 0x14]
push 0xeb382d69
push eax
push ecx
call fcn.0047efa0
mov edi, edx
xor ecx, ecx
shr edi, 0xf
xor edi, ebx
mov ebx, dword [esp + 0x14]
push 0x9ddfea08
push 0xeb382d69
xor edi, eax
xor ecx, dword [ebx - 0x14]
xor ecx, edx
push ecx
push edi
call fcn.0047efa0
push 0x9ddfea08
mov edi, edx
xor ecx, ecx
push 0xeb382d69
xor ecx, edx
shr edi, 0xf
xor edi, eax
push ecx
push edi
call fcn.0047efa0
mov ecx, dword [ebx - 0x28]
mov edi, dword [ebx - 0x2c]
mov dword [esp + 0x4c], eax
mov eax, dword [ebx - 0x24]
mov dword [esp + 0x20], eax
mov eax, esi
add eax, dword [ebx - 0x40]
mov dword [esp + 0x50], edx
mov edx, dword [ebx - 0x30]
mov ebx, dword [ebx - 0x3c]
adc ebx, 0
mov dword [esp + 0x54], eax
mov dword [esp + 0x24], ecx
add ecx, eax
mov eax, dword [esp + 0x20]
adc eax, ebx
mov dword [esp + 0x58], ebx
add ecx, dword [esp + 0x4c]
mov dword [esp + 0x38], ecx
adc eax, dword [esp + 0x50]
xor ebx, ebx
shl dword [esp + 0x38], 0xb
shrd ecx, eax, 0x15
or ebx, ecx
shr eax, 0x15
or dword [esp + 0x38], eax
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x6c], ebx
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], ecx
add edx, dword [ebx - 0x38]
adc edi, dword [ebx - 0x34]
add eax, edx
mov dword [esp + 0x54], eax
adc ecx, edi
mov dword [esp + 0x58], ecx
mov edx, ecx
shld ecx, eax, 0x14
shr edx, 0xc
xor edi, edi
shl eax, 0x14
or edi, ecx
mov ecx, dword [ebx - 8]
or edx, eax
mov eax, dword [ebx - 4]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x34]
add eax, dword [ebx - 0x20]
mov dword [esp + 0x18], edx
mov edx, dword [ebx - 0x10]
mov dword [esp + 0x2c], edi
mov edi, dword [ebx - 0xc]
mov ebx, dword [ebx - 0x1c]
adc ebx, dword [esp + 0x40]
add eax, 0xbe98f273
mov dword [esp + 0x44], eax
adc ebx, 0xb492b66f
mov dword [esp + 0x30], ecx
add ecx, eax
mov dword [esp + 0x5c], ebx
mov eax, dword [esp + 0x28]
adc eax, ebx
mov ebx, dword [esp + 0x14]
push 0xb492b66f
push 0xbe98f273
add ecx, dword [ebx - 0x28]
mov dword [esp + 0x44], ecx
adc eax, dword [ebx - 0x24]
xor ebx, ebx
shl dword [esp + 0x44], 0xb
shrd ecx, eax, 0x15
shr eax, 0x15
or ebx, ecx
or dword [esp + 0x44], eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x7c], ebx
mov ebx, dword [esp + 0x4c]
add edx, dword [eax - 0x18]
mov dword [esp + 0x78], ecx
adc edi, dword [eax - 0x14]
mov eax, ebx
add eax, edx
mov dword [esp + 0x4c], eax
adc ecx, edi
xor edx, edx
mov edi, ecx
mov dword [esp + 0x64], ecx
shld ecx, eax, 0x14
shr edi, 0xc
shl eax, 0x14
or edx, ecx
or edi, eax
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x1c]
push dword [eax - 0x24]
push dword [eax - 0x28]
call fcn.0047efa0
mov ecx, eax
mov eax, dword [esp + 0x10]
add ecx, dword [eax]
mov dword [esp + 0x48], ecx
lea ecx, [esi - 1]
adc edx, dword [eax + 4]
and ecx, 0xffffffc0
mov esi, dword [esp + 0x18]
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x24]
add ecx, dword [esp + 0x54]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x20]
adc ecx, dword [esp + 0x58]
add esi, dword [esp + 0x64]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x2c]
adc ecx, dword [esp + 0x68]
add esi, dword [esp + 0x6c]
mov dword [esp + 0x18], esi
adc ecx, dword [esp + 0x38]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x30]
add ecx, dword [esp + 0x44]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x28]
adc ecx, dword [esp + 0x5c]
add edi, ebx
mov dword [esp + 0x28], ecx
lea ebx, [eax + 0x30]
mov ecx, dword [esp + 0x1c]
adc ecx, dword [esp + 0x70]
add edi, dword [esp + 0x74]
mov dword [esp + 0x10], edi
adc ecx, dword [esp + 0x3c]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], ebx
jmp 0x45f088
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x58]
mov ecx, dword [ebx - 0x28]
add ecx, dword [esp + 0x24]
mov eax, dword [ebx - 0x24]
adc eax, dword [esp + 0x20]
add ecx, dword [esp + 0x34]
push 0xb492b66f
adc eax, dword [esp + 0x44]
add ecx, dword [esp + 0x4c]
push 0xbe98f273
adc eax, edx
xor edx, edx
mov ebx, eax
shld eax, ecx, 0x1b
shr ebx, 5
or edx, eax
shl ecx, 0x1b
mov eax, dword [esp + 0x1c]
or ebx, ecx
push edx
push ebx
mov ecx, dword [eax]
mov eax, dword [eax + 4]
add ecx, esi
adc eax, dword [esp + 0x3c]
add ecx, dword [esp + 0x44]
adc eax, dword [esp + 0x50]
xor esi, esi
mov edi, eax
shld eax, ecx, 0x16
shr edi, 0xa
shl ecx, 0x16
or esi, eax
or edi, ecx
call fcn.0047efa0
xor eax, dword [esp + 0x10]
mov ebx, edx
xor ebx, dword [esp + 0x1c]
push 0xb492b66f
push 0xbe98f273
push esi
push edi
mov dword [esp + 0x64], eax
mov dword [esp + 0x80], ebx
call fcn.0047efa0
mov esi, dword [esp + 0x30]
mov ecx, eax
mov eax, edx
mov edx, dword [esp + 0x14]
push 0xb492b66f
push 0xbe98f273
add ecx, dword [edx - 8]
adc eax, dword [edx - 4]
add ecx, dword [esp + 0x2c]
mov dword [esp + 0x3c], ecx
adc eax, dword [esp + 0x28]
add esi, dword [esp + 0x54]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x30]
adc eax, dword [esp + 0x58]
xor ecx, ecx
mov edx, eax
shld eax, esi, 0x1f
shr edx, 1
or ecx, eax
shl esi, 0x1f
or edx, esi
push ecx
push edx
call fcn.0047efa0
mov esi, dword [esp + 0x14]
push 0xb492b66f
push 0xbe98f273
push dword [esp + 0x34]
mov dword [esp + 0x54], eax
mov eax, dword [esi - 0x18]
push dword [esp + 0x24]
mov dword [esp + 0x34], eax
mov eax, dword [esi - 0x14]
mov dword [esp + 0x68], edx
mov dword [esp + 0x30], eax
call fcn.0047efa0
add eax, dword [esi - 0x30]
mov ecx, ebx
mov dword [esp + 0x44], eax
adc edx, dword [esi - 0x2c]
mov esi, dword [esp + 0x54]
add esi, dword [esp + 0x30]
mov dword [esp + 0x3c], edx
adc ecx, dword [esp + 0x28]
add esi, dword [esp + 0x24]
adc ecx, dword [esp + 0x20]
add esi, eax
mov ebx, esi
adc ecx, edx
mov edx, eax
mov eax, dword [esp + 0x14]
xor edi, edi
shrd esi, ecx, 0x15
shl ebx, 0xb
shr ecx, 0x15
or edi, esi
mov esi, dword [esp + 0x3c]
or ebx, ecx
mov ecx, dword [eax - 0x20]
add ecx, dword [eax - 0x28]
mov eax, dword [eax - 0x1c]
mov dword [esp + 0x74], edi
mov edi, dword [esp + 0x14]
adc eax, dword [edi - 0x24]
add dword [esp + 0x44], ecx
mov ecx, esi
adc ecx, eax
mov eax, ecx
mov dword [esp + 0x3c], ecx
shr eax, 0xc
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x44]
shld ecx, eax, 0x14
shl eax, 0x14
or dword [esp + 0x18], eax
xor eax, eax
or eax, ecx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x20]
adc eax, dword [esp + 0x3c]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x18]
add eax, edx
mov edx, dword [esp + 0x10]
adc ecx, esi
add eax, dword [esp + 0x74]
mov esi, dword [edi - 0xc]
adc ecx, ebx
mov dword [esp + 0x18], eax
add edx, dword [edi - 0x10]
mov ebx, dword [edi + 0xc]
mov eax, ebx
adc esi, dword [esp + 0x1c]
add edx, dword [esp + 0x48]
mov dword [esp + 0x2c], ecx
adc esi, dword [esp + 0x58]
mov ecx, dword [edi + 8]
mov dword [esp + 0x30], ecx
add ecx, dword [edi - 0x20]
mov dword [esp + 0x28], ebx
adc eax, dword [edi - 0x1c]
add ecx, edx
mov dword [esp + 0x5c], esi
adc eax, esi
mov dword [esp + 0x44], edx
add ecx, dword [esp + 0x34]
mov ebx, ecx
adc eax, dword [esp + 0x40]
xor edi, edi
shrd ecx, eax, 0x15
shl ebx, 0xb
shr eax, 0x15
or edi, ecx
or ebx, eax
mov dword [esp + 0x74], edi
mov edi, dword [esp + 0x14]
mov eax, edi
mov dword [esp + 0x1c], 0
mov ecx, dword [edi]
add ecx, dword [edi - 8]
mov edi, dword [eax + 4]
adc edi, dword [eax - 4]
mov eax, edx
add eax, ecx
mov ecx, esi
mov dword [esp + 0x44], eax
adc ecx, edi
mov dword [esp + 0x5c], ecx
mov edi, ecx
shld ecx, eax, 0x14
shr edi, 0xc
or dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x54]
shl eax, 0x14
or edi, eax
mov dword [esp + 0x4c], ecx
mov eax, dword [esp + 0x30]
add eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x28]
adc eax, dword [esp + 0x5c]
add edi, edx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x28], eax
adc edx, esi
mov eax, edi
mov dword [esp + 0x10], edi
add eax, dword [esp + 0x74]
mov dword [esp + 0x10], eax
adc edx, ebx
mov dword [esp + 0x50], ecx
mov ebx, dword [esp + 0x14]
add ebx, 0x40
mov dword [esp + 0x1c], edx
sub dword [esp + 0x60], 0x40
mov dword [esp + 0x14], ebx
jne 0x45f080
xor edx, dword [esp + 0x2c]
xor eax, dword [esp + 0x18]
push 0x9ddfea08
push 0xeb382d69
push edx
push eax
call fcn.0047efa0
xor ecx, ecx
mov esi, edx
xor ecx, dword [esp + 0x1c]
push 0x9ddfea08
shr esi, 0xf
xor ecx, edx
xor esi, dword [esp + 0x14]
push 0xeb382d69
xor esi, eax
push ecx
push esi
call fcn.0047efa0
push 0x9ddfea08
mov esi, edx
xor ecx, ecx
push 0xeb382d69
xor ecx, edx
shr esi, 0xf
xor esi, eax
push ecx
push esi
call fcn.0047efa0
add eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x28]
adc edx, dword [esp + 0x58]
xor ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x30]
xor esi, dword [esp + 0x24]
push 0x9ddfea08
push 0xeb382d69
push ecx
push esi
mov dword [esp + 0x7c], eax
mov dword [esp + 0x78], edx
call fcn.0047efa0
xor ecx, ecx
mov esi, edx
xor ecx, dword [esp + 0x28]
push 0x9ddfea08
shr esi, 0xf
xor ecx, edx
xor esi, dword [esp + 0x34]
push 0xeb382d69
xor esi, eax
push ecx
push esi
call fcn.0047efa0
mov esi, dword [esp + 0x40]
xor ecx, ecx
xor ecx, dword [esp + 0x40]
mov edi, eax
push 0xb492b66f
push 0xbe98f273
shr esi, 0xf
mov ebx, edx
xor esi, dword [esp + 0x3c]
push ecx
push esi
call fcn.0047efa0
push 0x9ddfea08
xor ecx, ecx
mov dword [esp + 0x78], eax
mov esi, ebx
mov dword [esp + 0x74], edx
push 0xeb382d69
xor ecx, ebx
shr esi, 0xf
push ecx
xor esi, edi
push esi
call fcn.0047efa0
mov ecx, dword [esp + 0x74]
add ecx, eax
mov eax, dword [esp + 0x70]
adc eax, edx
add ecx, dword [esp + 0x4c]
push 0x9ddfea08
adc eax, dword [esp + 0x54]
xor eax, dword [esp + 0x6c]
xor ecx, dword [esp + 0x70]
push 0xeb382d69
push eax
push ecx
call fcn.0047efa0
xor ecx, ecx
mov esi, edx
xor ecx, dword [esp + 0x68]
push 0x9ddfea08
shr esi, 0xf
xor ecx, edx
xor esi, dword [esp + 0x70]
push 0xeb382d69
xor esi, eax
push ecx
push esi
call fcn.0047efa0
push 0x9ddfea08
push 0xeb382d69
jmp 0x45ebd4
cmp esi, 8
jb 0x45f573
mov ebx, dword [edx + esi - 8]
lea ecx, [esi + esi]
mov edi, dword [edx + 4]
xor eax, eax
add ecx, 0x2f90404f
mov dword [esp + 0x3c], ecx
mov ecx, dword [edx + esi - 4]
adc eax, 0x9ae16a3b
mov dword [esp + 0x40], eax
mov esi, ecx
mov eax, dword [edx]
push dword [esp + 0x40]
add eax, 0x2f90404f
mov dword [esp + 0x60], ecx
push dword [esp + 0x40]
adc edi, 0x9ae16a3b
mov dword [esp + 0x68], eax
mov eax, ebx
shr esi, 5
shld ecx, eax, 0x1b
xor edx, edx
shl eax, 0x1b
or edx, ecx
or esi, eax
push edx
push esi
call fcn.0047efa0
push dword [esp + 0x40]
mov ecx, edx
mov edx, dword [esp + 0x64]
push dword [esp + 0x40]
add eax, edx
mov esi, edx
mov dword [esp + 0x68], eax
adc ecx, edi
shl esi, 7
shrd edx, edi, 0x19
mov dword [esp + 0x60], ecx
xor ecx, ecx
shr edi, 0x19
or ecx, edx
or esi, edi
add ecx, ebx
adc esi, dword [esp + 0x64]
push esi
push ecx
call fcn.0047efa0
push dword [esp + 0x40]
mov ebx, edx
mov edi, eax
push dword [esp + 0x40]
mov ecx, ebx
mov esi, edi
xor ecx, dword [esp + 0x60]
xor esi, dword [esp + 0x68]
push ecx
push esi
call fcn.0047efa0
xor ecx, ecx
mov esi, edx
shr esi, 0xf
xor ecx, edx
xor ecx, ebx
xor esi, eax
mov ebx, dword [esp + 0x40]
xor esi, edi
mov edi, dword [esp + 0x3c]
push ebx
push edi
push ecx
push esi
call fcn.0047efa0
push ebx
push edi
jmp 0x45ebd4
cmp esi, 4
jb 0x45f5d1
mov edi, dword [edx + esi - 4]
lea ecx, [esi + esi]
mov eax, dword [edx]
xor ebx, ebx
add ecx, 0x2f90404f
mov edx, 8
mov dword [esp + 0x60], ecx
adc ebx, 0x9ae16a3b
mul edx
push ebx
add eax, esi
push ecx
adc edx, 0
xor eax, edi
xor edx, 0
push edx
push eax
call fcn.0047efa0
mov esi, edx
xor ecx, ecx
shr esi, 0xf
xor ecx, edx
xor esi, eax
xor ecx, 0
push ebx
xor esi, edi
mov edi, dword [esp + 0x64]
push edi
push ecx
push esi
call fcn.0047efa0
push ebx
push edi
jmp 0x45ebd4
test esi, esi
je 0x4b93d1
mov eax, esi
shr eax, 1
push 0xe16a3b2f
push 0x90404f00
movzx eax, byte [eax + edx]
cdq
push edx
push eax
call fcn.0047efa0
mov edi, eax
mov ebx, edx
mov eax, dword [esp + 0x10]
push 0x9ae16a3b
push 0x2f90404f
movzx eax, byte [eax]
cdq
push edx
push eax
call fcn.0047efa0
add edi, eax
mov eax, dword [esp + 0x10]
push 0x9ae16a3b
adc ebx, edx
push 0x2f90404f
movzx eax, byte [eax + esi - 1]
lea esi, [esi + eax*4]
mov eax, 0xc3a5c85c
mul esi
mov ecx, eax
mov eax, 0x97cb3127
mul esi
add ecx, edx
xor edi, eax
xor ebx, ecx
xor eax, eax
mov ecx, ebx
xor eax, ebx
shr ecx, 0xf
xor ecx, edi
push eax
push ecx
call fcn.0047efa0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0x2f90404f
mov edx, 0x9ae16a3b
jmp 0x45ebe6