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

Disassembly:
mov eax, 0x48
call fcn.004c47c0
mov ecx, dword [esp + 0x50]
push ebp
mov ebp, dword [esp + 0x50]
lea eax, [ecx + 0x100]
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
test ebp, ebp
je 0x597471
mov edx, dword [esp + 0x58]
test edx, edx
je 0x597471
cmp ecx, 0x80
je 0x5968e8
cmp ecx, 0xc0
je 0x5968e8
cmp ecx, 0x100
je 0x5968e8
mov eax, 0xfffffffe
pop ebp
add esp, 0x48
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, 0x64c270
shl ecx, 8
xor ecx, eax
mov dword [esp + 0x5c], 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 + 0x30], 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 + 0x38], eax
xor edx, ebx
mov eax, dword [edi + 4]
mov ebx, dword [edi + 0xc]
xor eax, ecx
mov dword [esp + 0x3c], eax
xor ebx, esi
mov eax, edx
shr eax, 0x10
movzx ecx, al
mov eax, edx
shr eax, 8
movzx eax, al
mov edi, dword [ecx*4 + 0x64c6c0]
xor edi, dword [eax*4 + 0x64cac0]
mov eax, edx
shr eax, 0x18
xor edi, dword [eax*4 + 0x64c2c0]
movzx eax, dl
xor edi, dword [eax*4 + 0x64cec0]
mov eax, ebx
shr eax, 0x10
movzx ecx, al
mov eax, ebx
shr eax, 8
movzx eax, al
mov esi, dword [ecx*4 + 0x64c6c0]
xor esi, dword [eax*4 + 0x64cac0]
mov eax, ebx
shr eax, 0x18
xor esi, dword [eax*4 + 0x64c2c0]
movzx eax, bl
mov ebx, dword [esp + 0x3c]
xor esi, dword [eax*4 + 0x64cec0]
mov eax, ebx
shr eax, 0x10
movzx ecx, al
mov eax, ebx
shr eax, 8
movzx eax, al
mov edx, dword [ecx*4 + 0x64c6c0]
xor edx, dword [eax*4 + 0x64cac0]
mov eax, ebx
shr eax, 0x18
xor edx, dword [eax*4 + 0x64c2c0]
movzx eax, bl
mov ebx, dword [esp + 0x38]
xor edx, dword [eax*4 + 0x64cec0]
mov eax, ebx
shr eax, 0x10
xor edx, edi
movzx ecx, al
mov eax, ebx
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x64c6c0]
xor ecx, dword [eax*4 + 0x64cac0]
mov eax, ebx
shr eax, 0x18
xor ecx, dword [eax*4 + 0x64c2c0]
movzx eax, bl
xor ecx, dword [eax*4 + 0x64cec0]
mov eax, esi
xor esi, edi
xor ecx, edx
xor esi, ecx
xor eax, edx
xor edx, esi
mov ebx, esi
mov edi, edx
shr ebx, 0x10
and edi, 0xffff00ff
shr edx, 8
shl edi, 8
and edx, 0xff00ff
shl esi, 0x10
xor edi, edx
or ebx, esi
xor edi, ebx
xor ecx, edi
bswap eax
xor ebx, eax
mov dword [esp + 0x3c], ecx
xor ebx, ecx
xor eax, edi
mov ecx, dword [esp + 0x60]
xor edi, ebx
mov dword [esp + 0x38], eax
mov dword [esp + 0x34], ebx
cmp ecx, 0x80
jle 0x596b76
movzx edx, byte [ebp + 0x10]
movzx eax, byte [ebp + 0x11]
movzx ebx, byte [ebp + 0x14]
shl edx, 8
xor edx, eax
shl ebx, 8
movzx eax, byte [ebp + 0x12]
shl edx, 8
xor edx, eax
movzx eax, byte [ebp + 0x13]
shl edx, 8
xor edx, eax
movzx eax, byte [ebp + 0x15]
xor ebx, eax
movzx eax, byte [ebp + 0x16]
shl ebx, 8
xor ebx, eax
movzx eax, byte [ebp + 0x17]
shl ebx, 8
xor ebx, eax
cmp ecx, 0xc0
jle 0x596b6c
movzx ecx, byte [ebp + 0x18]
movzx eax, byte [ebp + 0x19]
movzx esi, byte [ebp + 0x1c]
shl ecx, 8
xor ecx, eax
shl esi, 8
movzx eax, byte [ebp + 0x1a]
shl ecx, 8
xor ecx, eax
movzx eax, byte [ebp + 0x1b]
shl ecx, 8
xor ecx, eax
movzx eax, byte [ebp + 0x1d]
xor esi, eax
movzx eax, byte [ebp + 0x1e]
shl esi, 8
xor esi, eax
movzx eax, byte [ebp + 0x1f]
shl esi, 8
xor esi, eax
mov eax, dword [esp + 0x38]
jmp 0x596b7e
mov eax, dword [esp + 0x38]
xor esi, esi
xor ecx, ecx
jmp 0x596b7e
xor esi, esi
xor ecx, ecx
xor ebx, ebx
xor edx, edx
xor ecx, dword [esp + 0x34]
xor esi, eax
xor edx, dword [esp + 0x3c]
xor ebx, edi
mov edi, dword [esp + 0x30]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x3c], ebx
mov eax, dword [edi + 0x10]
xor eax, edx
mov dword [esp + 0x44], esi
mov dword [esp + 0x34], eax
mov eax, dword [edi + 0x14]
xor eax, ebx
mov edx, dword [edi + 0x18]
mov dword [esp + 0x38], eax
xor edx, ecx
mov ebx, dword [edi + 0x1c]
mov eax, edx
shr eax, 0x10
xor ebx, esi
movzx ecx, al
mov eax, edx
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x64cec0]
xor ecx, dword [eax*4 + 0x64c2c0]
mov eax, edx
shr eax, 0x18
xor ecx, dword [eax*4 + 0x64cac0]
movzx eax, dl
xor ecx, dword [eax*4 + 0x64c6c0]
mov eax, ebx
shr eax, 0x10
mov dword [esp + 0x28], ecx
movzx ecx, al
mov eax, ebx
shr eax, 8
movzx eax, al
mov esi, dword [ecx*4 + 0x64cec0]
xor esi, dword [eax*4 + 0x64c2c0]
mov eax, ebx
shr eax, 0x18
xor esi, dword [eax*4 + 0x64cac0]
movzx eax, bl
mov ebx, dword [esp + 0x38]
xor esi, dword [eax*4 + 0x64c6c0]
mov eax, ebx
shr eax, 0x10
movzx ecx, al
mov eax, ebx
shr eax, 8
movzx eax, al
mov edx, dword [ecx*4 + 0x64cec0]
xor edx, dword [eax*4 + 0x64c2c0]
mov eax, ebx
shr eax, 0x18
xor edx, dword [eax*4 + 0x64cac0]
movzx eax, bl
mov ebx, dword [esp + 0x34]
xor edx, dword [eax*4 + 0x64c6c0]
mov eax, dword [esp + 0x28]
xor edx, eax
xor eax, esi
mov dword [esp + 0x28], eax
mov eax, ebx
shr eax, 0x10
movzx ecx, al
mov eax, ebx
shr eax, 8
movzx eax, al
mov ecx, dword [ecx*4 + 0x64cec0]
xor ecx, dword [eax*4 + 0x64c2c0]
mov eax, ebx
shr eax, 0x18
xor ecx, dword [eax*4 + 0x64cac0]
movzx eax, bl
xor ecx, dword [eax*4 + 0x64c6c0]
xor ecx, edx
xor esi, edx
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x28]
mov ebx, esi
xor eax, ecx
shr ebx, 8
mov ecx, eax
and ebx, 0xff00ff
xor ecx, edx
and esi, 0xffff00ff
mov edx, dword [esp + 0x24]
bswap ecx
xor ecx, eax
ror edx, 0x10
xor edx, ecx
shl esi, 8
xor ebx, esi
xor eax, ebx
xor ebx, ecx
xor eax, edx
xor ebx, dword [esp + 0x18]
xor edx, dword [esp + 0x5c]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x10]
xor eax, dword [esp + 0x28]
xor ecx, eax
mov dword [esp + 0x48], edx
mov eax, dword [esp + 0x28]
xor eax, dword [esp + 0x14]
mov dword [esp + 0x54], eax
mov dword [esp + 0x34], eax
xor eax, dword [edi + 0x28]
mov dword [esp + 0x28], eax
shr eax, 0x10
mov dword [esp + 0x2c], edx
xor edx, dword [edi + 0x20]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x30], ecx
xor ecx, dword [edi + 0x24]
mov dword [esp + 0x20], ecx
movzx ecx, al
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x28]
mov eax, edx
shr eax, 8
mov ebp, dword [ecx*4 + 0x64c6c0]
movzx eax, al
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x38], ebx
xor ebx, dword [edi + 0x2c]
xor ebp, dword [eax*4 + 0x64cac0]
mov eax, edx
shr eax, 0x18
xor ebp, dword [eax*4 + 0x64c2c0]
movzx eax, dl
xor ebp, dword [eax*4 + 0x64cec0]
mov eax, ebx
shr eax, 0x10
movzx ecx, al
mov eax, ebx
shr eax, 8
movzx eax, al
mov edx, dword [ecx*4 + 0x64c6c0]
xor edx, dword [eax*4 + 0x64cac0]
mov eax, ebx
shr eax, 0x18
xor edx, dword [eax*4 + 0x64c2c0]
movzx eax, bl
xor edx, dword [eax*4 + 0x64cec0]
mov eax, dword [esp + 0x20]
shr eax, 0x10
movzx ecx, al
mov eax, dword [esp + 0x20]
shr eax, 8
movzx eax, al
mov ebx, dword [ecx*4 + 0x64c6c0]
mov ecx, dword [esp + 0x20]
xor ebx, dword [eax*4 + 0x64cac0]
mov eax, ecx
shr eax, 0x18
xor ebx, dword [eax*4 + 0x64c2c0]
movzx eax, cl
xor ebx, dword [eax*4 + 0x64cec0]
mov eax, dword [esp + 0x24]
mov edi, edx
shr eax, 0x10
xor ebx, ebp
movzx ecx, al
xor edx, ebp
mov eax, dword [esp + 0x24]
xor edi, ebx
shr eax, 8
movzx eax, al
mov esi, dword [ecx*4 + 0x64c6c0]
mov ecx, dword [esp + 0x24]
mov ebp, dword [esp + 0x1c]
xor esi, dword [eax*4 + 0x64cac0]
mov eax, ecx
shr eax, 0x18
bswap edi
xor esi, dword [eax*4 + 0x64c2c0]
movzx eax, cl
xor esi, dword [eax*4 + 0x64cec0]
mov eax, edi
xor esi, ebx
xor edx, esi
xor ebx, edx
mov ecx, edx
shr ecx, 0x10
shl edx, 0x10
or ecx, edx
mov edx, ebx
xor eax, ecx
shr ebx, 8
and edx, 0xffff00ff
and ebx, 0xff00ff
shl edx, 8
xor edx, ebx
mov ebx, dword [esp + 0x40]
xor edx, ecx
mov ecx, ebp
xor esi, edx
xor ecx, esi
xor eax, esi
mov esi, dword [esp + 0x44]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x3c]
xor ecx, eax
xor ecx, edx
mov dword [esp + 0x20], ecx
mov ecx, ebx
xor ecx, eax
mov eax, esi
mov dword [esp + 0x24], ecx
xor eax, edi
mov edi, dword [esp + 0x3c]
xor eax, edx
mov edx, dword [esp + 0x64]
mov ecx, ebp
shr ecx, 0x13
mov dword [esp + 0x28], eax
mov eax, esi
shl eax, 0xd
xor ecx, eax
mov eax, edi
xor ecx, dword [esp + 0x5c]
mov dword [edx], ecx
mov ecx, ebp
shl ecx, 0xd
shr eax, 0x13
xor ecx, eax
mov eax, edi
xor ecx, dword [esp + 0x10]
mov dword [edx + 4], ecx
mov ecx, ebx
shr ecx, 0x13
shl eax, 0xd
xor ecx, eax
mov eax, esi
xor ecx, dword [esp + 0x14]
mov dword [edx + 8], ecx
mov ecx, ebx
shl ecx, 0xd
shr eax, 0x13
xor ecx, eax
mov eax, dword [esp + 0x4c]
xor ecx, dword [esp + 0x18]
mov dword [edx + 0xc], ecx
mov ecx, dword [esp + 0x48]
shr ecx, 0x13
shl eax, 0xd
xor ecx, eax
mov eax, dword [esp + 0x2c]
xor ecx, ebp
shl eax, 0xd
mov dword [edx + 0x10], ecx
mov ecx, dword [esp + 0x50]
shr ecx, 0x13
xor eax, ecx
mov ecx, dword [esp + 0x54]
shr ecx, 0x13
xor eax, edi
mov dword [edx + 0x14], eax
mov eax, dword [esp + 0x30]
shl eax, 0xd
xor eax, ecx
mov ecx, dword [esp + 0x38]
shr ecx, 0x13
xor eax, ebx
mov dword [edx + 0x18], eax
mov eax, dword [esp + 0x34]
shl eax, 0xd
xor ecx, eax
mov eax, dword [esp + 0x28]
xor ecx, esi
shl eax, 0xd
mov dword [edx + 0x1c], ecx
mov ecx, dword [esp + 0x1c]
shr ecx, 0x13
xor ecx, eax
mov eax, dword [esp + 0x20]
xor ecx, dword [esp + 0x2c]
mov dword [edx + 0x20], ecx
mov ecx, dword [esp + 0x1c]
shl ecx, 0xd
shr eax, 0x13
xor ecx, eax
mov eax, dword [esp + 0x20]
xor ecx, dword [esp + 0x30]
mov dword [edx + 0x24], ecx
mov ecx, dword [esp + 0x24]
shr ecx, 0x13
shl eax, 0xd
xor ecx, eax
mov eax, dword [esp + 0x28]
xor ecx, dword [esp + 0x34]
mov dword [edx + 0x28], ecx
mov ecx, dword [esp + 0x24]
shl ecx, 0xd
shr eax, 0x13
xor ecx, eax
mov eax, dword [esp + 0x18]
xor ecx, dword [esp + 0x38]
mov dword [edx + 0x2c], ecx
mov ecx, dword [esp + 0x5c]
shr ecx, 0x13
shl eax, 0xd
xor ecx, eax
mov eax, dword [esp + 0x10]
xor ecx, dword [esp + 0x1c]
mov dword [edx + 0x30], ecx
mov ecx, dword [esp + 0x5c]
shl ecx, 0xd
shr eax, 0x13
xor ecx, eax
mov eax, dword [esp + 0x10]
xor ecx, dword [esp + 0x20]
mov dword [edx + 0x34], ecx
mov ecx, dword [esp + 0x14]
shr ecx, 0x13
shl eax, 0xd
xor ecx, eax
xor ecx, dword [esp + 0x24]
mov dword [edx + 0x38], ecx
mov ecx, dword [esp + 0x14]
shl ecx, 0xd
mov eax, dword [esp + 0x18]
shr eax, 0x13
xor ecx, eax
lea eax, [esi + esi]
xor ecx, dword [esp + 0x28]
mov dword [edx + 0x3c], ecx
mov ecx, ebp
shr ecx, 0x1f
xor ecx, eax
mov eax, edi
xor ecx, dword [esp + 0x5c]
mov dword [edx + 0x40], ecx
lea ecx, [ebp*2]
shr eax, 0x1f
xor ecx, eax
lea eax, [edi + edi]
xor ecx, dword [esp + 0x10]
mov dword [edx + 0x44], ecx
mov ecx, ebx
shr ecx, 0x1f
xor ecx, eax
mov eax, esi
xor ecx, dword [esp + 0x14]
mov dword [edx + 0x48], ecx
lea ecx, [ebx + ebx]
shr eax, 0x1f
xor ecx, eax
mov eax, dword [esp + 0x38]
xor ecx, dword [esp + 0x18]
add eax, eax
mov dword [edx + 0x4c], ecx
mov ecx, dword [esp + 0x2c]
shr ecx, 0x1f
xor ecx, eax
mov eax, dword [esp + 0x2c]
xor ecx, ebp
mov dword [edx + 0x50], ecx
lea ecx, [eax + eax]
mov eax, dword [esp + 0x30]
shr eax, 0x1f
xor ecx, eax
mov eax, dword [esp + 0x30]
xor ecx, edi
mov dword [edx + 0x54], ecx
lea ecx, [eax + eax]
mov eax, dword [esp + 0x34]
shr eax, 0x1f
xor ecx, eax
mov eax, dword [esp + 0x34]
xor ecx, ebx
add eax, eax
mov dword [edx + 0x58], ecx
mov ecx, dword [esp + 0x38]
shr ecx, 0x1f
xor ecx, eax
mov eax, dword [esp + 0x28]
xor ecx, esi
add eax, eax
mov dword [edx + 0x5c], ecx
mov ecx, dword [esp + 0x1c]
shr ecx, 0x1f
xor ecx, eax
mov eax, dword [esp + 0x1c]
xor ecx, dword [esp + 0x2c]
mov dword [edx + 0x60], ecx
lea ecx, [eax + eax]
mov eax, dword [esp + 0x20]
shr eax, 0x1f
xor ecx, eax
mov eax, dword [esp + 0x20]
xor ecx, dword [esp + 0x30]
add eax, eax
mov dword [edx + 0x64], ecx
mov ecx, dword [esp + 0x24]
shr ecx, 0x1f
xor ecx, eax
mov eax, dword [esp + 0x24]
xor ecx, dword [esp + 0x34]
mov dword [edx + 0x68], ecx
lea ecx, [eax + eax]
mov eax, dword [esp + 0x28]
shr eax, 0x1f
xor ecx, eax
mov eax, dword [esp + 0x18]
xor ecx, dword [esp + 0x38]
add eax, eax
mov dword [edx + 0x6c], ecx
mov ecx, dword [esp + 0x5c]
shr ecx, 0x1f
xor ecx, eax
mov eax, dword [esp + 0x5c]
xor ecx, dword [esp + 0x1c]
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 + 0x20]
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 + 0x24]
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 + 0x28]
mov dword [edx + 0x7c], ecx
mov ecx, ebx
shr ecx, 3
shl eax, 0x1d
xor ecx, eax
mov eax, esi
xor ecx, dword [esp + 0x5c]
mov dword [edx + 0x80], ecx
mov ecx, ebx
shl ecx, 0x1d
shr eax, 3
xor ecx, eax
mov eax, esi
xor ecx, dword [esp + 0x10]
mov dword [edx + 0x84], ecx
mov ecx, ebp
shr ecx, 3
shl eax, 0x1d
xor ecx, eax
mov eax, edi
xor ecx, dword [esp + 0x14]
mov dword [edx + 0x88], ecx
mov ecx, ebp
shl ecx, 0x1d
shr eax, 3
xor ecx, eax
mov eax, dword [esp + 0x34]
xor ecx, dword [esp + 0x18]
mov dword [edx + 0x8c], ecx
mov ecx, dword [esp + 0x30]
shl ecx, 0x1d
shr eax, 3
xor ecx, eax
mov eax, dword [esp + 0x34]
xor ecx, ebp
shl eax, 0x1d
mov dword [edx + 0x90], ecx
mov ecx, dword [esp + 0x38]
shr ecx, 3
xor ecx, eax
mov eax, dword [esp + 0x38]
xor ecx, edi
shl eax, 0x1d
mov dword [edx + 0x94], ecx
mov ecx, dword [esp + 0x2c]
shr ecx, 3
xor ecx, eax
xor ecx, ebx
mov dword [edx + 0x98], ecx
mov ecx, dword [esp + 0x2c]
shl ecx, 0x1d
mov eax, dword [esp + 0x30]
shr eax, 3
xor ecx, eax
mov eax, dword [esp + 0x20]
xor ecx, esi
shl eax, 0x1d
mov dword [edx + 0x9c], ecx
mov ecx, dword [esp + 0x24]
shr ecx, 3
xor ecx, eax
mov eax, dword [esp + 0x28]
xor ecx, dword [esp + 0x2c]
mov dword [edx + 0xa0], ecx
mov ecx, dword [esp + 0x24]
shl ecx, 0x1d
shr eax, 3
xor ecx, eax
mov eax, dword [esp + 0x28]
xor ecx, dword [esp + 0x30]
mov dword [edx + 0xa4], ecx
mov ecx, dword [esp + 0x1c]
shr ecx, 3
shl eax, 0x1d
xor ecx, eax
mov eax, dword [esp + 0x20]
xor ecx, dword [esp + 0x34]
mov dword [edx + 0xa8], ecx
mov ecx, dword [esp + 0x1c]
shl ecx, 0x1d
shr eax, 3
xor ecx, eax
mov eax, dword [esp + 0x10]
xor ecx, dword [esp + 0x38]
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 + 0x1c]
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 + 0x20]
mov dword [edx + 0xb4], ecx
mov ecx, dword [esp + 0x5c]
shr ecx, 3
shl eax, 0x1d
xor ecx, eax
mov eax, dword [esp + 0x10]
xor ecx, dword [esp + 0x24]
mov dword [edx + 0xb8], ecx
mov ecx, dword [esp + 0x5c]
shl ecx, 0x1d
shr eax, 3
xor ecx, eax
mov eax, edi
xor ecx, dword [esp + 0x28]
mov dword [edx + 0xbc], ecx
add edx, 0xc0
shr eax, 1
mov ecx, ebp
shl ecx, 0x1f
xor ecx, eax
mov eax, edi
xor ecx, dword [esp + 0x5c]
mov dword [edx], ecx
mov ecx, ebx
shr ecx, 1
shl eax, 0x1f
xor ecx, eax
xor ecx, dword [esp + 0x10]
mov dword [edx + 4], ecx
mov ecx, ebx
shl ecx, 0x1f
mov eax, esi
shr eax, 1
xor ecx, eax
mov eax, esi
xor ecx, dword [esp + 0x14]
mov dword [edx + 8], ecx
mov ecx, ebp
shr ecx, 1
shl eax, 0x1f
xor ecx, eax
mov eax, dword [esp + 0x60]
xor ecx, dword [esp + 0x18]
mov dword [edx + 0xc], ecx
cmp eax, 0x80
jle 0x5973c0
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
shl ecx, 0x1f
shr eax, 1
xor ecx, eax
mov eax, dword [esp + 0x34]
xor ecx, ebp
shr eax, 1
mov dword [edx + 0x10], ecx
mov ecx, dword [esp + 0x30]
shl ecx, 0x1f
xor ecx, eax
mov eax, dword [esp + 0x34]
xor ecx, edi
shl eax, 0x1f
mov dword [edx + 0x14], ecx
mov ecx, dword [esp + 0x38]
shr ecx, 1
xor ecx, eax
mov eax, dword [esp + 0x38]
xor ecx, ebx
shl eax, 0x1f
mov dword [edx + 0x18], ecx
mov ecx, dword [esp + 0x2c]
shr ecx, 1
xor ecx, eax
mov eax, dword [esp + 0x20]
xor ecx, esi
shr eax, 1
mov dword [edx + 0x1c], ecx
add edx, 0x20
mov ecx, dword [esp + 0x1c]
shl ecx, 0x1f
xor ecx, eax
mov eax, dword [esp + 0x20]
xor ecx, dword [esp + 0x2c]
mov dword [edx], ecx
mov ecx, dword [esp + 0x24]
shr ecx, 1
shl eax, 0x1f
xor ecx, eax
mov eax, dword [esp + 0x28]
xor ecx, dword [esp + 0x30]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x24]
shl ecx, 0x1f
shr eax, 1
xor ecx, eax
mov eax, dword [esp + 0x28]
xor ecx, dword [esp + 0x34]
mov dword [edx + 8], ecx
mov ecx, dword [esp + 0x1c]
shl eax, 0x1f
shr ecx, 1
xor ecx, eax
mov eax, dword [esp + 0x60]
xor ecx, dword [esp + 0x38]
mov dword [edx + 0xc], ecx
cmp eax, 0xc0
jle 0x597467
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x5c]
shr ecx, 1
shl eax, 0x1f
xor ecx, eax
mov eax, dword [esp + 0x10]
xor ecx, dword [esp + 0x1c]
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 + 0x20]
mov dword [edx + 0x14], ecx
mov ecx, dword [esp + 0x14]
shr eax, 1
shl ecx, 0x1f
xor ecx, eax
mov eax, dword [esp + 0x5c]
xor ecx, dword [esp + 0x24]
mov dword [edx + 0x18], ecx
mov ecx, dword [esp + 0x18]
shr eax, 1
shl ecx, 0x1f
xor ecx, eax
mov eax, edi
xor ecx, dword [esp + 0x28]
shr eax, 0xd
mov dword [edx + 0x1c], ecx
mov ecx, ebp
shl ecx, 0x13
xor ecx, eax
shl edi, 0x13
xor ecx, dword [esp + 0x5c]
mov eax, ebx
shr eax, 0xd
xor eax, edi
shl ebx, 0x13
xor eax, dword [esp + 0x10]
mov dword [edx + 0x24], eax
mov eax, esi
shr eax, 0xd
shr ebp, 0xd
xor ebx, eax
xor ebx, dword [esp + 0x14]
shl esi, 0x13
xor ebp, esi
mov dword [edx + 0x20], ecx
xor ebp, dword [esp + 0x18]
mov dword [edx + 0x28], ebx
mov dword [edx + 0x2c], ebp
pop edi
pop esi
pop ebx
xor eax, eax
pop ebp
add esp, 0x48
ret
or eax, 0xffffffff
pop ebp
add esp, 0x48
ret