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

Disassembly:
mov eax, 0x3c
call fcn.00580860
mov ecx, dword [esp + 0x44]
push ebp
mov ebp, dword [esp + 0x44]
lea eax, [ecx + 0x100]
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
test ebp, ebp
je 0x51280b
mov edx, dword [esp + 0x4c]
test edx, edx
je 0x51280b
cmp ecx, 0x80
je 0x511c58
cmp ecx, 0xc0
je 0x511c58
cmp ecx, 0x100
je 0x511c58
mov eax, 0xfffffffe
pop ebp
add esp, 0x3c
ret
mov dword [edx + 0x110], eax
lea eax, [ecx - 0x80]
cdq
movzx ecx, byte [ebp + 1]
and edx, 0x3f
push ebx
push esi
movzx ebx, byte [ebp + 8]
push edi
lea edi, [edx + eax]
movzx esi, byte [ebp + 0xc]
movzx edx, byte [ebp]
movzx eax, byte [ebp + 2]
shl edx, 8
xor edx, ecx
shl ebx, 8
movzx ecx, byte [ebp + 4]
shl edx, 8
xor edx, eax
shl ecx, 8
movzx eax, byte [ebp + 3]
shl edx, 8
xor edx, eax
shl esi, 8
movzx eax, byte [ebp + 5]
xor ecx, eax
sar edi, 6
movzx eax, byte [ebp + 6]
shl ecx, 8
xor ecx, eax
shl edi, 4
movzx eax, byte [ebp + 7]
add edi, 0x60f518
shl ecx, 8
xor ecx, eax
mov dword [esp + 0x50], edx
movzx eax, byte [ebp + 9]
xor ebx, eax
mov dword [esp + 0x10], ecx
movzx eax, byte [ebp + 0xa]
shl ebx, 8
xor ebx, eax
mov dword [esp + 0x2c], edi
movzx eax, byte [ebp + 0xb]
shl ebx, 8
xor ebx, eax
movzx eax, byte [ebp + 0xd]
xor esi, eax
mov dword [esp + 0x14], ebx
movzx eax, byte [ebp + 0xe]
shl esi, 8
xor esi, eax
movzx eax, byte [ebp + 0xf]
shl esi, 8
xor esi, eax
mov eax, dword [edi]
xor eax, edx
mov dword [esp + 0x18], esi
mov edx, dword [edi + 8]
mov dword [esp + 0x30], eax
xor edx, ebx
mov eax, dword [edi + 4]
mov ebx, dword [edi + 0xc]
xor eax, ecx
mov dword [esp + 0x34], eax
mov ecx, edx
shr ecx, 0x18
mov eax, edx
shr eax, 0x10
xor ebx, esi
movzx eax, al
mov edi, dword [ecx*4 + 0x60f568]
mov ecx, ebx
xor edi, dword [eax*4 + 0x60f968]
mov eax, edx
shr eax, 8
movzx eax, al
xor edi, dword [eax*4 + 0x60fd68]
movzx eax, dl
xor edi, dword [eax*4 + 0x610168]
mov dword [esp + 0x38], edi
mov edx, dword [esp + 0x34]
mov eax, ebx
shr eax, 0x10
movzx eax, al
shr ecx, 0x18
mov edi, dword [ecx*4 + 0x60f568]
mov ecx, edx
xor edi, dword [eax*4 + 0x60f968]
mov eax, ebx
shr eax, 8
movzx eax, al
shr ecx, 0x18
xor edi, dword [eax*4 + 0x60fd68]
mov esi, dword [ecx*4 + 0x60f568]
movzx eax, bl
mov ebx, dword [esp + 0x38]
xor edi, dword [eax*4 + 0x610168]
mov eax, edx
shr eax, 0x10
movzx eax, al
xor esi, dword [eax*4 + 0x60f968]
mov eax, edx
shr eax, 8
movzx eax, al
xor esi, dword [eax*4 + 0x60fd68]
movzx eax, dl
mov edx, dword [esp + 0x30]
mov ecx, edx
shr ecx, 0x18
xor esi, dword [eax*4 + 0x610168]
mov eax, edx
shr eax, 0x10
xor esi, ebx
mov ecx, dword [ecx*4 + 0x60f568]
xor ebx, edi
movzx eax, al
xor edi, esi
xor ecx, dword [eax*4 + 0x60f968]
mov eax, edx
shr eax, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x60fd68]
movzx eax, dl
mov edx, edi
and edx, 0xff0000
xor ecx, dword [eax*4 + 0x610168]
mov eax, edi
shr eax, 0x10
xor ecx, esi
xor edx, eax
xor ebx, ecx
mov eax, edi
shr edx, 8
shl edi, 0x10
and eax, 0xff00
xor eax, edi
xor esi, ebx
shl eax, 8
mov edi, esi
xor edx, eax
shr edi, 8
mov eax, esi
rol ebx, 0x10
shl eax, 8
xor edi, eax
shl esi, 8
and edi, 0xff00ff
xor edi, esi
xor edi, ebx
xor ebx, edx
xor ecx, edi
xor edx, edi
xor ebx, ecx
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x54]
xor edi, ebx
mov dword [esp + 0x30], edx
mov dword [esp + 0x38], ebx
cmp ecx, 0x80
jle 0x511eff
movzx esi, byte [ebp + 0x10]
movzx eax, byte [ebp + 0x11]
movzx edx, byte [ebp + 0x14]
shl esi, 8
xor esi, eax
shl edx, 8
movzx eax, byte [ebp + 0x12]
shl esi, 8
xor esi, eax
movzx eax, byte [ebp + 0x13]
shl esi, 8
xor esi, eax
movzx eax, byte [ebp + 0x15]
xor edx, eax
movzx eax, byte [ebp + 0x16]
shl edx, 8
xor edx, eax
movzx eax, byte [ebp + 0x17]
shl edx, 8
xor edx, eax
cmp ecx, 0xc0
jle 0x511ef9
movzx ebx, byte [ebp + 0x18]
movzx eax, byte [ebp + 0x19]
movzx ecx, byte [ebp + 0x1c]
shl ebx, 8
xor ebx, eax
shl ecx, 8
movzx eax, byte [ebp + 0x1a]
shl ebx, 8
xor ebx, eax
movzx eax, byte [ebp + 0x1b]
shl ebx, 8
xor ebx, eax
movzx eax, byte [ebp + 0x1d]
xor ecx, eax
movzx eax, byte [ebp + 0x1e]
shl ecx, 8
xor ecx, eax
movzx eax, byte [ebp + 0x1f]
shl ecx, 8
xor ecx, eax
jmp 0x511f07
xor ecx, ecx
xor ebx, ebx
jmp 0x511f07
xor ecx, ecx
xor ebx, ebx
xor edx, edx
xor esi, esi
xor ecx, dword [esp + 0x30]
xor edx, edi
xor esi, dword [esp + 0x34]
mov ebp, dword [esp + 0x2c]
xor ebx, dword [esp + 0x38]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x40], edx
mov eax, dword [ebp + 0x10]
xor eax, esi
mov dword [esp + 0x44], ebx
mov dword [esp + 0x30], eax
mov eax, dword [ebp + 0x14]
xor eax, edx
mov dword [esp + 0x3c], esi
mov edx, dword [ebp + 0x18]
mov dword [esp + 0x38], eax
xor edx, ebx
mov ebx, dword [ebp + 0x1c]
mov eax, edx
shr eax, 0x10
xor ebx, ecx
movzx eax, al
mov ecx, edx
shr ecx, 0x18
mov ecx, dword [ecx*4 + 0x60fd68]
xor ecx, dword [eax*4 + 0x610168]
mov eax, edx
shr eax, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x60f568]
movzx eax, dl
mov edx, dword [esp + 0x38]
xor ecx, dword [eax*4 + 0x60f968]
mov eax, ebx
shr eax, 0x10
movzx eax, al
mov dword [esp + 0x34], ecx
mov ecx, ebx
shr ecx, 0x18
mov edi, dword [ecx*4 + 0x60fd68]
mov ecx, edx
xor edi, dword [eax*4 + 0x610168]
mov eax, ebx
shr eax, 8
movzx eax, al
shr ecx, 0x18
xor edi, dword [eax*4 + 0x60f568]
mov esi, dword [ecx*4 + 0x60fd68]
movzx eax, bl
mov ebx, dword [esp + 0x34]
xor edi, dword [eax*4 + 0x60f968]
mov eax, edx
shr eax, 0x10
movzx eax, al
xor esi, dword [eax*4 + 0x610168]
mov eax, edx
shr eax, 8
movzx eax, al
xor esi, dword [eax*4 + 0x60f568]
movzx eax, dl
mov edx, dword [esp + 0x30]
mov ecx, edx
shr ecx, 0x18
xor esi, dword [eax*4 + 0x60f968]
mov eax, edx
shr eax, 0x10
xor esi, ebx
mov ecx, dword [ecx*4 + 0x60fd68]
xor ebx, edi
movzx eax, al
xor edi, esi
xor ecx, dword [eax*4 + 0x610168]
mov eax, edx
shr eax, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x60f568]
movzx eax, dl
xor ecx, dword [eax*4 + 0x60f968]
xor ecx, esi
mov dword [esp + 0x38], ecx
xor ebx, ecx
xor esi, ebx
mov edx, edi
shr edx, 8
mov eax, edi
shl eax, 8
mov ecx, esi
xor edx, eax
shl edi, 8
and ecx, 0xff0000
mov eax, esi
shr eax, 0x10
and edx, 0xff00ff
xor ecx, eax
xor edx, edi
shr ecx, 8
mov eax, esi
and eax, 0xff00
shl esi, 0x10
xor eax, esi
shl eax, 8
xor ecx, eax
mov eax, dword [esp + 0x38]
rol eax, 0x10
xor ecx, ebx
xor eax, ecx
xor ebx, edx
xor ebx, eax
xor edx, ecx
xor eax, dword [esp + 0x50]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x10]
xor eax, ebx
xor edx, dword [esp + 0x18]
xor ebx, dword [esp + 0x14]
xor ecx, eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x1c], eax
xor eax, dword [ebp + 0x20]
mov dword [esp + 0x38], eax
mov dword [esp + 0x20], ecx
xor ecx, dword [ebp + 0x24]
mov dword [esp + 0x24], ebx
xor ebx, dword [ebp + 0x28]
mov dword [esp + 0x34], ecx
mov eax, ebx
shr eax, 0x10
mov ecx, ebx
movzx eax, al
shr ecx, 0x18
mov dword [esp + 0x28], edx
xor edx, dword [ebp + 0x2c]
mov ebp, dword [ecx*4 + 0x60f568]
mov ecx, edx
xor ebp, dword [eax*4 + 0x60f968]
mov eax, ebx
shr eax, 8
movzx eax, al
shr ecx, 0x18
xor ebp, dword [eax*4 + 0x60fd68]
movzx eax, bl
mov ebx, dword [ecx*4 + 0x60f568]
xor ebp, dword [eax*4 + 0x610168]
mov eax, edx
shr eax, 0x10
movzx eax, al
xor ebx, dword [eax*4 + 0x60f968]
mov eax, edx
shr eax, 8
movzx eax, al
xor ebx, dword [eax*4 + 0x60fd68]
movzx eax, dl
mov edx, dword [esp + 0x34]
mov ecx, edx
shr ecx, 0x18
xor ebx, dword [eax*4 + 0x610168]
mov eax, edx
shr eax, 0x10
mov edi, dword [ecx*4 + 0x60f568]
movzx eax, al
xor edi, dword [eax*4 + 0x60f968]
mov eax, edx
shr eax, 8
movzx eax, al
xor edi, dword [eax*4 + 0x60fd68]
movzx eax, dl
mov edx, dword [esp + 0x38]
mov ecx, edx
shr ecx, 0x18
xor edi, dword [eax*4 + 0x610168]
mov eax, edx
shr eax, 0x10
xor edi, ebp
mov esi, dword [ecx*4 + 0x60f568]
xor ebp, ebx
movzx eax, al
xor ebx, edi
xor esi, dword [eax*4 + 0x60f968]
mov eax, edx
shr eax, 8
movzx eax, al
xor esi, dword [eax*4 + 0x60fd68]
movzx eax, dl
mov edx, ebx
and edx, 0xff0000
xor esi, dword [eax*4 + 0x610168]
mov eax, ebx
shr eax, 0x10
xor esi, edi
xor edx, eax
xor ebp, esi
mov eax, ebx
shr edx, 8
and eax, 0xff00
shl ebx, 0x10
xor eax, ebx
xor edi, ebp
shl eax, 8
mov ecx, edi
xor edx, eax
shr ecx, 8
mov eax, edi
rol ebp, 0x10
shl eax, 8
xor ecx, eax
shl edi, 8
and ecx, 0xff00ff
mov eax, edx
xor ecx, edi
xor eax, ebp
mov edi, dword [esp + 0x44]
xor ecx, ebp
mov ebp, dword [esp + 0x3c]
xor esi, ecx
xor eax, esi
mov ebx, ebp
xor ebx, esi
mov esi, dword [esp + 0x40]
mov dword [esp + 0x2c], ebx
mov ebx, esi
xor ebx, eax
xor ebx, ecx
mov dword [esp + 0x30], ebx
mov ebx, edi
xor ebx, eax
mov dword [esp + 0x34], ebx
mov ebx, dword [esp + 0x48]
mov eax, ebx
xor eax, edx
mov edx, dword [esp + 0x58]
xor eax, ecx
mov ecx, ebx
mov dword [esp + 0x38], eax
mov eax, ebp
shl ecx, 0xd
shr eax, 0x13
xor ecx, eax
mov eax, ebp
xor ecx, dword [esp + 0x50]
mov dword [edx], ecx
mov ecx, esi
shr ecx, 0x13
shl eax, 0xd
xor ecx, eax
mov eax, edi
xor ecx, dword [esp + 0x10]
mov dword [edx + 4], ecx
mov ecx, esi
shl ecx, 0xd
shr eax, 0x13
xor ecx, eax
mov eax, edi
xor ecx, dword [esp + 0x14]
mov dword [edx + 8], ecx
mov ecx, ebx
shr ecx, 0x13
shl eax, 0xd
xor ecx, eax
mov eax, dword [esp + 0x28]
xor ecx, dword [esp + 0x18]
mov dword [edx + 0xc], ecx
mov ecx, dword [esp + 0x1c]
shr ecx, 0x13
shl eax, 0xd
xor ecx, eax
mov eax, dword [esp + 0x20]
xor ecx, ebp
shr eax, 0x13
mov dword [edx + 0x10], ecx
mov ecx, dword [esp + 0x1c]
shl ecx, 0xd
xor ecx, eax
mov eax, dword [esp + 0x24]
xor ecx, esi
shr eax, 0x13
mov dword [edx + 0x14], ecx
mov ecx, dword [esp + 0x20]
shl ecx, 0xd
xor ecx, eax
mov eax, dword [esp + 0x24]
xor ecx, edi
shl eax, 0xd
mov dword [edx + 0x18], ecx
mov ecx, dword [esp + 0x28]
shr ecx, 0x13
xor ecx, eax
mov eax, dword [esp + 0x38]
xor ecx, ebx
shl eax, 0xd
mov dword [edx + 0x1c], ecx
mov ecx, dword [esp + 0x2c]
shr ecx, 0x13
xor ecx, eax
mov eax, dword [esp + 0x30]
xor ecx, dword [esp + 0x1c]
mov dword [edx + 0x20], ecx
mov ecx, dword [esp + 0x2c]
shl ecx, 0xd
shr eax, 0x13
xor ecx, eax
mov eax, dword [esp + 0x34]
xor ecx, dword [esp + 0x20]
mov dword [edx + 0x24], ecx
mov ecx, dword [esp + 0x30]
shl ecx, 0xd
shr eax, 0x13
xor ecx, eax
mov eax, dword [esp + 0x34]
xor ecx, dword [esp + 0x24]
mov dword [edx + 0x28], ecx
mov ecx, dword [esp + 0x38]
shr ecx, 0x13
shl eax, 0xd
xor ecx, eax
mov eax, dword [esp + 0x18]
xor ecx, dword [esp + 0x28]
mov dword [edx + 0x2c], ecx
mov ecx, dword [esp + 0x50]
shr ecx, 0x13
shl eax, 0xd
xor ecx, eax
xor ecx, dword [esp + 0x2c]
mov dword [edx + 0x30], ecx
mov ecx, dword [esp + 0x50]
shl ecx, 0xd
mov eax, dword [esp + 0x10]
shr eax, 0x13
xor ecx, eax
mov eax, dword [esp + 0x10]
xor ecx, dword [esp + 0x30]
mov dword [edx + 0x34], ecx
mov ecx, dword [esp + 0x14]
shr ecx, 0x13
shl eax, 0xd
xor ecx, eax
mov eax, dword [esp + 0x18]
xor ecx, dword [esp + 0x34]
mov dword [edx + 0x38], ecx
mov ecx, dword [esp + 0x14]
shl ecx, 0xd
shr eax, 0x13
xor ecx, eax
mov eax, ebp
xor ecx, dword [esp + 0x38]
mov dword [edx + 0x3c], ecx
lea ecx, [ebx + ebx]
shr eax, 0x1f
xor ecx, eax
lea eax, [ebp*2]
xor ecx, dword [esp + 0x50]
mov dword [edx + 0x40], ecx
mov ecx, esi
shr ecx, 0x1f
xor ecx, eax
mov eax, edi
xor ecx, dword [esp + 0x10]
mov dword [edx + 0x44], ecx
lea ecx, [esi + esi]
shr eax, 0x1f
xor ecx, eax
lea eax, [edi + edi]
xor ecx, dword [esp + 0x14]
mov dword [edx + 0x48], ecx
mov ecx, ebx
shr ecx, 0x1f
xor ecx, eax
mov eax, dword [esp + 0x28]
xor ecx, dword [esp + 0x18]
add eax, eax
mov dword [edx + 0x4c], ecx
mov ecx, dword [esp + 0x1c]
shr ecx, 0x1f
xor ecx, eax
mov eax, dword [esp + 0x1c]
xor ecx, ebp
mov dword [edx + 0x50], ecx
lea ecx, [eax + eax]
mov eax, dword [esp + 0x20]
shr eax, 0x1f
xor ecx, eax
mov eax, dword [esp + 0x20]
xor ecx, esi
mov dword [edx + 0x54], ecx
lea ecx, [eax + eax]
mov eax, dword [esp + 0x24]
shr eax, 0x1f
xor ecx, eax
mov eax, dword [esp + 0x24]
xor ecx, edi
add eax, eax
mov dword [edx + 0x58], ecx
mov ecx, dword [esp + 0x28]
shr ecx, 0x1f
xor ecx, eax
mov eax, dword [esp + 0x38]
xor ecx, ebx
add eax, eax
mov dword [edx + 0x5c], ecx
mov ecx, dword [esp + 0x2c]
shr ecx, 0x1f
xor ecx, eax
mov eax, dword [esp + 0x2c]
xor ecx, dword [esp + 0x1c]
mov dword [edx + 0x60], ecx
lea ecx, [eax + eax]
mov eax, dword [esp + 0x30]
shr eax, 0x1f
xor ecx, eax
mov eax, dword [esp + 0x30]
xor ecx, dword [esp + 0x20]
mov dword [edx + 0x64], ecx
lea ecx, [eax + eax]
mov eax, dword [esp + 0x34]
shr eax, 0x1f
xor ecx, eax
mov eax, dword [esp + 0x34]
xor ecx, dword [esp + 0x24]
add eax, eax
mov dword [edx + 0x68], ecx
mov ecx, dword [esp + 0x38]
shr ecx, 0x1f
xor ecx, eax
mov eax, dword [esp + 0x18]
xor ecx, dword [esp + 0x28]
add eax, eax
mov dword [edx + 0x6c], ecx
mov ecx, dword [esp + 0x50]
shr ecx, 0x1f
xor ecx, eax
mov eax, dword [esp + 0x50]
xor ecx, dword [esp + 0x2c]
mov dword [edx + 0x70], ecx
lea ecx, [eax + eax]
mov eax, dword [esp + 0x10]
shr eax, 0x1f
xor ecx, eax
mov eax, dword [esp + 0x10]
xor ecx, dword [esp + 0x30]
add eax, eax
mov dword [edx + 0x74], ecx
mov ecx, dword [esp + 0x14]
shr ecx, 0x1f
xor ecx, eax
mov eax, dword [esp + 0x14]
xor ecx, dword [esp + 0x34]
mov dword [edx + 0x78], ecx
lea ecx, [eax + eax]
mov eax, dword [esp + 0x18]
shr eax, 0x1f
xor ecx, eax
mov eax, edi
xor ecx, dword [esp + 0x38]
mov dword [edx + 0x7c], ecx
mov ecx, esi
shl ecx, 0x1d
shr eax, 3
xor ecx, eax
mov eax, edi
xor ecx, dword [esp + 0x50]
mov dword [edx + 0x80], ecx
mov ecx, ebx
shr ecx, 3
shl eax, 0x1d
xor ecx, eax
mov eax, ebp
xor ecx, dword [esp + 0x10]
mov dword [edx + 0x84], ecx
mov ecx, ebx
shl ecx, 0x1d
shr eax, 3
xor ecx, eax
mov eax, ebp
xor ecx, dword [esp + 0x14]
mov dword [edx + 0x88], ecx
mov ecx, esi
shr ecx, 3
shl eax, 0x1d
xor ecx, eax
mov eax, dword [esp + 0x24]
xor ecx, dword [esp + 0x18]
mov dword [edx + 0x8c], ecx
mov ecx, dword [esp + 0x20]
shl ecx, 0x1d
shr eax, 3
xor ecx, eax
xor ecx, ebp
mov dword [edx + 0x90], ecx
mov ecx, dword [esp + 0x28]
shr ecx, 3
mov eax, dword [esp + 0x24]
shl eax, 0x1d
xor ecx, eax
mov eax, dword [esp + 0x28]
xor ecx, esi
shl eax, 0x1d
mov dword [edx + 0x94], ecx
mov ecx, dword [esp + 0x1c]
shr ecx, 3
xor ecx, eax
mov eax, dword [esp + 0x20]
xor ecx, edi
shr eax, 3
mov dword [edx + 0x98], ecx
mov ecx, dword [esp + 0x1c]
shl ecx, 0x1d
xor ecx, eax
mov eax, dword [esp + 0x34]
xor ecx, ebx
shr eax, 3
mov dword [edx + 0x9c], ecx
mov ecx, dword [esp + 0x30]
shl ecx, 0x1d
xor ecx, eax
mov eax, dword [esp + 0x34]
xor ecx, dword [esp + 0x1c]
mov dword [edx + 0xa0], ecx
mov ecx, dword [esp + 0x38]
shr ecx, 3
shl eax, 0x1d
xor ecx, eax
mov eax, dword [esp + 0x38]
xor ecx, dword [esp + 0x20]
mov dword [edx + 0xa4], ecx
mov ecx, dword [esp + 0x2c]
shr ecx, 3
shl eax, 0x1d
xor ecx, eax
mov eax, dword [esp + 0x30]
xor ecx, dword [esp + 0x24]
mov dword [edx + 0xa8], ecx
mov ecx, dword [esp + 0x2c]
shl ecx, 0x1d
shr eax, 3
xor ecx, eax
mov eax, dword [esp + 0x10]
xor ecx, dword [esp + 0x28]
mov dword [edx + 0xac], ecx
mov ecx, dword [esp + 0x14]
shr ecx, 3
shl eax, 0x1d
xor ecx, eax
mov eax, dword [esp + 0x18]
xor ecx, dword [esp + 0x2c]
mov dword [edx + 0xb0], ecx
mov ecx, dword [esp + 0x14]
shl ecx, 0x1d
shr eax, 3
xor ecx, eax
mov eax, dword [esp + 0x18]
xor ecx, dword [esp + 0x30]
mov dword [edx + 0xb4], ecx
mov ecx, dword [esp + 0x50]
shr ecx, 3
shl eax, 0x1d
xor ecx, eax
mov eax, dword [esp + 0x10]
xor ecx, dword [esp + 0x34]
mov dword [edx + 0xb8], ecx
mov ecx, dword [esp + 0x50]
shl ecx, 0x1d
shr eax, 3
xor ecx, eax
xor ecx, dword [esp + 0x38]
mov dword [edx + 0xbc], ecx
mov ecx, esi
add edx, 0xc0
shr ecx, 1
mov eax, ebp
shl eax, 0x1f
xor ecx, eax
mov eax, edi
xor ecx, dword [esp + 0x50]
mov dword [edx], ecx
mov ecx, esi
shl ecx, 0x1f
shr eax, 1
xor ecx, eax
mov eax, edi
xor ecx, dword [esp + 0x10]
mov dword [edx + 4], ecx
mov ecx, ebx
shr ecx, 1
shl eax, 0x1f
xor ecx, eax
mov eax, ebp
xor ecx, dword [esp + 0x14]
mov dword [edx + 8], ecx
mov ecx, ebx
shl ecx, 0x1f
shr eax, 1
xor ecx, eax
mov eax, dword [esp + 0x54]
xor ecx, dword [esp + 0x18]
mov dword [edx + 0xc], ecx
cmp eax, 0x80
jle 0x51275a
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
shl ecx, 0x1f
shr eax, 1
xor ecx, eax
mov eax, dword [esp + 0x24]
xor ecx, ebp
shr eax, 1
mov dword [edx + 0x10], ecx
mov ecx, dword [esp + 0x20]
shl ecx, 0x1f
xor ecx, eax
mov eax, dword [esp + 0x24]
xor ecx, esi
shl eax, 0x1f
mov dword [edx + 0x14], ecx
mov ecx, dword [esp + 0x28]
shr ecx, 1
xor ecx, eax
mov eax, dword [esp + 0x28]
xor ecx, edi
shl eax, 0x1f
mov dword [edx + 0x18], ecx
mov ecx, dword [esp + 0x1c]
shr ecx, 1
xor ecx, eax
mov eax, dword [esp + 0x30]
xor ecx, ebx
shr eax, 1
mov dword [edx + 0x1c], ecx
add edx, 0x20
mov ecx, dword [esp + 0x2c]
shl ecx, 0x1f
xor ecx, eax
mov eax, dword [esp + 0x34]
xor ecx, dword [esp + 0x1c]
mov dword [edx], ecx
mov ecx, dword [esp + 0x30]
shl ecx, 0x1f
shr eax, 1
xor ecx, eax
mov eax, dword [esp + 0x34]
xor ecx, dword [esp + 0x20]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x38]
shr ecx, 1
shl eax, 0x1f
xor ecx, eax
mov eax, dword [esp + 0x38]
xor ecx, dword [esp + 0x24]
mov dword [edx + 8], ecx
mov ecx, dword [esp + 0x2c]
shl eax, 0x1f
shr ecx, 1
xor ecx, eax
mov eax, dword [esp + 0x54]
xor ecx, dword [esp + 0x28]
mov dword [edx + 0xc], ecx
cmp eax, 0xc0
jle 0x512801
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x10]
shl ecx, 0x1f
shr eax, 1
xor ecx, eax
mov eax, dword [esp + 0x10]
xor ecx, dword [esp + 0x2c]
mov dword [edx + 0x10], ecx
mov ecx, dword [esp + 0x14]
shr ecx, 1
shl eax, 0x1f
xor ecx, eax
mov eax, dword [esp + 0x18]
xor ecx, dword [esp + 0x30]
mov dword [edx + 0x14], ecx
mov ecx, dword [esp + 0x14]
shr eax, 1
shl ecx, 0x1f
xor ecx, eax
mov eax, dword [esp + 0x18]
xor ecx, dword [esp + 0x34]
mov dword [edx + 0x18], ecx
mov ecx, dword [esp + 0x50]
shl eax, 0x1f
shr ecx, 1
xor ecx, eax
mov eax, ebp
xor ecx, dword [esp + 0x38]
mov dword [edx + 0x1c], ecx
mov ecx, esi
shl eax, 0x13
shr ecx, 0xd
xor ecx, eax
shl esi, 0x13
xor ecx, dword [esp + 0x50]
mov eax, edi
shr eax, 0xd
xor esi, eax
shl edi, 0x13
xor esi, dword [esp + 0x10]
mov eax, ebx
shr eax, 0xd
shl ebx, 0x13
xor eax, edi
xor eax, dword [esp + 0x14]
shr ebp, 0xd
xor ebx, ebp
mov dword [edx + 0x20], ecx
xor ebx, dword [esp + 0x18]
mov dword [edx + 0x24], esi
mov dword [edx + 0x28], eax
mov dword [edx + 0x2c], ebx
pop edi
pop esi
pop ebx
xor eax, eax
pop ebp
add esp, 0x3c
ret
or eax, 0xffffffff
pop ebp
add esp, 0x3c
ret